D96 修复: MCP initialize响应去除_meta字段(WorkBuddy不识别)

This commit is contained in:
bingshuo 2026-05-14 00:16:22 +08:00
parent 8ef8e83910
commit 6c3a7f461a

View File

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