mcp-server.js 1.2 KB

1234567891011121314151617181920212223242526272829303132
  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. /**
  8. * Experimental task features for McpServer.
  9. *
  10. * Access via `server.experimental.tasks`:
  11. * ```typescript
  12. * server.experimental.tasks.registerToolTask('long-running', config, handler);
  13. * ```
  14. *
  15. * @experimental
  16. */
  17. export class ExperimentalMcpServerTasks {
  18. constructor(_mcpServer) {
  19. this._mcpServer = _mcpServer;
  20. }
  21. registerToolTask(name, config, handler) {
  22. // Validate that taskSupport is not 'forbidden' for task-based tools
  23. const execution = { taskSupport: 'required', ...config.execution };
  24. if (execution.taskSupport === 'forbidden') {
  25. throw new Error(`Cannot register task-based tool '${name}' with taskSupport 'forbidden'. Use registerTool() instead.`);
  26. }
  27. // Access McpServer's internal _createRegisteredTool method
  28. const mcpServerInternal = this._mcpServer;
  29. return mcpServerInternal._createRegisteredTool(name, config.title, config.description, config.inputSchema, config.outputSchema, config.annotations, execution, config._meta, handler);
  30. }
  31. }
  32. //# sourceMappingURL=mcp-server.js.map