@tostudy-ai/mcp-setup 1.0.2 → 1.0.3
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/README.md +1 -1
- package/dist/__tests__/ide-handlers.test.js +15 -11
- package/dist/__tests__/ide-handlers.test.js.map +1 -1
- package/dist/__tests__/install-command.test.js +106 -95
- package/dist/__tests__/install-command.test.js.map +1 -1
- package/dist/config.d.ts +15 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +79 -29
- package/dist/config.js.map +1 -1
- package/dist/diagnose.d.ts +1 -1
- package/dist/diagnose.d.ts.map +1 -1
- package/dist/diagnose.js +154 -164
- package/dist/diagnose.js.map +1 -1
- package/dist/ide-handlers/antigravity.js +1 -1
- package/dist/ide-handlers/antigravity.js.map +1 -1
- package/dist/ide-handlers/base.d.ts +8 -8
- package/dist/ide-handlers/base.d.ts.map +1 -1
- package/dist/ide-handlers/base.js +29 -4
- package/dist/ide-handlers/base.js.map +1 -1
- package/dist/ide-handlers/claude-code.js +1 -1
- package/dist/ide-handlers/claude-code.js.map +1 -1
- package/dist/ide-handlers/codex.js +1 -1
- package/dist/ide-handlers/codex.js.map +1 -1
- package/dist/ide-handlers/cursor.js +1 -1
- package/dist/ide-handlers/cursor.js.map +1 -1
- package/dist/ide-handlers/desktop.d.ts +3 -3
- package/dist/ide-handlers/desktop.d.ts.map +1 -1
- package/dist/ide-handlers/desktop.js +32 -8
- package/dist/ide-handlers/desktop.js.map +1 -1
- package/dist/ide-handlers/manual.js +1 -1
- package/dist/ide-handlers/manual.js.map +1 -1
- package/dist/ide-handlers/opencode.js +1 -1
- package/dist/ide-handlers/opencode.js.map +1 -1
- package/dist/ide-handlers/vscode.js +1 -1
- package/dist/ide-handlers/vscode.js.map +1 -1
- package/dist/ide-handlers/windsurf.js +1 -1
- package/dist/ide-handlers/windsurf.js.map +1 -1
- package/dist/repair.d.ts +1 -1
- package/dist/repair.d.ts.map +1 -1
- package/dist/repair.js +213 -168
- package/dist/repair.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -59,19 +59,23 @@ function cleanupTempDir(dir) {
|
|
|
59
59
|
async function testBaseUtilities() {
|
|
60
60
|
log('\n── Base Utilities ──');
|
|
61
61
|
await runTest('buildMcpRemoteArgs returns correct args', () => {
|
|
62
|
-
const args = buildMcpRemoteArgs(TEST_API_KEY, TEST_MCP_URL);
|
|
62
|
+
const args = buildMcpRemoteArgs(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
63
63
|
assert(Array.isArray(args), 'Should return an array');
|
|
64
64
|
assert(args[0] === '-y', 'First arg should be -y');
|
|
65
65
|
assert(args[1] === 'mcp-remote', 'Second arg should be mcp-remote');
|
|
66
66
|
assert(args[2] === `${TEST_MCP_URL}/mcp`, 'Third arg should be MCP URL + /mcp');
|
|
67
67
|
assert(args[3] === '--header', 'Fourth arg should be --header');
|
|
68
68
|
assert(args[4] === `Authorization:Bearer ${TEST_API_KEY}`, 'Fifth arg should be auth header');
|
|
69
|
+
assert(args[5] === '--header', 'Sixth arg should be --header');
|
|
70
|
+
assert(args[6] === 'X-Tostudy-Client-IDE:manual', 'Seventh arg should be IDE header');
|
|
71
|
+
assert(args[7] === '--header', 'Eighth arg should be --header');
|
|
72
|
+
assert(args[8].startsWith('X-Tostudy-Client-OS:'), 'Ninth arg should be OS header');
|
|
69
73
|
});
|
|
70
74
|
await runTest('buildTostudyServerEntry returns command + args', () => {
|
|
71
|
-
const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
75
|
+
const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
72
76
|
assert(entry.command === 'npx', 'Command should be npx');
|
|
73
77
|
assert(Array.isArray(entry.args), 'Args should be an array');
|
|
74
|
-
assert(entry.args.length ===
|
|
78
|
+
assert(entry.args.length === 9, 'Should have 9 args');
|
|
75
79
|
assert(entry.args[1] === 'mcp-remote', 'Should include mcp-remote');
|
|
76
80
|
});
|
|
77
81
|
}
|
|
@@ -179,7 +183,7 @@ async function testCursorConfigMerge() {
|
|
|
179
183
|
try {
|
|
180
184
|
await runTest('Cursor: writes new config when none exists', () => {
|
|
181
185
|
// Simulate what CursorHandler.writeConfig does
|
|
182
|
-
const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
186
|
+
const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
183
187
|
const config = { mcpServers: { tostudy: entry } };
|
|
184
188
|
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
185
189
|
assert(existsSync(configPath), 'Config file should exist');
|
|
@@ -199,7 +203,7 @@ async function testCursorConfigMerge() {
|
|
|
199
203
|
// Merge tostudy into existing
|
|
200
204
|
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
201
205
|
const mcpServers = config.mcpServers ?? {};
|
|
202
|
-
mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
206
|
+
mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
203
207
|
config.mcpServers = mcpServers;
|
|
204
208
|
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
205
209
|
const merged = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
@@ -219,7 +223,7 @@ async function testCursorConfigMerge() {
|
|
|
219
223
|
// Update tostudy
|
|
220
224
|
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
221
225
|
const mcpServers = config.mcpServers;
|
|
222
|
-
mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
226
|
+
mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
223
227
|
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
224
228
|
const updated = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
225
229
|
assert(updated.mcpServers.tostudy.command === 'npx', 'tostudy should be updated to npx');
|
|
@@ -237,7 +241,7 @@ async function testCursorConfigMerge() {
|
|
|
237
241
|
config = {};
|
|
238
242
|
}
|
|
239
243
|
const mcpServers = config.mcpServers ?? {};
|
|
240
|
-
mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
244
|
+
mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
241
245
|
config.mcpServers = mcpServers;
|
|
242
246
|
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
243
247
|
const fixed = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
@@ -255,7 +259,7 @@ async function testVSCodeConfigMerge() {
|
|
|
255
259
|
const configPath = join(tempDir, 'mcp.json');
|
|
256
260
|
try {
|
|
257
261
|
await runTest('VSCode: uses "servers" key (not "mcpServers")', () => {
|
|
258
|
-
const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
262
|
+
const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
259
263
|
const config = { servers: { tostudy: entry } };
|
|
260
264
|
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
261
265
|
const written = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
@@ -268,7 +272,7 @@ async function testVSCodeConfigMerge() {
|
|
|
268
272
|
writeFileSync(configPath, JSON.stringify(existing, null, 2), 'utf-8');
|
|
269
273
|
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
270
274
|
const servers = config.servers ?? {};
|
|
271
|
-
servers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
275
|
+
servers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
272
276
|
config.servers = servers;
|
|
273
277
|
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
274
278
|
const merged = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
@@ -287,7 +291,7 @@ async function testOpenCodeConfigMerge() {
|
|
|
287
291
|
const configPath = join(tempDir, 'opencode.json');
|
|
288
292
|
try {
|
|
289
293
|
await runTest('OpenCode: uses "mcp" key', () => {
|
|
290
|
-
const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
294
|
+
const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
291
295
|
const config = { mcp: { tostudy: entry } };
|
|
292
296
|
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
293
297
|
const written = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
@@ -302,7 +306,7 @@ async function testOpenCodeConfigMerge() {
|
|
|
302
306
|
writeFileSync(configPath, JSON.stringify(existing, null, 2), 'utf-8');
|
|
303
307
|
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
304
308
|
const mcp = config.mcp ?? {};
|
|
305
|
-
mcp['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
|
|
309
|
+
mcp['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
|
|
306
310
|
config.mcp = mcp;
|
|
307
311
|
writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
308
312
|
const merged = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ide-handlers.test.js","sourceRoot":"","sources":["../../src/__tests__/ide-handlers.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ide-handlers.test.js","sourceRoot":"","sources":["../../src/__tests__/ide-handlers.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,19 +6,19 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Run with: npx tsx src/__tests__/install-command.test.ts
|
|
8
8
|
*/
|
|
9
|
-
import { getIDEHandler
|
|
10
|
-
import { buildTostudyServerEntry, buildMcpRemoteArgs } from
|
|
9
|
+
import { getIDEHandler } from "../ide-handlers/index.js";
|
|
10
|
+
import { buildTostudyServerEntry, buildMcpRemoteArgs } from "../ide-handlers/base.js";
|
|
11
11
|
// We can't import resolveMcpServerUrl directly since it's a module-scoped function in index.ts.
|
|
12
12
|
// Replicate the logic here and test it.
|
|
13
13
|
function resolveMcpServerUrl(platformUrl) {
|
|
14
|
-
if (platformUrl.includes(
|
|
15
|
-
return platformUrl.replace(
|
|
14
|
+
if (platformUrl.includes(":3700")) {
|
|
15
|
+
return platformUrl.replace(":3700", ":3701");
|
|
16
16
|
}
|
|
17
|
-
if (platformUrl.includes(
|
|
18
|
-
return
|
|
17
|
+
if (platformUrl.includes("localhost") && !platformUrl.includes(":")) {
|
|
18
|
+
return "http://localhost:3701";
|
|
19
19
|
}
|
|
20
|
-
if (platformUrl.includes(
|
|
21
|
-
return process.env.MCP_SERVER_URL ||
|
|
20
|
+
if (platformUrl.includes("tostudy")) {
|
|
21
|
+
return process.env.MCP_SERVER_URL || "https://mcp.tostudy.ai";
|
|
22
22
|
}
|
|
23
23
|
return platformUrl;
|
|
24
24
|
}
|
|
@@ -34,7 +34,7 @@ function assert(condition, message) {
|
|
|
34
34
|
async function runTest(name, testFn) {
|
|
35
35
|
try {
|
|
36
36
|
await testFn();
|
|
37
|
-
results.push({ name, passed: true, message:
|
|
37
|
+
results.push({ name, passed: true, message: "OK" });
|
|
38
38
|
log(` \x1b[32m✓\x1b[0m ${name}`);
|
|
39
39
|
}
|
|
40
40
|
catch (error) {
|
|
@@ -45,36 +45,36 @@ async function runTest(name, testFn) {
|
|
|
45
45
|
}
|
|
46
46
|
// ───────────── resolveMcpServerUrl ─────────────
|
|
47
47
|
async function testUrlResolution() {
|
|
48
|
-
log(
|
|
49
|
-
await runTest(
|
|
50
|
-
const result = resolveMcpServerUrl(
|
|
51
|
-
assert(result ===
|
|
48
|
+
log("\n── resolveMcpServerUrl ──");
|
|
49
|
+
await runTest("Resolves localhost:3700 to localhost:3701", () => {
|
|
50
|
+
const result = resolveMcpServerUrl("http://localhost:3700");
|
|
51
|
+
assert(result === "http://localhost:3701", `Expected http://localhost:3701, got ${result}`);
|
|
52
52
|
});
|
|
53
|
-
await runTest(
|
|
54
|
-
const result = resolveMcpServerUrl(
|
|
55
|
-
assert(result ===
|
|
53
|
+
await runTest("Resolves https://localhost:3700 to https://localhost:3701", () => {
|
|
54
|
+
const result = resolveMcpServerUrl("https://localhost:3700");
|
|
55
|
+
assert(result === "https://localhost:3701", `Expected https://localhost:3701, got ${result}`);
|
|
56
56
|
});
|
|
57
|
-
await runTest(
|
|
57
|
+
await runTest("Bare localhost with protocol is returned as-is (has colon in URL)", () => {
|
|
58
58
|
// "http://localhost" contains a colon (from http:), so the `!platformUrl.includes(':')` check fails.
|
|
59
59
|
// This is expected — the function targets the edge case of literally "localhost" with no protocol.
|
|
60
|
-
const result = resolveMcpServerUrl(
|
|
61
|
-
assert(result ===
|
|
60
|
+
const result = resolveMcpServerUrl("http://localhost");
|
|
61
|
+
assert(result === "http://localhost", `Expected http://localhost unchanged, got ${result}`);
|
|
62
62
|
});
|
|
63
|
-
await runTest(
|
|
63
|
+
await runTest("Resolves tostudy.com to mcp.tostudy.ai", () => {
|
|
64
64
|
// Clear env var to test default
|
|
65
65
|
const saved = process.env.MCP_SERVER_URL;
|
|
66
66
|
delete process.env.MCP_SERVER_URL;
|
|
67
|
-
const result = resolveMcpServerUrl(
|
|
68
|
-
assert(result ===
|
|
67
|
+
const result = resolveMcpServerUrl("https://tostudy.com");
|
|
68
|
+
assert(result === "https://mcp.tostudy.ai", `Expected https://mcp.tostudy.ai, got ${result}`);
|
|
69
69
|
// Restore
|
|
70
70
|
if (saved !== undefined)
|
|
71
71
|
process.env.MCP_SERVER_URL = saved;
|
|
72
72
|
});
|
|
73
|
-
await runTest(
|
|
73
|
+
await runTest("Respects MCP_SERVER_URL env var for tostudy URLs", () => {
|
|
74
74
|
const saved = process.env.MCP_SERVER_URL;
|
|
75
|
-
process.env.MCP_SERVER_URL =
|
|
76
|
-
const result = resolveMcpServerUrl(
|
|
77
|
-
assert(result ===
|
|
75
|
+
process.env.MCP_SERVER_URL = "https://custom-mcp.example.com";
|
|
76
|
+
const result = resolveMcpServerUrl("https://tostudy.com");
|
|
77
|
+
assert(result === "https://custom-mcp.example.com", `Expected custom URL, got ${result}`);
|
|
78
78
|
// Restore
|
|
79
79
|
if (saved !== undefined) {
|
|
80
80
|
process.env.MCP_SERVER_URL = saved;
|
|
@@ -83,139 +83,150 @@ async function testUrlResolution() {
|
|
|
83
83
|
delete process.env.MCP_SERVER_URL;
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
|
-
await runTest(
|
|
87
|
-
const result = resolveMcpServerUrl(
|
|
88
|
-
assert(result ===
|
|
86
|
+
await runTest("Returns unknown URLs unchanged", () => {
|
|
87
|
+
const result = resolveMcpServerUrl("https://example.com/api");
|
|
88
|
+
assert(result === "https://example.com/api", `Expected unchanged URL, got ${result}`);
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
// ───────────── Install Command Logic ─────────────
|
|
92
92
|
async function testInstallCommandLogic() {
|
|
93
|
-
log(
|
|
94
|
-
const SUPPORTED_IDES = [
|
|
95
|
-
|
|
93
|
+
log("\n── Install Command Logic ──");
|
|
94
|
+
const SUPPORTED_IDES = [
|
|
95
|
+
"claude-code",
|
|
96
|
+
"cursor",
|
|
97
|
+
"vscode",
|
|
98
|
+
"desktop",
|
|
99
|
+
"windsurf",
|
|
100
|
+
"opencode",
|
|
101
|
+
"codex",
|
|
102
|
+
"antigravity",
|
|
103
|
+
"manual",
|
|
104
|
+
];
|
|
105
|
+
await runTest("All supported IDEs can be resolved to a handler", () => {
|
|
96
106
|
for (const ide of SUPPORTED_IDES) {
|
|
97
107
|
const handler = getIDEHandler(ide);
|
|
98
108
|
assert(handler !== undefined, `Handler for ${ide} should be resolved`);
|
|
99
109
|
assert(handler.id === ide, `Handler id should match ${ide}`);
|
|
100
110
|
}
|
|
101
111
|
});
|
|
102
|
-
await runTest(
|
|
112
|
+
await runTest("Unsupported IDE throws error", () => {
|
|
103
113
|
let threw = false;
|
|
104
114
|
try {
|
|
105
|
-
getIDEHandler(
|
|
115
|
+
getIDEHandler("vim");
|
|
106
116
|
}
|
|
107
117
|
catch {
|
|
108
118
|
threw = true;
|
|
109
119
|
}
|
|
110
|
-
assert(threw,
|
|
120
|
+
assert(threw, "Should throw for unsupported IDE");
|
|
111
121
|
});
|
|
112
|
-
await runTest(
|
|
122
|
+
await runTest("Handler writeConfig accepts key and URL", async () => {
|
|
113
123
|
// Manual handler doesn't write to filesystem, safe to call
|
|
114
|
-
const handler = getIDEHandler(
|
|
124
|
+
const handler = getIDEHandler("manual");
|
|
115
125
|
// Capture stdout to prevent output during test
|
|
116
126
|
const originalWrite = process.stdout.write;
|
|
117
|
-
let output =
|
|
127
|
+
let output = "";
|
|
118
128
|
process.stdout.write = ((chunk) => {
|
|
119
129
|
output += chunk;
|
|
120
130
|
return true;
|
|
121
131
|
});
|
|
122
132
|
try {
|
|
123
|
-
await handler.writeConfig(
|
|
124
|
-
assert(output.includes('"command": "npx"'),
|
|
125
|
-
assert(output.includes(
|
|
126
|
-
assert(output.includes(
|
|
133
|
+
await handler.writeConfig("test-key-123", "https://mcp.tostudy.ai");
|
|
134
|
+
assert(output.includes('"command": "npx"'), "Manual output should include npx command");
|
|
135
|
+
assert(output.includes("mcp-remote"), "Manual output should include mcp-remote");
|
|
136
|
+
assert(output.includes("test-key-123"), "Manual output should include the API key");
|
|
127
137
|
}
|
|
128
138
|
finally {
|
|
129
139
|
process.stdout.write = originalWrite;
|
|
130
140
|
}
|
|
131
141
|
});
|
|
132
|
-
await runTest(
|
|
142
|
+
await runTest("Handler verify returns boolean", async () => {
|
|
133
143
|
// Verify against a non-existent server should return false
|
|
134
|
-
const handler = getIDEHandler(
|
|
135
|
-
const result = await handler.verify(
|
|
136
|
-
assert(typeof result ===
|
|
137
|
-
assert(result === false,
|
|
144
|
+
const handler = getIDEHandler("manual");
|
|
145
|
+
const result = await handler.verify("fake-key", "http://localhost:99999");
|
|
146
|
+
assert(typeof result === "boolean", "verify() should return boolean");
|
|
147
|
+
assert(result === false, "verify() against non-existent server should return false");
|
|
138
148
|
});
|
|
139
149
|
}
|
|
140
150
|
// ───────────── Server Entry Structure ─────────────
|
|
141
151
|
async function testServerEntryStructure() {
|
|
142
|
-
log(
|
|
143
|
-
await runTest(
|
|
144
|
-
const entry = buildTostudyServerEntry(
|
|
145
|
-
assert(typeof entry ===
|
|
146
|
-
assert(entry.command ===
|
|
147
|
-
assert(Array.isArray(entry.args),
|
|
152
|
+
log("\n── Server Entry Structure ──");
|
|
153
|
+
await runTest("Entry has correct shape for IDE configs", () => {
|
|
154
|
+
const entry = buildTostudyServerEntry("my-key", "https://mcp.tostudy.ai", "manual");
|
|
155
|
+
assert(typeof entry === "object", "Entry should be an object");
|
|
156
|
+
assert(entry.command === "npx", "Command should be npx");
|
|
157
|
+
assert(Array.isArray(entry.args), "Args should be an array");
|
|
148
158
|
// Verify args structure
|
|
149
159
|
const args = entry.args;
|
|
150
|
-
assert(args.includes(
|
|
151
|
-
assert(args.includes(
|
|
152
|
-
assert(args.includes(
|
|
153
|
-
assert(args.some((a) => a.includes(
|
|
154
|
-
assert(args.some((a) => a.includes(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
assert(args.includes("-y"), "Should have -y flag");
|
|
161
|
+
assert(args.includes("mcp-remote"), "Should have mcp-remote");
|
|
162
|
+
assert(args.includes("--header"), "Should have --header flag");
|
|
163
|
+
assert(args.some((a) => a.includes("Authorization:Bearer my-key")), "Should have authorization header with key");
|
|
164
|
+
assert(args.some((a) => a.includes("X-Tostudy-Client-IDE:manual")), "Should have IDE metadata header");
|
|
165
|
+
assert(args.some((a) => a.startsWith("X-Tostudy-Client-OS:")), "Should have OS metadata header");
|
|
166
|
+
assert(args.some((a) => a.includes("https://mcp.tostudy.ai/mcp")), "Should have MCP URL with /mcp suffix");
|
|
167
|
+
});
|
|
168
|
+
await runTest("Args encode API key correctly", () => {
|
|
169
|
+
const specialKey = "key-with-special-chars!@#";
|
|
170
|
+
const args = buildMcpRemoteArgs(specialKey, "https://mcp.test.com", "manual");
|
|
171
|
+
const authArg = args.find((a) => a.includes("Authorization"));
|
|
172
|
+
assert(authArg !== undefined, "Should have auth arg");
|
|
173
|
+
assert(authArg === `Authorization:Bearer ${specialKey}`, "Auth arg should contain exact key without encoding");
|
|
174
|
+
assert(args.includes("X-Tostudy-Client-IDE:manual"), "Should include IDE metadata");
|
|
175
|
+
});
|
|
176
|
+
await runTest("MCP URL gets /mcp suffix", () => {
|
|
177
|
+
const args = buildMcpRemoteArgs("key", "https://mcp.tostudy.ai", "manual");
|
|
165
178
|
const urlArg = args[2];
|
|
166
|
-
assert(urlArg ===
|
|
179
|
+
assert(urlArg === "https://mcp.tostudy.ai/mcp", `URL should have /mcp suffix, got ${urlArg}`);
|
|
167
180
|
});
|
|
168
181
|
}
|
|
169
182
|
// ───────────── IDE-specific Config Formats ─────────────
|
|
170
183
|
async function testIDEConfigFormats() {
|
|
171
|
-
log(
|
|
172
|
-
await runTest(
|
|
173
|
-
const entry = buildTostudyServerEntry(
|
|
184
|
+
log("\n── IDE Config Formats ──");
|
|
185
|
+
await runTest("Cursor uses mcpServers key", () => {
|
|
186
|
+
const entry = buildTostudyServerEntry("key", "https://mcp.tostudy.ai", "manual");
|
|
174
187
|
// Simulate Cursor config shape
|
|
175
188
|
const config = { mcpServers: { tostudy: entry } };
|
|
176
189
|
const json = JSON.stringify(config);
|
|
177
|
-
assert(json.includes('"mcpServers"'),
|
|
178
|
-
assert(!json.includes('"servers"'),
|
|
190
|
+
assert(json.includes('"mcpServers"'), "Cursor config should use mcpServers");
|
|
191
|
+
assert(!json.includes('"servers"'), "Cursor config should NOT use bare servers");
|
|
179
192
|
});
|
|
180
|
-
await runTest(
|
|
181
|
-
const entry = buildTostudyServerEntry(
|
|
193
|
+
await runTest("VS Code uses servers key", () => {
|
|
194
|
+
const entry = buildTostudyServerEntry("key", "https://mcp.tostudy.ai", "manual");
|
|
182
195
|
// Simulate VS Code config shape
|
|
183
196
|
const config = { servers: { tostudy: entry } };
|
|
184
197
|
const json = JSON.stringify(config);
|
|
185
|
-
assert(json.includes('"servers"'),
|
|
198
|
+
assert(json.includes('"servers"'), "VSCode config should use servers");
|
|
186
199
|
});
|
|
187
|
-
await runTest(
|
|
188
|
-
const entry = buildTostudyServerEntry(
|
|
200
|
+
await runTest("OpenCode uses mcp key", () => {
|
|
201
|
+
const entry = buildTostudyServerEntry("key", "https://mcp.tostudy.ai", "manual");
|
|
189
202
|
// Simulate OpenCode config shape
|
|
190
203
|
const config = { mcp: { tostudy: entry } };
|
|
191
204
|
const json = JSON.stringify(config);
|
|
192
|
-
assert(json.includes('"mcp"'),
|
|
205
|
+
assert(json.includes('"mcp"'), "OpenCode config should use mcp");
|
|
193
206
|
});
|
|
194
|
-
await runTest(
|
|
195
|
-
// Desktop handler uses
|
|
196
|
-
//
|
|
197
|
-
const handler = getIDEHandler(
|
|
198
|
-
assert(handler.name ===
|
|
199
|
-
// The desktop handler's config includes SSE transport via addTostudyMcpServer
|
|
200
|
-
// We can't easily test this without writing files, so just verify the handler exists
|
|
207
|
+
await runTest("Desktop uses stdio transport (command + args via mcp-remote)", () => {
|
|
208
|
+
// Desktop handler uses buildTostudyServerEntry which writes stdio config
|
|
209
|
+
// (command: npx, args: [...mcp-remote...]) matching all other handlers
|
|
210
|
+
const handler = getIDEHandler("desktop");
|
|
211
|
+
assert(handler.name === "Claude Desktop", "Should be Claude Desktop handler");
|
|
201
212
|
});
|
|
202
213
|
}
|
|
203
214
|
// ───────────── Summary ─────────────
|
|
204
215
|
function printSummary() {
|
|
205
|
-
log(
|
|
206
|
-
log(
|
|
207
|
-
log(
|
|
216
|
+
log("\n" + "═".repeat(50));
|
|
217
|
+
log("INSTALL COMMAND TEST SUMMARY");
|
|
218
|
+
log("═".repeat(50));
|
|
208
219
|
const passed = results.filter((r) => r.passed).length;
|
|
209
220
|
const failed = results.filter((r) => !r.passed).length;
|
|
210
221
|
log(`\nTotal: ${results.length} | Passed: ${passed} | Failed: ${failed}\n`);
|
|
211
222
|
if (failed > 0) {
|
|
212
|
-
log(
|
|
223
|
+
log("FAILED:");
|
|
213
224
|
for (const r of results.filter((r) => !r.passed)) {
|
|
214
225
|
log(` \x1b[31m✗\x1b[0m ${r.name}: ${r.message}`);
|
|
215
226
|
}
|
|
216
227
|
}
|
|
217
228
|
if (failed === 0) {
|
|
218
|
-
log(
|
|
229
|
+
log("\x1b[32m✓ All install command tests passed!\x1b[0m\n");
|
|
219
230
|
}
|
|
220
231
|
else {
|
|
221
232
|
log(`\x1b[31m✗ ${failed} test(s) failed\x1b[0m\n`);
|
|
@@ -224,9 +235,9 @@ function printSummary() {
|
|
|
224
235
|
}
|
|
225
236
|
// Main
|
|
226
237
|
async function main() {
|
|
227
|
-
log(
|
|
228
|
-
log(
|
|
229
|
-
log(
|
|
238
|
+
log("═".repeat(50));
|
|
239
|
+
log("TEST: CLI Install Command & URL Resolution");
|
|
240
|
+
log("═".repeat(50));
|
|
230
241
|
await testUrlResolution();
|
|
231
242
|
await testInstallCommandLogic();
|
|
232
243
|
await testServerEntryStructure();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-command.test.js","sourceRoot":"","sources":["../../src/__tests__/install-command.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"install-command.test.js","sourceRoot":"","sources":["../../src/__tests__/install-command.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -8,13 +8,21 @@ export interface ClaudeConfig {
|
|
|
8
8
|
[key: string]: unknown;
|
|
9
9
|
}
|
|
10
10
|
export interface McpServerConfig {
|
|
11
|
-
type?:
|
|
11
|
+
type?: "sse" | "stdio";
|
|
12
12
|
url?: string;
|
|
13
13
|
headers?: Record<string, string>;
|
|
14
14
|
command?: string;
|
|
15
15
|
args?: string[];
|
|
16
16
|
env?: Record<string, string>;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Extract the API key from either SSE (headers) or stdio (args) config format.
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractApiKey(config: McpServerConfig): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Extract the MCP server URL from either SSE (url) or stdio (args) config format.
|
|
24
|
+
*/
|
|
25
|
+
export declare function extractMcpUrl(config: McpServerConfig): string | null;
|
|
18
26
|
/**
|
|
19
27
|
* Get the path to Claude Code's config file based on OS
|
|
20
28
|
*/
|
|
@@ -32,10 +40,13 @@ export declare function readClaudeConfig(): ClaudeConfig;
|
|
|
32
40
|
*/
|
|
33
41
|
export declare function writeClaudeConfig(config: ClaudeConfig): void;
|
|
34
42
|
/**
|
|
35
|
-
* Add Catalyst MCP server to Claude config
|
|
36
|
-
* Uses
|
|
43
|
+
* Add Catalyst MCP server to Claude Desktop config
|
|
44
|
+
* Uses stdio transport via mcp-remote (Claude Desktop requires command + args)
|
|
37
45
|
*/
|
|
38
|
-
export declare function addTostudyMcpServer(apiKey: string, platformUrl: string
|
|
46
|
+
export declare function addTostudyMcpServer(apiKey: string, platformUrl: string, clientInfo?: {
|
|
47
|
+
ide?: string;
|
|
48
|
+
os?: "macos" | "windows" | "linux";
|
|
49
|
+
}): void;
|
|
39
50
|
/**
|
|
40
51
|
* Remove Catalyst MCP server from Claude config
|
|
41
52
|
*/
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAE9B,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAE9B,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAEvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAoBpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAYpE;AAaD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkB5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAc/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAiB5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;CAAO,GACpE,IAAI,CA6BN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAO7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,GAAG,IAAI,CAG5D"}
|