@ni-c/mcp-hub 0.9.2 → 0.11.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/CHANGELOG.md +619 -0
- package/README.md +189 -64
- package/dist/admin.js +232 -8
- package/dist/admin.js.map +1 -1
- package/dist/auth/address.js +89 -0
- package/dist/auth/address.js.map +1 -0
- package/dist/auth/api-tokens.js +27 -0
- package/dist/auth/api-tokens.js.map +1 -0
- package/dist/auth/cimd.js +367 -0
- package/dist/auth/cimd.js.map +1 -0
- package/dist/auth/consent-page.js +4 -7
- package/dist/auth/consent-page.js.map +1 -1
- package/dist/auth/headers.js +22 -1
- package/dist/auth/headers.js.map +1 -1
- package/dist/auth/login-page.js +4 -7
- package/dist/auth/login-page.js.map +1 -1
- package/dist/auth/oidc/adapter.js +135 -0
- package/dist/auth/oidc/adapter.js.map +1 -0
- package/dist/auth/oidc/interactions.js +187 -0
- package/dist/auth/oidc/interactions.js.map +1 -0
- package/dist/auth/oidc/mount.js +144 -0
- package/dist/auth/oidc/mount.js.map +1 -0
- package/dist/auth/oidc/provider.js +440 -0
- package/dist/auth/oidc/provider.js.map +1 -0
- package/dist/auth/oidc/quirks.js +234 -0
- package/dist/auth/oidc/quirks.js.map +1 -0
- package/dist/auth/oidc/verifier.js +121 -0
- package/dist/auth/oidc/verifier.js.map +1 -0
- package/dist/auth/page.js +22 -0
- package/dist/auth/page.js.map +1 -1
- package/dist/auth/pinned-fetch.js +129 -0
- package/dist/auth/pinned-fetch.js.map +1 -0
- package/dist/auth/protected-resource.js +41 -0
- package/dist/auth/protected-resource.js.map +1 -0
- package/dist/auth/rate-limit.js +156 -0
- package/dist/auth/rate-limit.js.map +1 -0
- package/dist/auth/redirect-uri.js +90 -0
- package/dist/auth/redirect-uri.js.map +1 -0
- package/dist/auth/registration.js +146 -0
- package/dist/auth/registration.js.map +1 -0
- package/dist/auth/session.js +43 -0
- package/dist/auth/session.js.map +1 -0
- package/dist/auth/signed-token.js +49 -0
- package/dist/auth/signed-token.js.map +1 -0
- package/dist/auth/store.js +516 -5
- package/dist/auth/store.js.map +1 -1
- package/dist/auth/text.js +51 -0
- package/dist/auth/text.js.map +1 -0
- package/dist/config.js +184 -5
- package/dist/config.js.map +1 -1
- package/dist/docker-proxy/policy.js +1 -0
- package/dist/docker-proxy/policy.js.map +1 -1
- package/dist/docker-proxy/server.js +1 -0
- package/dist/docker-proxy/server.js.map +1 -1
- package/dist/elicitation.js +0 -0
- package/dist/elicitation.js.map +1 -0
- package/dist/forward.js +0 -0
- package/dist/forward.js.map +1 -0
- package/dist/health.js +22 -3
- package/dist/health.js.map +1 -1
- package/dist/hub.js +337 -29
- package/dist/hub.js.map +1 -1
- package/dist/index.js +218 -23
- package/dist/index.js.map +1 -1
- package/dist/limits.js +13 -1
- package/dist/limits.js.map +1 -1
- package/dist/mcp-limits.js +14 -2
- package/dist/mcp-limits.js.map +1 -1
- package/dist/proxy.js +262 -34
- package/dist/proxy.js.map +1 -1
- package/dist/stdio.js +97 -7
- package/dist/stdio.js.map +1 -1
- package/dist/subscriptions.js +236 -0
- package/dist/subscriptions.js.map +1 -0
- package/dist/supervisor.js +472 -28
- package/dist/supervisor.js.map +1 -1
- package/dist/timings.js +61 -0
- package/dist/timings.js.map +1 -0
- package/dist/tool-filter.js +59 -0
- package/dist/tool-filter.js.map +1 -0
- package/dist/transports/docker.js.map +1 -1
- package/dist/transports/stream.js +33 -20
- package/dist/transports/stream.js.map +1 -1
- package/dist/upstream/auth.js +435 -0
- package/dist/upstream/auth.js.map +1 -0
- package/dist/upstream/login.js +94 -0
- package/dist/upstream/login.js.map +1 -0
- package/dist/upstream/provider.js +286 -0
- package/dist/upstream/provider.js.map +1 -0
- package/dist/upstream/routes.js +97 -0
- package/dist/upstream/routes.js.map +1 -0
- package/package.json +23 -7
- package/dist/auth/provider.js +0 -380
- package/dist/auth/provider.js.map +0 -1
- package/dist/auth/routes.js +0 -223
- package/dist/auth/routes.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/docker-proxy/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/docker-proxy/server.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elicitation.js","sourceRoot":"","sources":["../src/elicitation.ts"],"names":[],"mappings":"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"}
|
package/dist/forward.js
ADDED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forward.js","sourceRoot":"","sources":["../src/forward.ts"],"names":[],"mappings":"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"}
|
package/dist/health.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { containerName } from './sandbox/container-spec.js';
|
|
2
|
+
import { hasToolFilter } from './tool-filter.js';
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* The detailed fleet view, and therefore an authenticated one: it names every
|
|
5
|
+
* configured server, its state and its sandbox image, which together describe
|
|
6
|
+
* the deployment. It is mounted behind bearer auth and bound to the `hub`
|
|
7
|
+
* resource, so a token issued for one server cannot enumerate the others.
|
|
8
|
+
* Docker's HEALTHCHECK uses `/livez` instead, which carries no topology at all.
|
|
9
|
+
*
|
|
10
|
+
* `lastError` is deliberately left out even here: it carries upstream URLs and
|
|
11
|
+
* spawn paths, and stays in the container log.
|
|
6
12
|
*/
|
|
7
13
|
export function healthHandler(supervisor) {
|
|
8
14
|
return (_req, res) => {
|
|
@@ -14,6 +20,19 @@ export function healthHandler(supervisor) {
|
|
|
14
20
|
restarts: s.restarts,
|
|
15
21
|
tools: s.tools.length,
|
|
16
22
|
hub: s.config.hub,
|
|
23
|
+
// Only present when a filter is configured, so every other server's
|
|
24
|
+
// entry keeps its shape. `tools` keeps its meaning: what a client sees.
|
|
25
|
+
// `hidden` and `unmatched` join it only once the server has really
|
|
26
|
+
// listed its tools — a snapshot from tool-cache.json is already
|
|
27
|
+
// filtered, so there is nothing honest to say about them yet.
|
|
28
|
+
...(hasToolFilter(s.config)
|
|
29
|
+
? {
|
|
30
|
+
toolFilter: {
|
|
31
|
+
exposed: s.tools.length,
|
|
32
|
+
...(s.toolsHidden !== undefined ? { hidden: s.toolsHidden, unmatched: s.filterUnmatched } : {})
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
: {}),
|
|
17
36
|
// The image is the one detail that turns "scraper is down" into something
|
|
18
37
|
// actionable for a sandbox; it is a local tag, not a credential.
|
|
19
38
|
...(s.config.kind === 'docker' ? { image: s.config.image, container: containerName(s.name) } : {})
|
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;
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;GASG;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,oEAAoE;gBACpE,wEAAwE;gBACxE,mEAAmE;gBACnE,gEAAgE;gBAChE,8DAA8D;gBAC9D,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;oBACzB,CAAC,CAAC;wBACE,UAAU,EAAE;4BACV,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;4BACvB,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAChG;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,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
|
@@ -1,10 +1,118 @@
|
|
|
1
|
-
import { McpServer } from '@modelcontextprotocol/
|
|
1
|
+
import { McpServer, CLIENT_CAPABILITIES_META_KEY } from '@modelcontextprotocol/server';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { VERSION } from './version.js';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { forwardToolCall } from './forward.js';
|
|
5
|
+
import { loggableToolName, toolAllowed } from './tool-filter.js';
|
|
6
|
+
import { booleanEnv } from './mcp-limits.js';
|
|
7
|
+
import { REFUSAL_REASON, decidePassthrough } from './elicitation.js';
|
|
8
|
+
import { REVISION } from './proxy.js';
|
|
9
|
+
/**
|
|
10
|
+
* A meta-tool answer, in both channels at once.
|
|
11
|
+
*
|
|
12
|
+
* `structuredContent` is the machine-readable half and the reason the tools
|
|
13
|
+
* declare an `outputSchema` at all; the text block stays because the SDK does
|
|
14
|
+
* NOT synthesize one for an object-shaped value, and a client that only reads
|
|
15
|
+
* `content` would otherwise get an empty answer. Both carry the same object —
|
|
16
|
+
* the specification's rule is that the two are the same information in two
|
|
17
|
+
* presentations, and the cheapest way to keep that true is to serialise the one
|
|
18
|
+
* value twice rather than to build two.
|
|
19
|
+
*/
|
|
20
|
+
function structured(value) {
|
|
21
|
+
return {
|
|
22
|
+
content: [{ type: 'text', text: JSON.stringify(value, null, 2) }],
|
|
23
|
+
structuredContent: value
|
|
24
|
+
};
|
|
7
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Every value `ServerState` has, as a schema.
|
|
28
|
+
*
|
|
29
|
+
* Written as a `Record` keyed by the type rather than as a bare list on
|
|
30
|
+
* purpose: a state added to the supervisor and forgotten here would make this
|
|
31
|
+
* schema refuse a perfectly correct answer, and the SDK turns a refused answer
|
|
32
|
+
* into an error result. Keyed this way the omission is a compile error instead.
|
|
33
|
+
*/
|
|
34
|
+
const SERVER_STATES = {
|
|
35
|
+
starting: true,
|
|
36
|
+
up: true,
|
|
37
|
+
down: true,
|
|
38
|
+
stopped: true,
|
|
39
|
+
sleeping: true,
|
|
40
|
+
unauthorized: true
|
|
41
|
+
};
|
|
42
|
+
const serverStatus = z
|
|
43
|
+
.enum(Object.keys(SERVER_STATES))
|
|
44
|
+
.describe('What the hub is currently doing with this server.');
|
|
45
|
+
/**
|
|
46
|
+
* A JSON Schema, or a child's annotations: an object whose contents are not
|
|
47
|
+
* ours to describe.
|
|
48
|
+
*
|
|
49
|
+
* `looseObject` and not a stricter shape, because both are somebody else's
|
|
50
|
+
* document. Note that this stays right even under SEP-2106, which lets an
|
|
51
|
+
* `outputSchema` describe a non-object *instance*: the schema itself is still
|
|
52
|
+
* a JSON object — `{"type": "array", …}` — so it is the instance root that got
|
|
53
|
+
* freer, not the document.
|
|
54
|
+
*
|
|
55
|
+
* The `meta` is not decoration. Left to itself zod writes "accepts anything" as
|
|
56
|
+
* `"additionalProperties": {}` — an empty schema, which is legal and means
|
|
57
|
+
* exactly the same as `true`, but is the spelling some MCP clients refuse or
|
|
58
|
+
* mishandle. `meta` is merged into the emitted JSON Schema and nothing else, so
|
|
59
|
+
* the wire says `true` while the runtime stays as permissive as it has to be.
|
|
60
|
+
*/
|
|
61
|
+
const foreignDocument = z.looseObject({}).meta({ additionalProperties: true });
|
|
62
|
+
const listServersOutput = z.object({
|
|
63
|
+
servers: z.array(z.object({
|
|
64
|
+
name: z.string().describe('Name to pass to the other tools.'),
|
|
65
|
+
description: z.string().describe("The child's own title, empty if it has never connected."),
|
|
66
|
+
status: serverStatus,
|
|
67
|
+
toolCount: z.number().int().describe('Tools this server offers through the hub, after its filter.'),
|
|
68
|
+
hidden: z
|
|
69
|
+
.literal(true)
|
|
70
|
+
.optional()
|
|
71
|
+
.describe('Present only for a server whose tools are served by its own endpoint alone.')
|
|
72
|
+
}))
|
|
73
|
+
});
|
|
74
|
+
const listToolsOutput = z.object({
|
|
75
|
+
server: z.string(),
|
|
76
|
+
tools: z.array(z.object({
|
|
77
|
+
name: z.string(),
|
|
78
|
+
description: z.string().describe('First line only, capped at 120 characters.'),
|
|
79
|
+
annotations: foreignDocument.optional().describe("The child's own annotations, verbatim; absent if it declared none."),
|
|
80
|
+
hasOutputSchema: z
|
|
81
|
+
.literal(true)
|
|
82
|
+
.optional()
|
|
83
|
+
.describe('Present when the tool declares an output schema, which get_tool_schema returns.')
|
|
84
|
+
}))
|
|
85
|
+
});
|
|
86
|
+
const getToolSchemaOutput = z.object({
|
|
87
|
+
server: z.string(),
|
|
88
|
+
name: z.string(),
|
|
89
|
+
description: z.string().describe('The full description, untruncated.'),
|
|
90
|
+
inputSchema: foreignDocument.describe('JSON Schema for the arguments of call_tool.'),
|
|
91
|
+
outputSchema: foreignDocument
|
|
92
|
+
.optional()
|
|
93
|
+
.describe('JSON Schema the structuredContent of a call conforms to; absent if the tool declares none.'),
|
|
94
|
+
annotations: foreignDocument.optional()
|
|
95
|
+
});
|
|
96
|
+
const describeConnectionOutput = z.object({
|
|
97
|
+
era: z.enum(['modern', 'legacy']).describe('Which protocol era this very call arrived on.'),
|
|
98
|
+
revision: z.string().describe('The revision string that era puts on the wire.'),
|
|
99
|
+
hubVersion: z.string(),
|
|
100
|
+
caller: z.object({
|
|
101
|
+
declaresElicitation: z
|
|
102
|
+
.boolean()
|
|
103
|
+
.describe('Whether this request carried an elicitation capability. Only the 2026 era can carry one at all.')
|
|
104
|
+
}),
|
|
105
|
+
elicitation: z.object({
|
|
106
|
+
wouldForward: z
|
|
107
|
+
.boolean()
|
|
108
|
+
.optional()
|
|
109
|
+
.describe('Whether a question from the named server would reach you. Absent when no server was named and the answer depends on one.'),
|
|
110
|
+
reason: z.string().optional().describe('Why not, or what the answer still depends on. Absent when a question would be carried.'),
|
|
111
|
+
server: z.string().optional().describe('The server this answer was computed for, if one was named.')
|
|
112
|
+
})
|
|
113
|
+
});
|
|
114
|
+
const wakeServerOutput = z.object({ name: z.string(), status: serverStatus, toolCount: z.number().int() });
|
|
115
|
+
const sleepServerOutput = z.object({ name: z.string(), status: serverStatus });
|
|
8
116
|
function toolError(message) {
|
|
9
117
|
return { content: [{ type: 'text', text: message }], isError: true };
|
|
10
118
|
}
|
|
@@ -14,11 +122,67 @@ function firstLine(description) {
|
|
|
14
122
|
const line = description.split('\n', 1)[0].trim();
|
|
15
123
|
return line.length > 120 ? `${line.slice(0, 117)}...` : line;
|
|
16
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* The four hints the three reading meta-tools carry.
|
|
127
|
+
*
|
|
128
|
+
* Written out rather than left to the defaults, because the defaults are not
|
|
129
|
+
* neutral: the specification gives `destructiveHint` and `openWorldHint` a
|
|
130
|
+
* default of **true**, so a tool that says nothing announces itself as a
|
|
131
|
+
* destructive tool in an open world. `list_servers`, `list_tools` and
|
|
132
|
+
* `get_tool_schema` only read the hub's own snapshot, and they said nothing.
|
|
133
|
+
*
|
|
134
|
+
* `openWorldHint: false` is right even though the *children* reach all sorts of
|
|
135
|
+
* places: these three do not call them. `call_tool` does, and says so.
|
|
136
|
+
*/
|
|
137
|
+
const READS = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
138
|
+
/**
|
|
139
|
+
* A lifecycle switch: it changes nothing a person put there, and doing it twice
|
|
140
|
+
* leaves the same world.
|
|
141
|
+
*/
|
|
142
|
+
const LIFECYCLE = { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
143
|
+
/**
|
|
144
|
+
* The child's own annotations, passed on verbatim.
|
|
145
|
+
*
|
|
146
|
+
* Verbatim, and not condensed into a kind/asks pair, because a summary would be
|
|
147
|
+
* a statement *by the hub* about the child's claim. The specification is blunt
|
|
148
|
+
* about what these are worth — "clients MUST consider tool annotations to be
|
|
149
|
+
* untrusted unless they come from trusted servers" — and the hub is in no
|
|
150
|
+
* position to vouch for a child it merely forwards to. It says what it was
|
|
151
|
+
* told, and hub-tools.md says whose word it is.
|
|
152
|
+
*
|
|
153
|
+
* Omitted entirely when the child declared none. An empty object here would
|
|
154
|
+
* read as "all four defaults", which is a claim the child did not make.
|
|
155
|
+
*/
|
|
156
|
+
const passThrough = (tool) => tool.annotations === undefined ? {} : { annotations: tool.annotations };
|
|
17
157
|
/**
|
|
18
158
|
* The /hub aggregate: one connector exposing every hub-enabled server through
|
|
19
159
|
* six meta-tools, so a client's context holds 6 tool schemas instead of 9×N.
|
|
20
160
|
*/
|
|
21
|
-
|
|
161
|
+
/**
|
|
162
|
+
* Refuses a tool the server's allowTools/denyTools filter removed.
|
|
163
|
+
*
|
|
164
|
+
* The message is verbatim what get_tool_schema already answers for a tool that
|
|
165
|
+
* genuinely does not exist, so a filtered tool is indistinguishable from an
|
|
166
|
+
* absent one — /hub tokens go to third-party connectors, and a refusal that
|
|
167
|
+
* enumerated what was hidden would be a disclosure. The operator's signal goes
|
|
168
|
+
* to the hub log instead.
|
|
169
|
+
*/
|
|
170
|
+
const requireAllowedTool = (managed, tool, server) => {
|
|
171
|
+
if (toolAllowed(managed.config, tool))
|
|
172
|
+
return undefined;
|
|
173
|
+
console.warn(`[${managed.name}] refused "${loggableToolName(tool)}": not permitted by allowTools/denyTools`);
|
|
174
|
+
return toolError(`Unknown tool "${tool}" on server "${server}". Use list_tools to see available tools.`);
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* The aggregate, built for the era it will serve.
|
|
178
|
+
*
|
|
179
|
+
* `era` is not decoration: both entry points already construct one instance per
|
|
180
|
+
* era — `createMcpHandler` per request, `serveStdio` per connection — and the
|
|
181
|
+
* SDK hands the era to the factory precisely so a server can vary by it. The
|
|
182
|
+
* only thing that varies here is `describe_connection`, which would otherwise
|
|
183
|
+
* have to guess the one fact it exists to report.
|
|
184
|
+
*/
|
|
185
|
+
export function buildHubServer(supervisor, secret, era) {
|
|
22
186
|
const hub = new McpServer({ name: 'mcp-hub', version: VERSION });
|
|
23
187
|
const findServer = (name) => supervisor.get(name);
|
|
24
188
|
/**
|
|
@@ -60,18 +224,24 @@ export function buildHubServer(supervisor) {
|
|
|
60
224
|
title: 'List MCP servers',
|
|
61
225
|
description: 'List all MCP servers available through this hub, with their status. Call this first to see what is available. ' +
|
|
62
226
|
'Servers marked "hidden" serve their tools only via their own endpoint, but wake_server/sleep_server still manage them.',
|
|
63
|
-
inputSchema: {}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
227
|
+
inputSchema: z.object({}),
|
|
228
|
+
outputSchema: listServersOutput,
|
|
229
|
+
annotations: READS
|
|
230
|
+
}, async () => structured({
|
|
231
|
+
servers: [...supervisor.servers.values()].map(s => ({
|
|
232
|
+
name: s.name,
|
|
233
|
+
description: s.serverInfo?.title ?? s.serverInfo?.name ?? '',
|
|
234
|
+
status: s.state,
|
|
235
|
+
toolCount: s.tools.length,
|
|
236
|
+
...(s.config.hub ? {} : { hidden: true })
|
|
237
|
+
}))
|
|
238
|
+
}));
|
|
71
239
|
hub.registerTool('list_tools', {
|
|
72
240
|
title: 'List tools of a server',
|
|
73
241
|
description: 'List the tools of one MCP server with one-line descriptions. Use get_tool_schema before calling a tool for the first time.',
|
|
74
|
-
inputSchema: { server: z.string().describe('Server name from list_servers') }
|
|
242
|
+
inputSchema: z.object({ server: z.string().describe('Server name from list_servers') }),
|
|
243
|
+
outputSchema: listToolsOutput,
|
|
244
|
+
annotations: READS
|
|
75
245
|
}, async ({ server }) => {
|
|
76
246
|
const managed = findServer(server);
|
|
77
247
|
if (!managed)
|
|
@@ -84,15 +254,32 @@ export function buildHubServer(supervisor) {
|
|
|
84
254
|
const failed = await prepare(managed);
|
|
85
255
|
if (failed)
|
|
86
256
|
return failed;
|
|
87
|
-
return
|
|
257
|
+
return structured({
|
|
258
|
+
server: managed.name,
|
|
259
|
+
tools: managed.tools.map(t => ({
|
|
260
|
+
name: t.name,
|
|
261
|
+
description: firstLine(t.description),
|
|
262
|
+
...passThrough(t),
|
|
263
|
+
// A marker, not the schema itself: this list exists to stay small,
|
|
264
|
+
// and a page of JSON Schema per tool is what get_tool_schema is for.
|
|
265
|
+
// Omitted rather than false, for passThrough's reason.
|
|
266
|
+
//
|
|
267
|
+
// It stays a marker now that every server this family ships declares
|
|
268
|
+
// one. A hub runs whatever its config names, and a child written by
|
|
269
|
+
// somebody else is the ordinary case here, not the odd one.
|
|
270
|
+
...(t.outputSchema === undefined ? {} : { hasOutputSchema: true })
|
|
271
|
+
}))
|
|
272
|
+
});
|
|
88
273
|
});
|
|
89
274
|
hub.registerTool('get_tool_schema', {
|
|
90
275
|
title: 'Get the full schema of a tool',
|
|
91
276
|
description: 'Get the full description and JSON input schema of one tool, needed to construct arguments for call_tool.',
|
|
92
|
-
inputSchema: {
|
|
277
|
+
inputSchema: z.object({
|
|
93
278
|
server: z.string().describe('Server name from list_servers'),
|
|
94
279
|
tool: z.string().describe('Tool name from list_tools')
|
|
95
|
-
}
|
|
280
|
+
}),
|
|
281
|
+
outputSchema: getToolSchemaOutput,
|
|
282
|
+
annotations: READS
|
|
96
283
|
}, async ({ server, tool }) => {
|
|
97
284
|
const managed = findServer(server);
|
|
98
285
|
if (!managed)
|
|
@@ -100,29 +287,76 @@ export function buildHubServer(supervisor) {
|
|
|
100
287
|
const hidden = requireExposed(managed);
|
|
101
288
|
if (hidden)
|
|
102
289
|
return hidden;
|
|
290
|
+
// Before prepare(): that background-pre-warms a sleeping server, so a
|
|
291
|
+
// forbidden name would still cost a start even though the lookup below
|
|
292
|
+
// would fail anyway.
|
|
293
|
+
const filtered = requireAllowedTool(managed, tool, server);
|
|
294
|
+
if (filtered)
|
|
295
|
+
return filtered;
|
|
103
296
|
const failed = await prepare(managed);
|
|
104
297
|
if (failed)
|
|
105
298
|
return failed;
|
|
106
299
|
const found = managed.tools.find(t => t.name === tool);
|
|
107
300
|
if (!found)
|
|
108
301
|
return toolError(`Unknown tool "${tool}" on server "${server}". Use list_tools to see available tools.`);
|
|
109
|
-
return
|
|
302
|
+
return structured({
|
|
303
|
+
server: managed.name,
|
|
304
|
+
name: found.name,
|
|
305
|
+
description: found.description ?? '',
|
|
306
|
+
inputSchema: found.inputSchema,
|
|
307
|
+
// The reason this tool exists twice over: call_tool hands back the
|
|
308
|
+
// child's structuredContent, and until this line the caller had no way
|
|
309
|
+
// to learn what shape it was promised. Verbatim and omitted-when-absent,
|
|
310
|
+
// exactly as annotations are.
|
|
311
|
+
...(found.outputSchema === undefined ? {} : { outputSchema: found.outputSchema }),
|
|
312
|
+
...passThrough(found)
|
|
313
|
+
});
|
|
110
314
|
});
|
|
111
315
|
hub.registerTool('call_tool', {
|
|
112
316
|
title: 'Call a tool on a server',
|
|
113
317
|
description: 'Call a tool on one of the MCP servers. Arguments must match the schema from get_tool_schema.',
|
|
114
|
-
inputSchema: {
|
|
318
|
+
inputSchema: z.object({
|
|
115
319
|
server: z.string().describe('Server name from list_servers'),
|
|
116
320
|
tool: z.string().describe('Tool name from list_tools'),
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
321
|
+
// `meta` for the same reason as `foreignDocument`: say `true` on the
|
|
322
|
+
// wire rather than the empty schema zod would write by itself.
|
|
323
|
+
arguments: z
|
|
324
|
+
.record(z.string(), z.unknown())
|
|
325
|
+
.meta({ additionalProperties: true })
|
|
326
|
+
.optional()
|
|
327
|
+
.describe('Tool arguments matching its input schema')
|
|
328
|
+
}),
|
|
329
|
+
// No outputSchema, and the only tool here without one. That is a
|
|
330
|
+
// construction rather than an omission: this tool answers with a child's
|
|
331
|
+
// result, so the shape is the child's own and changes with the `tool`
|
|
332
|
+
// argument. A schema here could say no more than "an object", which is
|
|
333
|
+
// less than the caller can already have — get_tool_schema returns the
|
|
334
|
+
// child's own outputSchema, and call_tool hands the matching
|
|
335
|
+
// structuredContent back verbatim.
|
|
336
|
+
//
|
|
337
|
+
// The one place the hub cannot know the answer, so it gives the strongest
|
|
338
|
+
// one. Whatever the named tool does, call_tool does — it may delete, it
|
|
339
|
+
// may reach the whole internet, and forwarding is not the same as
|
|
340
|
+
// vouching. Read the child's own annotations from list_tools for what a
|
|
341
|
+
// particular call would do.
|
|
342
|
+
annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true }
|
|
343
|
+
}, async ({ server, tool, arguments: args }, ctx) => {
|
|
120
344
|
const managed = findServer(server);
|
|
121
345
|
if (!managed)
|
|
122
346
|
return toolError(`Unknown server "${server}". Use list_servers to see available servers.`);
|
|
123
347
|
const hidden = requireExposed(managed);
|
|
124
348
|
if (hidden)
|
|
125
349
|
return hidden;
|
|
350
|
+
// Before the wake: hiding is not a boundary here, because the hub
|
|
351
|
+
// forwards by name. Refusing first also means a forbidden name cannot
|
|
352
|
+
// start a sleeping server.
|
|
353
|
+
const filtered = requireAllowedTool(managed, tool, server);
|
|
354
|
+
if (filtered)
|
|
355
|
+
return filtered;
|
|
356
|
+
// The wake stays here rather than being left to the forward, which would
|
|
357
|
+
// do it too: this endpoint answers with tool results, and "failed to
|
|
358
|
+
// start" is a different thing for a caller to read than "tool call
|
|
359
|
+
// failed". Once it is up the forward's own wake is a no-op.
|
|
126
360
|
if (managed.onDemand && (managed.state !== 'up' || !managed.client)) {
|
|
127
361
|
try {
|
|
128
362
|
await managed.wake();
|
|
@@ -133,19 +367,34 @@ export function buildHubServer(supervisor) {
|
|
|
133
367
|
}
|
|
134
368
|
if (managed.state !== 'up' || !managed.client)
|
|
135
369
|
return toolError(`Server "${server}" is ${managed.state}, try again later.`);
|
|
136
|
-
managed.markUsed();
|
|
137
370
|
try {
|
|
138
|
-
|
|
139
|
-
|
|
371
|
+
// Same forwarding rules as the per-server path, from the same code: a
|
|
372
|
+
// child that asks something reaches the person through this door too.
|
|
373
|
+
// `via: 'hub'` binds the sealed request state to this endpoint — the
|
|
374
|
+
// same tool is reachable both ways, and resuming one call through the
|
|
375
|
+
// other door is not something a caller should be able to do.
|
|
376
|
+
return await forwardToolCall({
|
|
377
|
+
managed,
|
|
378
|
+
tool,
|
|
379
|
+
params: { name: tool, arguments: (args ?? {}) },
|
|
380
|
+
ctx,
|
|
381
|
+
secret,
|
|
382
|
+
via: 'hub'
|
|
383
|
+
});
|
|
140
384
|
}
|
|
141
385
|
catch (error) {
|
|
386
|
+
// Aggregate semantics: every failure here is a tool result, never a
|
|
387
|
+
// protocol error, because six meta-tools stand in for every server and
|
|
388
|
+
// one unreachable child must not look like a broken hub.
|
|
142
389
|
return toolError(`Tool call failed: ${error.message}`);
|
|
143
390
|
}
|
|
144
391
|
});
|
|
145
392
|
hub.registerTool('wake_server', {
|
|
146
393
|
title: 'Wake a sleeping server',
|
|
147
394
|
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') }
|
|
395
|
+
inputSchema: z.object({ server: z.string().describe('Server name from list_servers') }),
|
|
396
|
+
outputSchema: wakeServerOutput,
|
|
397
|
+
annotations: LIFECYCLE
|
|
149
398
|
}, async ({ server }) => {
|
|
150
399
|
const managed = findServer(server);
|
|
151
400
|
if (!managed)
|
|
@@ -159,12 +408,14 @@ export function buildHubServer(supervisor) {
|
|
|
159
408
|
return toolError(`Server "${server}" failed to start: ${error.message}`);
|
|
160
409
|
}
|
|
161
410
|
managed.markUsed();
|
|
162
|
-
return
|
|
411
|
+
return structured({ name: managed.name, status: managed.state, toolCount: managed.tools.length });
|
|
163
412
|
});
|
|
164
413
|
hub.registerTool('sleep_server', {
|
|
165
414
|
title: 'Put a server to sleep',
|
|
166
415
|
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') }
|
|
416
|
+
inputSchema: z.object({ server: z.string().describe('Server name from list_servers') }),
|
|
417
|
+
outputSchema: sleepServerOutput,
|
|
418
|
+
annotations: LIFECYCLE
|
|
168
419
|
}, async ({ server }) => {
|
|
169
420
|
const managed = findServer(server);
|
|
170
421
|
if (!managed)
|
|
@@ -172,8 +423,65 @@ export function buildHubServer(supervisor) {
|
|
|
172
423
|
if (!managed.onDemand)
|
|
173
424
|
return toolError(`Server "${server}" is always running.`);
|
|
174
425
|
await managed.sleep();
|
|
175
|
-
return
|
|
426
|
+
return structured({ name: managed.name, status: managed.state });
|
|
176
427
|
});
|
|
428
|
+
/**
|
|
429
|
+
* The seventh tool, off unless an operator asks for it.
|
|
430
|
+
*
|
|
431
|
+
* Off by default because every tool a client can see costs context in every
|
|
432
|
+
* conversation that client has, and "six meta-tools instead of N×tools" is
|
|
433
|
+
* the whole argument for the aggregate. This one answers a question most
|
|
434
|
+
* deployments never ask. It is not off for safety: it reports only what the
|
|
435
|
+
* caller's own request already contains, and says nothing about any other
|
|
436
|
+
* client — which is exactly why it exists instead of a tool that hands out
|
|
437
|
+
* the hub's log.
|
|
438
|
+
*
|
|
439
|
+
* Read here rather than at module load so a test can set it per case, and
|
|
440
|
+
* because this function runs once per request anyway.
|
|
441
|
+
*/
|
|
442
|
+
if (booleanEnv('MCP_DIAGNOSTICS', false)) {
|
|
443
|
+
hub.registerTool('describe_connection', {
|
|
444
|
+
title: 'Describe this connection',
|
|
445
|
+
description: 'Report how you are connected to this hub right now: the protocol era, and whether a server could ask you a question mid-call. ' +
|
|
446
|
+
'Name a server to include its own switch and era in the answer.',
|
|
447
|
+
inputSchema: z.object({
|
|
448
|
+
server: z.string().optional().describe('Server name from list_servers. Omit to ask about the connection alone.')
|
|
449
|
+
}),
|
|
450
|
+
outputSchema: describeConnectionOutput,
|
|
451
|
+
annotations: READS
|
|
452
|
+
}, async ({ server }, ctx) => {
|
|
453
|
+
const managed = server === undefined ? undefined : findServer(server);
|
|
454
|
+
if (server !== undefined && !managed) {
|
|
455
|
+
return toolError(`Unknown server "${server}". Use list_servers to see available servers.`);
|
|
456
|
+
}
|
|
457
|
+
// Exactly what forwardToolCall reads, from exactly the same place.
|
|
458
|
+
const envelope = ctx.mcpReq.envelope;
|
|
459
|
+
const declared = envelope?.[CLIENT_CAPABILITIES_META_KEY]?.elicitation;
|
|
460
|
+
// A sleeping child has negotiated no era, and asking here must not wake
|
|
461
|
+
// one: this tool reports, it does not act.
|
|
462
|
+
const childEra = managed?.state === 'up' ? managed.client?.getProtocolEra() : undefined;
|
|
463
|
+
const decision = decidePassthrough({ config: managed?.config, declaredElicitation: declared, childEra });
|
|
464
|
+
// Without a named server the first two conditions still hold for every
|
|
465
|
+
// server there is — an operator's global switch and the caller's own
|
|
466
|
+
// capability do not vary by child. The last two do, so an answer that
|
|
467
|
+
// stopped there is reported as "depends", not as a refusal the caller
|
|
468
|
+
// could act on.
|
|
469
|
+
const dependsOnAServer = managed === undefined && (decision.refusal === 'child-asleep' || decision.refusal === 'child-era');
|
|
470
|
+
return structured({
|
|
471
|
+
era,
|
|
472
|
+
revision: REVISION[era],
|
|
473
|
+
hubVersion: VERSION,
|
|
474
|
+
caller: { declaresElicitation: declared !== undefined },
|
|
475
|
+
elicitation: dependsOnAServer
|
|
476
|
+
? { reason: 'you could be asked; whether a given server may ask depends on that server — name one to find out' }
|
|
477
|
+
: {
|
|
478
|
+
wouldForward: decision.forward,
|
|
479
|
+
...(decision.refusal ? { reason: REFUSAL_REASON[decision.refusal] } : {}),
|
|
480
|
+
...(managed ? { server: managed.name } : {})
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
});
|
|
484
|
+
}
|
|
177
485
|
return hub;
|
|
178
486
|
}
|
|
179
487
|
//# sourceMappingURL=hub.js.map
|