Skip to content

Commit 2a02524

Browse files
committed
fix: screenshot bug
1 parent 2ff6af3 commit 2a02524

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/index.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,17 @@ export default function ({ config }: { config: z.infer<typeof configSchema> }) {
139139
const contextId = randomUUID();
140140
const context = new Context(server.server, internalConfig, contextId);
141141

142+
// Cleanup handler for when the MCP connection closes (SHTTP/Smithery)
143+
server.server.onclose = async () => {
144+
try {
145+
await context.getSessionManager().closeAllSessions();
146+
} catch (err) {
147+
process.stderr.write(
148+
`[Cleanup] Error during session cleanup: ${err instanceof Error ? err.message : String(err)}\n`,
149+
);
150+
}
151+
};
152+
142153
server.server.registerCapabilities({
143154
resources: {
144155
subscribe: true,

src/transport.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,11 @@ async function handleStreamable(
5353
sessionIdGenerator: () => sessionId,
5454
});
5555
sessions.set(sessionId, transport);
56+
const server = await serverList.create();
5657
transport.onclose = () => {
5758
if (transport.sessionId) sessions.delete(transport.sessionId);
59+
serverList.close(server);
5860
};
59-
const server = await serverList.create();
6061
await server.connect(transport);
6162
return await transport.handleRequest(req, res);
6263
}

0 commit comments

Comments
 (0)