mcp-compose 0.3.2 → 0.5.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 +93 -6
- package/dist/bin/mcp-compose.js +91 -41
- package/dist/bin/mcp-compose.js.map +1 -1
- package/dist/package.json +16 -4
- package/dist/src/config.d.ts +4 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +23 -3
- package/dist/src/config.js.map +1 -1
- package/dist/src/gateway.d.ts.map +1 -1
- package/dist/src/gateway.js +2059 -208
- package/dist/src/gateway.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.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/sync-clients.d.ts +5 -0
- package/dist/src/sync-clients.d.ts.map +1 -0
- package/dist/src/sync-clients.js +51 -0
- package/dist/src/sync-clients.js.map +1 -0
- package/dist/src/sync-deepseek.d.ts +16 -0
- package/dist/src/sync-deepseek.d.ts.map +1 -0
- package/dist/src/sync-deepseek.js +209 -0
- package/dist/src/sync-deepseek.js.map +1 -0
- package/dist/src/sync-engine.d.ts +48 -0
- package/dist/src/sync-engine.d.ts.map +1 -0
- package/dist/src/sync-engine.js +104 -0
- package/dist/src/sync-engine.js.map +1 -0
- package/dist/src/sync-file.d.ts +4 -0
- package/dist/src/sync-file.d.ts.map +1 -0
- package/dist/src/sync-file.js +61 -0
- package/dist/src/sync-file.js.map +1 -0
- package/dist/src/sync-state.d.ts +10 -0
- package/dist/src/sync-state.d.ts.map +1 -0
- package/dist/src/sync-state.js +50 -0
- package/dist/src/sync-state.js.map +1 -0
- package/dist/src/sync-targets.d.ts +11 -0
- package/dist/src/sync-targets.d.ts.map +1 -0
- package/dist/src/sync-targets.js +30 -0
- package/dist/src/sync-targets.js.map +1 -0
- package/dist/src/sync.d.ts +5 -4
- package/dist/src/sync.d.ts.map +1 -1
- package/dist/src/sync.js +15 -165
- package/dist/src/sync.js.map +1 -1
- package/dist/src/types.d.ts +28 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/validation.d.ts.map +1 -1
- package/dist/src/validation.js +38 -0
- package/dist/src/validation.js.map +1 -1
- package/package.json +16 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# mcp-compose
|
|
2
2
|
|
|
3
|
-
Run MCP servers once, share them across
|
|
3
|
+
Run MCP servers once, share them across Claude Code, Codex, and DeepSeek Harness sessions.
|
|
4
4
|
|
|
5
5
|
Claude Code launches stdio MCP servers per session by default. mcp-compose converts them to persistent HTTP endpoints using a built-in gateway and manages them with [pm2](https://github.com/Unitech/pm2), so multiple sessions can connect to the same running servers.
|
|
6
6
|
|
|
@@ -64,8 +64,73 @@ Create `mcp-compose.json` (or `mcp-compose.jsonc`) in:
|
|
|
64
64
|
| `portBase` | number | `19100` | Starting port for managed servers. Ports are allocated sequentially. |
|
|
65
65
|
| `claudeConfigPath` | string | `~/.mcp.json` | Path to Claude Code's MCP config file. Supports `~` for home directory. |
|
|
66
66
|
| `codexConfigPath` | string | `~/.codex/config.toml` | Path to Codex CLI's config file. Codex only supports streamable HTTP, so SSE-only remotes are skipped (use `proxy: true` to bridge them). |
|
|
67
|
+
| `deepseekHarness` | object | omitted (disabled) | Opt in to DeepSeek Harness profile sync. `home` defaults to `~/.dsh`; `profiles` defaults to `["web"]`. An empty profile list disables DSH sync. |
|
|
67
68
|
| `logLevel` | string | `"info"` | Default log level for gateway processes. Options: `"debug"`, `"info"`, `"none"` |
|
|
68
69
|
|
|
70
|
+
### Configuration Sync
|
|
71
|
+
|
|
72
|
+
Claude Code, Codex, and enabled DSH profiles use the same sync lifecycle. Target adapters handle file formats and client capabilities; the shared engine handles endpoint mapping, ownership, reconciliation, and file writes.
|
|
73
|
+
|
|
74
|
+
- `up` adds or updates generated entries and removes previously owned entries that are now disabled, deleted, or unsupported by that target.
|
|
75
|
+
- `down my-server` removes that entry only if mcp-compose owns it. `down` removes all owned entries, including servers already removed from the source config.
|
|
76
|
+
- Ownership comes only from `~/.mcp-compose/sync-state.json`. A matching name in the source config, including a disabled name, does not establish ownership. An untracked same-name entry blocks `up` rather than being overwritten or adopted, even if its settings match. Rename or deliberately remove the conflicting entry before retrying.
|
|
77
|
+
- Other settings and unowned entries are preserved. Recorded entries remain managed even if edited by hand. Keep the ownership file with the generated configuration; changing a target path or deselecting a DSH profile leaves the previous target untouched, so run `down` first if cleanup is needed.
|
|
78
|
+
|
|
79
|
+
All target changes are parsed, validated, and rendered before the first config file is written, for both `up` and `down`. Invalid config or ownership files stop sync without overwriting them. Each changed file is replaced atomically, following existing symlinks and retaining permissions; new files use mode `0600`. Unchanged settings and ownership records are not rewritten. JSON and TOML are reserialized when entries change; DSH preserves the source text outside its managed block.
|
|
80
|
+
|
|
81
|
+
Sync checks config and ownership snapshots before saving. If an ownership write fails, it attempts to restore that target's config without overwriting an intervening edit. Previously completed targets remain synced and can be safely revisited on retry. Atomicity applies to individual files, not a transaction across config files and the ownership record; an abrupt process or machine failure between writes may require recovery.
|
|
82
|
+
|
|
83
|
+
### DeepSeek Harness
|
|
84
|
+
|
|
85
|
+
Install the official [`@deepseek-ai/dsh-mcp-client`](https://github.com/deepseek-ai/deepseek-harness/tree/dsh-v0.1.2-rc.1/packages/mcp/mcp-client) in each DSH profile you want to sync. Use the version matching your DSH runtime; the MCP client's npm `latest` tag may point to an older release. For example, with DSH `0.1.2-rc.1` and an existing web profile:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
dsh plugin --profile web add @deepseek-ai/dsh-mcp-client@0.1.2-rc.1
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Then add this setting to your `mcp-compose.json`:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"settings": {
|
|
96
|
+
"deepseekHarness": {
|
|
97
|
+
"home": "~/.dsh",
|
|
98
|
+
"profiles": ["web"]
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
`mcp-compose up` writes MCP entries into `~/.dsh/profiles/web/cordis.patch.yml`. Add `"headless"` to `profiles` to sync that profile as well, after installing the MCP client there. For a custom DSH home, set `home` to the same directory used by DSH. Profiles are never discovered or created automatically.
|
|
105
|
+
|
|
106
|
+
| Source server | DSH connection |
|
|
107
|
+
| --- | --- |
|
|
108
|
+
| Local stdio or remote with `proxy: true` | Streamable HTTP at the gateway's actual localhost port; mcp-compose retains process and OAuth management |
|
|
109
|
+
| Direct HTTP remote | Streamable HTTP at the remote URL, including configured headers |
|
|
110
|
+
| Direct SSE remote | Skipped with a warning; use `proxy: true` to bridge it |
|
|
111
|
+
|
|
112
|
+
DSH names must match `[A-Za-z0-9_-]{1,32}`. Names outside that limit are skipped only for DSH. A generated entry looks like this:
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
# >>> mcp-compose:deepseek-harness
|
|
116
|
+
- insert:
|
|
117
|
+
- id: "mcp-compose-my-server"
|
|
118
|
+
name: "@deepseek-ai/dsh-mcp-client"
|
|
119
|
+
config:
|
|
120
|
+
serverName: "my-server"
|
|
121
|
+
transport: "streamable-http"
|
|
122
|
+
url: "http://localhost:19100/mcp"
|
|
123
|
+
# <<< mcp-compose:deepseek-harness
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Only the marked block is replaced. Other patch entries, comments, and `!!js` expressions keep their original text; sync never evaluates those expressions. An empty `[]` is replaced when adding the first block, and restored when removing the last entry from an otherwise empty patch. Non-empty flow-style arrays must be converted to block style before enabling sync. Direct HTTP headers are written as literal values, as with the other sync targets; managed proxy credentials stay in mcp-compose.
|
|
127
|
+
|
|
128
|
+
`up` checks configured profiles, patch syntax, ownership records, static name/id collisions in the profile patch, and MCP client resolution before starting any servers. It does not install packages, launch DSH, import plugins, or test connections.
|
|
129
|
+
|
|
130
|
+
DSH cleanup works even if the MCP client package is no longer installed. Untracked entries inside a managed block are rejected instead of silently adopted or deleted.
|
|
131
|
+
|
|
132
|
+
The entries expose MCP tools to the DSH main harness through its official tool registry. Native Codex and Claude Code modes continue to use their respective synced configuration. To verify activation, load the selected DSH profile and check for `mcp__<serverName>__<tool>` tools. A successful file sync does not establish runtime loading, authentication, or tool-call success.
|
|
133
|
+
|
|
69
134
|
### Server Types
|
|
70
135
|
|
|
71
136
|
#### stdio - Local Command Server
|
|
@@ -120,10 +185,12 @@ Passthrough to remote MCP servers. No local process is started by default.
|
|
|
120
185
|
| `url` | string | Yes | Remote server URL |
|
|
121
186
|
| `disabled` | boolean | No | Skip this server |
|
|
122
187
|
| `proxy` | boolean | No | Enable local proxy with OAuth support (see below) |
|
|
123
|
-
| `headers` | object | No | Custom headers to send to the remote server
|
|
188
|
+
| `headers` | object | No | Custom headers to send to the remote server |
|
|
124
189
|
| `logLevel` | string | No | Override log level (proxy mode only) |
|
|
125
190
|
| `resourceLimits` | object | No | Process resource limits (proxy mode only) |
|
|
126
191
|
|
|
192
|
+
Without `proxy`, headers are written into the generated Claude Code and Codex configs, so any secret they carry ends up in plain text on disk. Use `"proxy": true` to keep the secret inside the gateway process instead.
|
|
193
|
+
|
|
127
194
|
#### Remote Server with OAuth Proxy
|
|
128
195
|
|
|
129
196
|
Remote servers with `"proxy": true` are proxied through a local gateway process that handles the full OAuth 2.0 lifecycle automatically. This solves the common issue where OAuth tokens expire and break MCP connections between sessions.
|
|
@@ -295,7 +362,7 @@ Prefer the `op run --env-file` flow so the tracked config contains only environm
|
|
|
295
362
|
mcp-compose up [servers...] Start or update servers (only restarts changed configs)
|
|
296
363
|
mcp-compose down [servers...] Stop servers
|
|
297
364
|
mcp-compose restart [servers...] Restart servers
|
|
298
|
-
mcp-compose status Show
|
|
365
|
+
mcp-compose status Show configured servers and their processes
|
|
299
366
|
mcp-compose logs [server] [-f] View logs (follow with -f)
|
|
300
367
|
```
|
|
301
368
|
|
|
@@ -334,14 +401,34 @@ mcp-compose logs -f
|
|
|
334
401
|
|
|
335
402
|
## How It Works
|
|
336
403
|
|
|
337
|
-
1. **stdio servers**: Wrapped by a built-in gateway that bridges stdio to [MCP Streamable HTTP](https://modelcontextprotocol.io/specification/
|
|
404
|
+
1. **stdio servers**: Wrapped by a built-in gateway that bridges stdio to [MCP Streamable HTTP](https://modelcontextprotocol.io/specification/2026-07-28/basic/transports), managed by pm2
|
|
338
405
|
2. **Remote servers**: Registered directly in Claude Code config (no local process)
|
|
339
406
|
3. **Remote servers with proxy**: Proxied through a local gateway with built-in OAuth 2.0 lifecycle management (PKCE, token refresh)
|
|
340
|
-
4. **Config sync**: Auto-updates `~/.mcp.json` for Claude Code
|
|
407
|
+
4. **Config sync**: Auto-updates `~/.mcp.json` for Claude Code, `~/.codex/config.toml` for Codex CLI, and explicitly enabled DeepSeek Harness profile patches
|
|
341
408
|
5. **Port allocation**: Automatically detects port conflicts and uses next available port
|
|
342
409
|
|
|
343
410
|
Each managed server gets an internal port starting from `portBase` (default 19100). If a port is in use, the next available port is automatically selected.
|
|
344
411
|
|
|
412
|
+
### Gateway compatibility
|
|
413
|
+
|
|
414
|
+
The gateway supports the stateless [MCP 2026-07-28 transport](https://modelcontextprotocol.io/specification/2026-07-28/basic/transports) and the earlier session-based transport. It detects the client and backend eras independently, so a modern client can use a legacy backend and a legacy client can use a modern backend.
|
|
415
|
+
|
|
416
|
+
For a modern request, `_meta.io.modelcontextprotocol/protocolVersion` and `_meta.io.modelcontextprotocol/clientCapabilities` are required and must agree with `MCP-Protocol-Version`. `Mcp-Method` must match the JSON-RPC method. `Mcp-Name` is required only for `tools/call`, `prompts/get`, and `resources/read`, where it must match the named tool, prompt, or resource. Mismatched, missing, malformed, unsupported, or extra routing headers are rejected before forwarding.
|
|
417
|
+
|
|
418
|
+
Modern-to-modern proxy traffic is relayed without legacy compatibility handling, including the client request ID and request-scoped SSE events. The gateway synthesizes only the explicit era bridge: `initialize` and `server/discover`, session metadata, completion markers, resource-not-found error codes, and legacy-only methods. When a legacy client uses a modern backend, its `clientInfo` and capabilities become the modern per-request metadata. A legacy backend is initialized once by the gateway, rather than once per downstream client session.
|
|
419
|
+
|
|
420
|
+
`subscriptions/listen` uses the standard `notifications` filter object and a separate SSE stream. A locally synthesized legacy subscription first emits `notifications/subscriptions/acknowledged`, then matches backend notification methods against the requested standard or extension filters; every frame carries `_meta.io.modelcontextprotocol/subscriptionId` equal to the listen request's JSON-RPC ID. Internal ownership keeps identical request IDs from different clients isolated. Modern backends retain their own subscription stream unchanged for both client eras. Request-scoped events never leak into a subscription, and legacy change notifications never leak into an unrelated request. Idle locally synthesized streams send keep-alive comments.
|
|
421
|
+
|
|
422
|
+
For proxy servers, configured headers, supported protocol metadata, and `Mcp-Param-*` extension headers are forwarded upstream; arbitrary client headers are not. The gateway preserves an upstream status and only the safe response headers (`Content-Type`, `Cache-Control`, `WWW-Authenticate`, and `MCP-Protocol-Version`) for same-era proxy responses. Cross-era responses use gateway-generated transport metadata.
|
|
423
|
+
|
|
424
|
+
The local endpoint accepts requests without an `Origin` header for native MCP clients. Browser requests must use a literal loopback origin (`localhost`, `127.0.0.1`, or `[::1]`); other origins are rejected and not reflected in CORS headers.
|
|
425
|
+
|
|
426
|
+
Managed OAuth follows the [MCP authorization specification](https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization): it requires advertised PKCE `S256` support, verifies that protected-resource metadata binds to the exact requested resource, validates the exact authorization-server issuer and callback issuer, and cancels discovery, token work, and the callback listener when the client request ends. A `Bearer` challenge scope is authoritative; when it is absent on an initial authorization, protected-resource `scopes_supported` supplies the scope. A 401 challenge or 403 `insufficient_scope` response can start authorization. Step-up requests the union of the existing grant and newly challenged scopes, while an unscoped retry retains the existing grant and refresh never expands it. Only `Bearer` token responses are forwarded to the MCP server.
|
|
427
|
+
|
|
428
|
+
In passthrough mode, a shared legacy upstream session, including the deprecated HTTP+SSE (`"type": "sse"`) transport, is bound to the credential that created it. A request with another credential is rejected until that session closes; its cleanup uses the owning credential. An HTTP+SSE server may advertise a message endpoint only on the configured upstream origin. Modern upstream requests remain independently credentialed.
|
|
429
|
+
|
|
430
|
+
The gateway does not translate legacy server-initiated sampling, elicitation, or roots requests into multi-round-trip requests (MRTR). Those requests are dropped rather than being delivered on another request or subscription stream.
|
|
431
|
+
|
|
345
432
|
## Features
|
|
346
433
|
|
|
347
434
|
- **Zero external dependencies for transport**: Built-in MCP gateway replaces supergateway and mcp-remote
|
|
@@ -351,7 +438,7 @@ Each managed server gets an internal port starting from `portBase` (default 1910
|
|
|
351
438
|
- **Config validation**: Validates configuration structure with helpful error messages
|
|
352
439
|
- **Resource limits**: Control memory usage and restart behavior per server
|
|
353
440
|
- **Process management**: Auto-restart with configurable limits via pm2
|
|
354
|
-
- **Non-destructive config sync**: Merges with existing Claude Code config
|
|
441
|
+
- **Non-destructive config sync**: Merges with existing Claude Code config, and drops only the entries it wrote itself once a server is disabled or removed
|
|
355
442
|
|
|
356
443
|
## Requirements
|
|
357
444
|
|
package/dist/bin/mcp-compose.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
-
import { loadConfig, getManagedServers, getServerNames, } from '../src/config.js';
|
|
3
|
+
import { loadConfig, getManagedServers, getRemoteServers, getServerNames, isRemoteServer, } from '../src/config.js';
|
|
4
4
|
import pkg from '../package.json' with { type: 'json' };
|
|
5
5
|
const { version } = pkg;
|
|
6
6
|
import { startServers, stopServers, stopAllManagedServers, stopOrphanedServers, restartServers, getStatus, streamLogs, } from '../src/pm2.js';
|
|
7
|
-
import {
|
|
7
|
+
import { ConfigSyncCoordinator } from '../src/sync-targets.js';
|
|
8
8
|
function formatProgress(event) {
|
|
9
9
|
switch (event.type) {
|
|
10
10
|
case 'checking_ports':
|
|
@@ -34,6 +34,26 @@ function printProgress(event) {
|
|
|
34
34
|
if (msg)
|
|
35
35
|
console.log(msg);
|
|
36
36
|
}
|
|
37
|
+
function printRemoved(removed) {
|
|
38
|
+
if (removed.length > 0) {
|
|
39
|
+
console.log(` Removed disabled/deleted: ${removed.join(', ')}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Anything not listed here is a pm2 failure state (stopped, errored, ...) and shows red
|
|
43
|
+
const STATUS_COLORS = {
|
|
44
|
+
online: '\x1b[32m',
|
|
45
|
+
remote: '\x1b[36m',
|
|
46
|
+
'not started': '\x1b[90m',
|
|
47
|
+
};
|
|
48
|
+
function toStatusRow(s) {
|
|
49
|
+
return {
|
|
50
|
+
name: s.name,
|
|
51
|
+
status: s.status,
|
|
52
|
+
pid: String(s.pid ?? '-'),
|
|
53
|
+
memory: s.memory ? `${String(Math.round(s.memory / 1024 / 1024))}MB` : '-',
|
|
54
|
+
restarts: String(s.restarts),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
37
57
|
const program = new Command();
|
|
38
58
|
function getConfigPath(cmd) {
|
|
39
59
|
return cmd.parent?.opts().config;
|
|
@@ -55,13 +75,17 @@ program
|
|
|
55
75
|
.action(async (servers, _options, cmd) => {
|
|
56
76
|
try {
|
|
57
77
|
const config = loadConfig(getConfigPath(cmd));
|
|
78
|
+
const sync = new ConfigSyncCoordinator(config);
|
|
79
|
+
sync.preflight(config);
|
|
58
80
|
const { processPrefix, portBase } = config.settings;
|
|
59
81
|
const managedServers = getManagedServers(config);
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
82
|
+
const matchesFilter = (name) => servers.length === 0 || servers.includes(name);
|
|
83
|
+
const filteredServers = managedServers.filter((s) => matchesFilter(s.name));
|
|
84
|
+
const remoteNames = getRemoteServers(config)
|
|
85
|
+
.map((s) => s.name)
|
|
86
|
+
.filter(matchesFilter);
|
|
87
|
+
if (filteredServers.length === 0 && remoteNames.length === 0 && servers.length > 0) {
|
|
88
|
+
console.log('No servers match the filter.');
|
|
65
89
|
}
|
|
66
90
|
if (filteredServers.length > 0) {
|
|
67
91
|
const results = await startServers(filteredServers, processPrefix, portBase, printProgress, {
|
|
@@ -75,22 +99,29 @@ program
|
|
|
75
99
|
}
|
|
76
100
|
}
|
|
77
101
|
}
|
|
78
|
-
//
|
|
102
|
+
// Remote servers run no local process, so nothing above reports them.
|
|
103
|
+
// List them anyway, otherwise `up` looks like it dropped them.
|
|
104
|
+
for (const name of remoteNames) {
|
|
105
|
+
console.log(` ${name} is remote (no local process)`);
|
|
106
|
+
}
|
|
107
|
+
// When starting all servers, clean up orphaned processes from removed servers.
|
|
108
|
+
// Only managed names survive here, so dropping `proxy` from a remote server
|
|
109
|
+
// also stops the gateway it used to run behind.
|
|
79
110
|
if (servers.length === 0) {
|
|
80
|
-
const
|
|
81
|
-
const orphaned = await stopOrphanedServers(
|
|
111
|
+
const managedNames = managedServers.map((s) => s.name);
|
|
112
|
+
const orphaned = await stopOrphanedServers(managedNames, processPrefix, printProgress);
|
|
82
113
|
if (orphaned.length > 0) {
|
|
83
114
|
console.log('');
|
|
84
115
|
console.log(` Cleaned up ${String(orphaned.length)} removed server(s): ${orphaned.join(', ')}`);
|
|
85
116
|
}
|
|
86
117
|
}
|
|
87
118
|
console.log('');
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
119
|
+
for (const result of sync.apply(config)) {
|
|
120
|
+
console.log(` ✓ Synced ${result.path}`);
|
|
121
|
+
printRemoved(result.removed);
|
|
122
|
+
for (const warning of result.warnings) {
|
|
123
|
+
console.log(` ⚠ ${result.target}: skipped ${warning.server} (${warning.reason})`);
|
|
124
|
+
}
|
|
94
125
|
}
|
|
95
126
|
}
|
|
96
127
|
catch (err) {
|
|
@@ -116,21 +147,15 @@ program
|
|
|
116
147
|
console.log(` ✓ Stopped ${String(count)} server(s)`);
|
|
117
148
|
}
|
|
118
149
|
const filter = servers.length > 0 ? servers : null;
|
|
119
|
-
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const codexRemove = removeFromCodexConfig(config, filter);
|
|
129
|
-
if (codexRemove.removed.length > 0) {
|
|
130
|
-
console.log(` ✓ Removed: ${codexRemove.removed.join(', ')}`);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
console.log(' (no changes)');
|
|
150
|
+
const sync = new ConfigSyncCoordinator(config);
|
|
151
|
+
for (const result of sync.remove(config, filter)) {
|
|
152
|
+
console.log(`\nRemoving from ${result.target} config...`);
|
|
153
|
+
if (result.removed.length > 0) {
|
|
154
|
+
console.log(` ✓ Removed: ${result.removed.join(', ')}`);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.log(' (no changes)');
|
|
158
|
+
}
|
|
134
159
|
}
|
|
135
160
|
}
|
|
136
161
|
catch (err) {
|
|
@@ -160,23 +185,40 @@ program
|
|
|
160
185
|
program
|
|
161
186
|
.command('status')
|
|
162
187
|
.description('Show status of MCP servers')
|
|
163
|
-
.action(async () => {
|
|
188
|
+
.action(async (_options, cmd) => {
|
|
164
189
|
try {
|
|
165
|
-
const
|
|
166
|
-
|
|
190
|
+
const config = loadConfig(getConfigPath(cmd));
|
|
191
|
+
const running = new Map((await getStatus()).map((s) => [s.name, s]));
|
|
192
|
+
const rows = [];
|
|
193
|
+
for (const [name, server] of Object.entries(config.mcpServers)) {
|
|
194
|
+
if (isRemoteServer(server)) {
|
|
195
|
+
rows.push({ name, status: 'remote', pid: '-', memory: '-', restarts: '-' });
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
const proc = running.get(name);
|
|
199
|
+
if (proc) {
|
|
200
|
+
rows.push(toStatusRow(proc));
|
|
201
|
+
running.delete(name);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
rows.push({ name, status: 'not started', pid: '-', memory: '-', restarts: '-' });
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Processes left over from servers the config no longer declares
|
|
208
|
+
for (const proc of running.values()) {
|
|
209
|
+
rows.push(toStatusRow(proc));
|
|
210
|
+
}
|
|
211
|
+
if (rows.length === 0) {
|
|
167
212
|
console.log('No MCP servers running.');
|
|
168
213
|
return;
|
|
169
214
|
}
|
|
170
215
|
console.log('MCP Servers:\n');
|
|
171
|
-
console.log(' Name Status
|
|
216
|
+
console.log(' Name Status PID Memory Restarts');
|
|
172
217
|
console.log(' ' + '-'.repeat(65));
|
|
173
|
-
for (const
|
|
174
|
-
const
|
|
175
|
-
? `${String(Math.round(s.memory / 1024 / 1024))}MB`
|
|
176
|
-
: '-';
|
|
177
|
-
const statusColor = s.status === 'online' ? '\x1b[32m' : '\x1b[31m';
|
|
218
|
+
for (const row of rows) {
|
|
219
|
+
const color = STATUS_COLORS[row.status] ?? '\x1b[31m';
|
|
178
220
|
const reset = '\x1b[0m';
|
|
179
|
-
console.log(` ${
|
|
221
|
+
console.log(` ${row.name.padEnd(20)} ${color}${row.status.padEnd(12)}${reset} ${row.pid.padEnd(8)} ${row.memory.padEnd(10)} ${row.restarts}`);
|
|
180
222
|
}
|
|
181
223
|
}
|
|
182
224
|
catch (err) {
|
|
@@ -193,6 +235,14 @@ program
|
|
|
193
235
|
try {
|
|
194
236
|
const config = loadConfig(getConfigPath(cmd));
|
|
195
237
|
const { processPrefix } = config.settings;
|
|
238
|
+
const remoteNames = getRemoteServers(config).map((s) => s.name);
|
|
239
|
+
if (server !== undefined && remoteNames.includes(server)) {
|
|
240
|
+
console.log(`${server} is remote (no local process, so no logs)`);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
if (server === undefined && remoteNames.length > 0) {
|
|
244
|
+
console.log(`Remote servers have no logs: ${remoteNames.join(', ')}\n`);
|
|
245
|
+
}
|
|
196
246
|
streamLogs(server, processPrefix, { follow: options.follow, err: options.err });
|
|
197
247
|
}
|
|
198
248
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-compose.js","sourceRoot":"","sources":["../../bin/mcp-compose.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-compose.js","sourceRoot":"","sources":["../../bin/mcp-compose.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-compose",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.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"
|
|
@@ -47,15 +48,26 @@
|
|
|
47
48
|
"dependencies": {
|
|
48
49
|
"commander": "^12.1.0",
|
|
49
50
|
"cross-spawn": "^7.0.6",
|
|
50
|
-
"pm2": "^7.0.
|
|
51
|
+
"pm2": "^7.0.4",
|
|
51
52
|
"smol-toml": "^1.6.1",
|
|
52
53
|
"string-env-interpolation": "^1.0.1",
|
|
53
|
-
"strip-json-comments": "^5.0.3"
|
|
54
|
+
"strip-json-comments": "^5.0.3",
|
|
55
|
+
"yaml": "^2.9.0"
|
|
54
56
|
},
|
|
55
57
|
"overrides": {
|
|
56
58
|
"pm2": {
|
|
57
|
-
"js-yaml": "^4.2
|
|
59
|
+
"js-yaml": "^4.3.2",
|
|
58
60
|
"ws": "^8.21.0"
|
|
61
|
+
},
|
|
62
|
+
"ip-address": "^10.7.0",
|
|
63
|
+
"@humanfs/node": "0.16.8",
|
|
64
|
+
"minimatch": {
|
|
65
|
+
"brace-expansion": "1.1.18"
|
|
66
|
+
},
|
|
67
|
+
"@typescript-eslint/typescript-estree": {
|
|
68
|
+
"minimatch": {
|
|
69
|
+
"brace-expansion": "2.1.4"
|
|
70
|
+
}
|
|
59
71
|
}
|
|
60
72
|
},
|
|
61
73
|
"devDependencies": {
|
package/dist/src/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RawConfig, NormalizedConfig, NamedManagedServer } from './types.js';
|
|
1
|
+
import type { RawConfig, NormalizedConfig, NormalizedServer, RemoteServer, NamedManagedServer, NamedRemoteServer } from './types.js';
|
|
2
2
|
export declare function expandPath(p: string): string;
|
|
3
3
|
export declare function findConfigFile(startDir?: string): string | null;
|
|
4
4
|
export declare function loadConfig(configPath?: string): NormalizedConfig;
|
|
@@ -9,4 +9,7 @@ export declare function isPortAvailable(port: number): Promise<boolean>;
|
|
|
9
9
|
export declare function normalizeConfig(config: RawConfig): NormalizedConfig;
|
|
10
10
|
export declare function getServerNames(config: NormalizedConfig, filter?: string[]): string[];
|
|
11
11
|
export declare function getManagedServers(config: NormalizedConfig): NamedManagedServer[];
|
|
12
|
+
/** Remote servers are passed through to the client untouched: no local process, so nothing for pm2 to report. */
|
|
13
|
+
export declare function isRemoteServer(server: NormalizedServer): server is RemoteServer;
|
|
14
|
+
export declare function getRemoteServers(config: NormalizedConfig): NamedRemoteServer[];
|
|
12
15
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,SAAS,EAET,gBAAgB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,SAAS,EAET,gBAAgB,EAChB,gBAAgB,EAGhB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAkBpB,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAe9E;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,CA+BhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAa9D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAoCnE;AA4DD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,gBAAgB,EACxB,MAAM,GAAE,MAAM,EAAO,GACpB,MAAM,EAAE,CAgBV;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,EAAE,CAKhF;AAED,iHAAiH;AACjH,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,IAAI,YAAY,CAE/E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CAI9E"}
|
package/dist/src/config.js
CHANGED
|
@@ -83,13 +83,22 @@ export function isPortAvailable(port) {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
export function normalizeConfig(config) {
|
|
86
|
-
const
|
|
86
|
+
const { deepseekHarness, ...rawSettings } = config.settings ?? {};
|
|
87
|
+
const settings = { ...DEFAULT_SETTINGS, ...rawSettings };
|
|
87
88
|
settings.claudeConfigPath = expandPath(settings.claudeConfigPath);
|
|
88
89
|
settings.codexConfigPath = expandPath(settings.codexConfigPath);
|
|
90
|
+
if (deepseekHarness) {
|
|
91
|
+
settings.deepseekHarness = {
|
|
92
|
+
home: expandPath(deepseekHarness.home ?? '~/.dsh'),
|
|
93
|
+
profiles: [...(deepseekHarness.profiles ?? ['web'])],
|
|
94
|
+
};
|
|
95
|
+
}
|
|
89
96
|
const mcpServers = {};
|
|
97
|
+
const disabledServers = [];
|
|
90
98
|
let portIndex = 0;
|
|
91
99
|
for (const [name, server] of Object.entries(config.mcpServers ?? {})) {
|
|
92
100
|
if (server.disabled) {
|
|
101
|
+
disabledServers.push(name);
|
|
93
102
|
continue;
|
|
94
103
|
}
|
|
95
104
|
const normalized = normalizeServer(name, server, settings.portBase + portIndex, settings);
|
|
@@ -101,6 +110,7 @@ export function normalizeConfig(config) {
|
|
|
101
110
|
return {
|
|
102
111
|
settings,
|
|
103
112
|
mcpServers,
|
|
113
|
+
disabledServers,
|
|
104
114
|
configPath: config.configPath,
|
|
105
115
|
};
|
|
106
116
|
}
|
|
@@ -128,16 +138,16 @@ function normalizeServer(name, server, internalPort, settings) {
|
|
|
128
138
|
if (!('url' in server) || !server.url) {
|
|
129
139
|
throw new Error(`Server "${name}" is ${type} type but missing url`);
|
|
130
140
|
}
|
|
141
|
+
const headers = ('headers' in server ? server.headers : undefined) ?? {};
|
|
131
142
|
// Proxy mode: gateway connects directly to remote server with OAuth lifecycle management
|
|
132
143
|
if ('proxy' in server && server.proxy) {
|
|
133
|
-
const headers = 'headers' in server ? server.headers : undefined;
|
|
134
144
|
const authMode = ('auth' in server ? server.auth : undefined) ?? 'managed';
|
|
135
145
|
return {
|
|
136
146
|
type: 'proxy',
|
|
137
147
|
url: server.url,
|
|
138
148
|
transport: type,
|
|
139
149
|
authMode,
|
|
140
|
-
headers
|
|
150
|
+
headers,
|
|
141
151
|
internalPort,
|
|
142
152
|
logLevel: server.logLevel ?? settings.logLevel,
|
|
143
153
|
resourceLimits: { ...DEFAULT_RESOURCE_LIMITS, ...server.resourceLimits },
|
|
@@ -146,6 +156,7 @@ function normalizeServer(name, server, internalPort, settings) {
|
|
|
146
156
|
return {
|
|
147
157
|
type,
|
|
148
158
|
url: server.url,
|
|
159
|
+
headers,
|
|
149
160
|
};
|
|
150
161
|
}
|
|
151
162
|
export function getServerNames(config, filter = []) {
|
|
@@ -165,4 +176,13 @@ export function getManagedServers(config) {
|
|
|
165
176
|
.filter((entry) => entry[1].type === 'stdio' || entry[1].type === 'proxy')
|
|
166
177
|
.map(([name, server]) => ({ name, ...server }));
|
|
167
178
|
}
|
|
179
|
+
/** Remote servers are passed through to the client untouched: no local process, so nothing for pm2 to report. */
|
|
180
|
+
export function isRemoteServer(server) {
|
|
181
|
+
return server.type !== 'stdio' && server.type !== 'proxy';
|
|
182
|
+
}
|
|
183
|
+
export function getRemoteServers(config) {
|
|
184
|
+
return Object.entries(config.mcpServers)
|
|
185
|
+
.filter((entry) => isRemoteServer(entry[1]))
|
|
186
|
+
.map(([name, server]) => ({ name, ...server }));
|
|
187
|
+
}
|
|
168
188
|
//# sourceMappingURL=config.js.map
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIrD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEvE,MAAM,WAAW,OAAO;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIrD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEvE,MAAM,WAAW,OAAO;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AA8lDD,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CA+jC9D"}
|