Skip to content

Commit 0f2ed1b

Browse files
chore: no more generics
1 parent 248052f commit 0f2ed1b

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

src/mcp/mcpController.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
import * as vscode from 'vscode';
22
import { defaultUserConfig, StreamableHttpRunner } from 'mongodb-mcp-server';
33
import type ConnectionController from '../connectionController';
4-
import {
5-
VSCodeMCPConnectionManager,
6-
type VSCodeMCPConnectParams,
7-
} from './vsCodeMCPConnectionManager';
4+
import { VSCodeMCPConnectionManager } from './vsCodeMCPConnectionManager';
85
import type { CreateConnectionManagerFn, UserConfig } from 'mongodb-mcp-server';
96

107
type mcpServerStartupConfig = 'ask' | 'enabled' | 'disabled';
118

129
export class MCPController {
1310
private didChangeEmitter = new vscode.EventEmitter<void>();
1411
private server?: {
15-
runner: StreamableHttpRunner<VSCodeMCPConnectParams>;
12+
runner: StreamableHttpRunner;
1613
headers: Record<string, string>;
1714
};
1815
private mcpConnectionManager?: VSCodeMCPConnectionManager;
@@ -57,9 +54,9 @@ export class MCPController {
5754
disabledTools: ['connect'],
5855
};
5956

60-
const createConnectionManager: CreateConnectionManagerFn<
61-
VSCodeMCPConnectParams
62-
> = async ({ logger }) => {
57+
const createConnectionManager: CreateConnectionManagerFn = async ({
58+
logger,
59+
}) => {
6360
const connectionManager = (this.mcpConnectionManager =
6461
new VSCodeMCPConnectionManager(logger));
6562
await this.switchConnectionManagerToCurrentConnection();
@@ -146,7 +143,7 @@ ${jsonConfig}`,
146143

147144
return new vscode.McpHttpServerDefinition(
148145
'MongoDB MCP Server',
149-
vscode.Uri.parse(`${this.server.runner.address}/mcp`),
146+
vscode.Uri.parse(`${this.server.runner.serverAddress}/mcp`),
150147
this.server.headers,
151148
);
152149
}

src/mcp/vsCodeMCPConnectionManager.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {
22
ConnectionManager,
33
type AnyConnectionState,
44
type CompositeLogger,
5-
type MCPConnectParams,
65
type ConnectionStateDisconnected,
76
} from 'mongodb-mcp-server';
87
import {
@@ -13,20 +12,32 @@ import type { ServiceProvider } from '@mongosh/service-provider-core';
1312
import { isAtlasStream } from 'mongodb-build-info';
1413
import { MCPLogIds } from './mcpLogIds';
1514

16-
export interface VSCodeMCPConnectParams extends MCPConnectParams {
15+
export interface VSCodeMCPConnectParams {
1716
connectionId: string;
17+
connectionString: string;
1818
connectOptions: DevtoolsConnectOptions;
1919
}
2020

21-
export class VSCodeMCPConnectionManager extends ConnectionManager<VSCodeMCPConnectParams> {
21+
export class VSCodeMCPConnectionManager extends ConnectionManager {
2222
private activeConnectionId: string | null = null;
2323
private activeConnectionProvider: ServiceProvider | null = null;
2424

2525
constructor(private readonly logger: CompositeLogger) {
2626
super();
2727
}
2828

29-
async connect(
29+
connect(): Promise<AnyConnectionState> {
30+
return Promise.reject(
31+
new Error(
32+
[
33+
'MongoDB MCP Server in MongoDB VSCode extension makes use of the connection that the MongoDB VSCode extension is connected to.',
34+
"To connect, choose a connection from MongoDB VSCode extensions's sidepanel - https://www.mongodb.com/docs/mongodb-vscode/connect/#connect-to-your-mongodb-deployment",
35+
].join(' '),
36+
),
37+
);
38+
}
39+
40+
async connectToVSCodeConnection(
3041
connectParams: VSCodeMCPConnectParams,
3142
): Promise<AnyConnectionState> {
3243
try {
@@ -35,6 +46,7 @@ export class VSCodeMCPConnectionManager extends ConnectionManager<VSCodeMCPConne
3546
connectParams.connectionString,
3647
connectParams.connectOptions,
3748
));
49+
await serviceProvider.runCommand('admin', { hello: 1 });
3850
this.activeConnectionId = connectParams.connectionId;
3951
return this.changeState('connection-succeeded', {
4052
tag: 'connected',
@@ -106,7 +118,7 @@ export class VSCodeMCPConnectionManager extends ConnectionManager<VSCodeMCPConne
106118
return;
107119
}
108120

109-
await this.connect({
121+
await this.connectToVSCodeConnection({
110122
connectionString,
111123
connectOptions,
112124
connectionId,

0 commit comments

Comments
 (0)