D96 修复: MCP initialize响应去除_meta字段(WorkBuddy不识别)
This commit is contained in:
parent
8ef8e83910
commit
6c3a7f461a
@ -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,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user