mcp-server.d.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * Experimental McpServer task features for MCP SDK.
  3. * WARNING: These APIs are experimental and may change without notice.
  4. *
  5. * @experimental
  6. */
  7. import type { McpServer, RegisteredTool } from '../../server/mcp.js';
  8. import type { ZodRawShapeCompat, AnySchema } from '../../server/zod-compat.js';
  9. import type { ToolAnnotations } from '../../types.js';
  10. import type { ToolTaskHandler, TaskToolExecution } from './interfaces.js';
  11. /**
  12. * Experimental task features for McpServer.
  13. *
  14. * Access via `server.experimental.tasks`:
  15. * ```typescript
  16. * server.experimental.tasks.registerToolTask('long-running', config, handler);
  17. * ```
  18. *
  19. * @experimental
  20. */
  21. export declare class ExperimentalMcpServerTasks {
  22. private readonly _mcpServer;
  23. constructor(_mcpServer: McpServer);
  24. /**
  25. * Registers a task-based tool with a config object and handler.
  26. *
  27. * Task-based tools support long-running operations that can be polled for status
  28. * and results. The handler must implement `createTask`, `getTask`, and `getTaskResult`
  29. * methods.
  30. *
  31. * @example
  32. * ```typescript
  33. * server.experimental.tasks.registerToolTask('long-computation', {
  34. * description: 'Performs a long computation',
  35. * inputSchema: { input: z.string() },
  36. * execution: { taskSupport: 'required' }
  37. * }, {
  38. * createTask: async (args, extra) => {
  39. * const task = await extra.taskStore.createTask({ ttl: 300000 });
  40. * startBackgroundWork(task.taskId, args);
  41. * return { task };
  42. * },
  43. * getTask: async (args, extra) => {
  44. * return extra.taskStore.getTask(extra.taskId);
  45. * },
  46. * getTaskResult: async (args, extra) => {
  47. * return extra.taskStore.getTaskResult(extra.taskId);
  48. * }
  49. * });
  50. * ```
  51. *
  52. * @param name - The tool name
  53. * @param config - Tool configuration (description, schemas, etc.)
  54. * @param handler - Task handler with createTask, getTask, getTaskResult methods
  55. * @returns RegisteredTool for managing the tool's lifecycle
  56. *
  57. * @experimental
  58. */
  59. registerToolTask<OutputArgs extends undefined | ZodRawShapeCompat | AnySchema>(name: string, config: {
  60. title?: string;
  61. description?: string;
  62. outputSchema?: OutputArgs;
  63. annotations?: ToolAnnotations;
  64. execution?: TaskToolExecution;
  65. _meta?: Record<string, unknown>;
  66. }, handler: ToolTaskHandler<undefined>): RegisteredTool;
  67. registerToolTask<InputArgs extends ZodRawShapeCompat | AnySchema, OutputArgs extends undefined | ZodRawShapeCompat | AnySchema>(name: string, config: {
  68. title?: string;
  69. description?: string;
  70. inputSchema: InputArgs;
  71. outputSchema?: OutputArgs;
  72. annotations?: ToolAnnotations;
  73. execution?: TaskToolExecution;
  74. _meta?: Record<string, unknown>;
  75. }, handler: ToolTaskHandler<InputArgs>): RegisteredTool;
  76. }
  77. //# sourceMappingURL=mcp-server.d.ts.map