From 6c3a7f461af71218e57b6c944dc04c73770efff8 Mon Sep 17 00:00:00 2001 From: bingshuo <565183519@qq.com> Date: Thu, 14 May 2026 00:16:22 +0800 Subject: [PATCH] =?UTF-8?q?D96=20=E4=BF=AE=E5=A4=8D:=20MCP=20initialize?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E5=8E=BB=E9=99=A4=5Fmeta=E5=AD=97=E6=AE=B5(W?= =?UTF-8?q?orkBuddy=E4=B8=8D=E8=AF=86=E5=88=AB)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/mcp-server/index.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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, - }, }; }