• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mongodb-js / mongodb-mcp-server / 16375483999

18 Jul 2025 04:25PM UTC coverage: 80.527% (-1.3%) from 81.82%
16375483999

Pull #361

github

web-flow
Merge 5058fa637 into 7856bb93a
Pull Request #361: feat: add streamable http [MCP-42]

531 of 693 branches covered (76.62%)

Branch coverage included in aggregate %.

182 of 325 new or added lines in 9 files covered. (56.0%)

26 existing lines in 2 files now uncovered.

3046 of 3749 relevant lines covered (81.25%)

48.09 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

53.06
/src/common/sessionStore.ts
1
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
2
import logger, { LogId } from "./logger.js";
2✔
3

4
export class SessionStore {
2✔
5
    private sessions: { [sessionId: string]: StreamableHTTPServerTransport } = {};
2✔
6

7
    getSession(sessionId: string): StreamableHTTPServerTransport | undefined {
2✔
8
        return this.sessions[sessionId];
6✔
9
    }
6✔
10

11
    setSession(sessionId: string, transport: StreamableHTTPServerTransport): void {
2✔
12
        if (this.sessions[sessionId]) {
2!
NEW
13
            throw new Error(`Session ${sessionId} already exists`);
×
NEW
14
        }
×
15
        this.sessions[sessionId] = transport;
2✔
16
    }
2✔
17

18
    async closeSession(sessionId: string, closeTransport: boolean = true): Promise<void> {
2✔
NEW
19
        if (!this.sessions[sessionId]) {
×
NEW
20
            throw new Error(`Session ${sessionId} not found`);
×
NEW
21
        }
×
NEW
22
        if (closeTransport) {
×
NEW
23
            const transport = this.sessions[sessionId];
×
NEW
24
            if (!transport) {
×
NEW
25
                throw new Error(`Session ${sessionId} not found`);
×
NEW
26
            }
×
NEW
27
            try {
×
NEW
28
                await transport.close();
×
NEW
29
            } catch (error) {
×
NEW
30
                logger.error(
×
NEW
31
                    LogId.streamableHttpTransportSessionCloseFailure,
×
NEW
32
                    "streamableHttpTransport",
×
NEW
33
                    `Error closing transport ${sessionId}: ${error instanceof Error ? error.message : String(error)}`
×
NEW
34
                );
×
NEW
35
            }
×
NEW
36
        }
×
NEW
37
        delete this.sessions[sessionId];
×
NEW
38
    }
×
39

40
    async closeAllSessions(): Promise<void> {
2✔
41
        await Promise.all(
2✔
42
            Object.values(this.sessions)
2✔
43
                .filter((transport) => transport !== undefined)
2✔
44
                .map((transport) => transport.close())
2✔
45
        );
2✔
46
        this.sessions = {};
2✔
47
    }
2✔
48
}
2✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc