@ni-c/mcp-hub 0.8.0 → 0.9.1
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 +78 -0
- package/README.md +17 -7
- package/dist/config.js +30 -4
- package/dist/config.js.map +1 -1
- package/dist/docker-proxy/index.js +2 -0
- package/dist/docker-proxy/index.js.map +1 -1
- package/dist/health.js +4 -2
- package/dist/health.js.map +1 -1
- package/dist/hub.js +97 -9
- package/dist/hub.js.map +1 -1
- package/dist/index.js +51 -8
- package/dist/index.js.map +1 -1
- package/dist/main-module.js +27 -0
- package/dist/main-module.js.map +1 -0
- package/dist/mount-check.js +42 -0
- package/dist/mount-check.js.map +1 -0
- package/dist/proxy.js +40 -13
- package/dist/proxy.js.map +1 -1
- package/dist/stdio.js +122 -0
- package/dist/stdio.js.map +1 -0
- package/dist/supervisor.js +220 -18
- package/dist/supervisor.js.map +1 -1
- package/dist/tool-cache.js +86 -0
- package/dist/tool-cache.js.map +1 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,84 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
<!-- #region changelog -->
|
|
9
9
|
|
|
10
|
+
## [0.9.1] - 2026-08-20
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **`npx @ni-c/mcp-hub` did nothing.** npm links a `bin` entry as
|
|
15
|
+
`node_modules/.bin/<name>` — a symlink whose basename is the command, not the
|
|
16
|
+
file — and the entry point recognised itself by comparing that basename with
|
|
17
|
+
its own file name. Started through the symlink it therefore never ran: the
|
|
18
|
+
process exited 0 without a listener, a child or a single log line, in HTTP as
|
|
19
|
+
well as in stdio mode. Only `node dist/index.js` (what the container does)
|
|
20
|
+
ever worked. Entry-point detection now compares real paths, and a test starts
|
|
21
|
+
the hub through a `.bin`-style symlink.
|
|
22
|
+
|
|
23
|
+
## [0.9.0] - 2026-08-20
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- **On-demand servers.** Stdio and docker servers now start when they are used
|
|
28
|
+
and go to sleep after `IDLE_TIMEOUT_MINUTES` (default 60) without a forwarded
|
|
29
|
+
request — on a small host, a dozen configured servers cost only the memory of
|
|
30
|
+
the ones actually in use. While a server sleeps, `initialize` and
|
|
31
|
+
`tools/list` are answered from a persistent snapshot
|
|
32
|
+
(`TOOL_CACHE_PATH`, default `/data/tool-cache.json`), so a client
|
|
33
|
+
enumerating its connectors wakes nothing; the first real tool call wakes the
|
|
34
|
+
server and blocks until it is up (120 s budget). `/hub`'s `list_tools` and
|
|
35
|
+
`get_tool_schema` answer from the snapshot and pre-warm the server in the
|
|
36
|
+
background. Per-server control: `"keepAlive": true` keeps a server always
|
|
37
|
+
running (the previous behaviour), `"idleMinutes"` overrides the global
|
|
38
|
+
timeout; `IDLE_TIMEOUT_MINUTES=0` disables the feature entirely. New `/hub`
|
|
39
|
+
meta-tools `wake_server` and `sleep_server` steer the lifecycle manually. An
|
|
40
|
+
on-demand server that crashes five restarts in a row without being used is
|
|
41
|
+
parked as `sleeping` (error kept visible) instead of restarting forever.
|
|
42
|
+
`/health` treats `sleeping` as healthy. The docker-proxy and its policy are
|
|
43
|
+
unchanged — `DOCKER_POLICY_VERSION` stays at 1.
|
|
44
|
+
- **`hub: false` servers are lifecycle-managed through `/hub`.** `list_servers`
|
|
45
|
+
now includes them with a `hidden` marker and `wake_server`/`sleep_server`
|
|
46
|
+
accept them — hiding a server's tools no longer means its lifecycle can only
|
|
47
|
+
be reached by the idle sweep. Tool access (`list_tools`, `get_tool_schema`,
|
|
48
|
+
`call_tool`) still refuses hidden servers, now pointing at the server's own
|
|
49
|
+
endpoint instead of pretending it does not exist.
|
|
50
|
+
- **Single-file config mounts log a startup warning.** A
|
|
51
|
+
`-v ./mcp.json:/config/mcp.json` bind mount silently loses every editor save
|
|
52
|
+
that goes through a rename (new inode), killing hot reload. The hub and the
|
|
53
|
+
docker-proxy now detect that setup via `/proc/self/mountinfo` and say so at
|
|
54
|
+
startup.
|
|
55
|
+
- **stdio mode.** `mcp-hub --stdio` (or the `mcp-hub-stdio` binary) serves the
|
|
56
|
+
`/hub` aggregate — the same six meta-tools, the same `mcp.json`, the same
|
|
57
|
+
supervision, on-demand lifecycle and hot reload — on stdin/stdout, for
|
|
58
|
+
clients that can only spawn a local process. No listener, no OAuth, no
|
|
59
|
+
`EXTERNAL_URL`; the trust boundary is the local user account. `CONFIG_PATH`
|
|
60
|
+
defaults to `mcp.json` in the working directory, the tool cache to
|
|
61
|
+
`.mcp-hub/tool-cache.json` beside it, and a missing config starts an empty
|
|
62
|
+
hub instead of failing, because a client-spawned process has nowhere to show
|
|
63
|
+
a startup error. `console.log`/`console.info` are moved to stderr for the
|
|
64
|
+
life of the process: stdout carries the protocol. The MCP Registry entry
|
|
65
|
+
follows: the npm package is now listed as a **stdio** package
|
|
66
|
+
(`npx @ni-c/mcp-hub --stdio`), so the hub can be installed straight from the
|
|
67
|
+
registry. The OCI package stays `streamable-http` — that is the container
|
|
68
|
+
deployment.
|
|
69
|
+
|
|
70
|
+
### Changed
|
|
71
|
+
|
|
72
|
+
- **Examples and docs mount the config directory, not the file.** The
|
|
73
|
+
recommended layout is `./config/mcp.json` mounted as `./config:/config:ro` in
|
|
74
|
+
both the hub and the docker-proxy — rename-style editor saves then hot-reload
|
|
75
|
+
correctly. `CONFIG_PATH` and its default `/config/mcp.json` are unchanged, so
|
|
76
|
+
existing single-file deployments keep working (with the warning above).
|
|
77
|
+
|
|
78
|
+
### Fixed
|
|
79
|
+
|
|
80
|
+
- The release workflow now has a concurrency group and skips an npm publish,
|
|
81
|
+
MCP Registry publish or GitHub release that already exists. A tag push
|
|
82
|
+
delivered twice used to start two releases, and the loser died on npm's 403
|
|
83
|
+
for an already-published version — a permanently red check on a commit that
|
|
84
|
+
is also main's HEAD. Every publishing step is now idempotent, so a re-run can
|
|
85
|
+
finish the half that is missing; the manual `mcp-registry` workflow carries
|
|
86
|
+
the same guard.
|
|
87
|
+
|
|
10
88
|
## [0.8.0] - 2026-08-18
|
|
11
89
|
|
|
12
90
|
### Added
|
package/README.md
CHANGED
|
@@ -37,10 +37,20 @@ replaces N containers with one process:
|
|
|
37
37
|
- **Config is exactly Claude Code's `mcpServers` format** — copy entries 1:1.
|
|
38
38
|
- **Path-based routing**: `https://host/paperless`, `https://host/homeassistant`, …
|
|
39
39
|
- **`/hub` aggregate**: register a *single* connector and reach every server
|
|
40
|
-
through
|
|
41
|
-
`call_tool`) without flooding the model
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
through 6 meta-tools (`list_servers`, `list_tools`, `get_tool_schema`,
|
|
41
|
+
`call_tool`, `wake_server`, `sleep_server`) without flooding the model
|
|
42
|
+
context with N×tools schemas.
|
|
43
|
+
- **Also without HTTP**: `mcp-hub --stdio` serves that same aggregate on
|
|
44
|
+
stdin/stdout for clients that can only spawn a local process (Claude Desktop,
|
|
45
|
+
Codex, …) — same `mcp.json`, no TLS, no reverse proxy, no login. Auth exists
|
|
46
|
+
for the network endpoints; over stdio the trust boundary is the local user.
|
|
47
|
+
- **On-demand lifecycle**: stdio and docker servers start when used and sleep
|
|
48
|
+
after 60 idle minutes, answering `initialize`/`tools/list` from a persistent
|
|
49
|
+
snapshot meanwhile — a dozen servers cost only the memory of the ones in
|
|
50
|
+
use. `keepAlive: true` exempts a server, `IDLE_TIMEOUT_MINUTES=0` the hub.
|
|
51
|
+
- **Supervision**: children are pinged and restarted with exponential backoff
|
|
52
|
+
when they die. A down server answers 503, not silence; a crash-looping
|
|
53
|
+
server nobody uses is parked instead of restarted forever.
|
|
44
54
|
- **Hot reload**: edits to `mcp.json` start/stop/restart only the affected
|
|
45
55
|
servers.
|
|
46
56
|
- **Stateless Streamable HTTP**: no session state, so claude.ai's
|
|
@@ -195,7 +205,7 @@ services:
|
|
|
195
205
|
|
|
196
206
|
```sh
|
|
197
207
|
cp docker-compose.example.yml docker-compose.yml # adjust, swap build → image
|
|
198
|
-
cp mcp.json.example mcp.json
|
|
208
|
+
mkdir -p config && cp mcp.json.example config/mcp.json # adjust
|
|
199
209
|
mkdir -p data && sudo chown -R 1000:1000 data # container runs as uid 1000
|
|
200
210
|
docker compose up -d
|
|
201
211
|
```
|
|
@@ -209,7 +219,7 @@ docker run -d --name mcp-hub \
|
|
|
209
219
|
-e EXTERNAL_URL="https://mcp.example.net" \
|
|
210
220
|
-e PASSWORD_HASH="$(htpasswd -bnBC 10 '' 'yourpassword' | tr -d ':\n')" \
|
|
211
221
|
-e TRUSTED_PROXIES="192.168.1.0/24" \
|
|
212
|
-
-v "$PWD/
|
|
222
|
+
-v "$PWD/config:/config:ro" \
|
|
213
223
|
-v "$PWD/data:/data" \
|
|
214
224
|
ghcr.io/ni-c/mcp-hub:0.6.0
|
|
215
225
|
```
|
|
@@ -221,7 +231,7 @@ Update to a newer image with `docker compose pull && docker compose up -d`
|
|
|
221
231
|
|
|
222
232
|
```sh
|
|
223
233
|
cp docker-compose.example.yml docker-compose.yml # adjust
|
|
224
|
-
cp mcp.json.example mcp.json
|
|
234
|
+
mkdir -p config && cp mcp.json.example config/mcp.json # adjust
|
|
225
235
|
docker compose up -d --build
|
|
226
236
|
```
|
|
227
237
|
|
package/dist/config.js
CHANGED
|
@@ -76,6 +76,26 @@ function requireLiteral(name, field, value) {
|
|
|
76
76
|
}
|
|
77
77
|
return value;
|
|
78
78
|
}
|
|
79
|
+
function parseLifecycle(name, entry) {
|
|
80
|
+
if (entry.keepAlive !== undefined && typeof entry.keepAlive !== 'boolean') {
|
|
81
|
+
throw new ConfigError(`Server "${name}": "keepAlive" must be a boolean`);
|
|
82
|
+
}
|
|
83
|
+
const idleMinutes = entry.idleMinutes;
|
|
84
|
+
if (idleMinutes !== undefined && (!Number.isSafeInteger(idleMinutes) || idleMinutes < 1)) {
|
|
85
|
+
throw new ConfigError(`Server "${name}": "idleMinutes" must be a positive integer`);
|
|
86
|
+
}
|
|
87
|
+
if (entry.keepAlive === true && idleMinutes !== undefined) {
|
|
88
|
+
throw new ConfigError(`Server "${name}": "keepAlive" and "idleMinutes" are mutually exclusive`);
|
|
89
|
+
}
|
|
90
|
+
return { keepAlive: entry.keepAlive === true, ...(idleMinutes !== undefined ? { idleMinutes: idleMinutes } : {}) };
|
|
91
|
+
}
|
|
92
|
+
function rejectLifecycle(name, entry, kind) {
|
|
93
|
+
for (const field of ['keepAlive', 'idleMinutes']) {
|
|
94
|
+
if (entry[field] !== undefined) {
|
|
95
|
+
throw new ConfigError(`Server "${name}": "${field}" is only supported on stdio and docker servers — the hub does not manage the lifetime of ${kind} servers`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
79
99
|
function parseDockerServer(name, entry, expand, hub) {
|
|
80
100
|
if (entry.command !== undefined && !Array.isArray(entry.command)) {
|
|
81
101
|
throw new ConfigError(`Server "${name}": for docker servers "command" is an array of strings (the container's Cmd)`);
|
|
@@ -170,7 +190,8 @@ function parseDockerServer(name, entry, expand, hub) {
|
|
|
170
190
|
readOnly: entry.readOnly !== false,
|
|
171
191
|
tmpfs,
|
|
172
192
|
...(entry.user !== undefined ? { user: requireLiteral(name, 'user', entry.user) } : {}),
|
|
173
|
-
hub
|
|
193
|
+
hub,
|
|
194
|
+
...parseLifecycle(name, entry)
|
|
174
195
|
};
|
|
175
196
|
}
|
|
176
197
|
function parseSocketServer(name, entry, type, expand, hub) {
|
|
@@ -204,10 +225,13 @@ function parseServer(name, entry, env, options) {
|
|
|
204
225
|
}
|
|
205
226
|
if (type === 'docker')
|
|
206
227
|
return parseDockerServer(name, entry, expand, hub);
|
|
207
|
-
if (type === 'unix' || type === 'tcp')
|
|
228
|
+
if (type === 'unix' || type === 'tcp') {
|
|
229
|
+
rejectLifecycle(name, entry, type);
|
|
208
230
|
return parseSocketServer(name, entry, type, expand, hub);
|
|
231
|
+
}
|
|
209
232
|
const isRemote = (typeof type === 'string' && type !== 'stdio') || entry.url !== undefined;
|
|
210
233
|
if (isRemote) {
|
|
234
|
+
rejectLifecycle(name, entry, 'remote');
|
|
211
235
|
if (typeof type === 'string' && type !== 'stdio' && !REMOTE_TYPES.has(type)) {
|
|
212
236
|
throw new ConfigError(`Server "${name}": unknown type "${type}" (supported: stdio, http, sse, docker, unix, tcp)`);
|
|
213
237
|
}
|
|
@@ -243,7 +267,8 @@ function parseServer(name, entry, env, options) {
|
|
|
243
267
|
command: expand(entry.command),
|
|
244
268
|
args: args.map(expand),
|
|
245
269
|
env: expandRecord(envEntry, expand),
|
|
246
|
-
hub
|
|
270
|
+
hub,
|
|
271
|
+
...parseLifecycle(name, entry)
|
|
247
272
|
};
|
|
248
273
|
}
|
|
249
274
|
export function parseConfig(json, env = process.env, options) {
|
|
@@ -329,7 +354,8 @@ export class ConfigWatcher extends EventEmitter {
|
|
|
329
354
|
// host-side edits do not cross the mount boundary, so directory watching
|
|
330
355
|
// never fires there. Stat polling catches in-place content changes.
|
|
331
356
|
// (Host edits must rewrite the file in place — a rename/replace creates a
|
|
332
|
-
// new inode the mount cannot follow.)
|
|
357
|
+
// new inode the mount cannot follow. warnSingleFileMount() flags that
|
|
358
|
+
// setup at startup; the recommended directory mount has neither problem.)
|
|
333
359
|
fs.watchFile(this.filePath, { interval: this.pollIntervalMs }, (curr, prev) => {
|
|
334
360
|
if (curr.mtimeMs === prev.mtimeMs && curr.size === prev.size)
|
|
335
361
|
return;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { containerName } from '../sandbox/container-spec.js';
|
|
|
8
8
|
import { createDockerProxy, recreateSandbox } from './server.js';
|
|
9
9
|
import { SecretsWatcher } from './secrets-watcher.js';
|
|
10
10
|
import { SecretStore, validateConfigSecrets } from './secrets.js';
|
|
11
|
+
import { warnSingleFileMount } from '../mount-check.js';
|
|
11
12
|
/**
|
|
12
13
|
* mcp-hub-docker-proxy: the only component that touches /var/run/docker.sock.
|
|
13
14
|
*
|
|
@@ -39,6 +40,7 @@ catch (error) {
|
|
|
39
40
|
console.error(`mcp-hub-docker-proxy: cannot read ${configPath}: ${error.message}`);
|
|
40
41
|
process.exit(1);
|
|
41
42
|
}
|
|
43
|
+
warnSingleFileMount(configPath, 'mcp-hub-docker-proxy');
|
|
42
44
|
// Fail loudly at startup rather than at the first create: a missing or
|
|
43
45
|
// world-readable secret file is an operator mistake, and finding out about it
|
|
44
46
|
// when a sandbox refuses to start is finding out too late.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/docker-proxy/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,uBAAuB,EAAkB,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/docker-proxy/index.ts"],"names":[],"mappings":"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"}
|
package/dist/health.js
CHANGED
|
@@ -19,8 +19,10 @@ export function healthHandler(supervisor) {
|
|
|
19
19
|
...(s.config.kind === 'docker' ? { image: s.config.image, container: containerName(s.name) } : {})
|
|
20
20
|
}
|
|
21
21
|
]));
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
// Sleeping is the intended resting state of an on-demand server, not a
|
|
23
|
+
// failure — reporting it as degraded would page the operator forever.
|
|
24
|
+
const healthy = Object.values(servers).every(s => s.state === 'up' || s.state === 'sleeping');
|
|
25
|
+
res.status(healthy ? 200 : 503).json({ status: healthy ? 'ok' : 'degraded', servers });
|
|
24
26
|
};
|
|
25
27
|
}
|
|
26
28
|
//# sourceMappingURL=health.js.map
|
package/dist/health.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,UAAsB;IAClD,OAAO,CAAC,IAAa,EAAE,GAAa,EAAQ,EAAE;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,CAAC,CAAC,IAAI;YACN;gBACE,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;gBACnB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;gBACrB,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG;gBACjB,0EAA0E;gBAC1E,iEAAiE;gBACjE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnG;SACF,CAAC,CACH,CAAC;QACF,MAAM,
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,UAAsB;IAClD,OAAO,CAAC,IAAa,EAAE,GAAa,EAAQ,EAAE;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,CAAC,CAAC,IAAI;YACN;gBACE,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;gBACnB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;gBACrB,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG;gBACjB,0EAA0E;gBAC1E,iEAAiE;gBACjE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnG;SACF,CAAC,CACH,CAAC;QACF,uEAAuE;QACvE,sEAAsE;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;QAC9F,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/hub.js
CHANGED
|
@@ -16,25 +16,57 @@ function firstLine(description) {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* The /hub aggregate: one connector exposing every hub-enabled server through
|
|
19
|
-
*
|
|
19
|
+
* six meta-tools, so a client's context holds 6 tool schemas instead of 9×N.
|
|
20
20
|
*/
|
|
21
21
|
export function buildHubServer(supervisor) {
|
|
22
22
|
const hub = new McpServer({ name: 'mcp-hub', version: VERSION });
|
|
23
|
-
const findServer = (name) =>
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const findServer = (name) => supervisor.get(name);
|
|
24
|
+
/**
|
|
25
|
+
* `hub: false` hides a server's TOOLS from the aggregate — those are meant
|
|
26
|
+
* to be used through the server's own endpoint. Its lifecycle is a different
|
|
27
|
+
* matter: wake_server/sleep_server manage hidden servers too, so the error
|
|
28
|
+
* points at the right door instead of pretending the server does not exist
|
|
29
|
+
* (/health names every server to the same token anyway).
|
|
30
|
+
*/
|
|
31
|
+
const requireExposed = (managed) => {
|
|
32
|
+
if (managed.config.hub)
|
|
26
33
|
return undefined;
|
|
27
|
-
return managed;
|
|
34
|
+
return toolError(`Server "${managed.name}" is not exposed through /hub — connect to its own endpoint /${managed.name}/mcp instead.`);
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Asking about an on-demand server's tools is the strongest hint that a
|
|
38
|
+
* call follows, so a sleeping server is pre-warmed in the background while
|
|
39
|
+
* the cached snapshot answers. Only a server with nothing cached yet (first
|
|
40
|
+
* ever run) blocks on the start — there is nothing truthful to answer from.
|
|
41
|
+
* Always-running servers pass through untouched.
|
|
42
|
+
*/
|
|
43
|
+
const prepare = async (managed) => {
|
|
44
|
+
if (!managed.onDemand)
|
|
45
|
+
return undefined;
|
|
46
|
+
if (!managed.hasSnapshot) {
|
|
47
|
+
try {
|
|
48
|
+
await managed.wake();
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
return toolError(`Server "${managed.name}" failed to start: ${error.message}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (managed.state === 'sleeping') {
|
|
55
|
+
void managed.wake().catch(() => { });
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
28
58
|
};
|
|
29
59
|
hub.registerTool('list_servers', {
|
|
30
60
|
title: 'List MCP servers',
|
|
31
|
-
description: 'List all MCP servers available through this hub, with their status. Call this first to see what is available.'
|
|
61
|
+
description: 'List all MCP servers available through this hub, with their status. Call this first to see what is available. ' +
|
|
62
|
+
'Servers marked "hidden" serve their tools only via their own endpoint, but wake_server/sleep_server still manage them.',
|
|
32
63
|
inputSchema: {}
|
|
33
|
-
}, async () => text(supervisor.
|
|
64
|
+
}, async () => text([...supervisor.servers.values()].map(s => ({
|
|
34
65
|
name: s.name,
|
|
35
66
|
description: s.serverInfo?.title ?? s.serverInfo?.name ?? '',
|
|
36
67
|
status: s.state,
|
|
37
|
-
toolCount: s.tools.length
|
|
68
|
+
toolCount: s.tools.length,
|
|
69
|
+
...(s.config.hub ? {} : { hidden: true })
|
|
38
70
|
}))));
|
|
39
71
|
hub.registerTool('list_tools', {
|
|
40
72
|
title: 'List tools of a server',
|
|
@@ -44,8 +76,14 @@ export function buildHubServer(supervisor) {
|
|
|
44
76
|
const managed = findServer(server);
|
|
45
77
|
if (!managed)
|
|
46
78
|
return toolError(`Unknown server "${server}". Use list_servers to see available servers.`);
|
|
47
|
-
|
|
79
|
+
const hidden = requireExposed(managed);
|
|
80
|
+
if (hidden)
|
|
81
|
+
return hidden;
|
|
82
|
+
if (!managed.onDemand && managed.state !== 'up')
|
|
48
83
|
return toolError(`Server "${server}" is ${managed.state}.`);
|
|
84
|
+
const failed = await prepare(managed);
|
|
85
|
+
if (failed)
|
|
86
|
+
return failed;
|
|
49
87
|
return text(managed.tools.map(t => ({ name: t.name, description: firstLine(t.description) })));
|
|
50
88
|
});
|
|
51
89
|
hub.registerTool('get_tool_schema', {
|
|
@@ -59,6 +97,12 @@ export function buildHubServer(supervisor) {
|
|
|
59
97
|
const managed = findServer(server);
|
|
60
98
|
if (!managed)
|
|
61
99
|
return toolError(`Unknown server "${server}". Use list_servers to see available servers.`);
|
|
100
|
+
const hidden = requireExposed(managed);
|
|
101
|
+
if (hidden)
|
|
102
|
+
return hidden;
|
|
103
|
+
const failed = await prepare(managed);
|
|
104
|
+
if (failed)
|
|
105
|
+
return failed;
|
|
62
106
|
const found = managed.tools.find(t => t.name === tool);
|
|
63
107
|
if (!found)
|
|
64
108
|
return toolError(`Unknown tool "${tool}" on server "${server}". Use list_tools to see available tools.`);
|
|
@@ -76,8 +120,20 @@ export function buildHubServer(supervisor) {
|
|
|
76
120
|
const managed = findServer(server);
|
|
77
121
|
if (!managed)
|
|
78
122
|
return toolError(`Unknown server "${server}". Use list_servers to see available servers.`);
|
|
123
|
+
const hidden = requireExposed(managed);
|
|
124
|
+
if (hidden)
|
|
125
|
+
return hidden;
|
|
126
|
+
if (managed.onDemand && (managed.state !== 'up' || !managed.client)) {
|
|
127
|
+
try {
|
|
128
|
+
await managed.wake();
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
return toolError(`Server "${server}" failed to start: ${error.message}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
79
134
|
if (managed.state !== 'up' || !managed.client)
|
|
80
135
|
return toolError(`Server "${server}" is ${managed.state}, try again later.`);
|
|
136
|
+
managed.markUsed();
|
|
81
137
|
try {
|
|
82
138
|
const result = await managed.client.callTool({ name: tool, arguments: (args ?? {}) }, undefined, ABSOLUTE_CALL_OPTIONS);
|
|
83
139
|
return assertForwardedResultSize(result);
|
|
@@ -86,6 +142,38 @@ export function buildHubServer(supervisor) {
|
|
|
86
142
|
return toolError(`Tool call failed: ${error.message}`);
|
|
87
143
|
}
|
|
88
144
|
});
|
|
145
|
+
hub.registerTool('wake_server', {
|
|
146
|
+
title: 'Wake a sleeping server',
|
|
147
|
+
description: 'Start an on-demand server now so its first tool call is fast. No-op if it is already running.',
|
|
148
|
+
inputSchema: { server: z.string().describe('Server name from list_servers') }
|
|
149
|
+
}, async ({ server }) => {
|
|
150
|
+
const managed = findServer(server);
|
|
151
|
+
if (!managed)
|
|
152
|
+
return toolError(`Unknown server "${server}". Use list_servers to see available servers.`);
|
|
153
|
+
if (!managed.onDemand)
|
|
154
|
+
return toolError(`Server "${server}" is always running.`);
|
|
155
|
+
try {
|
|
156
|
+
await managed.wake();
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
return toolError(`Server "${server}" failed to start: ${error.message}`);
|
|
160
|
+
}
|
|
161
|
+
managed.markUsed();
|
|
162
|
+
return text({ name: managed.name, status: managed.state, toolCount: managed.tools.length });
|
|
163
|
+
});
|
|
164
|
+
hub.registerTool('sleep_server', {
|
|
165
|
+
title: 'Put a server to sleep',
|
|
166
|
+
description: 'Stop an on-demand server immediately instead of waiting for its idle timeout. It restarts automatically on the next tool call.',
|
|
167
|
+
inputSchema: { server: z.string().describe('Server name from list_servers') }
|
|
168
|
+
}, async ({ server }) => {
|
|
169
|
+
const managed = findServer(server);
|
|
170
|
+
if (!managed)
|
|
171
|
+
return toolError(`Unknown server "${server}". Use list_servers to see available servers.`);
|
|
172
|
+
if (!managed.onDemand)
|
|
173
|
+
return toolError(`Server "${server}" is always running.`);
|
|
174
|
+
await managed.sleep();
|
|
175
|
+
return text({ name: managed.name, status: managed.state });
|
|
176
|
+
});
|
|
89
177
|
return hub;
|
|
90
178
|
}
|
|
91
179
|
//# sourceMappingURL=hub.js.map
|
package/dist/hub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEnF,SAAS,IAAI,CAAC,KAAc;IAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACnH,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,SAAS,CAAC,WAA+B;IAChD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,UAAsB;IACnD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
|