muppet
Version:
Toolkit for building MCPs on Honojs
2 lines (1 loc) • 1.66 kB
JavaScript
var u=Object.defineProperty;var s=(e,o)=>u(e,"name",{value:o,configurable:!0});import{M as c,u as d}from"./muppet-BdeHS-Ba.js";import{m as x}from"./muppet-BdeHS-Ba.js";import{sValidator as f}from"@hono/standard-validator";import{toJsonSchema as g}from"@standard-community/standard-json";import{RequestSchema as y}from"@modelcontextprotocol/sdk/types.js";import"hono";function p(e){return o=>Object.assign(s(async(n,a)=>{await a()},"middleware"),{[d]:{toJson:o??{},type:e}})}s(p,"describeRoute");const S=p(c.PROMPTS),h=p(c.TOOLS);function w(e){return Object.assign(e,{[d]:{type:c.RESOURCES}})}s(w,"registerResources");function O(e,o,t){const n=f(e,o,t);return Object.assign(n,{[d]:{validationTarget:e,toJson:s(async()=>({schema:await g(o)}),"toJson")}})}s(O,"mValidator");function b(e){const{mcp:o,transport:t,logger:n}=e;let a=0;return t.onmessage=async i=>{const r=await m({mcp:await o,message:i,logger:n});"method"in i&&i.method==="initialize"&&(a=-1),r&&(a++,await t.send({...r,id:a}).then(()=>n?.info("Sent response")).catch(l=>n?.error(l,"Failed to send cancellation")))},t.start()}s(b,"bridge");async function m(e){const{mcp:o,message:t,logger:n}=e;n?.info({message:t,string:JSON.stringify(t)},"Received message");const a=y.parse(t),i=await o.request(a.method,{method:"POST",body:JSON.stringify(t),headers:{"content-type":"application/json"}});if(i.status===204)return null;const r=await i.json();return r.jsonrpc="2.0",n?.info({payload:r},"Response payload"),r}s(m,"handleMessage");export{c as McpPrimitives,b as bridge,S as describePrompt,h as describeTool,m as handleMessage,O as mValidator,x as muppet,w as registerResources,d as uniqueSymbol};