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)) {
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,
},
};
}