feat: enhance MCP server retrieval and logging for transport closure (#101)

This commit is contained in:
samanhappy
2025-05-16 16:47:21 +08:00
committed by GitHub
parent d44886b81b
commit 298d96d593
2 changed files with 9 additions and 2 deletions

View File

@@ -16,10 +16,16 @@ export const initMcpServer = async (name: string, version: string): Promise<void
await registerAllTools(true); await registerAllTools(true);
}; };
export const getMcpServer = (sessionId: string): Server => { export const getMcpServer = (sessionId?: string): Server => {
if (!sessionId) {
return createMcpServer(config.mcpHubName, config.mcpHubVersion);
}
if (!servers[sessionId]) { if (!servers[sessionId]) {
const server = createMcpServer(config.mcpHubName, config.mcpHubVersion); const server = createMcpServer(config.mcpHubName, config.mcpHubVersion);
servers[sessionId] = server; servers[sessionId] = server;
} else {
console.log(`MCP server already exists for sessionId: ${sessionId}`);
} }
return servers[sessionId]; return servers[sessionId];
}; };

View File

@@ -126,6 +126,7 @@ export const handleMcpPostRequest = async (req: Request, res: Response): Promise
}); });
transport.onclose = () => { transport.onclose = () => {
console.log(`Transport closed: ${transport.sessionId}`);
if (transport.sessionId) { if (transport.sessionId) {
delete transports[transport.sessionId]; delete transports[transport.sessionId];
deleteMcpServer(transport.sessionId); deleteMcpServer(transport.sessionId);
@@ -134,7 +135,7 @@ export const handleMcpPostRequest = async (req: Request, res: Response): Promise
}; };
console.log(`MCP connection established: ${transport.sessionId}`); console.log(`MCP connection established: ${transport.sessionId}`);
await getMcpServer(transport.sessionId || 'mcp').connect(transport); await getMcpServer(transport.sessionId).connect(transport);
} else { } else {
res.status(400).json({ res.status(400).json({
jsonrpc: '2.0', jsonrpc: '2.0',