@mongodb-js/mcp-setup 3.0.0-prerelease.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aiTool.d.ts +46 -0
- package/dist/aiTool.d.ts.map +1 -0
- package/dist/aiTool.js +382 -0
- package/dist/aiTool.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/installSkills.d.ts +42 -0
- package/dist/installSkills.d.ts.map +1 -0
- package/dist/installSkills.js +112 -0
- package/dist/installSkills.js.map +1 -0
- package/dist/setupAiToolsUtils.d.ts +4 -0
- package/dist/setupAiToolsUtils.d.ts.map +1 -0
- package/dist/setupAiToolsUtils.js +20 -0
- package/dist/setupAiToolsUtils.js.map +1 -0
- package/dist/setupCliHandler.d.ts +8 -0
- package/dist/setupCliHandler.d.ts.map +1 -0
- package/dist/setupCliHandler.js +15 -0
- package/dist/setupCliHandler.js.map +1 -0
- package/dist/setupMcpServer.d.ts +12 -0
- package/dist/setupMcpServer.d.ts.map +1 -0
- package/dist/setupMcpServer.js +385 -0
- package/dist/setupMcpServer.js.map +1 -0
- package/dist/setupTelemetry.d.ts +106 -0
- package/dist/setupTelemetry.d.ts.map +1 -0
- package/dist/setupTelemetry.js +205 -0
- package/dist/setupTelemetry.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { randomUUID } from "crypto";
|
|
2
|
+
import { ApiClient, userAgentFromServerMetadata } from "@mongodb-js/mcp-atlas-api-client";
|
|
3
|
+
import { getDefaultHttpClient } from "@mongodb-js/mcp-fetch";
|
|
4
|
+
import { NoopLogger } from "@mongodb-js/mcp-core";
|
|
5
|
+
import { DeviceId } from "@mongodb-js/mcp-tools-mongodb";
|
|
6
|
+
import { AtlasTelemetry } from "@mongodb-js/mcp-atlas-telemetry";
|
|
7
|
+
export const toBoolSet = (value) => {
|
|
8
|
+
if (value === undefined) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return value ? "true" : "false";
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Per-run helper that owns the setup telemetry session: assigns the
|
|
15
|
+
* `setup_session_id`, tracks wall-clock durations, and
|
|
16
|
+
* accumulates context so every event carries the full set of known flags.
|
|
17
|
+
*
|
|
18
|
+
* One instance is constructed per `runSetup` invocation. Callers emit typed
|
|
19
|
+
* events at each logical step and call {@link flush} before the process
|
|
20
|
+
* exits so buffered events are best-effort sent.
|
|
21
|
+
*/
|
|
22
|
+
export class SetupTelemetry {
|
|
23
|
+
/**
|
|
24
|
+
* Builds a fully-wired {@link SetupTelemetry} for the setup CLI: a silent
|
|
25
|
+
* logger (so telemetry's internal logging doesn't leak into the
|
|
26
|
+
* interactive wizard), a fresh {@link DeviceId}, an unauthenticated
|
|
27
|
+
* {@link ApiClient}, and an {@link AtlasTelemetry} instance.
|
|
28
|
+
*/
|
|
29
|
+
static create({ config, keychain, serverMetadata, }) {
|
|
30
|
+
const logger = new NoopLogger();
|
|
31
|
+
const deviceId = DeviceId.create(logger);
|
|
32
|
+
// Shared, memoized proxy-aware fetch (see @mongodb-js/mcp-fetch).
|
|
33
|
+
const httpClient = getDefaultHttpClient();
|
|
34
|
+
const apiClient = new ApiClient({
|
|
35
|
+
baseUrl: config.apiBaseUrl,
|
|
36
|
+
userAgent: userAgentFromServerMetadata(serverMetadata),
|
|
37
|
+
httpClient,
|
|
38
|
+
}, logger);
|
|
39
|
+
const telemetry = AtlasTelemetry.create({
|
|
40
|
+
logger,
|
|
41
|
+
deviceId,
|
|
42
|
+
apiClient,
|
|
43
|
+
keychain,
|
|
44
|
+
enabled: config.telemetry === "enabled",
|
|
45
|
+
serverMetadata,
|
|
46
|
+
});
|
|
47
|
+
return new SetupTelemetry({ telemetry, deviceId });
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Direct construction is primarily for tests that want to inject a mock
|
|
51
|
+
* telemetry pipeline. Production code should use {@link SetupTelemetry.create}.
|
|
52
|
+
*/
|
|
53
|
+
constructor({ telemetry, deviceId }) {
|
|
54
|
+
this.setupSessionId = randomUUID();
|
|
55
|
+
this.startedAt = Date.now();
|
|
56
|
+
this.stepStartedAt = this.startedAt;
|
|
57
|
+
this.context = {};
|
|
58
|
+
this.telemetry = telemetry;
|
|
59
|
+
this.deviceId = deviceId;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Merges new context values into the accumulated context. Subsequent
|
|
63
|
+
* events will automatically carry the updated values.
|
|
64
|
+
*/
|
|
65
|
+
updateContext(patch) {
|
|
66
|
+
this.context = { ...this.context, ...patch };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Emits a single setup event. `duration_ms` is computed from the time
|
|
70
|
+
* elapsed since the previous step (or setup start), and `result`
|
|
71
|
+
* defaults to "success" — callers pass "failure" only when the step's
|
|
72
|
+
* own code path failed (e.g. writing the editor config threw).
|
|
73
|
+
*/
|
|
74
|
+
emit(stage, extra = {}, result = "success") {
|
|
75
|
+
const now = Date.now();
|
|
76
|
+
const event = {
|
|
77
|
+
timestamp: new Date(now).toISOString(),
|
|
78
|
+
source: "mdbmcp",
|
|
79
|
+
properties: {
|
|
80
|
+
component: "setup",
|
|
81
|
+
category: "setup",
|
|
82
|
+
duration_ms: now - this.stepStartedAt,
|
|
83
|
+
result,
|
|
84
|
+
stage,
|
|
85
|
+
setup_session_id: this.setupSessionId,
|
|
86
|
+
...this.context,
|
|
87
|
+
...extra,
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
this.telemetry.emitEvents([event]);
|
|
91
|
+
this.stepStartedAt = now;
|
|
92
|
+
this.lastStep = stage;
|
|
93
|
+
}
|
|
94
|
+
emitStarted() {
|
|
95
|
+
this.emit("started");
|
|
96
|
+
}
|
|
97
|
+
emitPrerequisitesChecked(props) {
|
|
98
|
+
this.updateContext({
|
|
99
|
+
node_version_ok: toBoolSet(props.nodeVersionOk),
|
|
100
|
+
has_docker: toBoolSet(props.hasDocker),
|
|
101
|
+
});
|
|
102
|
+
this.emit("prerequisites_checked");
|
|
103
|
+
}
|
|
104
|
+
emitAiToolSelected(aiTool) {
|
|
105
|
+
this.updateContext({ ai_tool: aiTool });
|
|
106
|
+
this.emit("ai_tool_selected");
|
|
107
|
+
}
|
|
108
|
+
emitReadOnlySelected(isReadOnly) {
|
|
109
|
+
this.updateContext({ read_only_mode: toBoolSet(isReadOnly) });
|
|
110
|
+
this.emit("read_only_selected");
|
|
111
|
+
}
|
|
112
|
+
emitConnectionStringEntered(props) {
|
|
113
|
+
this.updateContext({
|
|
114
|
+
connection_string_provided: toBoolSet(props.provided),
|
|
115
|
+
connection_string_tested: toBoolSet(props.tested),
|
|
116
|
+
connection_test_attempts: props.attempts,
|
|
117
|
+
});
|
|
118
|
+
// If the user tested their connection string, surface the final
|
|
119
|
+
// test result on this step event (success/failure). If they skipped
|
|
120
|
+
// the test, the step itself still "succeeded" — the user chose not
|
|
121
|
+
// to validate — so we default to success.
|
|
122
|
+
this.emit("connection_string_entered", {}, props.testResult ?? "success");
|
|
123
|
+
}
|
|
124
|
+
emitServiceAccountIdEntered(provided) {
|
|
125
|
+
this.updateContext({ service_account_id_provided: toBoolSet(provided) });
|
|
126
|
+
this.emit("service_account_id_entered");
|
|
127
|
+
}
|
|
128
|
+
emitServiceAccountSecretEntered(provided) {
|
|
129
|
+
this.updateContext({ service_account_secret_provided: toBoolSet(provided) });
|
|
130
|
+
this.emit("service_account_secret_entered");
|
|
131
|
+
}
|
|
132
|
+
emitCredentialsValidated() {
|
|
133
|
+
this.emit("credentials_validated");
|
|
134
|
+
}
|
|
135
|
+
emitEditorConfigured(props) {
|
|
136
|
+
this.updateContext({
|
|
137
|
+
used_default_config_path: toBoolSet(props.usedDefaultConfigPath),
|
|
138
|
+
});
|
|
139
|
+
this.emit("editor_configured", props.error ? { error_type: errorName(props.error) } : {}, props.result);
|
|
140
|
+
}
|
|
141
|
+
emitSkillsInstallPrompted(outcome) {
|
|
142
|
+
const patch = { skills_install_status: outcome.status };
|
|
143
|
+
if (outcome.status === "skipped") {
|
|
144
|
+
patch.skills_skip_reason = outcome.reason;
|
|
145
|
+
}
|
|
146
|
+
else if (outcome.status === "failed") {
|
|
147
|
+
patch.skills_install_exit_code = outcome.exitCode;
|
|
148
|
+
}
|
|
149
|
+
this.updateContext(patch);
|
|
150
|
+
this.emit("skills_install_prompted");
|
|
151
|
+
}
|
|
152
|
+
emitOpenConfigPrompted(props) {
|
|
153
|
+
this.updateContext({ opened_config_file: toBoolSet(props.opened) });
|
|
154
|
+
this.emit("open_config_prompted", props.error ? { error_type: errorName(props.error) } : {}, props.result);
|
|
155
|
+
}
|
|
156
|
+
emitCompleted() {
|
|
157
|
+
this.emit("completed", { total_duration_ms: Date.now() - this.startedAt });
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Emits a cancellation event (e.g. the user hit Ctrl+C). The `result` is
|
|
161
|
+
* "success" because the cancellation itself was handled gracefully — the
|
|
162
|
+
* distinct `stage: "cancelled"` is what analytics use to separate
|
|
163
|
+
* abandoned runs from completed ones.
|
|
164
|
+
*/
|
|
165
|
+
emitCancelled() {
|
|
166
|
+
this.emit("cancelled", {
|
|
167
|
+
last_stage: this.lastStep,
|
|
168
|
+
total_duration_ms: Date.now() - this.startedAt,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
emitFailed(error) {
|
|
172
|
+
this.emit("failed", {
|
|
173
|
+
last_stage: this.lastStep,
|
|
174
|
+
error_type: errorName(error),
|
|
175
|
+
total_duration_ms: Date.now() - this.startedAt,
|
|
176
|
+
}, "failure");
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Best-effort flush of any buffered events before the process exits. Also
|
|
180
|
+
* closes the owned {@link DeviceId}.
|
|
181
|
+
*/
|
|
182
|
+
async flush() {
|
|
183
|
+
try {
|
|
184
|
+
await this.telemetry.close();
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
// Ignore errors from telemetry.close()
|
|
188
|
+
}
|
|
189
|
+
finally {
|
|
190
|
+
try {
|
|
191
|
+
this.deviceId.close();
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// Ignore errors - it's best-effort
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const errorName = (error) => {
|
|
200
|
+
if (error && typeof error === "object" && "name" in error && typeof error.name === "string") {
|
|
201
|
+
return error.name;
|
|
202
|
+
}
|
|
203
|
+
return "unknown";
|
|
204
|
+
};
|
|
205
|
+
//# sourceMappingURL=setupTelemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupTelemetry.js","sourceRoot":"","sources":["../src/setupTelemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config interface used by the setup wizard.
|
|
3
|
+
*/
|
|
4
|
+
export interface SetupConfig {
|
|
5
|
+
apiBaseUrl: string;
|
|
6
|
+
telemetry: "enabled" | "disabled";
|
|
7
|
+
connectionString?: string;
|
|
8
|
+
transport: "stdio" | "http";
|
|
9
|
+
httpHost: string;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mongodb-js/mcp-setup",
|
|
3
|
+
"version": "3.0.0-prerelease.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Setup wizard and configuration for MongoDB MCP server",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"main": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc --build tsconfig.build.json",
|
|
19
|
+
"test": "vitest --run",
|
|
20
|
+
"check": "tsc --build tsconfig.build.json --noEmit"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@inquirer/prompts": "^8.0.2",
|
|
24
|
+
"@inquirer/select": "^5.1.3",
|
|
25
|
+
"@mongodb-js/mcp-atlas-api-client": "workspace:*",
|
|
26
|
+
"@mongodb-js/mcp-fetch": "workspace:*",
|
|
27
|
+
"@mongodb-js/mcp-atlas-telemetry": "workspace:*",
|
|
28
|
+
"@mongodb-js/mcp-core": "workspace:*",
|
|
29
|
+
"@mongodb-js/mcp-tools-atlas-local": "workspace:*",
|
|
30
|
+
"@mongodb-js/mcp-tools-mongodb": "workspace:*",
|
|
31
|
+
"@mongosh/service-provider-node-driver": "^5.0.2",
|
|
32
|
+
"chalk": "^5.6.2",
|
|
33
|
+
"jsonc-parser": "^3.3.1",
|
|
34
|
+
"mongodb-redact": "^1.4.6",
|
|
35
|
+
"semver": "^7.7.4"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@mongodb-js/mcp-types": "workspace:*",
|
|
39
|
+
"@mongodb-js/mcp-cli": "workspace:*",
|
|
40
|
+
"@types/node": "^25.6.0",
|
|
41
|
+
"@types/semver": "^7.7.0",
|
|
42
|
+
"typescript": "^5.9.2",
|
|
43
|
+
"vitest": "^4.1.5"
|
|
44
|
+
},
|
|
45
|
+
"publishConfig": {
|
|
46
|
+
"access": "public"
|
|
47
|
+
}
|
|
48
|
+
}
|