mirror of
https://github.com/samanhappy/mcphub.git
synced 2026-01-01 04:08:52 -05:00
feat: enhance MCP server retrieval and logging for transport closure (#101)
This commit is contained in:
@@ -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];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
Reference in New Issue
Block a user