@emseepea/server 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,11 +5,12 @@ Protocol (MCP) `2026-07-28` servers over Streamable HTTP.
5
5
 
6
6
  It checks data when requests enter and leave the server. It supports public
7
7
  tools, tools that require sign-in, public resources and prompts, request time
8
- limits, and bounded progress updates for local examples. Prompt arguments and
9
- resource fields may also offer suggestions.
8
+ limits, and bounded progress updates. Direct tools,
9
+ resources, and prompts can ask capable clients for more information. Prompt
10
+ arguments and resource fields may also offer suggestions.
10
11
 
11
12
  The package is pre-alpha. See the
12
- [repository README](https://github.com/windyroad/emseepea#readme) for what the
13
+ [repository README](https://github.com/emseepea/emseepea#readme) for what the
13
14
  package supports and what it does not support.
14
15
 
15
16
  ## Public Tool
@@ -50,6 +51,221 @@ const app = createEmseepea({ name: "coffee-guide", version: "1.0.0", tools: [get
50
51
  await serveEmseepea(app);
51
52
  ```
52
53
 
54
+ ## Measure Requests
55
+
56
+ Available in this checkout; not yet published to npm.
57
+
58
+ Set `telemetry: true` in `createEmseepea` to record request traces, counts, and
59
+ response times through OpenTelemetry. Leave it out to disable these measurements.
60
+
61
+ Configure your OpenTelemetry providers and context manager before creating the
62
+ app. Em See Pea does not choose an exporter or send data to a service.
63
+
64
+ ### What Gets Measured
65
+
66
+ Each trace covers one `/mcp` request through response completion or
67
+ disconnection, including progress updates. Measurements report:
68
+
69
+ - the HTTP method and status
70
+ - the known MCP method, or `_OTHER` for unknown names
71
+ - whether the response finished or disconnected
72
+
73
+ An HTTP 200 response can still contain a tool error. These measurements describe
74
+ the response, not whether the tool achieved its task.
75
+
76
+ ### What Stays Out
77
+
78
+ The framework does not attach tool names, request data, tokens, URLs, or error
79
+ messages. It preserves a valid active parent trace identity, but drops baggage
80
+ and other context data. It does not read trace headers itself.
81
+
82
+ ### Current Limits
83
+
84
+ SDK host and origin rejections happen before this measurement starts.
85
+ Ordinary telemetry API and exporter failures do not change tool results.
86
+ An adopter exporter that blocks the process or throws outside the telemetry
87
+ call is not isolated.
88
+
89
+ Structured logs are not included yet.
90
+
91
+ ## Report Dependency Readiness
92
+
93
+ Available in this checkout; not yet published to npm.
94
+
95
+ Pass a `readiness` callback to `createEmseepea` to check the dependencies your
96
+ server needs. The callback receives `{ signal }` and must return `true` only
97
+ when those dependencies are ready. It may return a promise.
98
+
99
+ `GET /readyz` returns:
100
+
101
+ - HTTP 200 and `ready` when the check succeeds
102
+ - HTTP 503 and `not ready` when it fails, throws, or takes too long
103
+
104
+ The reply never includes dependency details or error messages. It is not cached.
105
+ `GET /healthz` continues to report that the process is alive, not that its
106
+ dependencies work. Without a callback, readiness does not check dependencies.
107
+
108
+ Set `readinessTimeoutMs` to limit the check. It defaults to 1,000 milliseconds
109
+ and accepts whole numbers from 1 to 60,000. A timeout or shutdown signals
110
+ cancellation. Only one dependency check can remain unfinished at a time; if it
111
+ ignores cancellation, later probes return not-ready until it settles.
112
+
113
+ Readiness reports health for a load balancer or monitoring system. It does not
114
+ block MCP calls itself. Tool handlers must still handle an unavailable backend.
115
+
116
+ ## Flush Measurements on Shutdown
117
+
118
+ Available in this checkout; not yet published to npm.
119
+
120
+ Pass `flushTelemetry` to `serveEmseepea` to flush your OpenTelemetry providers
121
+ when the returned server's `close()` method runs. The callback receives
122
+ `{ signal }`; it can call your providers' `forceFlush()` methods. Calling the
123
+ Fastify app's `close()` directly does not run this callback.
124
+
125
+ Shutdown uses two time limits:
126
+
127
+ - `shutdownTimeoutMs`: finish existing requests, then close remaining
128
+ connections. The default is 5,000 milliseconds.
129
+ - `telemetryFlushTimeoutMs`: wait for the final request measurements, then flush.
130
+ The default is 1,000 milliseconds; the allowed range is 1 to 60,000.
131
+
132
+ The total waiting budget is the sum of those limits. The second limit applies
133
+ only when you provide `flushTelemetry`. If final measurements are not ready in
134
+ time, flushing is skipped. Repeated `close()` calls share the same work.
135
+
136
+ Flushing is best-effort. Its errors do not change tool responses, and completion
137
+ of `close()` does not prove that an exporter delivered data. Callbacks that block
138
+ JavaScript or ignore cancellation cannot be forcibly stopped by the framework.
139
+
140
+ ## Describe What Clients Can Show
141
+
142
+ Applications can give servers, tools, resources, reusable resource addresses,
143
+ and prompts a human-friendly title, description, and icons. A server can also
144
+ provide its website address. Tools can say whether they only read data and
145
+ whether they contact services outside the application:
146
+
147
+ ```ts
148
+ const getBeanDetails = defineTool({
149
+ name: "get-bean-details",
150
+ title: "Get bean details",
151
+ access: "public",
152
+ description: "Get the recorded details for one coffee.",
153
+ icons: [{ src: "https://coffee.example/icons/bean.png", mimeType: "image/png" }],
154
+ annotations: { readOnlyHint: true, openWorldHint: false },
155
+ inputSchema: z.object({ name: z.string() }),
156
+ outputSchema: beanDetails,
157
+ handler,
158
+ });
159
+ ```
160
+
161
+ Resources may also include their known byte size and hints about their intended
162
+ audience and importance. Use `_meta` for application-specific public details.
163
+
164
+ Em See Pea checks this metadata when the application starts and copies it, so
165
+ later changes to the original objects have no effect. Tool annotations are
166
+ hints for clients. They do not prove that a tool is safe, grant permission, or
167
+ replace sign-in and authorization checks.
168
+
169
+ ## Route with a Tool Argument
170
+
171
+ A proxy can route a request using a checked tool argument without reading the
172
+ JSON body. Mark a string, integer, or boolean property with `x-mcp-header`:
173
+
174
+ ```ts
175
+ const inputSchema = z.object({
176
+ region: z.string().meta({ "x-mcp-header": "Region" }),
177
+ });
178
+ ```
179
+
180
+ Compatible clients send the same value as `Mcp-Param-Region`. The tool still
181
+ receives and checks `region` normally. The server rejects a missing or
182
+ different header before the tool runs.
183
+
184
+ This header is a copy of tool input. It does not identify a person, prove that
185
+ they signed in, grant permission, or protect a secret.
186
+
187
+ ## Bound Large Catalogues
188
+
189
+ Split long tool, resource, resource-address, and prompt lists into pages by
190
+ adding one option to the server:
191
+
192
+ ```ts
193
+ const app = createEmseepea({
194
+ name: "coffee-guide",
195
+ version: "1.0.0",
196
+ tools,
197
+ listPagination: { pageSize: 50, maxPageBytes: 256 * 1024 },
198
+ });
199
+ ```
200
+
201
+ `pageSize` must be between 1 and 100. `maxPageBytes` defaults to one mebibyte and
202
+ stops a page earlier when its public catalogue details would be too large. The
203
+ server stops at startup if one item cannot fit.
204
+
205
+ Clients receive an opaque cursor for the next page. Identical server instances
206
+ accept the same cursor. Changing the catalogue or either limit makes old
207
+ cursors invalid. Cursors select public catalogue pages; they do not identify a
208
+ person or grant permission. Omit `listPagination` to keep one-page lists.
209
+
210
+ ## Ask the Client for More Information
211
+
212
+ Application authors can create a direct tool, resource, resource address
213
+ pattern, or prompt that pauses and asks a capable client for more information.
214
+ The client answers by making a fresh request, and the handler runs again with
215
+ those answers in its context.
216
+
217
+ This example asks the person for a coffee preference:
218
+
219
+ ```ts
220
+ import { acceptedContent, defineTool, inputRequired } from "@emseepea/server";
221
+ import { z } from "zod";
222
+
223
+ const preference = z.object({ roast: z.enum(["light", "medium", "dark"]) });
224
+
225
+ const chooseRoast = defineTool({
226
+ name: "choose-roast",
227
+ access: "public",
228
+ description: "Ask which roast a person prefers for one coffee.",
229
+ inputSchema: z.object({ coffee: z.string() }),
230
+ outputSchema: z.object({ coffee: z.string(), roast: z.string() }),
231
+ handler: ({ coffee }, context) => {
232
+ const answer = acceptedContent(context.inputResponses, "preference", preference);
233
+ if (!answer) {
234
+ return inputRequired({
235
+ inputRequests: {
236
+ preference: inputRequired.elicit({
237
+ message: `Which roast do you prefer for ${coffee}?`,
238
+ requestedSchema: preference,
239
+ }),
240
+ },
241
+ });
242
+ }
243
+ return {
244
+ text: `${answer.roast} roast selected for ${coffee}`,
245
+ data: { coffee, roast: answer.roast },
246
+ };
247
+ },
248
+ });
249
+ ```
250
+
251
+ Use `acceptedContent` with the same schema that described the form. Client
252
+ answers are untrusted even when they have the expected wire shape. Use
253
+ `inputResponse` when the handler must distinguish acceptance, refusal, and
254
+ cancellation.
255
+
256
+ A client answer supplies information. It is not proof of identity or permission
257
+ to change data. Authorize any effect through the application's normal security
258
+ boundary.
259
+
260
+ The client must advertise elicitation for form input or URL-mode elicitation,
261
+ where the client opens a URL. Em See Pea applies the normal result-size limit,
262
+ time limit, cancellation, safe-error handling, and sign-in policy to every
263
+ round.
264
+
265
+ This release supports stateless requests only. It rejects opaque
266
+ `requestState`. Mapped tools and progress-reporting tools return through their
267
+ existing checked paths and cannot request more client input.
268
+
53
269
  ## Mapped Backend Tool
54
270
 
55
271
  `defineMappedTool` validates the public input, mapped backend command, backend
@@ -166,7 +382,8 @@ progress, the official MCP library sends progress events over the same POST
166
382
  request. Otherwise the call returns one JSON response.
167
383
 
168
384
  ```ts
169
- import { defineStreamingTool } from "@emseepea/server";
385
+ import { createEmseepea, defineStreamingTool } from "@emseepea/server";
386
+ import { z } from "zod";
170
387
 
171
388
  const roast = defineStreamingTool({
172
389
  name: "roast-batch",
@@ -190,13 +407,64 @@ change those positive bounds. The reporter closes with the tool call.
190
407
  Heartbeats are disabled. Invalid, oversized, late, or extra updates are
191
408
  rejected.
192
409
 
193
- Streaming tools start only for local examples. They do not yet support:
410
+ ### Use Progress Behind a Proxy
411
+
412
+ In the current source, public tools can also report progress behind a trusted
413
+ HTTPS proxy. This addition is not yet in a published npm release.
414
+
415
+ Using the `roast` tool above, configure the proxy's exact address and the public
416
+ host and origin your clients use:
417
+
418
+ ```ts
419
+ const app = createEmseepea({
420
+ name: "coffee-guide",
421
+ version: "1.0.0",
422
+ tools: [roast],
423
+ deployment: {
424
+ mode: "production-behind-proxy",
425
+ trustedProxyAddresses: ["10.0.0.10"],
426
+ allowedAuthorities: ["mcp.example.com"],
427
+ allowedOrigins: ["https://mcp.example.com"],
428
+ rateLimit: { maxRequests: 100, windowMs: 60_000, maxClients: 1_000 },
429
+ },
430
+ });
431
+ ```
432
+
433
+ Replace these example addresses with yours. The server still listens locally
434
+ by default. Choose a private listening address explicitly when starting it,
435
+ and restrict network access so only your proxy can reach it.
436
+
437
+ Your proxy must replace caller-supplied forwarding headers and send:
438
+
439
+ - `X-Forwarded-Proto: https` for the original HTTPS connection
440
+ - `X-Forwarded-For` containing one client IP address, not a comma-separated chain
441
+ - `Host` matching an entry in `allowedAuthorities`
442
+
443
+ It must also forward streamed responses without buffering them.
444
+ `X-Accel-Buffering: no` asks compatible proxies not to buffer; it does not
445
+ configure your proxy for you.
446
+
447
+ Each call sends progress on its already-open HTTP response. A later call can
448
+ go to another server without pinning that client to the first server. This
449
+ does not share application state or rate limits: the configured limit applies
450
+ to each server separately.
451
+
452
+ ### Limits
453
+
454
+ Progress remains limited by the event count, event size, result size, and
455
+ request deadline. Disconnecting cancels work that observes the cancellation
456
+ signal. These checks do not slow the producer to match a slow reader.
457
+
458
+ Not supported yet:
194
459
 
195
460
  - long-running streams opened with GET
196
461
  - saved sessions, replay, or subscriptions
197
- - proxy servers or recovery after reconnecting
462
+ - recovery after reconnecting
198
463
  - slowing the producer when a client cannot keep up
199
- - more than one server instance
464
+ - progress from tools requiring sign-in outside local development
465
+
466
+ See the [progress coverage and tested proxy setup](../../docs/protocol-coverage.md#progress-updates)
467
+ for the current checks and their limits.
200
468
 
201
469
  ## Public Resources and Prompts
202
470
 
@@ -226,6 +494,7 @@ const guide = defineResource({
226
494
  name: "getting-started",
227
495
  uri: guideUri,
228
496
  mimeType: "text/markdown",
497
+ cacheHint: { ttlMs: 30_000 },
229
498
  handler: () => ({ contents: [{ uri: guideUri, text: "# Brew safely" }] }),
230
499
  });
231
500
 
@@ -257,9 +526,31 @@ const app = createEmseepea({
257
526
  version: "1.0.0",
258
527
  resources: [guide, methodGuide],
259
528
  prompts: [brew],
529
+ cacheHints: {
530
+ "resources/list": { ttlMs: 60_000, cacheScope: "public" },
531
+ "resources/read": { ttlMs: 5_000, cacheScope: "private" },
532
+ },
260
533
  });
261
534
  ```
262
535
 
536
+ ## Tell Clients When They May Reuse Results
537
+
538
+ By default, clients are told not to reuse lists, discovery details, or resource
539
+ content. `cacheHints` sets a time limit in milliseconds and says whether a
540
+ shared cache may store the result.
541
+
542
+ Use `public` only when every caller receives the same non-sensitive result.
543
+ Use `private` for results that only the requesting client may keep. These
544
+ instructions do not grant access and do not make changing or personal data safe
545
+ to share.
546
+
547
+ An individual resource or reusable resource address can override either field.
548
+ In the example, `guide` overrides the time limit while its missing
549
+ `cacheScope` still comes from `cacheHints["resources/read"]`.
550
+
551
+ Cache instructions are supported for discovery, tool lists, resource lists,
552
+ reusable resource-address lists, prompt lists, and resource reads.
553
+
263
554
  Resource templates advertise an address pattern rather than listing every
264
555
  possible address. Clients list the patterns, then read an address that matches
265
556
  one. Each `{variable}` fills one complete path segment. The scheme and host
@@ -272,8 +563,8 @@ Pea checks the returned suggestions and keeps at most the first 100.
272
563
  Suggestions are public even when some tools require sign-in. Return only text
273
564
  that is safe for anyone to discover.
274
565
 
275
- Listing every matching address, large result pages, sign-in for resources, and
276
- custom caching are not included yet.
566
+ Listing every matching address, catalogue pages without the bounds above, and
567
+ sign-in for resources are not included yet.
277
568
 
278
569
  ## Tool That Requires Sign-In
279
570
 
package/dist/index.d.ts CHANGED
@@ -1,18 +1,49 @@
1
- import { McpServer, type AuthMetadataOptions, type GetPromptResult, type OAuthTokenVerifier, type ReadResourceResult } from "@modelcontextprotocol/server";
1
+ import { McpServer, inputRequired as sdkInputRequired, type AuthMetadataOptions, type CacheHint, type GetPromptResult, type Icon, type InputRequiredResult as SdkInputRequiredResult, type InputRequest, type InputResponseView as SdkInputResponseView, type MetaObject, type OAuthTokenVerifier, type Annotations, type ReadResourceResult, type StandardSchemaV1, type ServerOptions, type ToolAnnotations } from "@modelcontextprotocol/server";
2
2
  import type { FastifyInstance } from "fastify";
3
3
  import { z } from "zod";
4
4
  export * from "./ui.js";
5
+ export type ClientInputRequest = Extract<InputRequest, {
6
+ method: "elicitation/create";
7
+ }>;
8
+ export interface InputRequests {
9
+ readonly [key: string]: ClientInputRequest;
10
+ }
11
+ export type InputRequiredResult = SdkInputRequiredResult & {
12
+ readonly inputRequests: InputRequests;
13
+ readonly requestState?: never;
14
+ };
15
+ interface InputRequiredBuilder {
16
+ (spec: {
17
+ readonly inputRequests: InputRequests;
18
+ }): InputRequiredResult;
19
+ elicit(...args: Parameters<typeof sdkInputRequired.elicit>): Extract<InputRequest, {
20
+ method: "elicitation/create";
21
+ }>;
22
+ elicitUrl(...args: Parameters<typeof sdkInputRequired.elicitUrl>): Extract<InputRequest, {
23
+ method: "elicitation/create";
24
+ }>;
25
+ }
26
+ export declare const inputRequired: InputRequiredBuilder;
27
+ export declare function acceptedContent<S extends StandardSchemaV1>(responses: Readonly<Record<string, unknown>> | undefined, key: string, schema: S): StandardSchemaV1.InferOutput<S> | undefined;
28
+ export type InputResponseView = Extract<SdkInputResponseView, {
29
+ kind: "missing" | "elicit";
30
+ }>;
31
+ export declare function inputResponse(responses: Readonly<Record<string, unknown>> | undefined, key: string): InputResponseView;
5
32
  declare const REGISTER: unique symbol;
6
33
  declare const TOOL_NAME: unique symbol;
7
34
  declare const TOOL_ACCESS: unique symbol;
8
35
  declare const TOOL_STREAMING: unique symbol;
36
+ declare const TOOL_LISTING: unique symbol;
9
37
  declare const RESOURCE_NAME: unique symbol;
10
38
  declare const RESOURCE_URI: unique symbol;
11
39
  declare const RESOURCE_KIND: unique symbol;
12
40
  declare const RESOURCE_MATCHES: unique symbol;
13
41
  declare const RESOURCE_ROUTE: unique symbol;
42
+ declare const RESOURCE_LISTING: unique symbol;
14
43
  declare const PROMPT_NAME: unique symbol;
15
44
  declare const HAS_COMPLETION: unique symbol;
45
+ declare const PROMPT_LISTING: unique symbol;
46
+ type CacheHints = NonNullable<ServerOptions["cacheHints"]>;
16
47
  export interface ToolPrincipal {
17
48
  readonly clientId: string;
18
49
  readonly scopes: readonly string[];
@@ -22,13 +53,18 @@ export interface ToolContext<Access extends ToolAccess = ToolAccess> {
22
53
  readonly signal: AbortSignal;
23
54
  readonly deadlineMs: number;
24
55
  readonly principal: Access extends "public" ? undefined : ToolPrincipal;
56
+ /** Client-supplied responses from the current multi-round-trip retry. */
57
+ readonly inputResponses?: Readonly<Record<string, unknown>>;
25
58
  }
26
59
  export interface ProgressUpdate {
27
60
  readonly progress: number;
28
61
  readonly total?: number;
29
62
  readonly message?: string;
30
63
  }
31
- export interface StreamingToolContext<Access extends ToolAccess = ToolAccess> extends ToolContext<Access> {
64
+ export interface StreamingToolContext<Access extends ToolAccess = ToolAccess> {
65
+ readonly signal: AbortSignal;
66
+ readonly deadlineMs: number;
67
+ readonly principal: Access extends "public" ? undefined : ToolPrincipal;
32
68
  readonly reportProgress: (update: ProgressUpdate) => Promise<void>;
33
69
  }
34
70
  export interface ToolResult<Output> {
@@ -40,6 +76,10 @@ export interface BackendAdapterContext {
40
76
  readonly deadlineMs: number;
41
77
  }
42
78
  export type OperationContext = BackendAdapterContext;
79
+ export interface ClientInputContext extends OperationContext {
80
+ /** Client-supplied responses from the current multi-round-trip retry. */
81
+ readonly inputResponses?: Readonly<Record<string, unknown>>;
82
+ }
43
83
  export interface CompletionContext extends OperationContext {
44
84
  readonly arguments: Readonly<Record<string, string>>;
45
85
  }
@@ -53,17 +93,20 @@ interface ToolDefinitionBase<Input extends z.ZodObject, Output extends z.ZodObje
53
93
  readonly name: string;
54
94
  readonly title?: string;
55
95
  readonly description: string;
96
+ readonly icons?: readonly Icon[];
97
+ readonly annotations?: Readonly<ToolAnnotations>;
98
+ readonly _meta?: Readonly<MetaObject>;
56
99
  readonly inputSchema: Input;
57
100
  readonly outputSchema: Output;
58
101
  }
59
102
  export type ToolDefinition<Input extends z.ZodObject, Output extends z.ZodObject> = ToolDefinitionBase<Input, Output> & ({
60
103
  readonly access: "public";
61
104
  readonly requiredScopes?: never;
62
- readonly handler: (input: z.output<Input>, context: ToolContext<"public">) => ToolResult<z.input<Output>> | Promise<ToolResult<z.input<Output>>>;
105
+ readonly handler: (input: z.output<Input>, context: ToolContext<"public">) => ToolResult<z.input<Output>> | InputRequiredResult | Promise<ToolResult<z.input<Output>> | InputRequiredResult>;
63
106
  } | {
64
107
  readonly access: "protected";
65
108
  readonly requiredScopes: readonly string[];
66
- readonly handler: (input: z.output<Input>, context: ToolContext<"protected">) => ToolResult<z.input<Output>> | Promise<ToolResult<z.input<Output>>>;
109
+ readonly handler: (input: z.output<Input>, context: ToolContext<"protected">) => ToolResult<z.input<Output>> | InputRequiredResult | Promise<ToolResult<z.input<Output>> | InputRequiredResult>;
67
110
  });
68
111
  export type StreamingToolDefinition<Input extends z.ZodObject, Output extends z.ZodObject> = ToolDefinitionBase<Input, Output> & ({
69
112
  readonly access: "public";
@@ -94,6 +137,7 @@ export interface EmseepeaTool {
94
137
  readonly [TOOL_NAME]: string;
95
138
  readonly [TOOL_ACCESS]: "public" | ProtectedToolAccess;
96
139
  readonly [TOOL_STREAMING]: boolean;
140
+ readonly [TOOL_LISTING]: Readonly<Record<string, unknown>>;
97
141
  readonly [REGISTER]: (server: McpServer, timeoutMs: number, maxApplicationResultBytes: number, maxProgressEvents: number, maxProgressEventBytes: number) => void;
98
142
  }
99
143
  export interface ResourceDefinition {
@@ -102,7 +146,12 @@ export interface ResourceDefinition {
102
146
  readonly title?: string;
103
147
  readonly description?: string;
104
148
  readonly mimeType?: string;
105
- readonly handler: (context: OperationContext) => ReadResourceResult | Promise<ReadResourceResult>;
149
+ readonly icons?: readonly Icon[];
150
+ readonly annotations?: Readonly<Annotations>;
151
+ readonly size?: number;
152
+ readonly _meta?: Readonly<MetaObject>;
153
+ readonly cacheHint?: CacheHint;
154
+ readonly handler: (context: ClientInputContext) => ReadResourceResult | InputRequiredResult | Promise<ReadResourceResult | InputRequiredResult>;
106
155
  }
107
156
  export interface ResourceTemplateDefinition {
108
157
  readonly name: string;
@@ -110,11 +159,15 @@ export interface ResourceTemplateDefinition {
110
159
  readonly title?: string;
111
160
  readonly description?: string;
112
161
  readonly mimeType?: string;
162
+ readonly icons?: readonly Icon[];
163
+ readonly annotations?: Readonly<Annotations>;
164
+ readonly _meta?: Readonly<MetaObject>;
165
+ readonly cacheHint?: CacheHint;
113
166
  readonly complete?: Readonly<Record<string, CompletionHandler>>;
114
167
  readonly handler: (input: {
115
168
  readonly uri: string;
116
169
  readonly variables: Readonly<Record<string, string | readonly string[]>>;
117
- }, context: OperationContext) => ReadResourceResult | Promise<ReadResourceResult>;
170
+ }, context: ClientInputContext) => ReadResourceResult | InputRequiredResult | Promise<ReadResourceResult | InputRequiredResult>;
118
171
  }
119
172
  interface ResourceTemplateRoute {
120
173
  readonly protocol: string;
@@ -127,6 +180,10 @@ export interface EmseepeaResource {
127
180
  readonly [RESOURCE_KIND]: "static" | "template";
128
181
  readonly [RESOURCE_MATCHES]?: (uri: string) => boolean;
129
182
  readonly [RESOURCE_ROUTE]?: ResourceTemplateRoute;
183
+ readonly [RESOURCE_LISTING]: {
184
+ readonly method: "resources/list" | "resources/templates/list";
185
+ readonly value: Readonly<Record<string, unknown>>;
186
+ };
130
187
  readonly [HAS_COMPLETION]: boolean;
131
188
  readonly [REGISTER]: (server: McpServer, timeoutMs: number, maxApplicationResultBytes: number) => void;
132
189
  }
@@ -142,13 +199,16 @@ export type PromptDefinition<Args extends z.ZodObject> = {
142
199
  readonly name: string;
143
200
  readonly title?: string;
144
201
  readonly description?: string;
202
+ readonly icons?: readonly Icon[];
203
+ readonly _meta?: Readonly<MetaObject>;
145
204
  readonly argsSchema: Args;
146
205
  readonly complete?: Readonly<Partial<Record<Extract<keyof z.input<Args>, string>, CompletionHandler>>>;
147
- readonly handler: (args: z.output<Args>, context: OperationContext) => GetPromptResult | Promise<GetPromptResult>;
206
+ readonly handler: (args: z.output<Args>, context: ClientInputContext) => GetPromptResult | InputRequiredResult | Promise<GetPromptResult | InputRequiredResult>;
148
207
  } & PromptInputConstraint<Args>;
149
208
  export interface EmseepeaPrompt {
150
209
  readonly [PROMPT_NAME]: string;
151
210
  readonly [HAS_COMPLETION]: boolean;
211
+ readonly [PROMPT_LISTING]: Readonly<Record<string, unknown>>;
152
212
  readonly [REGISTER]: (server: McpServer, timeoutMs: number, maxApplicationResultBytes: number) => void;
153
213
  }
154
214
  export interface OAuthResourceServerOptions {
@@ -159,12 +219,23 @@ export interface OAuthResourceServerOptions {
159
219
  readonly verificationTimeoutMs?: number;
160
220
  }
161
221
  export interface EmseepeaOptions {
222
+ readonly telemetry?: boolean;
223
+ readonly readiness?: (context: {
224
+ readonly signal: AbortSignal;
225
+ }) => boolean | Promise<boolean>;
226
+ readonly readinessTimeoutMs?: number;
162
227
  readonly name: string;
163
228
  readonly version: string;
229
+ readonly title?: string;
230
+ readonly description?: string;
231
+ readonly icons?: readonly Icon[];
232
+ readonly websiteUrl?: string;
164
233
  readonly instructions?: string;
165
234
  readonly tools?: readonly EmseepeaTool[];
166
235
  readonly resources?: readonly EmseepeaResource[];
167
236
  readonly prompts?: readonly EmseepeaPrompt[];
237
+ readonly listPagination?: ListPaginationOptions;
238
+ readonly cacheHints?: CacheHints;
168
239
  readonly maxRequestBytes?: number;
169
240
  readonly maxApplicationResultBytes?: number;
170
241
  readonly maxProgressEvents?: number;
@@ -173,6 +244,10 @@ export interface EmseepeaOptions {
173
244
  readonly deployment?: DeploymentProfile;
174
245
  readonly oauth?: OAuthResourceServerOptions;
175
246
  }
247
+ export interface ListPaginationOptions {
248
+ readonly pageSize: number;
249
+ readonly maxPageBytes?: number;
250
+ }
176
251
  export type DeploymentProfile = {
177
252
  readonly mode: "loopback";
178
253
  } | {
@@ -186,6 +261,10 @@ export interface ServeOptions {
186
261
  readonly host?: "127.0.0.1" | "::1" | "localhost" | "0.0.0.0" | "::";
187
262
  readonly port?: number;
188
263
  readonly shutdownTimeoutMs?: number;
264
+ readonly flushTelemetry?: (context: {
265
+ readonly signal: AbortSignal;
266
+ }) => void | Promise<void>;
267
+ readonly telemetryFlushTimeoutMs?: number;
189
268
  }
190
269
  export interface RunningEmseepeaServer {
191
270
  readonly url: URL;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}