mcp-hono网关
Hono制作的“MCP Streamable HTTP网关”。\ 通过HTTP呼叫在本地运行的MCP服务器(在stdio中说JSON-RPC的服务器)。
能做的事
- 将MCP服务器作为HTTP的端点公开(
POST/GET/DELETE) initialize启动会话,然后单击mcp-session-id继续相同的会话- 服务器进程按会话生成,并在会话结束时清理
需要的(本地开发)
- Node.js
uv(uvx的根目录)
- 这个存储库 汤姆小姐 版本示例
首先移动(本地)
npm install
npm run dev从浏览器/客户端访问:
open http://localhost:3000端点列表(MCP可流HTTP)
该应用程序将MCP服务器作为HTTP渠道发布。
POST/GET/DELETE /server-timePOST/GET/DELETE /aws-pricingPOST/GET/DELETE /aws-knowledgePOST/GET/DELETE /context7POST/GET/DELETE /tavilyPOST/GET/DELETE /yfmcp
使用方法(MCP会话流程)
必需页眉
MCP Streamable HTTP必须同时接受“JSON”和“SSE”。
Accept: application/json, text/event-stream
会话启动(初始化)
第一个 initialize 如果成功,则将会话标识返回到响应题头。
mcp-session-id:
以后的请求相同 mcp-session-id 中所述修改相应参数的值。
建议:通过MCP检查器进行确认
与其用curl手动组装JSON-RPC,不如推荐使用MCP Inspector的UI进行连接、沟通确认的方法。
- 启动网关(例如:
npm run dev) - 启动检查器:
npm run inspector - 在浏览器中
http://localhost:6274的双曲正切值mcp-inspector.json服务器(例如:aws-pricing)连接
补足:
npm run inspector默认值--server default-server来定义自定义外观 mcp-inspector.json)。- 如果要在另一台服务器上打开:
npm run inspector -- --server aws-knowledge BEARER_TOKEN启用时,在检查端Authorization: Bearer来定义自定义外观。- 配置文件为 mcp-inspector.json 在工作空间的边缘
http://localhost:3000/中所述修改相应参数的值。
环境变数
根据需要 .env.example 的 .env 中所述修改相应参数的值。
BEARER_TOKEN(可选):设置后,所有路由都将经过Bearer认证(Authorization: Bearer),模板名称将采用不同的格式AWS_REGION(任意。未指定的话us-east-1):/aws-pricing在运行环境中使用AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY(必要时):AWS系MCP服务器参照CONTEXT7_API_KEY(推奨):/context7中使用(未设定也可以启动/context7的请求将出错)TAVILY_API_KEY(推奨):/tavily中使用(未设定也可以启动/tavily的请求将出错)CLOUDFLARED_TUNNEL_TOKEN(使用Cloudflare Tunnel时):cloudflared在容器中使用
会话/内存相关(可选)
这个网关 initialize 每次启动MCP服务器进程。 如果客户机忘记关闭会话,则进程将继续占用内存,因此您可以设置自动清理空闲/长寿命会话。
MCP_MAX_SESSIONS(compose 既定:10):同时保持的会话数的上限(超过的话initialize的503拒绝)MCP_SESSION_IDLE_MS(compose 既定:300000=5分钟):自动退出没有此时间访问权限的会话(0禁用)MCP_SESSION_MAX_LIFETIME_MS(compose 既定:3600000=1小时):会话的最大生存时间(0禁用)MCP_MAX_INIT_BODY_BYTES(compose 既定:250000≒250KB):initialize的JSON主体过大时413拒绝MCP_LOG_MEMORY(任意。1启用):每分钟sessions数字和process.memoryUsage()日志输出
码头工人
通过Cloudflare Tunnel公开(compose默认)
compose.yaml 的正常启动 app 和 cloudflared 启动。 此配置允许主机 3000 因为没有发布,所以从本地 http://localhost:3000 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
docker compose up --build停止/清理:
docker compose down想在本地敲(带热重装)
使用具有端口公开的dev概要文件。
docker compose --profile dev up --build app-dev停止/清理:
docker compose --profile dev down添加MCP服务器
发生器(推荐)
创建根文件+ src/index.ts 中所述修改相应参数的值。
npm run add:mcp -- --name my-tool常用选项示例:
# uvx (Python パッケージを実行)
npm run add:mcp -- --name aws-like --command uvx --arg 'some.package@latest' --env AWS_REGION
# npx (Node パッケージを実行)
npm run add:mcp -- --name node-mcp --command npx --arg -y --arg @your/mcp-server手动添加
src/routes/路线createMcpProxy使用)src/index.ts的app.route('/your-path', yourRoute)添加- 如果需要环境变量
compose.yaml的,之environment:过活 - 确认是否为可在容器中执行的命令(
uvx/npx包含在映像中)
生物特征(绒毛/格式)
npm run lint
npm run format
npm run check在VSCode中加入biome扩展后,保存时的格式/修改会移动(设置为 .vscode/ 配下)。
许可证
MIT许可证
