agent-recorder 0.0.12 → 1.0.0
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/package.json +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/discover.d.ts +14 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/discover.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/discover.js +224 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/discover.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/install.js +82 -1
- package/vendor/node_modules/@agent-recorder/cli/commands/install.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/cli/index.js +10 -0
- package/vendor/node_modules/@agent-recorder/cli/index.js.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/config-discovery.d.ts +87 -0
- package/vendor/node_modules/@agent-recorder/core/config-discovery.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/config-discovery.js +315 -0
- package/vendor/node_modules/@agent-recorder/core/config-discovery.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/index.d.ts +1 -0
- package/vendor/node_modules/@agent-recorder/core/index.d.ts.map +1 -1
- package/vendor/node_modules/@agent-recorder/core/index.js +1 -0
- package/vendor/node_modules/@agent-recorder/core/index.js.map +1 -1
package/package.json
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discover command - find all MCP configurations across different sources.
|
|
3
|
+
* Scans Claude Code, Cursor, VS Code, and project-level configs.
|
|
4
|
+
*/
|
|
5
|
+
interface DiscoverOptions {
|
|
6
|
+
json?: boolean;
|
|
7
|
+
verbose?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Main discover command handler.
|
|
11
|
+
*/
|
|
12
|
+
export declare function discoverCommand(options: DiscoverOptions): Promise<void>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiQD;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7E"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discover command - find all MCP configurations across different sources.
|
|
3
|
+
* Scans Claude Code, Cursor, VS Code, and project-level configs.
|
|
4
|
+
*/
|
|
5
|
+
import * as os from "node:os";
|
|
6
|
+
import { discoverAllConfigs, getServerType, loadConfig, } from "@agent-recorder/core";
|
|
7
|
+
/**
|
|
8
|
+
* Format path for display, replacing home with ~
|
|
9
|
+
*/
|
|
10
|
+
function formatPath(filePath) {
|
|
11
|
+
const home = os.homedir();
|
|
12
|
+
if (filePath.startsWith(home)) {
|
|
13
|
+
return "~" + filePath.slice(home.length);
|
|
14
|
+
}
|
|
15
|
+
return filePath;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Check if a server is already wrapped (pointing to agent-recorder proxy).
|
|
19
|
+
*/
|
|
20
|
+
function isWrapped(server, proxyPort) {
|
|
21
|
+
if (!server.url)
|
|
22
|
+
return false;
|
|
23
|
+
try {
|
|
24
|
+
const url = new URL(server.url);
|
|
25
|
+
return ((url.hostname === "127.0.0.1" || url.hostname === "localhost") &&
|
|
26
|
+
url.port === String(proxyPort));
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get status indicator for a server.
|
|
34
|
+
*/
|
|
35
|
+
function getServerStatus(server, proxyPort) {
|
|
36
|
+
const serverType = getServerType(server);
|
|
37
|
+
if (server.key === "agent-recorder") {
|
|
38
|
+
return { icon: "★", label: "agent-recorder" };
|
|
39
|
+
}
|
|
40
|
+
if (isWrapped(server, proxyPort)) {
|
|
41
|
+
return { icon: "↻", label: "wrapped" };
|
|
42
|
+
}
|
|
43
|
+
switch (serverType) {
|
|
44
|
+
case "http":
|
|
45
|
+
return { icon: "✓", label: "can proxy" };
|
|
46
|
+
case "remote":
|
|
47
|
+
return { icon: "✓", label: "remote (can proxy)" };
|
|
48
|
+
case "stdio":
|
|
49
|
+
return { icon: "○", label: "stdio (v2)" };
|
|
50
|
+
default:
|
|
51
|
+
return { icon: "?", label: "unknown" };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Print discovery results in human-readable format.
|
|
56
|
+
*/
|
|
57
|
+
function printResults(result, proxyPort, verbose) {
|
|
58
|
+
console.log("MCP Configuration Discovery");
|
|
59
|
+
console.log("===========================\n");
|
|
60
|
+
// Config sources
|
|
61
|
+
console.log("Config Sources Checked:");
|
|
62
|
+
console.log("-----------------------");
|
|
63
|
+
for (const source of result.sources) {
|
|
64
|
+
const statusIcon = source.exists ? (source.error ? "⚠" : "✓") : "·";
|
|
65
|
+
const serverCount = source.servers.length;
|
|
66
|
+
const countLabel = source.exists && !source.error
|
|
67
|
+
? ` (${serverCount} server${serverCount !== 1 ? "s" : ""})`
|
|
68
|
+
: source.error
|
|
69
|
+
? ` (error: ${source.error})`
|
|
70
|
+
: "";
|
|
71
|
+
console.log(` ${statusIcon} ${source.name.padEnd(24)}${countLabel}`);
|
|
72
|
+
if (verbose && source.exists) {
|
|
73
|
+
console.log(` ${formatPath(source.path)}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
console.log("");
|
|
77
|
+
// Summary stats
|
|
78
|
+
console.log("Summary:");
|
|
79
|
+
console.log("--------");
|
|
80
|
+
console.log(` Total servers found: ${result.allServers.length}`);
|
|
81
|
+
console.log(` HTTP (local): ${result.httpServers.length}`);
|
|
82
|
+
console.log(` HTTP (remote): ${result.remoteServers.length}`);
|
|
83
|
+
console.log(` Stdio: ${result.stdioServers.length}`);
|
|
84
|
+
console.log("");
|
|
85
|
+
// Detailed server list
|
|
86
|
+
if (result.allServers.length > 0) {
|
|
87
|
+
console.log("Discovered Servers:");
|
|
88
|
+
console.log("-------------------");
|
|
89
|
+
// Group by source for cleaner display
|
|
90
|
+
const bySource = new Map();
|
|
91
|
+
for (const server of result.allServers) {
|
|
92
|
+
const sourceKey = server.source;
|
|
93
|
+
if (!bySource.has(sourceKey)) {
|
|
94
|
+
bySource.set(sourceKey, []);
|
|
95
|
+
}
|
|
96
|
+
bySource.get(sourceKey).push(server);
|
|
97
|
+
}
|
|
98
|
+
for (const [sourceType, servers] of bySource) {
|
|
99
|
+
const sourceLabel = getSourceLabel(sourceType);
|
|
100
|
+
console.log(`\n ${sourceLabel}:`);
|
|
101
|
+
for (const server of servers) {
|
|
102
|
+
const { icon, label } = getServerStatus(server, proxyPort);
|
|
103
|
+
const serverType = getServerType(server);
|
|
104
|
+
let endpoint = "";
|
|
105
|
+
if (server.url) {
|
|
106
|
+
endpoint = server.url;
|
|
107
|
+
}
|
|
108
|
+
else if (server.command) {
|
|
109
|
+
const args = server.args?.join(" ") ?? "";
|
|
110
|
+
endpoint = `${server.command}${args ? " " + args : ""}`;
|
|
111
|
+
// Truncate long commands
|
|
112
|
+
if (endpoint.length > 50) {
|
|
113
|
+
endpoint = endpoint.slice(0, 47) + "...";
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
console.log(` ${icon} ${server.key.padEnd(20)} ${endpoint}`);
|
|
117
|
+
if (verbose) {
|
|
118
|
+
console.log(` Type: ${serverType}, Status: ${label}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
console.log("");
|
|
123
|
+
}
|
|
124
|
+
// Actionable advice
|
|
125
|
+
printAdvice(result, proxyPort);
|
|
126
|
+
}
|
|
127
|
+
function getSourceLabel(source) {
|
|
128
|
+
const labels = {
|
|
129
|
+
"claude-code-v2": "Claude Code (global)",
|
|
130
|
+
"claude-code-legacy": "Claude Code (legacy)",
|
|
131
|
+
cursor: "Cursor IDE",
|
|
132
|
+
"vscode-user": "VS Code (user)",
|
|
133
|
+
"project-claude": "Project (.claude)",
|
|
134
|
+
"project-cursor": "Project (.cursor)",
|
|
135
|
+
};
|
|
136
|
+
return labels[source] ?? source;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Print actionable advice based on discovery results.
|
|
140
|
+
*/
|
|
141
|
+
function printAdvice(result, proxyPort) {
|
|
142
|
+
const advice = [];
|
|
143
|
+
// Check for unwrapped HTTP servers
|
|
144
|
+
const unwrappedHttp = result.httpServers.filter((s) => s.key !== "agent-recorder" && !isWrapped(s, proxyPort));
|
|
145
|
+
const unwrappedRemote = result.remoteServers.filter((s) => s.key !== "agent-recorder" && !isWrapped(s, proxyPort));
|
|
146
|
+
if (unwrappedHttp.length > 0 || unwrappedRemote.length > 0) {
|
|
147
|
+
const total = unwrappedHttp.length + unwrappedRemote.length;
|
|
148
|
+
advice.push(`${total} HTTP server(s) can be wrapped for observability.`);
|
|
149
|
+
advice.push(`Run: agent-recorder install`);
|
|
150
|
+
}
|
|
151
|
+
if (result.stdioServers.length > 0) {
|
|
152
|
+
advice.push(`${result.stdioServers.length} stdio server(s) found. Stdio support coming in v2.`);
|
|
153
|
+
}
|
|
154
|
+
// Check for servers in non-Claude configs
|
|
155
|
+
const cursorServers = result.allServers.filter((s) => s.source === "cursor");
|
|
156
|
+
if (cursorServers.length > 0) {
|
|
157
|
+
advice.push(`Found ${cursorServers.length} server(s) in Cursor config - these need manual import.`);
|
|
158
|
+
}
|
|
159
|
+
const vscodeServers = result.allServers.filter((s) => s.source === "vscode-user");
|
|
160
|
+
if (vscodeServers.length > 0) {
|
|
161
|
+
advice.push(`Found ${vscodeServers.length} server(s) in VS Code - these need manual import.`);
|
|
162
|
+
}
|
|
163
|
+
if (advice.length > 0) {
|
|
164
|
+
console.log("Recommendations:");
|
|
165
|
+
console.log("----------------");
|
|
166
|
+
for (const item of advice) {
|
|
167
|
+
console.log(` → ${item}`);
|
|
168
|
+
}
|
|
169
|
+
console.log("");
|
|
170
|
+
}
|
|
171
|
+
// Legend
|
|
172
|
+
console.log("Legend:");
|
|
173
|
+
console.log("-------");
|
|
174
|
+
console.log(" ✓ = Can be proxied (HTTP)");
|
|
175
|
+
console.log(" ↻ = Already wrapped through agent-recorder");
|
|
176
|
+
console.log(" ★ = Agent Recorder itself");
|
|
177
|
+
console.log(" ○ = Stdio-based (not yet supported)");
|
|
178
|
+
console.log(" · = Config file not found");
|
|
179
|
+
console.log(" ⚠ = Error reading config");
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Print discovery results as JSON.
|
|
183
|
+
*/
|
|
184
|
+
function printJson(result) {
|
|
185
|
+
const output = {
|
|
186
|
+
sources: result.sources.map((s) => ({
|
|
187
|
+
type: s.type,
|
|
188
|
+
name: s.name,
|
|
189
|
+
path: s.path,
|
|
190
|
+
exists: s.exists,
|
|
191
|
+
serverCount: s.servers.length,
|
|
192
|
+
error: s.error,
|
|
193
|
+
})),
|
|
194
|
+
summary: {
|
|
195
|
+
total: result.allServers.length,
|
|
196
|
+
http: result.httpServers.length,
|
|
197
|
+
remote: result.remoteServers.length,
|
|
198
|
+
stdio: result.stdioServers.length,
|
|
199
|
+
},
|
|
200
|
+
servers: result.allServers.map((s) => ({
|
|
201
|
+
key: s.key,
|
|
202
|
+
type: getServerType(s),
|
|
203
|
+
source: s.source,
|
|
204
|
+
url: s.url,
|
|
205
|
+
command: s.command,
|
|
206
|
+
args: s.args,
|
|
207
|
+
})),
|
|
208
|
+
};
|
|
209
|
+
console.log(JSON.stringify(output, null, 2));
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Main discover command handler.
|
|
213
|
+
*/
|
|
214
|
+
export async function discoverCommand(options) {
|
|
215
|
+
const config = loadConfig();
|
|
216
|
+
const result = discoverAllConfigs();
|
|
217
|
+
if (options.json) {
|
|
218
|
+
printJson(result);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
printResults(result, config.mcpProxyPort, options.verbose ?? false);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2CH,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsDf"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
7
7
|
import { homedir } from "node:os";
|
|
8
8
|
import { join } from "node:path";
|
|
9
|
-
import { loadConfig, readProvidersFile, writeProvidersFile, getDefaultProvidersPath, } from "@agent-recorder/core";
|
|
9
|
+
import { loadConfig, readProvidersFile, writeProvidersFile, getDefaultProvidersPath, discoverAllConfigs, getServerType, } from "@agent-recorder/core";
|
|
10
10
|
import { detectClaudeConfig, readJsonFile, writeJsonFileAtomic, createBackup, formatPath, } from "../config/claude-paths.js";
|
|
11
11
|
import { hubifyClaudeConfig, mergeProviders } from "../config/hubify.js";
|
|
12
12
|
/** Default .env file template */
|
|
@@ -87,6 +87,66 @@ Next steps:
|
|
|
87
87
|
3. Restart Claude Code to apply changes
|
|
88
88
|
`);
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Convert a discovered MCP server to a Provider.
|
|
92
|
+
*/
|
|
93
|
+
function serverToProvider(server) {
|
|
94
|
+
const serverType = getServerType(server);
|
|
95
|
+
if (serverType === "stdio") {
|
|
96
|
+
// Stdio not supported yet - return null
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
if (server.url) {
|
|
100
|
+
const httpProvider = {
|
|
101
|
+
id: server.key,
|
|
102
|
+
type: "http",
|
|
103
|
+
url: server.url,
|
|
104
|
+
...(server.headers && { headers: server.headers }),
|
|
105
|
+
};
|
|
106
|
+
return httpProvider;
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Import servers from non-Claude sources (Cursor, VS Code, project-level).
|
|
112
|
+
* Returns the list of providers that were imported.
|
|
113
|
+
*/
|
|
114
|
+
function importFromOtherSources(providersPath) {
|
|
115
|
+
const discovery = discoverAllConfigs();
|
|
116
|
+
const imported = [];
|
|
117
|
+
const skipped = [];
|
|
118
|
+
// Get servers from non-Claude sources
|
|
119
|
+
const otherServers = discovery.allServers.filter((s) => s.source !== "claude-code-v2" &&
|
|
120
|
+
s.source !== "claude-code-legacy" &&
|
|
121
|
+
s.key !== "agent-recorder");
|
|
122
|
+
if (otherServers.length === 0) {
|
|
123
|
+
return { imported, skipped };
|
|
124
|
+
}
|
|
125
|
+
// Load existing providers
|
|
126
|
+
const existingProviders = readProvidersFile(providersPath);
|
|
127
|
+
const existingIds = new Set(existingProviders.providers.map((p) => p.id));
|
|
128
|
+
for (const server of otherServers) {
|
|
129
|
+
// Skip if already exists
|
|
130
|
+
if (existingIds.has(server.key)) {
|
|
131
|
+
skipped.push({ key: server.key, reason: "already exists" });
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const provider = serverToProvider(server);
|
|
135
|
+
if (provider) {
|
|
136
|
+
imported.push(provider);
|
|
137
|
+
existingIds.add(provider.id); // Prevent duplicates in same batch
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
skipped.push({ key: server.key, reason: "stdio not supported" });
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Merge and write if we have new providers
|
|
144
|
+
if (imported.length > 0) {
|
|
145
|
+
const merged = mergeProviders(existingProviders, imported);
|
|
146
|
+
writeProvidersFile(merged, providersPath);
|
|
147
|
+
}
|
|
148
|
+
return { imported, skipped };
|
|
149
|
+
}
|
|
90
150
|
/**
|
|
91
151
|
* Automatically configure Claude Code with hubify mode.
|
|
92
152
|
* This is the equivalent of running: agent-recorder configure claude --hubify
|
|
@@ -157,5 +217,26 @@ async function runAutoHubify(config) {
|
|
|
157
217
|
console.log(`Providers file: ${formatPath(providersPath)}`);
|
|
158
218
|
console.log(`Total providers: ${mergedProviders.providers.length}`);
|
|
159
219
|
console.log("");
|
|
220
|
+
// Also import from other sources (Cursor, VS Code, project-level)
|
|
221
|
+
const otherResult = importFromOtherSources(providersPath);
|
|
222
|
+
if (otherResult.imported.length > 0 || otherResult.skipped.length > 0) {
|
|
223
|
+
console.log("Additional sources discovered:");
|
|
224
|
+
console.log("------------------------------");
|
|
225
|
+
if (otherResult.imported.length > 0) {
|
|
226
|
+
console.log(`Imported ${otherResult.imported.length} server(s) from other configs:`);
|
|
227
|
+
for (const provider of otherResult.imported) {
|
|
228
|
+
if (provider.type === "http") {
|
|
229
|
+
console.log(` ✓ ${provider.id}: ${provider.url}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
if (otherResult.skipped.length > 0) {
|
|
234
|
+
console.log(`Skipped ${otherResult.skipped.length} server(s):`);
|
|
235
|
+
for (const { key, reason } of otherResult.skipped) {
|
|
236
|
+
console.log(` ○ ${key}: ${reason}`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
console.log("");
|
|
240
|
+
}
|
|
160
241
|
}
|
|
161
242
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ import { configureWrapCommand } from "./commands/configure-wrap.js";
|
|
|
21
21
|
import { diagnoseMcpCommand } from "./commands/diagnose.js";
|
|
22
22
|
import { mockMcpCommand } from "./commands/mock-mcp.js";
|
|
23
23
|
import { tuiCommand } from "./commands/tui.js";
|
|
24
|
+
import { discoverCommand } from "./commands/discover.js";
|
|
24
25
|
const program = new Command();
|
|
25
26
|
program
|
|
26
27
|
.name("agent-recorder")
|
|
@@ -152,6 +153,15 @@ program
|
|
|
152
153
|
.action(async () => {
|
|
153
154
|
await doctorCommand();
|
|
154
155
|
});
|
|
156
|
+
// Discover command
|
|
157
|
+
program
|
|
158
|
+
.command("discover")
|
|
159
|
+
.description("Discover MCP servers from all config sources (Claude, Cursor, VS Code, project)")
|
|
160
|
+
.option("--json", "Output as JSON")
|
|
161
|
+
.option("-v, --verbose", "Show additional details")
|
|
162
|
+
.action(async (options) => {
|
|
163
|
+
await discoverCommand(options);
|
|
164
|
+
});
|
|
155
165
|
// TUI command
|
|
156
166
|
program
|
|
157
167
|
.command("tui")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-source MCP configuration discovery.
|
|
3
|
+
* Discovers MCP servers from Claude Code, Cursor, VS Code, and project-level configs.
|
|
4
|
+
*/
|
|
5
|
+
export type ConfigSourceType = "claude-code-v2" | "claude-code-legacy" | "cursor" | "vscode-user" | "project-claude" | "project-cursor";
|
|
6
|
+
export interface McpServerConfig {
|
|
7
|
+
/** Server key/name */
|
|
8
|
+
key: string;
|
|
9
|
+
/** URL for HTTP-based servers */
|
|
10
|
+
url?: string;
|
|
11
|
+
/** Command for stdio-based servers */
|
|
12
|
+
command?: string;
|
|
13
|
+
/** Args for stdio-based servers */
|
|
14
|
+
args?: string[];
|
|
15
|
+
/** Environment variables for stdio servers */
|
|
16
|
+
env?: Record<string, string>;
|
|
17
|
+
/** Headers for HTTP servers */
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
/** Transport type (http, stdio, streamable-http) */
|
|
20
|
+
transport?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ConfigSource {
|
|
23
|
+
/** Source type identifier */
|
|
24
|
+
type: ConfigSourceType;
|
|
25
|
+
/** Human-readable name */
|
|
26
|
+
name: string;
|
|
27
|
+
/** Full path to config file */
|
|
28
|
+
path: string;
|
|
29
|
+
/** Whether the file exists */
|
|
30
|
+
exists: boolean;
|
|
31
|
+
/** MCP servers found in this config */
|
|
32
|
+
servers: McpServerConfig[];
|
|
33
|
+
/** Parse errors (if any) */
|
|
34
|
+
error?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface DiscoveryResult {
|
|
37
|
+
/** All config sources checked */
|
|
38
|
+
sources: ConfigSource[];
|
|
39
|
+
/** Aggregate of all discovered servers with their source */
|
|
40
|
+
allServers: Array<McpServerConfig & {
|
|
41
|
+
source: ConfigSourceType;
|
|
42
|
+
sourcePath: string;
|
|
43
|
+
}>;
|
|
44
|
+
/** Servers that can be proxied (HTTP-based) */
|
|
45
|
+
httpServers: Array<McpServerConfig & {
|
|
46
|
+
source: ConfigSourceType;
|
|
47
|
+
sourcePath: string;
|
|
48
|
+
}>;
|
|
49
|
+
/** Servers that cannot be proxied yet (stdio-based) */
|
|
50
|
+
stdioServers: Array<McpServerConfig & {
|
|
51
|
+
source: ConfigSourceType;
|
|
52
|
+
sourcePath: string;
|
|
53
|
+
}>;
|
|
54
|
+
/** Remote servers (external URLs) */
|
|
55
|
+
remoteServers: Array<McpServerConfig & {
|
|
56
|
+
source: ConfigSourceType;
|
|
57
|
+
sourcePath: string;
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get all known config file paths to check.
|
|
62
|
+
*/
|
|
63
|
+
export declare function getConfigPaths(projectDir?: string): Array<{
|
|
64
|
+
type: ConfigSourceType;
|
|
65
|
+
name: string;
|
|
66
|
+
path: string;
|
|
67
|
+
}>;
|
|
68
|
+
/**
|
|
69
|
+
* Check if a URL is a remote (external) server.
|
|
70
|
+
*/
|
|
71
|
+
export declare function isRemoteUrl(url: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Determine server type from config.
|
|
74
|
+
*/
|
|
75
|
+
export declare function getServerType(server: McpServerConfig): "http" | "stdio" | "remote";
|
|
76
|
+
/**
|
|
77
|
+
* Discover all MCP server configurations from known sources.
|
|
78
|
+
*
|
|
79
|
+
* @param projectDir - Optional project directory for project-level configs (defaults to cwd)
|
|
80
|
+
* @returns Discovery result with all found servers categorized by type
|
|
81
|
+
*/
|
|
82
|
+
export declare function discoverAllConfigs(projectDir?: string): DiscoveryResult;
|
|
83
|
+
/**
|
|
84
|
+
* Get a summary of discovered configs for display.
|
|
85
|
+
*/
|
|
86
|
+
export declare function getDiscoverySummary(result: DiscoveryResult): string;
|
|
87
|
+
//# sourceMappingURL=config-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-discovery.d.ts","sourceRoot":"","sources":["../src/config-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,oBAAoB,GACpB,QAAQ,GACR,aAAa,GACb,gBAAgB,GAChB,gBAAgB,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,4DAA4D;IAC5D,UAAU,EAAE,KAAK,CACf,eAAe,GAAG;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CACnE,CAAC;IACF,+CAA+C;IAC/C,WAAW,EAAE,KAAK,CAChB,eAAe,GAAG;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CACnE,CAAC;IACF,uDAAuD;IACvD,YAAY,EAAE,KAAK,CACjB,eAAe,GAAG;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CACnE,CAAC;IACF,qCAAqC;IACrC,aAAa,EAAE,KAAK,CAClB,eAAe,GAAG;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CACnE,CAAC;CACH;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,KAAK,CAAC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA0C/D;AAmCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAqBhD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,GACtB,MAAM,GAAG,OAAO,GAAG,QAAQ,CAY7B;AA6GD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,CAgDvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAyDnE"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-source MCP configuration discovery.
|
|
3
|
+
* Discovers MCP servers from Claude Code, Cursor, VS Code, and project-level configs.
|
|
4
|
+
*/
|
|
5
|
+
import * as fs from "node:fs";
|
|
6
|
+
import * as path from "node:path";
|
|
7
|
+
import * as os from "node:os";
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Path Helpers
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Get all known config file paths to check.
|
|
13
|
+
*/
|
|
14
|
+
export function getConfigPaths(projectDir) {
|
|
15
|
+
const home = os.homedir();
|
|
16
|
+
const cwd = projectDir ?? process.cwd();
|
|
17
|
+
const paths = [
|
|
18
|
+
// Claude Code configs
|
|
19
|
+
{
|
|
20
|
+
type: "claude-code-v2",
|
|
21
|
+
name: "Claude Code (global)",
|
|
22
|
+
path: path.join(home, ".claude", "settings.json"),
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
type: "claude-code-legacy",
|
|
26
|
+
name: "Claude Code (legacy)",
|
|
27
|
+
path: path.join(home, ".config", "claude", "mcp.json"),
|
|
28
|
+
},
|
|
29
|
+
// Cursor IDE config
|
|
30
|
+
{
|
|
31
|
+
type: "cursor",
|
|
32
|
+
name: "Cursor IDE",
|
|
33
|
+
path: path.join(home, ".cursor", "mcp.json"),
|
|
34
|
+
},
|
|
35
|
+
// VS Code user settings (platform-specific)
|
|
36
|
+
{
|
|
37
|
+
type: "vscode-user",
|
|
38
|
+
name: "VS Code (user)",
|
|
39
|
+
path: getVSCodeUserSettingsPath(),
|
|
40
|
+
},
|
|
41
|
+
// Project-level configs
|
|
42
|
+
{
|
|
43
|
+
type: "project-claude",
|
|
44
|
+
name: "Project (.claude)",
|
|
45
|
+
path: path.join(cwd, ".claude", "settings.json"),
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
type: "project-cursor",
|
|
49
|
+
name: "Project (.cursor)",
|
|
50
|
+
path: path.join(cwd, ".cursor", "mcp.json"),
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
return paths;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get VS Code user settings path (platform-specific).
|
|
57
|
+
*/
|
|
58
|
+
function getVSCodeUserSettingsPath() {
|
|
59
|
+
const home = os.homedir();
|
|
60
|
+
const platform = os.platform();
|
|
61
|
+
switch (platform) {
|
|
62
|
+
case "darwin":
|
|
63
|
+
return path.join(home, "Library", "Application Support", "Code", "User", "settings.json");
|
|
64
|
+
case "win32":
|
|
65
|
+
return path.join(process.env.APPDATA ?? home, "Code", "User", "settings.json");
|
|
66
|
+
default: // linux and others
|
|
67
|
+
return path.join(home, ".config", "Code", "User", "settings.json");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// Server Classification
|
|
72
|
+
// ============================================================================
|
|
73
|
+
/**
|
|
74
|
+
* Check if a URL is a remote (external) server.
|
|
75
|
+
*/
|
|
76
|
+
export function isRemoteUrl(url) {
|
|
77
|
+
try {
|
|
78
|
+
const parsed = new URL(url);
|
|
79
|
+
const host = parsed.hostname.toLowerCase();
|
|
80
|
+
// Local hosts
|
|
81
|
+
if (host === "localhost" || host === "127.0.0.1" || host === "::1") {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
// Local network ranges
|
|
85
|
+
if (host.startsWith("192.168.") ||
|
|
86
|
+
host.startsWith("10.") ||
|
|
87
|
+
host.startsWith("172.")) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Determine server type from config.
|
|
98
|
+
*/
|
|
99
|
+
export function getServerType(server) {
|
|
100
|
+
if (server.command) {
|
|
101
|
+
return "stdio";
|
|
102
|
+
}
|
|
103
|
+
if (server.url) {
|
|
104
|
+
return isRemoteUrl(server.url) ? "remote" : "http";
|
|
105
|
+
}
|
|
106
|
+
// Default to stdio if transport suggests it
|
|
107
|
+
if (server.transport === "stdio") {
|
|
108
|
+
return "stdio";
|
|
109
|
+
}
|
|
110
|
+
return "http";
|
|
111
|
+
}
|
|
112
|
+
// ============================================================================
|
|
113
|
+
// Config Parsing
|
|
114
|
+
// ============================================================================
|
|
115
|
+
/**
|
|
116
|
+
* Parse MCP servers from a config object.
|
|
117
|
+
* Handles both Claude Code and Cursor formats (they use the same schema).
|
|
118
|
+
*/
|
|
119
|
+
function parseMcpServers(configData, sourceType) {
|
|
120
|
+
if (!configData ||
|
|
121
|
+
typeof configData !== "object" ||
|
|
122
|
+
Array.isArray(configData)) {
|
|
123
|
+
return [];
|
|
124
|
+
}
|
|
125
|
+
const config = configData;
|
|
126
|
+
let mcpServers;
|
|
127
|
+
// VS Code nests MCP servers differently
|
|
128
|
+
if (sourceType === "vscode-user") {
|
|
129
|
+
// VS Code may have MCP config under various keys
|
|
130
|
+
// Common patterns: "mcp.servers", "claude.mcpServers", etc.
|
|
131
|
+
mcpServers =
|
|
132
|
+
config["mcp.servers"] ??
|
|
133
|
+
config["claude.mcpServers"] ??
|
|
134
|
+
config.mcpServers;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
mcpServers = config.mcpServers;
|
|
138
|
+
}
|
|
139
|
+
if (!mcpServers ||
|
|
140
|
+
typeof mcpServers !== "object" ||
|
|
141
|
+
Array.isArray(mcpServers)) {
|
|
142
|
+
return [];
|
|
143
|
+
}
|
|
144
|
+
const servers = [];
|
|
145
|
+
for (const [key, entry] of Object.entries(mcpServers)) {
|
|
146
|
+
if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const serverEntry = entry;
|
|
150
|
+
// Build server config, only including defined properties
|
|
151
|
+
const server = { key };
|
|
152
|
+
if (typeof serverEntry.url === "string") {
|
|
153
|
+
server.url = serverEntry.url;
|
|
154
|
+
}
|
|
155
|
+
if (typeof serverEntry.command === "string") {
|
|
156
|
+
server.command = serverEntry.command;
|
|
157
|
+
}
|
|
158
|
+
if (Array.isArray(serverEntry.args)) {
|
|
159
|
+
server.args = serverEntry.args;
|
|
160
|
+
}
|
|
161
|
+
if (isPlainObject(serverEntry.env)) {
|
|
162
|
+
server.env = serverEntry.env;
|
|
163
|
+
}
|
|
164
|
+
if (isPlainObject(serverEntry.headers)) {
|
|
165
|
+
server.headers = serverEntry.headers;
|
|
166
|
+
}
|
|
167
|
+
if (typeof serverEntry.transport === "string") {
|
|
168
|
+
server.transport = serverEntry.transport;
|
|
169
|
+
}
|
|
170
|
+
servers.push(server);
|
|
171
|
+
}
|
|
172
|
+
return servers;
|
|
173
|
+
}
|
|
174
|
+
function isPlainObject(value) {
|
|
175
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Read and parse a config file.
|
|
179
|
+
*/
|
|
180
|
+
function readConfigFile(filePath) {
|
|
181
|
+
try {
|
|
182
|
+
if (!fs.existsSync(filePath)) {
|
|
183
|
+
return { data: null };
|
|
184
|
+
}
|
|
185
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
186
|
+
const data = JSON.parse(content);
|
|
187
|
+
return { data };
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
return {
|
|
191
|
+
data: null,
|
|
192
|
+
error: err instanceof Error ? err.message : "Unknown parse error",
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// ============================================================================
|
|
197
|
+
// Main Discovery Function
|
|
198
|
+
// ============================================================================
|
|
199
|
+
/**
|
|
200
|
+
* Discover all MCP server configurations from known sources.
|
|
201
|
+
*
|
|
202
|
+
* @param projectDir - Optional project directory for project-level configs (defaults to cwd)
|
|
203
|
+
* @returns Discovery result with all found servers categorized by type
|
|
204
|
+
*/
|
|
205
|
+
export function discoverAllConfigs(projectDir) {
|
|
206
|
+
const configPaths = getConfigPaths(projectDir);
|
|
207
|
+
const sources = [];
|
|
208
|
+
const allServers = [];
|
|
209
|
+
for (const { type, name, path: configPath } of configPaths) {
|
|
210
|
+
const exists = fs.existsSync(configPath);
|
|
211
|
+
const source = {
|
|
212
|
+
type,
|
|
213
|
+
name,
|
|
214
|
+
path: configPath,
|
|
215
|
+
exists,
|
|
216
|
+
servers: [],
|
|
217
|
+
};
|
|
218
|
+
if (exists) {
|
|
219
|
+
const { data, error } = readConfigFile(configPath);
|
|
220
|
+
if (error) {
|
|
221
|
+
source.error = error;
|
|
222
|
+
}
|
|
223
|
+
else if (data) {
|
|
224
|
+
source.servers = parseMcpServers(data, type);
|
|
225
|
+
// Add to aggregate list
|
|
226
|
+
for (const server of source.servers) {
|
|
227
|
+
allServers.push({
|
|
228
|
+
...server,
|
|
229
|
+
source: type,
|
|
230
|
+
sourcePath: configPath,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
sources.push(source);
|
|
236
|
+
}
|
|
237
|
+
// Categorize servers
|
|
238
|
+
const httpServers = allServers.filter((s) => getServerType(s) === "http");
|
|
239
|
+
const stdioServers = allServers.filter((s) => getServerType(s) === "stdio");
|
|
240
|
+
const remoteServers = allServers.filter((s) => getServerType(s) === "remote");
|
|
241
|
+
return {
|
|
242
|
+
sources,
|
|
243
|
+
allServers,
|
|
244
|
+
httpServers,
|
|
245
|
+
stdioServers,
|
|
246
|
+
remoteServers,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Get a summary of discovered configs for display.
|
|
251
|
+
*/
|
|
252
|
+
export function getDiscoverySummary(result) {
|
|
253
|
+
const lines = [];
|
|
254
|
+
lines.push("MCP Configuration Discovery");
|
|
255
|
+
lines.push("===========================\n");
|
|
256
|
+
// Sources
|
|
257
|
+
lines.push("Config Sources:");
|
|
258
|
+
for (const source of result.sources) {
|
|
259
|
+
const status = source.exists
|
|
260
|
+
? source.error
|
|
261
|
+
? `⚠ error: ${source.error}`
|
|
262
|
+
: `✓ ${source.servers.length} server(s)`
|
|
263
|
+
: "- not found";
|
|
264
|
+
lines.push(` ${source.name.padEnd(22)} ${status}`);
|
|
265
|
+
if (source.exists && !source.error) {
|
|
266
|
+
lines.push(` ${formatPathForDisplay(source.path)}`);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
lines.push("");
|
|
270
|
+
// Server summary
|
|
271
|
+
lines.push("Server Summary:");
|
|
272
|
+
lines.push(` Total discovered: ${result.allServers.length}`);
|
|
273
|
+
lines.push(` HTTP (local): ${result.httpServers.length} (can proxy)`);
|
|
274
|
+
lines.push(` HTTP (remote): ${result.remoteServers.length} (can proxy)`);
|
|
275
|
+
lines.push(` Stdio: ${result.stdioServers.length} (not yet supported)`);
|
|
276
|
+
lines.push("");
|
|
277
|
+
// Detailed server list
|
|
278
|
+
if (result.allServers.length > 0) {
|
|
279
|
+
lines.push("Discovered Servers:");
|
|
280
|
+
for (const server of result.allServers) {
|
|
281
|
+
const type = getServerType(server);
|
|
282
|
+
const typeLabel = type === "remote" ? "remote" : type === "stdio" ? "stdio" : "http";
|
|
283
|
+
const canProxy = type !== "stdio" ? "✓" : "✗";
|
|
284
|
+
let endpoint = "";
|
|
285
|
+
if (server.url) {
|
|
286
|
+
endpoint = server.url;
|
|
287
|
+
}
|
|
288
|
+
else if (server.command) {
|
|
289
|
+
endpoint = `${server.command} ${(server.args ?? []).join(" ")}`.trim();
|
|
290
|
+
}
|
|
291
|
+
lines.push(` ${canProxy} ${server.key.padEnd(20)} [${typeLabel.padEnd(6)}] ${endpoint}`);
|
|
292
|
+
lines.push(` Source: ${getSourceLabel(server.source)}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return lines.join("\n");
|
|
296
|
+
}
|
|
297
|
+
function formatPathForDisplay(filePath) {
|
|
298
|
+
const home = os.homedir();
|
|
299
|
+
if (filePath.startsWith(home)) {
|
|
300
|
+
return "~" + filePath.slice(home.length);
|
|
301
|
+
}
|
|
302
|
+
return filePath;
|
|
303
|
+
}
|
|
304
|
+
function getSourceLabel(source) {
|
|
305
|
+
const labels = {
|
|
306
|
+
"claude-code-v2": "Claude Code (global)",
|
|
307
|
+
"claude-code-legacy": "Claude Code (legacy)",
|
|
308
|
+
cursor: "Cursor IDE",
|
|
309
|
+
"vscode-user": "VS Code (user)",
|
|
310
|
+
"project-claude": "Project (.claude)",
|
|
311
|
+
"project-cursor": "Project (.cursor)",
|
|
312
|
+
};
|
|
313
|
+
return labels[source] ?? source;
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=config-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-discovery.js","sourceRoot":"","sources":["../src/config-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/E,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/E,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAe,MAAM,aAAa,CAAC;AAC/E,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAe,MAAM,aAAa,CAAC;AAC/E,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|