logo
3
38
WeChat Login

@modelcontextprotocol/sdk版本冲突#777

Open
created 2 months ago
Edit

云开发环境ID

cloud1-3gge6erv05fb764d

问题描述

D:\CursorProject\cloudrun-mcp-basic>npm ls @modelcontextprotocol/sdk
cloudrun-mcp-basic@1.0.0 D:\CursorProject\cloudrun-mcp-basic
├─┬ @cloudbase/mcp@1.0.0-beta.30
│ └── @modelcontextprotocol/sdk@1.11.3
└── @modelcontextprotocol/sdk@1.25.3

cloudrun-mcp-basic模板中存在包版本冲突的问题,导致如图报错

d22c794f-b7a9-41cd-9f8f-d94a56566865.png

报错信息
Argument of type '(context: ContextInjected<TcbExtendedContext>) => { server: McpServer; }' is not assignable to parameter of type 'ServerCreator'. Type '{ server: McpServer; }' is not assignable to type 'ServerCreatorRet | Promise<ServerCreatorRet>'. Type '{ server: McpServer; }' is not assignable to type 'ServerCreatorRet'. The types of 'server.connect' are incompatible between these types. Type '(transport: import("d:/CursorProject/cloudrun-mcp-basic/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport", { with: { "resolution-mode": "import" } }).Transport) => Promise<void>' is not assignable to type '(transport: import("d:/CursorProject/cloudrun-mcp-basic/node_modules/@cloudbase/mcp/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport", { with: { "resolution-mode": "import" } }).Transport) => Promise<...>'. Types of parameters 'transport' and 'transport' are incompatible. Type 'import("d:/CursorProject/cloudrun-mcp-basic/node_modules/@cloudbase/mcp/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport", { with: { "resolution-mode": "import" } }).Transport' is not assignable to type 'import("d:/CursorProject/cloudrun-mcp-basic/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport", { with: { "resolution-mode": "import" } }).Transport'. Types of property 'onmessage' are incompatible. Type '((message: JSONRPCMessage, extra?: { authInfo?: AuthInfo | undefined; } | undefined) => void) | undefined' is not assignable to type '(<T extends JSONRPCMessage>(message: T, extra?: MessageExtraInfo | undefined) => void) | undefined'. Type '(message: JSONRPCMessage, extra?: { authInfo?: AuthInfo | undefined; } | undefined) => void' is not assignable to type '<T extends JSONRPCMessage>(message: T, extra?: MessageExtraInfo | undefined) => void'. Types of parameters 'message' and 'message' are incompatible. Type 'T' is not assignable to type 'JSONRPCMessage'. Type 'import("d:/CursorProject/cloudrun-mcp-basic/node_modules/@modelcontextprotocol/sdk/dist/esm/types", { with: { "resolution-mode": "import" } }).JSONRPCMessage' is not assignable to type 'import("d:/CursorProject/cloudrun-mcp-basic/node_modules/@cloudbase/mcp/node_modules/@modelcontextprotocol/sdk/dist/esm/types", { with: { "resolution-mode": "import" } }).JSONRPCMessage'. Type '{ jsonrpc: "2.0"; error: { code: number; message: string; data?: unknown; }; id?: string | number | undefined; }' is not assignable to type 'JSONRPCMessage'. Type '{ jsonrpc: "2.0"; error: { code: number; message: string; data?: unknown; }; id?: string | number | undefined; }' is not assignable to type '{ jsonrpc: "2.0"; id: string | number; error: { code: number; message: string; data?: unknown; }; }'. Types of property 'id' are incompatible. Type 'string | number | undefined' is not assignable to type 'string | number'. Type 'undefined' is not assignable to type 'string | number'. Type 'T' is not assignable to type '{ jsonrpc: "2.0"; id: string | number; error: { code: number; message: string; data?: unknown; }; }'. Type 'JSONRPCMessage' is not assignable to type '{ jsonrpc: "2.0"; id: string | number; error: { code: number; message: string; data?: unknown; }; }'. Property 'error' is missing in type '{ method: string; jsonrpc: "2.0"; id: string | number; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; "io.modelcontextprotocol/related-task"?: { ...; } | undefined; } | undefined; } | undefined; }' but required in type '{ jsonrpc: "2.0"; id: string | number; error: { code: number; message: string; data?: unknown; }; }'.ts(2345) types.d.ts(628, 5): 'error' is declared here. (alias) function createServer(context: ContextInjected<TcbExtendedContext>): { server: McpServer; } import createServer
报错

Administrator

@tencent/cloud/cloudbase/community(小T) 看下这个问题

T

NPC
1

T

NPC

@Artoria 你好!感谢反馈。

这是一个 依赖版本冲突的问题。cloudrun-mcp-basic 模板中同时存在两个版本的 @modelcontextprotocol/sdk

  • 项目直接依赖:@modelcontextprotocol/sdk@1.25.3
  • @cloudbase/mcp@1.0.0-beta.30 间接依赖:@modelcontextprotocol/sdk@1.11.3

两个版本的类型定义(TransportJSONRPCMessage 等)存在差异,导致 TypeScript 编译报错。

临时解决方案

package.json 中通过 overrides 强制统一版本:

{
  "overrides": {
    "@modelcontextprotocol/sdk": "1.25.3"
  }
}

然后重新安装依赖:

rm -rf node_modules package-lock.json
npm install

根本修复

我们会推进 @cloudbase/mcp 更新其对 @modelcontextprotocol/sdk 的依赖版本,从根本上解决此冲突。感谢你的反馈,帮助我们改善模板质量!

T

NPC
referenced ISSUE
Assignee
None yet
Label
None yet
Priority
None yet
Time period
-
Property
Add custom properties to record and label key information
Participant