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

mongodb-js / mongodb-mcp-server / 17155288437

22 Aug 2025 12:29PM UTC coverage: 82.014% (-0.03%) from 82.04%
17155288437

Pull #468

github

web-flow
Merge 3bb127c20 into ca68195c4
Pull Request #468: chore: update readme with the new tool and resources

855 of 1075 branches covered (79.53%)

Branch coverage included in aggregate %.

2 of 2 new or added lines in 2 files covered. (100.0%)

97 existing lines in 8 files now uncovered.

4357 of 5280 relevant lines covered (82.52%)

70.4 hits per line

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

83.82
/src/transports/base.ts
1
import { driverOptions, UserConfig } from "../common/config.js";
2✔
2
import { packageInfo } from "../common/packageInfo.js";
2✔
3
import { Server } from "../server.js";
2✔
4
import { Session } from "../common/session.js";
2✔
5
import { Telemetry } from "../telemetry/telemetry.js";
2✔
6
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2✔
7
import { CompositeLogger, ConsoleLogger, DiskLogger, LoggerBase, McpLogger } from "../common/logger.js";
2✔
8
import { ExportsManager } from "../common/exportsManager.js";
2✔
9
import { ConnectionManager } from "../common/connectionManager.js";
2✔
10
import { DeviceId } from "../helpers/deviceId.js";
2✔
11

12
export abstract class TransportRunnerBase {
2✔
13
    public logger: LoggerBase;
14
    public deviceId: DeviceId;
15

16
    protected constructor(protected readonly userConfig: UserConfig) {
2✔
17
        const loggers: LoggerBase[] = [];
2✔
18
        if (this.userConfig.loggers.includes("stderr")) {
2✔
19
            loggers.push(new ConsoleLogger());
2✔
20
        }
2✔
21

22
        if (this.userConfig.loggers.includes("disk")) {
2!
UNCOV
23
            loggers.push(
×
24
                new DiskLogger(this.userConfig.logPath, (err) => {
×
25
                    // If the disk logger fails to initialize, we log the error to stderr and exit
26
                    console.error("Error initializing disk logger:", err);
×
27
                    process.exit(1);
×
28
                })
×
UNCOV
29
            );
×
UNCOV
30
        }
×
31

32
        this.logger = new CompositeLogger(...loggers);
2✔
33
        this.deviceId = DeviceId.create(this.logger);
2✔
34
    }
2✔
35

36
    protected setupServer(userConfig: UserConfig): Server {
2✔
37
        const mcpServer = new McpServer({
2✔
38
            name: packageInfo.mcpServerName,
2✔
39
            version: packageInfo.version,
2✔
40
        });
2✔
41

42
        const loggers = [this.logger];
2✔
43
        if (userConfig.loggers.includes("mcp")) {
2!
UNCOV
44
            loggers.push(new McpLogger(mcpServer));
×
UNCOV
45
        }
×
46

47
        const logger = new CompositeLogger(...loggers);
2✔
48
        const exportsManager = ExportsManager.init(userConfig, logger);
2✔
49
        const connectionManager = new ConnectionManager(userConfig, driverOptions, logger, this.deviceId);
2✔
50

51
        const session = new Session({
2✔
52
            apiBaseUrl: userConfig.apiBaseUrl,
2✔
53
            apiClientId: userConfig.apiClientId,
2✔
54
            apiClientSecret: userConfig.apiClientSecret,
2✔
55
            logger,
2✔
56
            exportsManager,
2✔
57
            connectionManager,
2✔
58
        });
2✔
59

60
        const telemetry = Telemetry.create(session, userConfig, this.deviceId);
2✔
61

62
        return new Server({
2✔
63
            mcpServer,
2✔
64
            session,
2✔
65
            telemetry,
2✔
66
            userConfig,
2✔
67
        });
2✔
68
    }
2✔
69

70
    abstract start(): Promise<void>;
71

72
    abstract closeTransport(): Promise<void>;
73

74
    async close(): Promise<void> {
2✔
75
        try {
2✔
76
            await this.closeTransport();
2✔
77
        } finally {
2✔
78
            this.deviceId.close();
2✔
79
        }
2✔
80
    }
2✔
81
}
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

© 2025 Coveralls, Inc