diff --git a/server/mcp-server/index.js b/server/mcp-server/index.js index 41f696c..3978a17 100644 --- a/server/mcp-server/index.js +++ b/server/mcp-server/index.js @@ -757,14 +757,16 @@ async function handleJsonRpc(req, res) { // 批量消息 if (Array.isArray(message)) { - const results = await Promise.all(message.map(m => processRpc(m))); + const results = await Promise.all(message.map(m => processRpcWithRes(m, res))); return res.json(results); } - const result = await processRpc(message); + const result = await processRpcWithRes(message, res); return res.json(result); } +async function processRpcWithRes(message, res) { + async function processRpc(message) { const { jsonrpc, id, method, params } = message; @@ -778,6 +780,9 @@ async function processRpc(message) { case 'initialize': { const sessionId = crypto.randomUUID(); sessions.set(sessionId, { created: Date.now() }); + // Session ID 通过 HTTP Header 传递,不在 JSON 响应体中带 _meta + // WorkBuddy 客户端校验严格,不认识 _meta 字段 + res.setHeader('Mcp-Session-Id', sessionId); return { jsonrpc: '2.0', @@ -793,9 +798,6 @@ async function processRpc(message) { title: '铸渊 MCP Server · 光湖代码仓库', }, }, - _meta: { - sessionId, - }, }; }