SuperAPI AI 工具集

build-mcp-server-sdk-v2

编程与开发

查看项目

更新于 10-16 04:38

技能介绍

用途

本技能用于在 MCP(Model Context Protocol)服务器 SDK v2 alpha 的拆分包结构上构建与维护服务器。适用场景包括:全新构建 MCP 服务器且用户选择 v2、alpha 或拆分包;package.json 已依赖 @modelcontextprotocol/server、/client 或 /core;现有代码使用 new McpServer(...) 与 server.registerTool(...) 高层 API;处理器使用 (args, ctx) 及 ctx.mcpReq.signal、ctx.mcpReq.log()、ctx.mcpReq.notify()、ctx.http?.authInfo;HTTP 使用 @modelcontextprotocol/node 的 NodeStreamableHTTPServerTransport 或官方适配器的 createMcpExpressApp() / createMcpHonoApp();schema 使用 zod/v4 的完整 z.object({...})。

不适用场景:依赖单包 @modelcontextprotocol/sdk(v1);处理器使用 (args, extra) 及 extra.sendNotification、extra.authInfo、extra.signal;任务是将现有 v1 服务器迁移到 v2(应使用 convert-mcp-sdk-v1-to-v2);项目使用 mcp-use 包装器或 @hono/mcp 社区中间件;用户需要的是智能体质量、加固或上下文预算审计而非 SDK 正确性。

主要能力

  • v2 与 v1 的识别:通过 package.json 依赖、导入路径、处理器签名、Zod 路径、模块类型等指纹判断。
  • 核心规则:始终使用 @modelcontextprotocol/server 的 McpServer;使用 registerTool / registerResource / registerPrompt;传入完整 Zod v4 schema;HTTP 传输从 @modelcontextprotocol/node 导入;Express 用 @modelcontextprotocol/express,Hono 用 @modelcontextprotocol/hono;服务端 OAuth 已从 SDK 移除,需在 HTTP 层接入;仅 ESM,Node 20+;alpha 版本精确锁定。
  • 工作流程:检测现状、维护或修复现有 v2 服务器、规划新 v2 服务器、选择实现分支、预检设置、构建、验证。
  • 核心 API:McpServer 构造与 connect/close/registerTool/registerResource/registerPrompt 等方法;registerTool 配置项;ServerContext 字段;错误处理(ProtocolError 与 isError: true)。
  • 决策规则与护栏:新工具一律用完整 z.object();可恢复失败优先 isError: true;日志用 ctx.mcpReq.log();用户输入用 ctx.mcpReq.elicitInput();使用官方框架适配器;谨慎设置 annotations。

使用方式

预检需 Node.js 20+、package.json 中 "type": "module"、TypeScript 5+ 且 module/moduleResolution 为 Node16。安装命令示例:npm install --save-exact @modelcontextprotocol/server@2.0.0-alpha.2;npm install zod@^4;HTTP 另装 @modelcontextprotocol/node@2.0.0-alpha.2;Express 另装 @modelcontextprotocol/express@2.0.0-alpha.2 express;Hono 另装 @modelcontextprotocol/hono@2.0.0-alpha.2 hono。构建默认顺序:构造 McpServer、定义 Zod v4 schema、registerTool、registerResource、registerPrompt、构造传输并 await server.connect(transport)、处理优雅关闭。验证包括本地构建与测试、stdio 用 npx @anthropic-ai/mcp-inspector、HTTP 用 curl 或 Inspector 探测、mcpc CLI 冒烟测试(initialize → tools/list → 一次成功调用 → 一次无效参数调用返回 isError: true)。

适用场景

适用于在 v2 alpha 拆分包 SDK 上新建或维护 MCP 服务器,包括 stdio 本地服务器与 Streamable HTTP 远程/多客户端服务器,以及 Express 或 Hono 框架集成、工具/资源/提示注册、认证中间件、MCP 客户端构建、采样与生命周期处理、生产加固与部署。

限制

v2 截至 2026-05-09 仍为预发布 alpha,最新 npm 拆分包为 2.0.0-alpha.2,主分支标记 v2.0.0-bc 的 PR 可能尚未发布。多数生产服务器应继续使用 v1.x 直至 v2 发布非 alpha 稳定版。alpha 版本需精确锁定(不用 ^),部署前规划回滚并保持 v1 分支可部署。@modelcontextprotocol/sdk 元包在 npm 上仍为 v1,除非 npm view 证明相反。@modelcontextprotocol/server-auth-legacy 为计划/开放状态,在 npm view 成功前视为未发布。依赖 v2 特性前需在各 MCP 主机(Claude Desktop、Cursor、Cline、自定义)端到端验证。