mirror of
https://github.com/HappyLifeOk/cc-3-8-x-mcp.git
synced 2026-08-20 05:27:02 +00:00
[mcp] 修复: requestCount 死计数器改为真实工具调用计数,新增 lastRequestAt/lastTool 判活
requestCount 初始化后从无自增,恒 0,曾被当成转发断裂的证据误诊。 改为包装 tool handler/resource read 计数;不计 router 15s 探活, 计数代表真实业务调用。lastRequestAt/lastTool 作判活主信号。
This commit is contained in:
@@ -431,6 +431,19 @@ async function startMcpServer() {
|
|||||||
var toolDefs = tdef.defineTools(ctx);
|
var toolDefs = tdef.defineTools(ctx);
|
||||||
var resourceDefs = tdef.defineResources(ctx);
|
var resourceDefs = tdef.defineResources(ctx);
|
||||||
|
|
||||||
|
// 只计真实的工具调用 / 资源读取,不计 router 每 15s 的 initialize/tools-list 探活——
|
||||||
|
// 否则计数永远在涨,无法用于判断「业务指令到没到编辑器」。
|
||||||
|
// lastRequestAt/lastTool 是判活主信号(曾因 requestCount 初始化后无人自增、恒 0,被当成转发断裂误诊)。
|
||||||
|
var stats = { startedAt: new Date().toISOString(), requestCount: 0, lastRequestAt: null, lastTool: null };
|
||||||
|
function countCall(name, fn) {
|
||||||
|
return function () {
|
||||||
|
stats.requestCount++;
|
||||||
|
stats.lastRequestAt = new Date().toISOString();
|
||||||
|
stats.lastTool = name;
|
||||||
|
return fn.apply(this, arguments);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
var server = sdk.createServer({
|
var server = sdk.createServer({
|
||||||
name: 'cc-3-8-x-mcp',
|
name: 'cc-3-8-x-mcp',
|
||||||
version: '2.0.0',
|
version: '2.0.0',
|
||||||
@@ -440,7 +453,7 @@ async function startMcpServer() {
|
|||||||
name: t.name,
|
name: t.name,
|
||||||
description: t.description,
|
description: t.description,
|
||||||
inputSchema: t.inputSchema,
|
inputSchema: t.inputSchema,
|
||||||
handler: t.handler,
|
handler: countCall(t.name, t.handler),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
resources: resourceDefs.map(function (r) {
|
resources: resourceDefs.map(function (r) {
|
||||||
@@ -449,7 +462,7 @@ async function startMcpServer() {
|
|||||||
name: r.name,
|
name: r.name,
|
||||||
description: r.description,
|
description: r.description,
|
||||||
mimeType: r.mimeType,
|
mimeType: r.mimeType,
|
||||||
read: r.read,
|
read: countCall('resource:' + r.uri, r.read),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
@@ -462,7 +475,7 @@ async function startMcpServer() {
|
|||||||
port: port,
|
port: port,
|
||||||
toolCount: toolDefs.length,
|
toolCount: toolDefs.length,
|
||||||
resourceCount: resourceDefs.length,
|
resourceCount: resourceDefs.length,
|
||||||
stats: { startedAt: new Date().toISOString(), requestCount: 0 },
|
stats: stats,
|
||||||
stop: function () { server.stop(); },
|
stop: function () { server.stop(); },
|
||||||
};
|
};
|
||||||
writeRegistry();
|
writeRegistry();
|
||||||
|
|||||||
Reference in New Issue
Block a user