@vibescope/mcp-server 0.3.4 → 0.3.6
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/cli-init.js +30 -22
- package/docs/TOOLS.md +26 -2
- package/package.json +1 -1
- package/src/cli-init.ts +33 -24
package/dist/cli-init.js
CHANGED
|
@@ -173,24 +173,23 @@ function detectAgents() {
|
|
|
173
173
|
// Agent Configurators
|
|
174
174
|
// ============================================================================
|
|
175
175
|
async function configureClaudeCode(apiKey) {
|
|
176
|
-
//
|
|
177
|
-
try {
|
|
178
|
-
execSync('claude --version', { stdio: 'pipe', timeout: 5000 });
|
|
179
|
-
// Use project scope for claude mcp add
|
|
180
|
-
try {
|
|
181
|
-
execSync(`claude mcp add vibescope -e VIBESCOPE_API_KEY=${apiKey} -- npx -y -p @vibescope/mcp-server@latest vibescope-mcp`, { stdio: 'pipe', timeout: 15000 });
|
|
182
|
-
console.log(` ${icon.check} Claude Code configured via ${c.cyan}claude mcp add${c.reset}`);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
catch {
|
|
186
|
-
// claude mcp add not available (older version), fall through to manual config
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
catch { /* claude CLI not available */ }
|
|
190
|
-
// Fallback: write .mcp.json
|
|
176
|
+
// Write project-level .mcp.json (works reliably across all platforms)
|
|
191
177
|
const configPath = join(process.cwd(), '.mcp.json');
|
|
192
178
|
writeMcpJson(configPath, apiKey);
|
|
193
179
|
console.log(` ${icon.check} Wrote ${c.cyan}.mcp.json${c.reset} (Claude Code project config)`);
|
|
180
|
+
// Also offer to write user-level config for global access
|
|
181
|
+
const globalConfig = platform() === 'win32'
|
|
182
|
+
? join(homedir(), '.claude', 'settings.json')
|
|
183
|
+
: join(homedir(), '.claude', 'settings.json');
|
|
184
|
+
const addGlobal = await promptConfirm(` Also add Vibescope globally (all projects)?`, true);
|
|
185
|
+
if (addGlobal) {
|
|
186
|
+
const existing = readJsonFile(globalConfig);
|
|
187
|
+
const mcpServers = existing.mcpServers || {};
|
|
188
|
+
mcpServers['vibescope'] = buildMcpServerConfig(apiKey);
|
|
189
|
+
existing.mcpServers = mcpServers;
|
|
190
|
+
writeJsonFile(globalConfig, existing);
|
|
191
|
+
console.log(` ${icon.check} Wrote ${c.cyan}~/.claude/settings.json${c.reset} (global config)`);
|
|
192
|
+
}
|
|
194
193
|
}
|
|
195
194
|
async function configureCursor(apiKey) {
|
|
196
195
|
const configPath = join(process.cwd(), '.cursor', 'mcp.json');
|
|
@@ -207,9 +206,7 @@ async function configureGemini(apiKey) {
|
|
|
207
206
|
const existing = readJsonFile(configPath);
|
|
208
207
|
const mcpServers = existing.mcpServers || {};
|
|
209
208
|
mcpServers['vibescope'] = {
|
|
210
|
-
|
|
211
|
-
args: ['-y', '-p', '@vibescope/mcp-server@latest', 'vibescope-mcp'],
|
|
212
|
-
env: { VIBESCOPE_API_KEY: apiKey },
|
|
209
|
+
...buildMcpServerConfig(apiKey),
|
|
213
210
|
timeout: 30000,
|
|
214
211
|
trust: true,
|
|
215
212
|
};
|
|
@@ -236,14 +233,25 @@ function writeJsonFile(path, data) {
|
|
|
236
233
|
}
|
|
237
234
|
writeFileSync(path, JSON.stringify(data, null, 2) + '\n');
|
|
238
235
|
}
|
|
239
|
-
function
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
|
|
236
|
+
function buildMcpServerConfig(apiKey) {
|
|
237
|
+
const isWindows = platform() === 'win32';
|
|
238
|
+
if (isWindows) {
|
|
239
|
+
return {
|
|
240
|
+
command: 'cmd',
|
|
241
|
+
args: ['/c', 'npx', '-y', '-p', '@vibescope/mcp-server@latest', 'vibescope-mcp'],
|
|
242
|
+
env: { VIBESCOPE_API_KEY: apiKey },
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
243
246
|
command: 'npx',
|
|
244
247
|
args: ['-y', '-p', '@vibescope/mcp-server@latest', 'vibescope-mcp'],
|
|
245
248
|
env: { VIBESCOPE_API_KEY: apiKey },
|
|
246
249
|
};
|
|
250
|
+
}
|
|
251
|
+
function writeMcpJson(configPath, apiKey) {
|
|
252
|
+
const existing = readJsonFile(configPath);
|
|
253
|
+
const mcpServers = existing.mcpServers || {};
|
|
254
|
+
mcpServers['vibescope'] = buildMcpServerConfig(apiKey);
|
|
247
255
|
existing.mcpServers = mcpServers;
|
|
248
256
|
writeJsonFile(configPath, existing);
|
|
249
257
|
}
|
package/docs/TOOLS.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> Auto-generated from tool definitions. Do not edit manually.
|
|
4
4
|
>
|
|
5
|
-
> Generated: 2026-02-
|
|
5
|
+
> Generated: 2026-02-12
|
|
6
6
|
>
|
|
7
|
-
> Total tools:
|
|
7
|
+
> Total tools: 156
|
|
8
8
|
|
|
9
9
|
## Table of Contents
|
|
10
10
|
|
|
@@ -2457,3 +2457,27 @@ Use this to check the state of cloud agents before/after cleanup.
|
|
|
2457
2457
|
| `status` | `"starting" | "running" | "stopped" | "failed" | "all"` | No | Filter by status (default: all) |
|
|
2458
2458
|
|
|
2459
2459
|
---
|
|
2460
|
+
|
|
2461
|
+
## Uncategorized
|
|
2462
|
+
|
|
2463
|
+
*Tools not yet assigned to a category*
|
|
2464
|
+
|
|
2465
|
+
### check_mcp_version
|
|
2466
|
+
|
|
2467
|
+
Check if the Vibescope MCP server is up to date. Compares the locally installed version against the latest published version on npm. Call this when starting a session or when the server instructions indicate an update is available.
|
|
2468
|
+
|
|
2469
|
+
**Parameters:** None
|
|
2470
|
+
|
|
2471
|
+
---
|
|
2472
|
+
|
|
2473
|
+
### update_mcp_server
|
|
2474
|
+
|
|
2475
|
+
Update the Vibescope MCP server to the latest version. Runs npm install to fetch the latest version. After updating, the server must be restarted (the agent should ask the user to restart their MCP client/editor). Only call this when the user agrees to update.
|
|
2476
|
+
|
|
2477
|
+
**Parameters:**
|
|
2478
|
+
|
|
2479
|
+
| Parameter | Type | Required | Description |
|
|
2480
|
+
|-----------|------|----------|-------------|
|
|
2481
|
+
| `global` | `boolean` | No | If true, update the global installation (npm install -g). If false, update locally. Default: true. |
|
|
2482
|
+
|
|
2483
|
+
---
|
package/package.json
CHANGED
package/src/cli-init.ts
CHANGED
|
@@ -204,26 +204,25 @@ function detectAgents(): Agent[] {
|
|
|
204
204
|
// ============================================================================
|
|
205
205
|
|
|
206
206
|
async function configureClaudeCode(apiKey: string): Promise<void> {
|
|
207
|
-
//
|
|
208
|
-
try {
|
|
209
|
-
execSync('claude --version', { stdio: 'pipe', timeout: 5000 });
|
|
210
|
-
// Use project scope for claude mcp add
|
|
211
|
-
try {
|
|
212
|
-
execSync(
|
|
213
|
-
`claude mcp add vibescope -e VIBESCOPE_API_KEY=${apiKey} -- npx -y -p @vibescope/mcp-server@latest vibescope-mcp`,
|
|
214
|
-
{ stdio: 'pipe', timeout: 15000 }
|
|
215
|
-
);
|
|
216
|
-
console.log(` ${icon.check} Claude Code configured via ${c.cyan}claude mcp add${c.reset}`);
|
|
217
|
-
return;
|
|
218
|
-
} catch {
|
|
219
|
-
// claude mcp add not available (older version), fall through to manual config
|
|
220
|
-
}
|
|
221
|
-
} catch { /* claude CLI not available */ }
|
|
222
|
-
|
|
223
|
-
// Fallback: write .mcp.json
|
|
207
|
+
// Write project-level .mcp.json (works reliably across all platforms)
|
|
224
208
|
const configPath = join(process.cwd(), '.mcp.json');
|
|
225
209
|
writeMcpJson(configPath, apiKey);
|
|
226
210
|
console.log(` ${icon.check} Wrote ${c.cyan}.mcp.json${c.reset} (Claude Code project config)`);
|
|
211
|
+
|
|
212
|
+
// Also offer to write user-level config for global access
|
|
213
|
+
const globalConfig = platform() === 'win32'
|
|
214
|
+
? join(homedir(), '.claude', 'settings.json')
|
|
215
|
+
: join(homedir(), '.claude', 'settings.json');
|
|
216
|
+
|
|
217
|
+
const addGlobal = await promptConfirm(` Also add Vibescope globally (all projects)?`, true);
|
|
218
|
+
if (addGlobal) {
|
|
219
|
+
const existing = readJsonFile(globalConfig);
|
|
220
|
+
const mcpServers = (existing.mcpServers as Record<string, unknown>) || {};
|
|
221
|
+
mcpServers['vibescope'] = buildMcpServerConfig(apiKey);
|
|
222
|
+
existing.mcpServers = mcpServers;
|
|
223
|
+
writeJsonFile(globalConfig, existing);
|
|
224
|
+
console.log(` ${icon.check} Wrote ${c.cyan}~/.claude/settings.json${c.reset} (global config)`);
|
|
225
|
+
}
|
|
227
226
|
}
|
|
228
227
|
|
|
229
228
|
async function configureCursor(apiKey: string): Promise<void> {
|
|
@@ -243,9 +242,7 @@ async function configureGemini(apiKey: string): Promise<void> {
|
|
|
243
242
|
const existing = readJsonFile(configPath);
|
|
244
243
|
const mcpServers = (existing.mcpServers as Record<string, unknown>) || {};
|
|
245
244
|
mcpServers['vibescope'] = {
|
|
246
|
-
|
|
247
|
-
args: ['-y', '-p', '@vibescope/mcp-server@latest', 'vibescope-mcp'],
|
|
248
|
-
env: { VIBESCOPE_API_KEY: apiKey },
|
|
245
|
+
...buildMcpServerConfig(apiKey),
|
|
249
246
|
timeout: 30000,
|
|
250
247
|
trust: true,
|
|
251
248
|
};
|
|
@@ -275,14 +272,26 @@ function writeJsonFile(path: string, data: Record<string, unknown>): void {
|
|
|
275
272
|
writeFileSync(path, JSON.stringify(data, null, 2) + '\n');
|
|
276
273
|
}
|
|
277
274
|
|
|
278
|
-
function
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
|
|
275
|
+
function buildMcpServerConfig(apiKey: string): Record<string, unknown> {
|
|
276
|
+
const isWindows = platform() === 'win32';
|
|
277
|
+
if (isWindows) {
|
|
278
|
+
return {
|
|
279
|
+
command: 'cmd',
|
|
280
|
+
args: ['/c', 'npx', '-y', '-p', '@vibescope/mcp-server@latest', 'vibescope-mcp'],
|
|
281
|
+
env: { VIBESCOPE_API_KEY: apiKey },
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
return {
|
|
282
285
|
command: 'npx',
|
|
283
286
|
args: ['-y', '-p', '@vibescope/mcp-server@latest', 'vibescope-mcp'],
|
|
284
287
|
env: { VIBESCOPE_API_KEY: apiKey },
|
|
285
288
|
};
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
function writeMcpJson(configPath: string, apiKey: string): void {
|
|
292
|
+
const existing = readJsonFile(configPath);
|
|
293
|
+
const mcpServers = (existing.mcpServers as Record<string, unknown>) || {};
|
|
294
|
+
mcpServers['vibescope'] = buildMcpServerConfig(apiKey);
|
|
286
295
|
existing.mcpServers = mcpServers;
|
|
287
296
|
writeJsonFile(configPath, existing);
|
|
288
297
|
}
|