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.
Files changed (40) hide show
  1. package/README.md +80 -4
  2. package/dist/bin/mcp-compose.js +78 -20
  3. package/dist/bin/mcp-compose.js.map +1 -1
  4. package/dist/bin/mcp-gateway.js +92 -17
  5. package/dist/bin/mcp-gateway.js.map +1 -1
  6. package/dist/package.json +21 -3
  7. package/dist/src/command.d.ts +5 -1
  8. package/dist/src/command.d.ts.map +1 -1
  9. package/dist/src/command.js +24 -22
  10. package/dist/src/command.js.map +1 -1
  11. package/dist/src/config.d.ts +4 -1
  12. package/dist/src/config.d.ts.map +1 -1
  13. package/dist/src/config.js +20 -4
  14. package/dist/src/config.js.map +1 -1
  15. package/dist/src/gateway.d.ts +1 -0
  16. package/dist/src/gateway.d.ts.map +1 -1
  17. package/dist/src/gateway.js +2070 -222
  18. package/dist/src/gateway.js.map +1 -1
  19. package/dist/src/oauth.d.ts +27 -3
  20. package/dist/src/oauth.d.ts.map +1 -1
  21. package/dist/src/oauth.js +557 -78
  22. package/dist/src/oauth.js.map +1 -1
  23. package/dist/src/pm2-args.d.ts +2 -0
  24. package/dist/src/pm2-args.d.ts.map +1 -0
  25. package/dist/src/pm2-args.js +19 -0
  26. package/dist/src/pm2-args.js.map +1 -0
  27. package/dist/src/pm2.d.ts +3 -1
  28. package/dist/src/pm2.d.ts.map +1 -1
  29. package/dist/src/pm2.js +85 -75
  30. package/dist/src/pm2.js.map +1 -1
  31. package/dist/src/process-tree.d.ts +4 -0
  32. package/dist/src/process-tree.d.ts.map +1 -0
  33. package/dist/src/process-tree.js +81 -0
  34. package/dist/src/process-tree.js.map +1 -0
  35. package/dist/src/sync.d.ts.map +1 -1
  36. package/dist/src/sync.js +70 -4
  37. package/dist/src/sync.js.map +1 -1
  38. package/dist/src/types.d.ts +9 -0
  39. package/dist/src/types.d.ts.map +1 -1
  40. 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 { dirname } from 'path';
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: Object.keys(newServers),
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] = { url: server.url };
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: Object.keys(newServers),
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,
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
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.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
- "mcp-compose": "^0.0.5",
50
- "pm2": "^5.4.3",
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",