mcp-filter 1.0.0 → 1.0.2
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/CHANGELOG.md +5 -0
- package/README.md +23 -13
- package/dist/index.js +0 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +3 -1
- package/dist/logger.js.map +1 -1
- package/package.json +10 -9
- package/dist/core/config-loader.d.ts +0 -22
- package/dist/core/config-loader.d.ts.map +0 -1
- package/dist/core/config-loader.js +0 -308
- package/dist/core/config-loader.js.map +0 -1
- package/dist/core/config-schema.d.ts +0 -1363
- package/dist/core/config-schema.d.ts.map +0 -1
- package/dist/core/config-schema.js +0 -139
- package/dist/core/config-schema.js.map +0 -1
- package/dist/core/server-manager.d.ts +0 -51
- package/dist/core/server-manager.d.ts.map +0 -1
- package/dist/core/server-manager.js +0 -149
- package/dist/core/server-manager.js.map +0 -1
- package/dist/features/discovery/config-init.d.ts +0 -37
- package/dist/features/discovery/config-init.d.ts.map +0 -1
- package/dist/features/discovery/config-init.js +0 -95
- package/dist/features/discovery/config-init.js.map +0 -1
- package/dist/features/discovery/discovery-handler.d.ts +0 -128
- package/dist/features/discovery/discovery-handler.d.ts.map +0 -1
- package/dist/features/discovery/discovery-handler.js +0 -629
- package/dist/features/discovery/discovery-handler.js.map +0 -1
- package/dist/features/discovery/initialization.d.ts +0 -126
- package/dist/features/discovery/initialization.d.ts.map +0 -1
- package/dist/features/discovery/initialization.js +0 -314
- package/dist/features/discovery/initialization.js.map +0 -1
- package/dist/features/discovery/search-phase.d.ts +0 -19
- package/dist/features/discovery/search-phase.d.ts.map +0 -1
- package/dist/features/discovery/search-phase.js +0 -76
- package/dist/features/discovery/search-phase.js.map +0 -1
- package/dist/features/discovery/simple-rag.d.ts +0 -30
- package/dist/features/discovery/simple-rag.d.ts.map +0 -1
- package/dist/features/discovery/simple-rag.js +0 -85
- package/dist/features/discovery/simple-rag.js.map +0 -1
- package/dist/features/filtering/filter.d.ts +0 -18
- package/dist/features/filtering/filter.d.ts.map +0 -1
- package/dist/features/filtering/filter.js +0 -43
- package/dist/features/filtering/filter.js.map +0 -1
- package/dist/features/overrides/override-manager.d.ts +0 -25
- package/dist/features/overrides/override-manager.d.ts.map +0 -1
- package/dist/features/overrides/override-manager.js +0 -67
- package/dist/features/overrides/override-manager.js.map +0 -1
- package/dist/utils/debug-logger.d.ts +0 -2
- package/dist/utils/debug-logger.d.ts.map +0 -1
- package/dist/utils/debug-logger.js +0 -33
- package/dist/utils/debug-logger.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/core/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAOf,CAAC;AAEjB,eAAO,MAAM,aAAa;;;;;;;;;gCAGV,CAAC;AAGjB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBpC,CAAC;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAsBlB,CAAC;AAEjB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;gCAIlB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,OAAO,GACjB,sBAAsB,CA8DxB"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
/**
|
|
3
|
-
* Zod schemas for validating .mcp-filter.json config file
|
|
4
|
-
*/
|
|
5
|
-
export const ToolOverrideSchema = z.object({
|
|
6
|
-
description: z.string().optional(),
|
|
7
|
-
fullDescription: z.string().optional(),
|
|
8
|
-
brief: z.string().optional(),
|
|
9
|
-
argumentOverrides: z.record(z.string(), z.object({
|
|
10
|
-
description: z.string(),
|
|
11
|
-
})).optional(),
|
|
12
|
-
}).passthrough();
|
|
13
|
-
export const FiltersSchema = z.object({
|
|
14
|
-
include: z.array(z.string()).optional(),
|
|
15
|
-
exclude: z.array(z.string()).optional(),
|
|
16
|
-
}).passthrough();
|
|
17
|
-
// Cursor-compatible server config schema
|
|
18
|
-
export const CursorServerConfigSchema = z.object({
|
|
19
|
-
// Stdio transport (matches Cursor format)
|
|
20
|
-
command: z.string().optional(),
|
|
21
|
-
args: z.array(z.string()).optional(),
|
|
22
|
-
env: z.record(z.string(), z.string()).optional(),
|
|
23
|
-
// HTTP/SSE transport (matches Cursor format)
|
|
24
|
-
url: z.string().url().optional(),
|
|
25
|
-
headers: z.record(z.string(), z.string()).optional(),
|
|
26
|
-
// mcp-filter extensions
|
|
27
|
-
enabled: z.boolean().optional(),
|
|
28
|
-
filters: FiltersSchema.optional(),
|
|
29
|
-
toolOverrides: z.record(z.string(), ToolOverrideSchema).optional(),
|
|
30
|
-
initialized: z.boolean().optional(),
|
|
31
|
-
}).refine((data) => {
|
|
32
|
-
// Must have either command (stdio) or url (HTTP/SSE), but not both
|
|
33
|
-
const hasCommand = !!data.command;
|
|
34
|
-
const hasUrl = !!data.url;
|
|
35
|
-
return hasCommand !== hasUrl; // XOR: exactly one must be true
|
|
36
|
-
}, {
|
|
37
|
-
message: "Server config must have either 'command' (for stdio) or 'url' (for HTTP/SSE), but not both",
|
|
38
|
-
});
|
|
39
|
-
// Old format server config schema (backward compatibility)
|
|
40
|
-
export const OldServerConfigSchema = z.object({
|
|
41
|
-
enabled: z.boolean().optional(),
|
|
42
|
-
transport: z.union([
|
|
43
|
-
z.object({
|
|
44
|
-
type: z.literal("stdio"),
|
|
45
|
-
command: z.array(z.string()).min(1),
|
|
46
|
-
env: z.record(z.string(), z.string()).optional(),
|
|
47
|
-
}),
|
|
48
|
-
z.object({
|
|
49
|
-
type: z.literal("http"),
|
|
50
|
-
url: z.string().url(),
|
|
51
|
-
headers: z.record(z.string(), z.string()).optional(),
|
|
52
|
-
}),
|
|
53
|
-
z.object({
|
|
54
|
-
type: z.literal("sse"),
|
|
55
|
-
url: z.string().url(),
|
|
56
|
-
headers: z.record(z.string(), z.string()).optional(),
|
|
57
|
-
}),
|
|
58
|
-
]),
|
|
59
|
-
filters: FiltersSchema.optional(),
|
|
60
|
-
toolOverrides: z.record(z.string(), ToolOverrideSchema).optional(),
|
|
61
|
-
initialized: z.boolean().optional(),
|
|
62
|
-
}).passthrough();
|
|
63
|
-
export const DiscoveryConfigSchema = z.object({
|
|
64
|
-
enabled: z.boolean().optional(),
|
|
65
|
-
searchMode: z.enum(["phase", "rag", "both"]).optional(),
|
|
66
|
-
ragEnabled: z.boolean().optional(),
|
|
67
|
-
}).passthrough();
|
|
68
|
-
export const ConfigFileSchema = z.object({
|
|
69
|
-
version: z.string().optional(),
|
|
70
|
-
mcpServers: z.record(z.string(), CursorServerConfigSchema).optional(),
|
|
71
|
-
servers: z.record(z.string(), OldServerConfigSchema).optional(),
|
|
72
|
-
discovery: DiscoveryConfigSchema.optional(),
|
|
73
|
-
}).refine((data) => {
|
|
74
|
-
// Must have at least one of mcpServers or servers
|
|
75
|
-
return !!(data.mcpServers || data.servers);
|
|
76
|
-
}, {
|
|
77
|
-
message: "Config file must have either 'mcpServers' or 'servers' object",
|
|
78
|
-
path: ["mcpServers"], // Error path for better UX
|
|
79
|
-
});
|
|
80
|
-
/**
|
|
81
|
-
* Validate config file with Zod, but don't throw - return errors
|
|
82
|
-
*/
|
|
83
|
-
export function validateConfigWithZod(rawConfig) {
|
|
84
|
-
const result = ConfigFileSchema.safeParse(rawConfig);
|
|
85
|
-
if (result.success) {
|
|
86
|
-
return {
|
|
87
|
-
valid: true,
|
|
88
|
-
config: result.data,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
// Format errors for LLM-friendly display with better field paths and type information
|
|
92
|
-
const formattedErrors = result.error.errors.map((err) => {
|
|
93
|
-
// Build field path (e.g., "mcpServers.server1.url")
|
|
94
|
-
const path = err.path.length > 0 ? err.path.join(".") : "root";
|
|
95
|
-
let message = `${path}: ${err.message}`;
|
|
96
|
-
// Add helpful context for common errors
|
|
97
|
-
if (err.code === "invalid_type") {
|
|
98
|
-
message += ` (expected ${err.expected}, got ${err.received})`;
|
|
99
|
-
}
|
|
100
|
-
if (err.code === "invalid_enum_value") {
|
|
101
|
-
message += ` (allowed values: ${err.options?.join(", ")})`;
|
|
102
|
-
}
|
|
103
|
-
if (err.code === "invalid_string") {
|
|
104
|
-
if (err.validation === "url") {
|
|
105
|
-
message += ` (must be a valid URL)`;
|
|
106
|
-
}
|
|
107
|
-
else if (err.validation === "email") {
|
|
108
|
-
message += ` (must be a valid email)`;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (err.code === "too_small") {
|
|
112
|
-
if (err.type === "array") {
|
|
113
|
-
message += ` (array must have at least ${err.minimum} element(s))`;
|
|
114
|
-
}
|
|
115
|
-
else if (err.type === "string") {
|
|
116
|
-
message += ` (string must be at least ${err.minimum} character(s))`;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (err.code === "too_big") {
|
|
120
|
-
if (err.type === "array") {
|
|
121
|
-
message += ` (array must have at most ${err.maximum} element(s))`;
|
|
122
|
-
}
|
|
123
|
-
else if (err.type === "string") {
|
|
124
|
-
message += ` (string must be at most ${err.maximum} character(s))`;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
// Add custom message from refine if available
|
|
128
|
-
if (err.code === "custom" && err.message) {
|
|
129
|
-
message = `${path}: ${err.message}`;
|
|
130
|
-
}
|
|
131
|
-
return message;
|
|
132
|
-
});
|
|
133
|
-
return {
|
|
134
|
-
valid: false,
|
|
135
|
-
errors: result.error,
|
|
136
|
-
formattedErrors,
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
//# sourceMappingURL=config-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/core/config-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
2
|
-
import { ServerConfig } from "../types.js";
|
|
3
|
-
import { Filter } from "../features/filtering/filter.js";
|
|
4
|
-
import { OverrideManager } from "../features/overrides/override-manager.js";
|
|
5
|
-
import { InitializationTracker } from "../features/discovery/initialization.js";
|
|
6
|
-
export interface ManagedServer {
|
|
7
|
-
id: string;
|
|
8
|
-
config: ServerConfig;
|
|
9
|
-
client: Client;
|
|
10
|
-
filter: Filter;
|
|
11
|
-
overrides: OverrideManager;
|
|
12
|
-
connected: boolean;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Manages multiple upstream MCP servers
|
|
16
|
-
*/
|
|
17
|
-
export declare class ServerManager {
|
|
18
|
-
private servers;
|
|
19
|
-
private initializationTracker;
|
|
20
|
-
private overrideManager;
|
|
21
|
-
constructor(initializationTracker: InitializationTracker, overrideManager: OverrideManager);
|
|
22
|
-
/**
|
|
23
|
-
* Add a server configuration
|
|
24
|
-
*/
|
|
25
|
-
addServer(id: string, config: ServerConfig): void;
|
|
26
|
-
/**
|
|
27
|
-
* Connect to a server
|
|
28
|
-
*/
|
|
29
|
-
connectServer(id: string): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Get a managed server
|
|
32
|
-
*/
|
|
33
|
-
getServer(id: string): ManagedServer | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* Get all managed servers
|
|
36
|
-
*/
|
|
37
|
-
getAllServers(): ManagedServer[];
|
|
38
|
-
/**
|
|
39
|
-
* Get enabled servers
|
|
40
|
-
*/
|
|
41
|
-
getEnabledServers(): ManagedServer[];
|
|
42
|
-
/**
|
|
43
|
-
* Disconnect from a server
|
|
44
|
-
*/
|
|
45
|
-
disconnectServer(id: string): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Disconnect from all servers
|
|
48
|
-
*/
|
|
49
|
-
disconnectAll(): Promise<void>;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=server-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../../src/core/server-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAGhF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,eAAe,CAAkB;gBAGvC,qBAAqB,EAAE,qBAAqB,EAC5C,eAAe,EAAE,eAAe;IAMlC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAgCjD;;OAEG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D9C;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD;;OAEG;IACH,aAAa,IAAI,aAAa,EAAE;IAIhC;;OAEG;IACH,iBAAiB,IAAI,aAAa,EAAE;IAMpC;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAQrC"}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
2
|
-
import { createClientTransport } from "../transport.js";
|
|
3
|
-
import { Filter } from "../features/filtering/filter.js";
|
|
4
|
-
import { logger } from "../logger.js";
|
|
5
|
-
/**
|
|
6
|
-
* Manages multiple upstream MCP servers
|
|
7
|
-
*/
|
|
8
|
-
export class ServerManager {
|
|
9
|
-
servers = new Map();
|
|
10
|
-
initializationTracker;
|
|
11
|
-
overrideManager;
|
|
12
|
-
constructor(initializationTracker, overrideManager) {
|
|
13
|
-
this.initializationTracker = initializationTracker;
|
|
14
|
-
this.overrideManager = overrideManager;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Add a server configuration
|
|
18
|
-
*/
|
|
19
|
-
addServer(id, config) {
|
|
20
|
-
if (this.servers.has(id)) {
|
|
21
|
-
throw new Error(`Server '${id}' already exists`);
|
|
22
|
-
}
|
|
23
|
-
const filter = Filter.fromConfig(config.filters);
|
|
24
|
-
const client = new Client({
|
|
25
|
-
name: `mcp-filter-client-${id}`,
|
|
26
|
-
version: "0.6.0",
|
|
27
|
-
}, {
|
|
28
|
-
capabilities: {},
|
|
29
|
-
});
|
|
30
|
-
// Load overrides for this server
|
|
31
|
-
this.overrideManager.loadOverrides(id, config);
|
|
32
|
-
const managedServer = {
|
|
33
|
-
id,
|
|
34
|
-
config,
|
|
35
|
-
client,
|
|
36
|
-
filter,
|
|
37
|
-
overrides: this.overrideManager,
|
|
38
|
-
connected: false,
|
|
39
|
-
};
|
|
40
|
-
this.servers.set(id, managedServer);
|
|
41
|
-
logger.info(`Added server configuration: ${id}`);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Connect to a server
|
|
45
|
-
*/
|
|
46
|
-
async connectServer(id) {
|
|
47
|
-
// #region agent log
|
|
48
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:72', message: 'connectServer called', data: { serverId: id, serverExists: !!this.servers.get(id), alreadyConnected: this.servers.get(id)?.connected, isInitialized: this.initializationTracker.isInitialized(id) }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'B' }) }).catch(() => { });
|
|
49
|
-
// #endregion
|
|
50
|
-
const server = this.servers.get(id);
|
|
51
|
-
if (!server) {
|
|
52
|
-
// #region agent log
|
|
53
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:75', message: 'server not found', data: { serverId: id }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'B' }) }).catch(() => { });
|
|
54
|
-
// #endregion
|
|
55
|
-
throw new Error(`Server '${id}' not found`);
|
|
56
|
-
}
|
|
57
|
-
if (server.connected) {
|
|
58
|
-
// Verify connection is still valid by checking if initialized
|
|
59
|
-
if (this.initializationTracker.isInitialized(id)) {
|
|
60
|
-
// #region agent log
|
|
61
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:81', message: 'server already connected and initialized', data: { serverId: id }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'B' }) }).catch(() => { });
|
|
62
|
-
// #endregion
|
|
63
|
-
logger.info(`Server '${id}' already connected`);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
// Server marked as connected but not initialized - reset and reconnect
|
|
67
|
-
// #region agent log
|
|
68
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:85', message: 'server connected but not initialized, resetting', data: { serverId: id }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'C' }) }).catch(() => { });
|
|
69
|
-
// #endregion
|
|
70
|
-
logger.warn(`Server '${id}' marked as connected but not initialized, reconnecting...`);
|
|
71
|
-
try {
|
|
72
|
-
await server.client.close();
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
// Ignore close errors
|
|
76
|
-
}
|
|
77
|
-
server.connected = false;
|
|
78
|
-
}
|
|
79
|
-
// #region agent log
|
|
80
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:93', message: 'creating transport and connecting', data: { serverId: id, transportType: server.config.transport.type }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'B' }) }).catch(() => { });
|
|
81
|
-
// #endregion
|
|
82
|
-
const transport = createClientTransport(server.config.transport);
|
|
83
|
-
try {
|
|
84
|
-
await server.client.connect(transport);
|
|
85
|
-
// #region agent log
|
|
86
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:96', message: 'client.connect succeeded', data: { serverId: id }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'B' }) }).catch(() => { });
|
|
87
|
-
// #endregion
|
|
88
|
-
server.connected = true;
|
|
89
|
-
// #region agent log
|
|
90
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:98', message: 'marking as initialized', data: { serverId: id, beforeMark: this.initializationTracker.isInitialized(id) }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'C' }) }).catch(() => { });
|
|
91
|
-
// #endregion
|
|
92
|
-
this.initializationTracker.markInitialized(id);
|
|
93
|
-
// #region agent log
|
|
94
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:100', message: 'marked as initialized', data: { serverId: id, afterMark: this.initializationTracker.isInitialized(id) }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'C' }) }).catch(() => { });
|
|
95
|
-
// #endregion
|
|
96
|
-
logger.success(`Connected to server: ${id}`);
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
// #region agent log
|
|
100
|
-
fetch('http://127.0.0.1:7243/ingest/198b6a8b-7e4f-4c81-a922-32b1e2e171c8', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'server-manager.ts:103', message: 'client.connect failed', data: { serverId: id, errorMessage: error instanceof Error ? error.message : String(error), errorStack: error instanceof Error ? error.stack : undefined }, timestamp: Date.now(), sessionId: 'debug-session', runId: 'run1', hypothesisId: 'B' }) }).catch(() => { });
|
|
101
|
-
// #endregion
|
|
102
|
-
throw error;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Get a managed server
|
|
107
|
-
*/
|
|
108
|
-
getServer(id) {
|
|
109
|
-
return this.servers.get(id);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Get all managed servers
|
|
113
|
-
*/
|
|
114
|
-
getAllServers() {
|
|
115
|
-
return Array.from(this.servers.values());
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Get enabled servers
|
|
119
|
-
*/
|
|
120
|
-
getEnabledServers() {
|
|
121
|
-
return this.getAllServers().filter((server) => server.config.enabled !== false);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Disconnect from a server
|
|
125
|
-
*/
|
|
126
|
-
async disconnectServer(id) {
|
|
127
|
-
const server = this.servers.get(id);
|
|
128
|
-
if (!server) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
if (server.connected) {
|
|
132
|
-
await server.client.close();
|
|
133
|
-
server.connected = false;
|
|
134
|
-
logger.info(`Disconnected from server: ${id}`);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Disconnect from all servers
|
|
139
|
-
*/
|
|
140
|
-
async disconnectAll() {
|
|
141
|
-
for (const server of this.servers.values()) {
|
|
142
|
-
if (server.connected) {
|
|
143
|
-
await server.client.close();
|
|
144
|
-
server.connected = false;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=server-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../../src/core/server-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAWtC;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC3C,qBAAqB,CAAwB;IAC7C,eAAe,CAAkB;IAEzC,YACE,qBAA4C,EAC5C,eAAgC;QAEhC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,EAAU,EAAE,MAAoB;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;YACE,IAAI,EAAE,qBAAqB,EAAE,EAAE;YAC/B,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE,EAAE;SACjB,CACF,CAAC;QAEF,iCAAiC;QACjC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAkB;YACnC,EAAE;YACF,MAAM;YACN,MAAM;YACN,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,eAAe;YAC/B,SAAS,EAAE,KAAK;SACjB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,oBAAoB;QACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,sBAAsB,EAAC,OAAO,EAAC,sBAAsB,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,YAAY,EAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,gBAAgB,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,SAAS,EAAC,aAAa,EAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;QAC3d,aAAa;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,oBAAoB;YACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,sBAAsB,EAAC,OAAO,EAAC,kBAAkB,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;YACvU,aAAa;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,8DAA8D;YAC9D,IAAI,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjD,oBAAoB;gBACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,sBAAsB,EAAC,OAAO,EAAC,0CAA0C,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;gBAC/V,aAAa;gBACb,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,uEAAuE;YACvE,oBAAoB;YACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,sBAAsB,EAAC,OAAO,EAAC,iDAAiD,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;YACtW,aAAa;YACb,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,4DAA4D,CAAC,CAAC;YACvF,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;YACD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,oBAAoB;QACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,sBAAsB,EAAC,OAAO,EAAC,mCAAmC,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,aAAa,EAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;QACnY,aAAa;QACb,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvC,oBAAoB;YACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,sBAAsB,EAAC,OAAO,EAAC,0BAA0B,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;YAC/U,aAAa;YACb,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,oBAAoB;YACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,sBAAsB,EAAC,OAAO,EAAC,wBAAwB,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,UAAU,EAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;YACrY,aAAa;YACb,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC/C,oBAAoB;YACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,uBAAuB,EAAC,OAAO,EAAC,uBAAuB,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,SAAS,EAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;YACpY,aAAa;YACb,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oBAAoB;YACpB,KAAK,CAAC,mEAAmE,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAC,uBAAuB,EAAC,OAAO,EAAC,uBAAuB,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,YAAY,EAAC,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,CAAC,EAAC,UAAU,EAAC,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,KAAK,CAAA,CAAC,CAAA,SAAS,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;YACrc,aAAa;YACb,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { TransportConfig } from "../../types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Handles initialization and creation of config file
|
|
4
|
-
*/
|
|
5
|
-
export declare class ConfigInitializer {
|
|
6
|
-
/**
|
|
7
|
-
* Convert internal TransportConfig to Cursor format
|
|
8
|
-
*/
|
|
9
|
-
private convertTransportToCursorFormat;
|
|
10
|
-
/**
|
|
11
|
-
* Create or update config file from discovered servers (in Cursor format)
|
|
12
|
-
*/
|
|
13
|
-
initConfig(configPath: string, servers: Array<{
|
|
14
|
-
id: string;
|
|
15
|
-
transport: TransportConfig;
|
|
16
|
-
filters?: {
|
|
17
|
-
include?: string[];
|
|
18
|
-
exclude?: string[];
|
|
19
|
-
};
|
|
20
|
-
enabled?: boolean;
|
|
21
|
-
}>): Promise<{
|
|
22
|
-
success: boolean;
|
|
23
|
-
path: string;
|
|
24
|
-
serversCreated: number;
|
|
25
|
-
}>;
|
|
26
|
-
/**
|
|
27
|
-
* Create config file from CLI usage (for migration)
|
|
28
|
-
*/
|
|
29
|
-
initConfigFromCLI(configPath: string, transport: TransportConfig, patterns: Array<{
|
|
30
|
-
type: "include" | "exclude";
|
|
31
|
-
pattern: string;
|
|
32
|
-
}>): Promise<{
|
|
33
|
-
success: boolean;
|
|
34
|
-
path: string;
|
|
35
|
-
}>;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=config-init.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-init.d.ts","sourceRoot":"","sources":["../../../src/features/discovery/config-init.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,eAAe,EAAsB,MAAM,gBAAgB,CAAC;AAG/F;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAoBtC;;OAEG;IACG,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,eAAe,CAAC;QAC3B,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QACrD,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,GACD,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAyCtE;;OAEG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAChE,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAqB/C"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { writeFileSync } from "fs";
|
|
2
|
-
import { resolve } from "path";
|
|
3
|
-
import { logger } from "../../logger.js";
|
|
4
|
-
/**
|
|
5
|
-
* Handles initialization and creation of config file
|
|
6
|
-
*/
|
|
7
|
-
export class ConfigInitializer {
|
|
8
|
-
/**
|
|
9
|
-
* Convert internal TransportConfig to Cursor format
|
|
10
|
-
*/
|
|
11
|
-
convertTransportToCursorFormat(transport) {
|
|
12
|
-
if (transport.type === "stdio") {
|
|
13
|
-
const stdioTransport = transport;
|
|
14
|
-
const [command, ...args] = stdioTransport.command;
|
|
15
|
-
return {
|
|
16
|
-
command,
|
|
17
|
-
args: args.length > 0 ? args : undefined,
|
|
18
|
-
env: stdioTransport.env,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
else if (transport.type === "http" || transport.type === "sse") {
|
|
22
|
-
const httpTransport = transport;
|
|
23
|
-
return {
|
|
24
|
-
url: httpTransport.url,
|
|
25
|
-
headers: httpTransport.headers,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
const _exhaustive = transport;
|
|
29
|
-
throw new Error(`Unsupported transport type: ${_exhaustive.type}`);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Create or update config file from discovered servers (in Cursor format)
|
|
33
|
-
*/
|
|
34
|
-
async initConfig(configPath, servers) {
|
|
35
|
-
const fullPath = resolve(process.cwd(), configPath);
|
|
36
|
-
// Build config file structure in Cursor format
|
|
37
|
-
const config = {
|
|
38
|
-
version: "1.0",
|
|
39
|
-
mcpServers: {},
|
|
40
|
-
discovery: {
|
|
41
|
-
enabled: true,
|
|
42
|
-
searchMode: "phase",
|
|
43
|
-
ragEnabled: false,
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
// Add servers to config in Cursor format
|
|
47
|
-
for (const server of servers) {
|
|
48
|
-
const cursorConfig = {
|
|
49
|
-
enabled: server.enabled !== false,
|
|
50
|
-
filters: server.filters,
|
|
51
|
-
initialized: false,
|
|
52
|
-
...this.convertTransportToCursorFormat(server.transport),
|
|
53
|
-
};
|
|
54
|
-
config.mcpServers[server.id] = cursorConfig;
|
|
55
|
-
}
|
|
56
|
-
// Write config file
|
|
57
|
-
try {
|
|
58
|
-
writeFileSync(fullPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
59
|
-
logger.info(`Created config file: ${fullPath}`);
|
|
60
|
-
return {
|
|
61
|
-
success: true,
|
|
62
|
-
path: fullPath,
|
|
63
|
-
serversCreated: servers.length,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
throw new Error(`Failed to write config file to ${fullPath}: ${error}`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Create config file from CLI usage (for migration)
|
|
72
|
-
*/
|
|
73
|
-
async initConfigFromCLI(configPath, transport, patterns) {
|
|
74
|
-
const filters = {};
|
|
75
|
-
for (const pattern of patterns) {
|
|
76
|
-
if (pattern.type === "include") {
|
|
77
|
-
filters.include = filters.include || [];
|
|
78
|
-
filters.include.push(pattern.pattern);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
filters.exclude = filters.exclude || [];
|
|
82
|
-
filters.exclude.push(pattern.pattern);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return await this.initConfig(configPath, [
|
|
86
|
-
{
|
|
87
|
-
id: "default",
|
|
88
|
-
transport,
|
|
89
|
-
filters: Object.keys(filters).length > 0 ? filters : undefined,
|
|
90
|
-
enabled: true,
|
|
91
|
-
},
|
|
92
|
-
]);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=config-init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-init.js","sourceRoot":"","sources":["../../../src/features/discovery/config-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
-
import { ServerManager } from "../../core/server-manager.js";
|
|
3
|
-
import { InitializationTracker } from "./initialization.js";
|
|
4
|
-
import { OverrideManager } from "../overrides/override-manager.js";
|
|
5
|
-
import { ConfigValidationResult } from "../../core/config-schema.js";
|
|
6
|
-
export interface DiscoverToolsParams {
|
|
7
|
-
query?: string;
|
|
8
|
-
serverId?: string;
|
|
9
|
-
initialized?: boolean;
|
|
10
|
-
limit?: number;
|
|
11
|
-
}
|
|
12
|
-
export interface DiscoveredTool {
|
|
13
|
-
name: string;
|
|
14
|
-
serverId: string;
|
|
15
|
-
description: string;
|
|
16
|
-
initialized: boolean;
|
|
17
|
-
arguments?: Array<{
|
|
18
|
-
name: string;
|
|
19
|
-
description: string;
|
|
20
|
-
}>;
|
|
21
|
-
}
|
|
22
|
-
export interface DiscoverToolsResponse {
|
|
23
|
-
tools: DiscoveredTool[];
|
|
24
|
-
servers: Array<{
|
|
25
|
-
id: string;
|
|
26
|
-
initialized: boolean;
|
|
27
|
-
toolCount: number;
|
|
28
|
-
short_description?: string;
|
|
29
|
-
methodNames?: string[];
|
|
30
|
-
}>;
|
|
31
|
-
summary?: {
|
|
32
|
-
totalTools: number;
|
|
33
|
-
searchEnabled: boolean;
|
|
34
|
-
message: string;
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Handles discovery-related MCP methods
|
|
39
|
-
*/
|
|
40
|
-
export declare class DiscoveryHandler {
|
|
41
|
-
private serverManager;
|
|
42
|
-
private initializationTracker;
|
|
43
|
-
private overrideManager;
|
|
44
|
-
private searchPhase;
|
|
45
|
-
private simpleRAG;
|
|
46
|
-
private configInitializer;
|
|
47
|
-
private validationErrors?;
|
|
48
|
-
constructor(serverManager: ServerManager, initializationTracker: InitializationTracker, overrideManager: OverrideManager, validationErrors?: ConfigValidationResult);
|
|
49
|
-
/**
|
|
50
|
-
* Register discovery methods with the MCP server
|
|
51
|
-
*/
|
|
52
|
-
registerHandlers(server: Server): void;
|
|
53
|
-
/**
|
|
54
|
-
* Call a specific tool from an upstream MCP server
|
|
55
|
-
*/
|
|
56
|
-
callTool(params: {
|
|
57
|
-
toolName: string;
|
|
58
|
-
toolArguments?: Record<string, any>;
|
|
59
|
-
serverId?: string;
|
|
60
|
-
}): Promise<any>;
|
|
61
|
-
/**
|
|
62
|
-
* Discover tools across all configured servers
|
|
63
|
-
*/
|
|
64
|
-
discoverTools(params: DiscoverToolsParams): Promise<DiscoverToolsResponse>;
|
|
65
|
-
/**
|
|
66
|
-
* Single unified method: returns initialization instructions if not initialized,
|
|
67
|
-
* or returns tool summaries from config if initialized
|
|
68
|
-
*/
|
|
69
|
-
init(configPath?: string, servers?: Array<{
|
|
70
|
-
id: string;
|
|
71
|
-
transport: any;
|
|
72
|
-
filters?: {
|
|
73
|
-
include?: string[];
|
|
74
|
-
exclude?: string[];
|
|
75
|
-
};
|
|
76
|
-
enabled?: boolean;
|
|
77
|
-
}>): Promise<{
|
|
78
|
-
initialized: false;
|
|
79
|
-
instructions: {
|
|
80
|
-
summary: string;
|
|
81
|
-
role?: string;
|
|
82
|
-
goal?: string;
|
|
83
|
-
context?: string;
|
|
84
|
-
servers?: string[];
|
|
85
|
-
steps: Array<{
|
|
86
|
-
step: number;
|
|
87
|
-
action: string;
|
|
88
|
-
reason?: string;
|
|
89
|
-
note?: string;
|
|
90
|
-
}>;
|
|
91
|
-
important: string;
|
|
92
|
-
validationErrors?: {
|
|
93
|
-
message: string;
|
|
94
|
-
errors: string[];
|
|
95
|
-
help: string;
|
|
96
|
-
};
|
|
97
|
-
toolOverrides?: {
|
|
98
|
-
note: string;
|
|
99
|
-
example: string;
|
|
100
|
-
};
|
|
101
|
-
};
|
|
102
|
-
} | {
|
|
103
|
-
initialized: true;
|
|
104
|
-
summary: {
|
|
105
|
-
totalTools: number;
|
|
106
|
-
connectedServers: Array<{
|
|
107
|
-
id: string;
|
|
108
|
-
short_description?: string;
|
|
109
|
-
toolCount: number;
|
|
110
|
-
methodNames?: string[];
|
|
111
|
-
}>;
|
|
112
|
-
erroredServers: Array<{
|
|
113
|
-
id: string;
|
|
114
|
-
short_description?: string;
|
|
115
|
-
error?: string;
|
|
116
|
-
}>;
|
|
117
|
-
};
|
|
118
|
-
descriptionPrompt: {
|
|
119
|
-
role: string;
|
|
120
|
-
goal: string;
|
|
121
|
-
context: string;
|
|
122
|
-
examples: string[];
|
|
123
|
-
};
|
|
124
|
-
searchEnabled: boolean;
|
|
125
|
-
message: string;
|
|
126
|
-
}>;
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=discovery-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-handler.d.ts","sourceRoot":"","sources":["../../../src/features/discovery/discovery-handler.ts"],"names":[],"mappings":"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"}
|