@outfitter/mcp 0.4.1 → 0.4.2

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.
@@ -1,4 +1,4 @@
1
- import { ToolDefinition } from "./mcp-h2twz77x";
1
+ import { ToolDefinition } from "./mcp-fks4zt1z.js";
2
2
  import { ActionRegistry, ActionSurface, AnyActionSpec } from "@outfitter/contracts";
3
3
  interface BuildMcpToolsOptions {
4
4
  readonly includeSurfaces?: readonly ActionSurface[];
@@ -1,4 +1,4 @@
1
- import { McpLogLevel } from "./mcp-cqpyer9m";
1
+ import { McpLogLevel } from "./mcp-cqpyer9m.js";
2
2
  import { Handler, HandlerContext, Logger, OutfitterError, Result, TaggedErrorClass } from "@outfitter/contracts";
3
3
  import { z } from "zod";
4
4
  import { Result as Result2 } from "@outfitter/contracts";
@@ -18,21 +18,6 @@ import { TaggedError } from "@outfitter/contracts";
18
18
  * ```
19
19
  */
20
20
  interface McpServerOptions {
21
- /**
22
- * Server name, used in MCP protocol handshake.
23
- * Should be a short, descriptive identifier.
24
- */
25
- name: string;
26
- /**
27
- * Server version (semver format recommended).
28
- * Sent to clients during initialization.
29
- */
30
- version: string;
31
- /**
32
- * Optional logger instance for server logging.
33
- * If not provided, the server uses the Outfitter logger factory defaults.
34
- */
35
- logger?: Logger;
36
21
  /**
37
22
  * Default MCP log level for client-facing log forwarding.
38
23
  *
@@ -46,6 +31,21 @@ interface McpServerOptions {
46
31
  * The MCP client can always override via `logging/setLevel`.
47
32
  */
48
33
  defaultLogLevel?: McpLogLevel | null;
34
+ /**
35
+ * Optional logger instance for server logging.
36
+ * If not provided, the server uses the Outfitter logger factory defaults.
37
+ */
38
+ logger?: Logger;
39
+ /**
40
+ * Server name, used in MCP protocol handshake.
41
+ * Should be a short, descriptive identifier.
42
+ */
43
+ name: string;
44
+ /**
45
+ * Server version (semver format recommended).
46
+ * Sent to clients during initialization.
47
+ */
48
+ version: string;
49
49
  }
50
50
  /**
51
51
  * Behavioral hints for MCP tools.
@@ -56,14 +56,14 @@ interface McpServerOptions {
56
56
  * @see https://spec.modelcontextprotocol.io/specification/2025-03-26/server/tools/#annotations
57
57
  */
58
58
  interface ToolAnnotations {
59
- /** When true, the tool does not modify any state. */
60
- readOnlyHint?: boolean;
61
59
  /** When true, the tool may perform destructive operations (e.g., deleting data). */
62
60
  destructiveHint?: boolean;
63
61
  /** When true, calling the tool multiple times with the same input has the same effect. */
64
62
  idempotentHint?: boolean;
65
63
  /** When true, the tool may interact with external systems beyond the server. */
66
64
  openWorldHint?: boolean;
65
+ /** When true, the tool does not modify any state. */
66
+ readOnlyHint?: boolean;
67
67
  }
68
68
  /**
69
69
  * Common annotation presets for MCP tools.
@@ -158,51 +158,51 @@ interface ToolDefinition<
158
158
  TError extends OutfitterError = OutfitterError
159
159
  > {
160
160
  /**
161
- * Unique tool name (kebab-case recommended).
162
- * Used by clients to invoke the tool.
161
+ * Optional behavioral annotations for the tool.
162
+ * Helps clients understand tool behavior without invoking it.
163
163
  */
164
- name: string;
164
+ annotations?: ToolAnnotations;
165
+ /**
166
+ * Whether the tool should be deferred for tool search.
167
+ * Defaults to true for domain tools; core tools set this to false.
168
+ */
169
+ deferLoading?: boolean;
165
170
  /**
166
171
  * Human-readable description of what the tool does.
167
172
  * Shown to clients and used by LLMs to understand tool capabilities.
168
173
  */
169
174
  description: string;
170
175
  /**
171
- * Whether the tool should be deferred for tool search.
172
- * Defaults to true for domain tools; core tools set this to false.
176
+ * Handler function that processes the tool invocation.
177
+ * Receives validated input and HandlerContext, returns Result.
173
178
  */
174
- deferLoading?: boolean;
179
+ handler: Handler<TInput, TOutput, TError>;
175
180
  /**
176
181
  * Zod schema for validating and parsing input.
177
182
  * The schema defines the expected input structure.
178
183
  */
179
184
  inputSchema: z.ZodType<TInput>;
180
185
  /**
181
- * Optional behavioral annotations for the tool.
182
- * Helps clients understand tool behavior without invoking it.
183
- */
184
- annotations?: ToolAnnotations;
185
- /**
186
- * Handler function that processes the tool invocation.
187
- * Receives validated input and HandlerContext, returns Result.
186
+ * Unique tool name (kebab-case recommended).
187
+ * Used by clients to invoke the tool.
188
188
  */
189
- handler: Handler<TInput, TOutput, TError>;
189
+ name: string;
190
190
  }
191
191
  /**
192
192
  * Serialized tool information for MCP protocol.
193
193
  * This is the format sent to clients during tool listing.
194
194
  */
195
195
  interface SerializedTool {
196
- /** Tool name */
197
- name: string;
196
+ /** Behavioral annotations for the tool */
197
+ annotations?: ToolAnnotations;
198
+ /** MCP tool-search hint: whether tool is deferred */
199
+ defer_loading?: boolean;
198
200
  /** Tool description */
199
201
  description: string;
200
202
  /** JSON Schema representation of the input schema */
201
203
  inputSchema: Record<string, unknown>;
202
- /** MCP tool-search hint: whether tool is deferred */
203
- defer_loading?: boolean;
204
- /** Behavioral annotations for the tool */
205
- annotations?: ToolAnnotations;
204
+ /** Tool name */
205
+ name: string;
206
206
  }
207
207
  /**
208
208
  * Annotations for content items (resource content, prompt messages).
@@ -226,27 +226,27 @@ interface ContentAnnotations {
226
226
  * Text content returned from a resource read.
227
227
  */
228
228
  interface TextResourceContent {
229
- /** Resource URI */
230
- uri: string;
231
- /** Text content */
232
- text: string;
233
- /** Optional MIME type */
234
- mimeType?: string;
235
229
  /** Optional content annotations */
236
230
  annotations?: ContentAnnotations;
231
+ /** Optional MIME type */
232
+ mimeType?: string;
233
+ /** Text content */
234
+ text: string;
235
+ /** Resource URI */
236
+ uri: string;
237
237
  }
238
238
  /**
239
239
  * Binary (base64-encoded) content returned from a resource read.
240
240
  */
241
241
  interface BlobResourceContent {
242
- /** Resource URI */
243
- uri: string;
242
+ /** Optional content annotations */
243
+ annotations?: ContentAnnotations;
244
244
  /** Base64-encoded binary content */
245
245
  blob: string;
246
246
  /** Optional MIME type */
247
247
  mimeType?: string;
248
- /** Optional content annotations */
249
- annotations?: ContentAnnotations;
248
+ /** Resource URI */
249
+ uri: string;
250
250
  }
251
251
  /**
252
252
  * Content returned from reading a resource.
@@ -281,31 +281,31 @@ type ResourceReadHandler = (uri: string, ctx: HandlerContext) => Promise<Result<
281
281
  * ```
282
282
  */
283
283
  interface ResourceDefinition {
284
- /**
285
- * Unique resource URI.
286
- * Must be a valid URI (file://, https://, custom://, etc.).
287
- */
288
- uri: string;
289
- /**
290
- * Human-readable resource name.
291
- * Displayed to users in resource listings.
292
- */
293
- name: string;
294
284
  /**
295
285
  * Optional description of the resource.
296
286
  * Provides additional context about the resource contents.
297
287
  */
298
288
  description?: string;
299
289
  /**
290
+ * Optional handler for reading the resource content.
291
+ * If not provided, the resource is metadata-only.
292
+ */
293
+ handler?: ResourceReadHandler;
294
+ /**
300
295
  * Optional MIME type of the resource content.
301
296
  * Helps clients understand how to process the resource.
302
297
  */
303
298
  mimeType?: string;
304
299
  /**
305
- * Optional handler for reading the resource content.
306
- * If not provided, the resource is metadata-only.
300
+ * Human-readable resource name.
301
+ * Displayed to users in resource listings.
307
302
  */
308
- handler?: ResourceReadHandler;
303
+ name: string;
304
+ /**
305
+ * Unique resource URI.
306
+ * Must be a valid URI (file://, https://, custom://, etc.).
307
+ */
308
+ uri: string;
309
309
  }
310
310
  /**
311
311
  * Handler for reading a resource template's content.
@@ -334,29 +334,29 @@ type ResourceTemplateReadHandler = (uri: string, variables: Record<string, strin
334
334
  * ```
335
335
  */
336
336
  interface ResourceTemplateDefinition {
337
- /** URI template with `{param}` placeholders (RFC 6570 Level 1). */
338
- uriTemplate: string;
339
- /** Human-readable name for the template. */
340
- name: string;
341
- /** Optional description. */
342
- description?: string;
343
- /** Optional MIME type. */
344
- mimeType?: string;
345
337
  /** Optional completion handlers keyed by parameter name. */
346
338
  complete?: Record<string, CompletionHandler>;
339
+ /** Optional description. */
340
+ description?: string;
347
341
  /** Handler for reading matched resources. */
348
342
  handler: ResourceTemplateReadHandler;
343
+ /** Optional MIME type. */
344
+ mimeType?: string;
345
+ /** Human-readable name for the template. */
346
+ name: string;
347
+ /** URI template with `{param}` placeholders (RFC 6570 Level 1). */
348
+ uriTemplate: string;
349
349
  }
350
350
  /**
351
351
  * Result of a completion request.
352
352
  */
353
353
  interface CompletionResult {
354
- /** Completion values */
355
- values: string[];
356
- /** Total number of available values (for pagination) */
357
- total?: number;
358
354
  /** Whether there are more values */
359
355
  hasMore?: boolean;
356
+ /** Total number of available values (for pagination) */
357
+ total?: number;
358
+ /** Completion values */
359
+ values: string[];
360
360
  }
361
361
  /**
362
362
  * Handler for generating completions.
@@ -376,43 +376,43 @@ type CompletionRef = {
376
376
  * Argument definition for a prompt.
377
377
  */
378
378
  interface PromptArgument {
379
- /** Argument name */
380
- name: string;
379
+ /** Optional completion handler for this argument */
380
+ complete?: CompletionHandler;
381
381
  /** Human-readable description */
382
382
  description?: string;
383
+ /** Argument name */
384
+ name: string;
383
385
  /** Whether this argument is required */
384
386
  required?: boolean;
385
- /** Optional completion handler for this argument */
386
- complete?: CompletionHandler;
387
387
  }
388
388
  /**
389
389
  * Content block within a prompt message.
390
390
  */
391
391
  interface PromptMessageContent {
392
- /** Content type */
393
- type: "text";
394
- /** Text content */
395
- text: string;
396
392
  /** Optional content annotations */
397
393
  annotations?: ContentAnnotations;
394
+ /** Text content */
395
+ text: string;
396
+ /** Content type */
397
+ type: "text";
398
398
  }
399
399
  /**
400
400
  * A message in a prompt response.
401
401
  */
402
402
  interface PromptMessage {
403
- /** Message role */
404
- role: "user" | "assistant";
405
403
  /** Message content */
406
404
  content: PromptMessageContent;
405
+ /** Message role */
406
+ role: "user" | "assistant";
407
407
  }
408
408
  /**
409
409
  * Result returned from getting a prompt.
410
410
  */
411
411
  interface PromptResult {
412
- /** Prompt messages */
413
- messages: PromptMessage[];
414
412
  /** Optional description override */
415
413
  description?: string;
414
+ /** Prompt messages */
415
+ messages: PromptMessage[];
416
416
  }
417
417
  /**
418
418
  * Handler for generating prompt messages.
@@ -438,14 +438,14 @@ type PromptHandler = (args: Record<string, string | undefined>) => Promise<Resul
438
438
  * ```
439
439
  */
440
440
  interface PromptDefinition {
441
- /** Unique prompt name */
442
- name: string;
443
- /** Human-readable description */
444
- description?: string;
445
441
  /** Prompt arguments */
446
442
  arguments: PromptArgument[];
443
+ /** Human-readable description */
444
+ description?: string;
447
445
  /** Handler to generate messages */
448
446
  handler: PromptHandler;
447
+ /** Unique prompt name */
448
+ name: string;
449
449
  }
450
450
  declare const McpErrorBase: TaggedErrorClass<"McpError", {
451
451
  message: string;
@@ -483,12 +483,12 @@ declare class McpError extends McpErrorBase {
483
483
  * Options for invoking a tool.
484
484
  */
485
485
  interface InvokeToolOptions {
486
- /** Abort signal for cancellation */
487
- signal?: AbortSignal;
488
- /** Custom request ID (auto-generated if not provided) */
489
- requestId?: string;
490
486
  /** Progress token from client for tracking progress */
491
487
  progressToken?: string | number;
488
+ /** Custom request ID (auto-generated if not provided) */
489
+ requestId?: string;
490
+ /** Abort signal for cancellation */
491
+ signal?: AbortSignal;
492
492
  }
493
493
  /**
494
494
  * MCP Server instance.
@@ -510,44 +510,12 @@ interface InvokeToolOptions {
510
510
  * ```
511
511
  */
512
512
  interface McpServer {
513
- /** Server name */
514
- readonly name: string;
515
- /** Server version */
516
- readonly version: string;
517
- /**
518
- * Register a tool with the server.
519
- * @param tool - Tool definition to register
520
- */
521
- registerTool<
522
- TInput,
523
- TOutput,
524
- TError extends OutfitterError
525
- >(tool: ToolDefinition<TInput, TOutput, TError>): void;
526
- /**
527
- * Register a resource with the server.
528
- * @param resource - Resource definition to register
529
- */
530
- registerResource(resource: ResourceDefinition): void;
531
- /**
532
- * Get all registered tools.
533
- * @returns Array of serialized tool information
534
- */
535
- getTools(): SerializedTool[];
536
- /**
537
- * Register a resource template with the server.
538
- * @param template - Resource template definition to register
539
- */
540
- registerResourceTemplate(template: ResourceTemplateDefinition): void;
541
- /**
542
- * Get all registered resources.
543
- * @returns Array of resource definitions
544
- */
545
- getResources(): ResourceDefinition[];
546
513
  /**
547
- * Get all registered resource templates.
548
- * @returns Array of resource template definitions
514
+ * Bind the SDK server instance for notifications.
515
+ * Called internally by the transport layer.
516
+ * @param sdkServer - The MCP SDK Server instance
549
517
  */
550
- getResourceTemplates(): ResourceTemplateDefinition[];
518
+ bindSdkServer?(sdkServer: any): void;
551
519
  /**
552
520
  * Complete an argument value.
553
521
  * @param ref - Reference to the prompt or resource template
@@ -557,10 +525,12 @@ interface McpServer {
557
525
  */
558
526
  complete(ref: CompletionRef, argumentName: string, value: string): Promise<Result<CompletionResult, InstanceType<typeof McpError>>>;
559
527
  /**
560
- * Register a prompt with the server.
561
- * @param prompt - Prompt definition to register
528
+ * Get a specific prompt's messages.
529
+ * @param name - Prompt name
530
+ * @param args - Prompt arguments
531
+ * @returns Result with prompt result or McpError
562
532
  */
563
- registerPrompt(prompt: PromptDefinition): void;
533
+ getPrompt(name: string, args: Record<string, string | undefined>): Promise<Result<PromptResult, InstanceType<typeof McpError>>>;
564
534
  /**
565
535
  * Get all registered prompts.
566
536
  * @returns Array of prompt definitions (without handlers)
@@ -571,18 +541,20 @@ interface McpServer {
571
541
  arguments: PromptArgument[];
572
542
  }>;
573
543
  /**
574
- * Get a specific prompt's messages.
575
- * @param name - Prompt name
576
- * @param args - Prompt arguments
577
- * @returns Result with prompt result or McpError
544
+ * Get all registered resources.
545
+ * @returns Array of resource definitions
578
546
  */
579
- getPrompt(name: string, args: Record<string, string | undefined>): Promise<Result<PromptResult, InstanceType<typeof McpError>>>;
547
+ getResources(): ResourceDefinition[];
580
548
  /**
581
- * Read a resource by URI.
582
- * @param uri - Resource URI
583
- * @returns Result with resource content or McpError
549
+ * Get all registered resource templates.
550
+ * @returns Array of resource template definitions
584
551
  */
585
- readResource(uri: string): Promise<Result<ResourceContent[], InstanceType<typeof McpError>>>;
552
+ getResourceTemplates(): ResourceTemplateDefinition[];
553
+ /**
554
+ * Get all registered tools.
555
+ * @returns Array of serialized tool information
556
+ */
557
+ getTools(): SerializedTool[];
586
558
  /**
587
559
  * Invoke a tool by name.
588
560
  * @param name - Tool name
@@ -591,16 +563,16 @@ interface McpServer {
591
563
  * @returns Result with tool output or McpError
592
564
  */
593
565
  invokeTool<T = unknown>(name: string, input: unknown, options?: InvokeToolOptions): Promise<Result<T, InstanceType<typeof McpError>>>;
566
+ /** Server name */
567
+ readonly name: string;
594
568
  /**
595
- * Subscribe to updates for a resource URI.
596
- * @param uri - Resource URI to subscribe to
569
+ * Notify connected clients that the prompt list has changed.
597
570
  */
598
- subscribe(uri: string): void;
571
+ notifyPromptsChanged(): void;
599
572
  /**
600
- * Unsubscribe from updates for a resource URI.
601
- * @param uri - Resource URI to unsubscribe from
573
+ * Notify connected clients that the resource list has changed.
602
574
  */
603
- unsubscribe(uri: string): void;
575
+ notifyResourcesChanged(): void;
604
576
  /**
605
577
  * Notify connected clients that a specific resource has been updated.
606
578
  * Only emits for subscribed URIs.
@@ -612,19 +584,35 @@ interface McpServer {
612
584
  */
613
585
  notifyToolsChanged(): void;
614
586
  /**
615
- * Notify connected clients that the resource list has changed.
587
+ * Read a resource by URI.
588
+ * @param uri - Resource URI
589
+ * @returns Result with resource content or McpError
616
590
  */
617
- notifyResourcesChanged(): void;
591
+ readResource(uri: string): Promise<Result<ResourceContent[], InstanceType<typeof McpError>>>;
618
592
  /**
619
- * Notify connected clients that the prompt list has changed.
593
+ * Register a prompt with the server.
594
+ * @param prompt - Prompt definition to register
620
595
  */
621
- notifyPromptsChanged(): void;
596
+ registerPrompt(prompt: PromptDefinition): void;
622
597
  /**
623
- * Set the client-requested log level.
624
- * Only log messages at or above this level will be forwarded.
625
- * @param level - MCP log level string
598
+ * Register a resource with the server.
599
+ * @param resource - Resource definition to register
626
600
  */
627
- setLogLevel?(level: string): void;
601
+ registerResource(resource: ResourceDefinition): void;
602
+ /**
603
+ * Register a resource template with the server.
604
+ * @param template - Resource template definition to register
605
+ */
606
+ registerResourceTemplate(template: ResourceTemplateDefinition): void;
607
+ /**
608
+ * Register a tool with the server.
609
+ * @param tool - Tool definition to register
610
+ */
611
+ registerTool<
612
+ TInput,
613
+ TOutput,
614
+ TError extends OutfitterError
615
+ >(tool: ToolDefinition<TInput, TOutput, TError>): void;
628
616
  /**
629
617
  * Send a log message to connected clients.
630
618
  * Filters by the client-requested log level threshold.
@@ -636,11 +624,11 @@ interface McpServer {
636
624
  */
637
625
  sendLogMessage(level: McpLogLevel, data: unknown, loggerName?: string): void;
638
626
  /**
639
- * Bind the SDK server instance for notifications.
640
- * Called internally by the transport layer.
641
- * @param sdkServer - The MCP SDK Server instance
627
+ * Set the client-requested log level.
628
+ * Only log messages at or above this level will be forwarded.
629
+ * @param level - MCP log level string
642
630
  */
643
- bindSdkServer?(sdkServer: any): void;
631
+ setLogLevel?(level: string): void;
644
632
  /**
645
633
  * Start the MCP server.
646
634
  * Begins listening for client connections.
@@ -651,6 +639,18 @@ interface McpServer {
651
639
  * Closes all connections and cleans up resources.
652
640
  */
653
641
  stop(): Promise<void>;
642
+ /**
643
+ * Subscribe to updates for a resource URI.
644
+ * @param uri - Resource URI to subscribe to
645
+ */
646
+ subscribe(uri: string): void;
647
+ /**
648
+ * Unsubscribe from updates for a resource URI.
649
+ * @param uri - Resource URI to unsubscribe from
650
+ */
651
+ unsubscribe(uri: string): void;
652
+ /** Server version */
653
+ readonly version: string;
654
654
  }
655
655
  /**
656
656
  * Reporter for sending progress updates to clients.
@@ -669,10 +669,10 @@ interface ProgressReporter {
669
669
  * Includes MCP-specific information in addition to standard HandlerContext.
670
670
  */
671
671
  interface McpHandlerContext extends HandlerContext {
672
- /** The name of the tool being invoked */
673
- toolName?: string;
674
672
  /** Progress reporter, present when client provides a progressToken */
675
673
  progress?: ProgressReporter;
674
+ /** The name of the tool being invoked */
675
+ toolName?: string;
676
676
  }
677
677
  /**
678
678
  * Adapt a handler with a domain error type for use with MCP tools.
@@ -1,7 +1,7 @@
1
- import { McpServer } from "./mcp-h2twz77x";
2
- import { Server } from "@modelcontextprotocol/sdk/server/index";
3
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
4
- import { CallToolResult } from "@modelcontextprotocol/sdk/types";
1
+ import { McpServer } from "./mcp-fks4zt1z.js";
2
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
5
5
  type McpToolResponse = CallToolResult;
6
6
  /**
7
7
  * Wrap a handler success value into an MCP CallToolResult.
@@ -1,4 +1,4 @@
1
- import { ToolDefinition } from "./mcp-h2twz77x";
1
+ import { ToolDefinition } from "./mcp-fks4zt1z.js";
2
2
  import { HandlerContext, OutfitterError } from "@outfitter/contracts";
3
3
  import { Result } from "@outfitter/contracts";
4
4
  type DocsSection = "overview" | "tools" | "examples" | "schemas";
@@ -6,23 +6,23 @@ interface DocsToolInput {
6
6
  section?: DocsSection | undefined;
7
7
  }
8
8
  interface DocsToolEntry {
9
- name: string;
10
- summary?: string;
11
9
  examples?: Array<{
12
10
  input: Record<string, unknown>;
13
11
  description?: string;
14
12
  }>;
13
+ name: string;
14
+ summary?: string;
15
15
  }
16
16
  interface DocsToolResponse {
17
- overview?: string;
18
- tools?: DocsToolEntry[];
19
17
  examples?: Array<{
20
18
  name?: string;
21
19
  description?: string;
22
20
  input?: Record<string, unknown>;
23
21
  output?: unknown;
24
22
  }>;
23
+ overview?: string;
25
24
  schemas?: Record<string, unknown>;
25
+ tools?: DocsToolEntry[];
26
26
  }
27
27
  interface DocsToolOptions {
28
28
  /** Optional override for the docs tool description. */
@@ -41,10 +41,10 @@ interface ConfigToolInput {
41
41
  }
42
42
  interface ConfigToolResponse {
43
43
  action: ConfigAction;
44
+ config?: Record<string, unknown>;
45
+ found?: boolean;
44
46
  key?: string;
45
47
  value?: unknown;
46
- found?: boolean;
47
- config?: Record<string, unknown>;
48
48
  }
49
49
  interface ConfigStore {
50
50
  get(key: string): {
@@ -54,8 +54,8 @@ interface ConfigStore {
54
54
  value: unknown;
55
55
  found: boolean;
56
56
  }>;
57
- set(key: string, value: unknown): void | Promise<void>;
58
57
  list(): Record<string, unknown> | Promise<Record<string, unknown>>;
58
+ set(key: string, value: unknown): void | Promise<void>;
59
59
  }
60
60
  interface ConfigToolOptions {
61
61
  /** Optional override for the config tool description. */
@@ -67,16 +67,16 @@ interface ConfigToolOptions {
67
67
  }
68
68
  declare function defineConfigTool(options?: ConfigToolOptions): ToolDefinition<ConfigToolInput, ConfigToolResponse>;
69
69
  interface QueryToolInput {
70
- q?: string | undefined;
71
- query?: string | undefined;
72
- limit?: number | undefined;
73
70
  cursor?: string | undefined;
74
71
  filters?: Record<string, unknown> | undefined;
72
+ limit?: number | undefined;
73
+ q?: string | undefined;
74
+ query?: string | undefined;
75
75
  }
76
76
  interface QueryToolResponse<T = unknown> {
77
- results: T[];
78
- nextCursor?: string;
79
77
  _meta?: Record<string, unknown>;
78
+ nextCursor?: string;
79
+ results: T[];
80
80
  }
81
81
  interface QueryToolOptions<T = unknown> {
82
82
  /** Optional override for the query tool description. */
@@ -86,8 +86,8 @@ interface QueryToolOptions<T = unknown> {
86
86
  }
87
87
  declare function defineQueryTool<T = unknown>(options?: QueryToolOptions<T>): ToolDefinition<QueryToolInput, QueryToolResponse<T>>;
88
88
  interface CoreToolsOptions {
89
- docs?: DocsToolOptions;
90
89
  config?: ConfigToolOptions;
90
+ docs?: DocsToolOptions;
91
91
  query?: QueryToolOptions;
92
92
  }
93
93
  type NormalizedQueryInput = Required<Pick<QueryToolInput, "q">> & Omit<QueryToolInput, "q">;
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  defineTool
4
- } from "./mcp-nmp5wf0w.js";
4
+ } from "./mcp-hh12tqfg.js";
5
5
 
6
6
  // packages/mcp/src/actions.ts
7
7
  import { DEFAULT_REGISTRY_SURFACES } from "@outfitter/contracts";
@@ -1,4 +1,4 @@
1
- import { McpToolResponse, connectStdio, createSdkServer, wrapToolError, wrapToolResult } from "./shared/@outfitter/mcp-jk0ka9hw";
2
- import "./shared/@outfitter/mcp-h2twz77x";
3
- import "./shared/@outfitter/mcp-cqpyer9m";
1
+ import { McpToolResponse, connectStdio, createSdkServer, wrapToolError, wrapToolResult } from "./shared/@outfitter/mcp-s3gfhcdk.js";
2
+ import "./shared/@outfitter/mcp-fks4zt1z.js";
3
+ import "./shared/@outfitter/mcp-cqpyer9m.js";
4
4
  export { wrapToolResult, wrapToolError, createSdkServer, connectStdio, McpToolResponse };