mcp-compose 0.3.0 → 0.4.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/README.md +80 -4
- package/dist/bin/mcp-compose.js +78 -20
- package/dist/bin/mcp-compose.js.map +1 -1
- package/dist/bin/mcp-gateway.js +92 -17
- package/dist/bin/mcp-gateway.js.map +1 -1
- package/dist/package.json +21 -3
- package/dist/src/command.d.ts +5 -1
- package/dist/src/command.d.ts.map +1 -1
- package/dist/src/command.js +24 -22
- package/dist/src/command.js.map +1 -1
- package/dist/src/config.d.ts +4 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +20 -4
- package/dist/src/config.js.map +1 -1
- package/dist/src/gateway.d.ts +1 -0
- package/dist/src/gateway.d.ts.map +1 -1
- package/dist/src/gateway.js +2070 -222
- package/dist/src/gateway.js.map +1 -1
- package/dist/src/oauth.d.ts +27 -3
- package/dist/src/oauth.d.ts.map +1 -1
- package/dist/src/oauth.js +557 -78
- package/dist/src/oauth.js.map +1 -1
- package/dist/src/pm2-args.d.ts +2 -0
- package/dist/src/pm2-args.d.ts.map +1 -0
- package/dist/src/pm2-args.js +19 -0
- package/dist/src/pm2-args.js.map +1 -0
- package/dist/src/pm2.d.ts +3 -1
- package/dist/src/pm2.d.ts.map +1 -1
- package/dist/src/pm2.js +85 -75
- package/dist/src/pm2.js.map +1 -1
- package/dist/src/process-tree.d.ts +4 -0
- package/dist/src/process-tree.d.ts.map +1 -0
- package/dist/src/process-tree.js +81 -0
- package/dist/src/process-tree.js.map +1 -0
- package/dist/src/sync.d.ts.map +1 -1
- package/dist/src/sync.js +70 -4
- package/dist/src/sync.js.map +1 -1
- package/dist/src/types.d.ts +9 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +21 -3
package/dist/src/sync.js
CHANGED
|
@@ -1,6 +1,44 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
|
|
2
|
-
import {
|
|
2
|
+
import { homedir } from 'os';
|
|
3
|
+
import { dirname, join } from 'path';
|
|
3
4
|
import { parse as parseToml, stringify as stringifyToml } from 'smol-toml';
|
|
5
|
+
// Names written on the previous sync, per target file. Without this record a server deleted
|
|
6
|
+
// from the config leaves no trace, and its entry would sit in the client config forever.
|
|
7
|
+
const SYNC_STATE_PATH = join(homedir(), '.mcp-compose', 'sync-state.json');
|
|
8
|
+
function readSyncState() {
|
|
9
|
+
if (!existsSync(SYNC_STATE_PATH)) {
|
|
10
|
+
return { targets: {} };
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
const parsed = JSON.parse(readFileSync(SYNC_STATE_PATH, 'utf-8'));
|
|
14
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
15
|
+
return { targets: {} };
|
|
16
|
+
}
|
|
17
|
+
const targets = parsed.targets;
|
|
18
|
+
return { targets: typeof targets === 'object' ? targets : {} };
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return { targets: {} };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function readSyncedNames(targetPath) {
|
|
25
|
+
return readSyncState().targets[targetPath] ?? [];
|
|
26
|
+
}
|
|
27
|
+
function writeSyncedNames(targetPath, names) {
|
|
28
|
+
const state = readSyncState();
|
|
29
|
+
state.targets[targetPath] = names;
|
|
30
|
+
mkdirSync(dirname(SYNC_STATE_PATH), { recursive: true });
|
|
31
|
+
writeFileSync(SYNC_STATE_PATH, JSON.stringify(state, null, 2) + '\n');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Entries mcp-compose owns but no longer writes: disabled in the config, or dropped from it
|
|
35
|
+
* since the last sync. Names it never wrote are left alone, so hand-added servers survive.
|
|
36
|
+
*/
|
|
37
|
+
function findStaleNames(targetPath, currentNames, disabledServers) {
|
|
38
|
+
const current = new Set(currentNames);
|
|
39
|
+
const owned = new Set([...readSyncedNames(targetPath), ...disabledServers]);
|
|
40
|
+
return [...owned].filter((name) => !current.has(name));
|
|
41
|
+
}
|
|
4
42
|
function generateClaudeConfig(config) {
|
|
5
43
|
const { mcpServers } = config;
|
|
6
44
|
const claudeConfig = {};
|
|
@@ -15,6 +53,7 @@ function generateClaudeConfig(config) {
|
|
|
15
53
|
claudeConfig[name] = {
|
|
16
54
|
type: server.type,
|
|
17
55
|
url: server.url,
|
|
56
|
+
...(Object.keys(server.headers).length > 0 && { headers: server.headers }),
|
|
18
57
|
};
|
|
19
58
|
}
|
|
20
59
|
}
|
|
@@ -37,16 +76,27 @@ export function syncToClaudeConfig(config) {
|
|
|
37
76
|
}
|
|
38
77
|
}
|
|
39
78
|
const newServers = generateClaudeConfig(config);
|
|
79
|
+
const serverNames = Object.keys(newServers);
|
|
40
80
|
const mergedConfig = { ...existingConfig };
|
|
41
81
|
mergedConfig.mcpServers = { ...(existingConfig.mcpServers ?? {}) };
|
|
42
82
|
for (const [name, serverConfig] of Object.entries(newServers)) {
|
|
43
83
|
mergedConfig.mcpServers[name] = serverConfig;
|
|
44
84
|
}
|
|
85
|
+
const removed = [];
|
|
86
|
+
for (const name of findStaleNames(claudeConfigPath, serverNames, config.disabledServers)) {
|
|
87
|
+
if (mergedConfig.mcpServers[name]) {
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
89
|
+
delete mergedConfig.mcpServers[name];
|
|
90
|
+
removed.push(name);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
45
93
|
writeFileSync(claudeConfigPath, JSON.stringify(mergedConfig, null, 2) + '\n');
|
|
94
|
+
writeSyncedNames(claudeConfigPath, serverNames);
|
|
46
95
|
return {
|
|
47
96
|
path: claudeConfigPath,
|
|
48
|
-
servers:
|
|
97
|
+
servers: serverNames,
|
|
49
98
|
merged: Object.keys(existingConfig.mcpServers ?? {}).length > 0,
|
|
99
|
+
removed,
|
|
50
100
|
};
|
|
51
101
|
}
|
|
52
102
|
export function removeFromClaudeConfig(config, serverNames = null) {
|
|
@@ -78,6 +128,7 @@ export function removeFromClaudeConfig(config, serverNames = null) {
|
|
|
78
128
|
}
|
|
79
129
|
}
|
|
80
130
|
writeFileSync(claudeConfigPath, JSON.stringify(existingConfig, null, 2) + '\n');
|
|
131
|
+
writeSyncedNames(claudeConfigPath, readSyncedNames(claudeConfigPath).filter((name) => !toRemove.includes(name)));
|
|
81
132
|
return {
|
|
82
133
|
path: claudeConfigPath,
|
|
83
134
|
removed,
|
|
@@ -94,7 +145,10 @@ function generateCodexConfig(config) {
|
|
|
94
145
|
};
|
|
95
146
|
}
|
|
96
147
|
else if (server.type === 'http') {
|
|
97
|
-
servers[name] = {
|
|
148
|
+
servers[name] = {
|
|
149
|
+
url: server.url,
|
|
150
|
+
...(Object.keys(server.headers).length > 0 && { http_headers: server.headers }),
|
|
151
|
+
};
|
|
98
152
|
}
|
|
99
153
|
else {
|
|
100
154
|
// codex's `url` field targets streamable HTTP only; SSE remotes need `proxy: true`
|
|
@@ -120,17 +174,28 @@ export function syncToCodexConfig(config) {
|
|
|
120
174
|
}
|
|
121
175
|
}
|
|
122
176
|
const { servers: newServers, skipped } = generateCodexConfig(config);
|
|
177
|
+
const serverNames = Object.keys(newServers);
|
|
123
178
|
const mergedConfig = { ...existingConfig };
|
|
124
179
|
mergedConfig.mcp_servers = { ...(existingConfig.mcp_servers ?? {}) };
|
|
125
180
|
for (const [name, serverConfig] of Object.entries(newServers)) {
|
|
126
181
|
mergedConfig.mcp_servers[name] = serverConfig;
|
|
127
182
|
}
|
|
183
|
+
const removed = [];
|
|
184
|
+
for (const name of findStaleNames(codexConfigPath, serverNames, config.disabledServers)) {
|
|
185
|
+
if (mergedConfig.mcp_servers[name]) {
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
187
|
+
delete mergedConfig.mcp_servers[name];
|
|
188
|
+
removed.push(name);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
128
191
|
mkdirSync(dirname(codexConfigPath), { recursive: true });
|
|
129
192
|
writeFileSync(codexConfigPath, stringifyToml(mergedConfig) + '\n');
|
|
193
|
+
writeSyncedNames(codexConfigPath, serverNames);
|
|
130
194
|
return {
|
|
131
195
|
path: codexConfigPath,
|
|
132
|
-
servers:
|
|
196
|
+
servers: serverNames,
|
|
133
197
|
merged: Object.keys(existingConfig.mcp_servers ?? {}).length > 0,
|
|
198
|
+
removed,
|
|
134
199
|
skipped,
|
|
135
200
|
};
|
|
136
201
|
}
|
|
@@ -163,6 +228,7 @@ export function removeFromCodexConfig(config, serverNames = null) {
|
|
|
163
228
|
}
|
|
164
229
|
}
|
|
165
230
|
writeFileSync(codexConfigPath, stringifyToml(existingConfig) + '\n');
|
|
231
|
+
writeSyncedNames(codexConfigPath, readSyncedNames(codexConfigPath).filter((name) => !toRemove.includes(name)));
|
|
166
232
|
return {
|
|
167
233
|
path: codexConfigPath,
|
|
168
234
|
removed,
|
package/dist/src/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -49,6 +49,7 @@ export interface StdioServer {
|
|
|
49
49
|
export interface RemoteServer {
|
|
50
50
|
type: 'sse' | 'http';
|
|
51
51
|
url: string;
|
|
52
|
+
headers: Record<string, string>;
|
|
52
53
|
}
|
|
53
54
|
export interface ProxyServer {
|
|
54
55
|
type: 'proxy';
|
|
@@ -64,6 +65,8 @@ export type NormalizedServer = StdioServer | RemoteServer | ProxyServer;
|
|
|
64
65
|
export interface NormalizedConfig {
|
|
65
66
|
settings: Settings;
|
|
66
67
|
mcpServers: Record<string, NormalizedServer>;
|
|
68
|
+
/** Names the config declares but skips. Still owned by mcp-compose, so synced entries must go. */
|
|
69
|
+
disabledServers: string[];
|
|
67
70
|
configPath: string | undefined;
|
|
68
71
|
}
|
|
69
72
|
export interface NamedStdioServer extends StdioServer {
|
|
@@ -72,6 +75,9 @@ export interface NamedStdioServer extends StdioServer {
|
|
|
72
75
|
export interface NamedProxyServer extends ProxyServer {
|
|
73
76
|
name: string;
|
|
74
77
|
}
|
|
78
|
+
export interface NamedRemoteServer extends RemoteServer {
|
|
79
|
+
name: string;
|
|
80
|
+
}
|
|
75
81
|
export type NamedManagedServer = NamedStdioServer | NamedProxyServer;
|
|
76
82
|
export interface GatewayCommand {
|
|
77
83
|
script: string;
|
|
@@ -95,6 +101,7 @@ export interface ServerStatus {
|
|
|
95
101
|
export interface ClaudeServerConfig {
|
|
96
102
|
type: 'sse' | 'http';
|
|
97
103
|
url: string;
|
|
104
|
+
headers?: Record<string, string>;
|
|
98
105
|
}
|
|
99
106
|
export interface ClaudeConfig {
|
|
100
107
|
mcpServers?: Record<string, ClaudeServerConfig>;
|
|
@@ -107,6 +114,7 @@ export interface CodexStdioServer {
|
|
|
107
114
|
}
|
|
108
115
|
export interface CodexHttpServer {
|
|
109
116
|
url: string;
|
|
117
|
+
http_headers?: Record<string, string>;
|
|
110
118
|
}
|
|
111
119
|
export type CodexServerConfig = CodexStdioServer | CodexHttpServer;
|
|
112
120
|
export interface CodexConfig {
|
|
@@ -117,6 +125,7 @@ export interface SyncResult {
|
|
|
117
125
|
path: string;
|
|
118
126
|
servers: string[];
|
|
119
127
|
merged: boolean;
|
|
128
|
+
removed: string[];
|
|
120
129
|
}
|
|
121
130
|
export interface RemoveResult {
|
|
122
131
|
path: string;
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,eAAe,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-compose",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "MCP server orchestration tool - manage multiple MCP servers with a single gateway",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"clean": "rm -rf dist",
|
|
24
24
|
"lint": "eslint src bin",
|
|
25
25
|
"lint:fix": "eslint src bin --fix",
|
|
26
|
+
"test": "npm run build && node --test test/*.test.mjs",
|
|
26
27
|
"typecheck": "tsc --noEmit",
|
|
27
28
|
"prepublishOnly": "npm run clean && npm run build",
|
|
28
29
|
"start": "node dist/bin/mcp-compose.js"
|
|
@@ -46,14 +47,31 @@
|
|
|
46
47
|
},
|
|
47
48
|
"dependencies": {
|
|
48
49
|
"commander": "^12.1.0",
|
|
49
|
-
"
|
|
50
|
-
"pm2": "^
|
|
50
|
+
"cross-spawn": "^7.0.6",
|
|
51
|
+
"pm2": "^7.0.4",
|
|
51
52
|
"smol-toml": "^1.6.1",
|
|
52
53
|
"string-env-interpolation": "^1.0.1",
|
|
53
54
|
"strip-json-comments": "^5.0.3"
|
|
54
55
|
},
|
|
56
|
+
"overrides": {
|
|
57
|
+
"pm2": {
|
|
58
|
+
"js-yaml": "^4.3.2",
|
|
59
|
+
"ws": "^8.21.0"
|
|
60
|
+
},
|
|
61
|
+
"ip-address": "^10.7.0",
|
|
62
|
+
"@humanfs/node": "0.16.8",
|
|
63
|
+
"minimatch": {
|
|
64
|
+
"brace-expansion": "1.1.18"
|
|
65
|
+
},
|
|
66
|
+
"@typescript-eslint/typescript-estree": {
|
|
67
|
+
"minimatch": {
|
|
68
|
+
"brace-expansion": "2.1.4"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
55
72
|
"devDependencies": {
|
|
56
73
|
"@eslint/js": "^9.39.2",
|
|
74
|
+
"@types/cross-spawn": "^6.0.6",
|
|
57
75
|
"@types/node": "^25.0.3",
|
|
58
76
|
"eslint": "^9.39.2",
|
|
59
77
|
"typescript": "^5.9.3",
|