agent-recorder 0.0.14 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-recorder",
3
- "version": "0.0.14",
3
+ "version": "1.0.0",
4
4
  "description": "Local-first flight recorder for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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;AAsCH,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"}
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":"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"}
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":"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"}
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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"}
@@ -13,4 +13,5 @@ export * from "./lockfile.js";
13
13
  export * from "./wrap-utils.js";
14
14
  export * from "./claude-config.js";
15
15
  export * from "./providers/index.js";
16
+ export * from "./config-discovery.js";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -13,4 +13,5 @@ export * from "./lockfile.js";
13
13
  export * from "./wrap-utils.js";
14
14
  export * from "./claude-config.js";
15
15
  export * from "./providers/index.js";
16
+ export * from "./config-discovery.js";
16
17
  //# sourceMappingURL=index.js.map
@@ -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"}