SuperAPI AI 工具集

mcp-typescript-sdk-upgrade-to-v2

编程与开发

查看项目

更新于 10-16 06:48

技能介绍

用途:把使用 @modelcontextprotocol/sdk(v1.x)的 TypeScript 代码迁移到 v2 包(@modelcontextprotocol/client、/server、/core 等)。前置要求 Node.js 20+;v2 以 ESM 为主,同时提供 CommonJS 构建,import 与 require 均可原生解析。

快速路径:在包根目录(.,而非 ./src)运行 npx @modelcontextprotocol/codemod@latest v1-to-v2 .,它会同时改写 package.json;随后用 grep -rn '@mcp-codemod-error' . 查找无法安全改写的标记,执行 tsc --noEmit 类型检查,对改动文件运行格式化(prettier --write / eslint --fix / biome format --write),最后跑测试。大型代码库可分阶段迁移。

codemod 能处理:导入路径映射、符号重命名(如 McpError→ProtocolError、JSONRPCError→JSONRPCErrorResponse)、setRequestHandler(Schema,…) 改为字符串方法名、extra.→ctx.mcpReq./ctx.http?.*、更新 package.json 依赖、.tool()/.prompt()/.resource() 改为 registerTool/registerPrompt/registerResource 并用 z.object() 包裹原始 Zod 形状、去掉 client.request()/client.callTool() 的结果 schema 参数、把 sdk/types.js 的 Zod *Schema 常量路由到 @modelcontextprotocol/core、ErrorCode→ProtocolErrorCode、StreamableHTTPError→SdkHttpError、IsomorphicHeaders→Web 标准 Headers、SchemaInput<T>→StandardSchemaWithJSON.InferInput<T>、RequestHandlerExtra→ServerContext/ClientContext 且 extra 参数改为 ctx、改写 vi.mock/jest.mock 与动态 import、ResourceTemplate 类型改名 ResourceTemplateType、移除 zod-compat.js 导入、反转 completable 可选嵌套等。

codemod 不处理(需按手册手工改):Node 20/ESM 预检、Headers 的 .get() 改写、ctx.mcpReq.send() 的 schema 参数、OAuth 错误类合并、SdkErrorCode 分支选择、命名空间 schema 访问、无导入(注入式)SDK 表面、行为适配(列表自动聚合、能力空值、惰性校验器编译、输出 schema 校验规则)。手册按子系统分文件:打包与运行时、导入与传输、底层协议与 ctx、服务端注册 API、HTTP 与请求头、错误、认证、类型与 schema、行为变更、增强特性、未变更 API。

限制:资料未提供具体版本号、发布时间、收费或平台信息;codemod 为导入驱动,对无 SDK 导入的注入式代码不生效,此类 v1 用法会在运行时而非编译期失败。