@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.
Files changed (96) hide show
  1. package/CHANGELOG.md +619 -0
  2. package/README.md +189 -64
  3. package/dist/admin.js +232 -8
  4. package/dist/admin.js.map +1 -1
  5. package/dist/auth/address.js +89 -0
  6. package/dist/auth/address.js.map +1 -0
  7. package/dist/auth/api-tokens.js +27 -0
  8. package/dist/auth/api-tokens.js.map +1 -0
  9. package/dist/auth/cimd.js +367 -0
  10. package/dist/auth/cimd.js.map +1 -0
  11. package/dist/auth/consent-page.js +4 -7
  12. package/dist/auth/consent-page.js.map +1 -1
  13. package/dist/auth/headers.js +22 -1
  14. package/dist/auth/headers.js.map +1 -1
  15. package/dist/auth/login-page.js +4 -7
  16. package/dist/auth/login-page.js.map +1 -1
  17. package/dist/auth/oidc/adapter.js +135 -0
  18. package/dist/auth/oidc/adapter.js.map +1 -0
  19. package/dist/auth/oidc/interactions.js +187 -0
  20. package/dist/auth/oidc/interactions.js.map +1 -0
  21. package/dist/auth/oidc/mount.js +144 -0
  22. package/dist/auth/oidc/mount.js.map +1 -0
  23. package/dist/auth/oidc/provider.js +440 -0
  24. package/dist/auth/oidc/provider.js.map +1 -0
  25. package/dist/auth/oidc/quirks.js +234 -0
  26. package/dist/auth/oidc/quirks.js.map +1 -0
  27. package/dist/auth/oidc/verifier.js +121 -0
  28. package/dist/auth/oidc/verifier.js.map +1 -0
  29. package/dist/auth/page.js +22 -0
  30. package/dist/auth/page.js.map +1 -1
  31. package/dist/auth/pinned-fetch.js +129 -0
  32. package/dist/auth/pinned-fetch.js.map +1 -0
  33. package/dist/auth/protected-resource.js +41 -0
  34. package/dist/auth/protected-resource.js.map +1 -0
  35. package/dist/auth/rate-limit.js +156 -0
  36. package/dist/auth/rate-limit.js.map +1 -0
  37. package/dist/auth/redirect-uri.js +90 -0
  38. package/dist/auth/redirect-uri.js.map +1 -0
  39. package/dist/auth/registration.js +146 -0
  40. package/dist/auth/registration.js.map +1 -0
  41. package/dist/auth/session.js +43 -0
  42. package/dist/auth/session.js.map +1 -0
  43. package/dist/auth/signed-token.js +49 -0
  44. package/dist/auth/signed-token.js.map +1 -0
  45. package/dist/auth/store.js +516 -5
  46. package/dist/auth/store.js.map +1 -1
  47. package/dist/auth/text.js +51 -0
  48. package/dist/auth/text.js.map +1 -0
  49. package/dist/config.js +184 -5
  50. package/dist/config.js.map +1 -1
  51. package/dist/docker-proxy/policy.js +1 -0
  52. package/dist/docker-proxy/policy.js.map +1 -1
  53. package/dist/docker-proxy/server.js +1 -0
  54. package/dist/docker-proxy/server.js.map +1 -1
  55. package/dist/elicitation.js +0 -0
  56. package/dist/elicitation.js.map +1 -0
  57. package/dist/forward.js +0 -0
  58. package/dist/forward.js.map +1 -0
  59. package/dist/health.js +22 -3
  60. package/dist/health.js.map +1 -1
  61. package/dist/hub.js +337 -29
  62. package/dist/hub.js.map +1 -1
  63. package/dist/index.js +218 -23
  64. package/dist/index.js.map +1 -1
  65. package/dist/limits.js +13 -1
  66. package/dist/limits.js.map +1 -1
  67. package/dist/mcp-limits.js +14 -2
  68. package/dist/mcp-limits.js.map +1 -1
  69. package/dist/proxy.js +262 -34
  70. package/dist/proxy.js.map +1 -1
  71. package/dist/stdio.js +97 -7
  72. package/dist/stdio.js.map +1 -1
  73. package/dist/subscriptions.js +236 -0
  74. package/dist/subscriptions.js.map +1 -0
  75. package/dist/supervisor.js +472 -28
  76. package/dist/supervisor.js.map +1 -1
  77. package/dist/timings.js +61 -0
  78. package/dist/timings.js.map +1 -0
  79. package/dist/tool-filter.js +59 -0
  80. package/dist/tool-filter.js.map +1 -0
  81. package/dist/transports/docker.js.map +1 -1
  82. package/dist/transports/stream.js +33 -20
  83. package/dist/transports/stream.js.map +1 -1
  84. package/dist/upstream/auth.js +435 -0
  85. package/dist/upstream/auth.js.map +1 -0
  86. package/dist/upstream/login.js +94 -0
  87. package/dist/upstream/login.js.map +1 -0
  88. package/dist/upstream/provider.js +286 -0
  89. package/dist/upstream/provider.js.map +1 -0
  90. package/dist/upstream/routes.js +97 -0
  91. package/dist/upstream/routes.js.map +1 -0
  92. package/package.json +23 -7
  93. package/dist/auth/provider.js +0 -380
  94. package/dist/auth/provider.js.map +0 -1
  95. package/dist/auth/routes.js +0 -223
  96. 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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"}
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
- * Unauthenticated on purpose (Docker's HEALTHCHECK needs it), so it reports
4
- * state only: lastError carries upstream URLs and spawn paths and stays in the
5
- * container log instead.
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) } : {})
@@ -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,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"}
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/sdk/server/mcp.js';
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 { ABSOLUTE_CALL_OPTIONS, assertForwardedResultSize } from './mcp-limits.js';
5
- function text(value) {
6
- return { content: [{ type: 'text', text: typeof value === 'string' ? value : JSON.stringify(value, null, 2) }] };
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
- export function buildHubServer(supervisor) {
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
- }, async () => text([...supervisor.servers.values()].map(s => ({
65
- name: s.name,
66
- description: s.serverInfo?.title ?? s.serverInfo?.name ?? '',
67
- status: s.state,
68
- toolCount: s.tools.length,
69
- ...(s.config.hub ? {} : { hidden: true })
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 text(managed.tools.map(t => ({ name: t.name, description: firstLine(t.description) })));
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 text({ name: found.name, description: found.description ?? '', inputSchema: found.inputSchema });
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
- arguments: z.record(z.string(), z.unknown()).optional().describe('Tool arguments matching its input schema')
118
- }
119
- }, async ({ server, tool, arguments: args }) => {
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
- const result = await managed.client.callTool({ name: tool, arguments: (args ?? {}) }, undefined, ABSOLUTE_CALL_OPTIONS);
139
- return assertForwardedResultSize(result);
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 text({ name: managed.name, status: managed.state, toolCount: managed.tools.length });
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 text({ name: managed.name, status: managed.state });
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