NullShot TypeScript MCP Server Toolkit
使用说明
-
项目简介
- 这是一个基于 MCP(Model Context Protocol)的服务器端实现集合,使用 TypeScript/Cloudflare Workers 生态,提供对资源与工具的托管、工具注册与执行、以及对 Prompt 的渲染与传输。核心采用 Durable Object 作为 MCP 服务器实例,提供 SSE 和 WebSocket 两种传输模式,便于 LLM 客户端通过统一接口获取上下文与能力。
-
主要功能点
- MCP 协议处理与会话管理:实现 JSON-RPC 风格的请求/响应处理,支持会话与传输状态的管理。
- 资源/工具/提示的托管与执行:提供工具注册、调用和简单的资源管理能力,示例中包含 echo 工具用以验证调用流程。
- 多传输方案:实现 SSETransport 与 WebSocketTransport,支持 SSE 的事件流式输出和 WebSocket 的双向通信(包括会话保持、断开与重连)。
- Hono 集成与路由:提供 Hono Server DO 的实现,支持在 Hono 应用中部署 MCP 服务的路由。
- Durable Object 驱动:以 Durable Object 作为 MCP 服务器的运行实体,具备会话与传输的状态持久化能力。
- 测试用例与示例实现:包含面向测试的 Hono 服务端实现(TestHonoServer)与多个测试用例,覆盖 SSE/WebSocket 的连接、消息传递、会话管理等场景。
-
安装步骤
- 安装 Cloudflare Wrangler 与相关工具,确保本地可使用 Cloudflare Workers/Vercel 等部署能力。
- 克隆仓库后,在项目根目录执行依赖安装,例如 npm i 或 pnpm i(根据实际项目配置选择合适的包管理器)。
- 编译 TypeScript 代码,确保所有 MCP 相关模块正确生成 JS/类型定义。
- 部署到 Cloudflare 环境,例如通过 wrangler publish,将 MCP 服务部署为 Durable Objects。
- 根据需要使用 Hono 服务适配器进行本地/云端路由暴露,并通过 SSE/WebSocket 客户端与 MCP 服务器进行通信。
-
服务器配置(给 MCP 客户端的启动配置,JSON 格式,包含 server name、command、args 等说明) { "server_name": "NullShot MCP Hono Server", "command": "wrangler publish", "args": [ "--name", "mcp-hono-server", "--env", "production" ], "description": "将 MCP 服务器部署为 Cloudflare Durable Object 实例,Hono 服务提供路由,SSE/WebSocket 作为传输通道" } 注释:以上字段用于 MCP 客户端在连接服务器时的元信息描述。命令与参数基于本仓库对 MCP 的实现方式(使用 Wrangler 部署到 Cloudflare 的 Durable Object),实际运行时客户端只需要知道服务器的名称/入口信息即可,不需要直接执行客户端代码。具体的启动命令与参数可根据实际部署环境进行调整。
-
基本使用方法
- 部署 MCP 服务器(如通过 Wrangler 将 McpServerDO/Hono 服务部署到 Cloudflare)。
- 客户端通过 SSE 或 WebSocket 传输与 MCP 服务器建立连接,服务端会为每个会话创建唯一的会话标识并保持状态。
- 使用 Echo 等示例工具进行功能调用,验证工具注册与执行流程。
- 通过 SSE 流和 WebSocket 进行持续的上下文与事件传输,支持服务器推送与模型交互。
-
其他注意
- 本实现包含 Hono 的路由、SSE 与 WebSocket 传输实现,以及用于测试的 TestHonoServer 实现,适合在 Cloudflare Workers 与 Hono 环境中并行运行。
- MCP 客户端需要配置的启动信息请以上述 JSON 配置为参考,确保服务器名称与入口一致,实际客户端连接时将使用该配置来建立与 MCP 的通信。