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)) {
|
||||
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,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user