mcp-server.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. /**
  3. * Experimental McpServer task features for MCP SDK.
  4. * WARNING: These APIs are experimental and may change without notice.
  5. *
  6. * @experimental
  7. */
  8. Object.defineProperty(exports, "__esModule", { value: true });
  9. exports.ExperimentalMcpServerTasks = void 0;
  10. /**
  11. * Experimental task features for McpServer.
  12. *
  13. * Access via `server.experimental.tasks`:
  14. * ```typescript
  15. * server.experimental.tasks.registerToolTask('long-running', config, handler);
  16. * ```
  17. *
  18. * @experimental
  19. */
  20. class ExperimentalMcpServerTasks {
  21. constructor(_mcpServer) {
  22. this._mcpServer = _mcpServer;
  23. }
  24. registerToolTask(name, config, handler) {
  25. // Validate that taskSupport is not 'forbidden' for task-based tools
  26. const execution = { taskSupport: 'required', ...config.execution };
  27. if (execution.taskSupport === 'forbidden') {
  28. throw new Error(`Cannot register task-based tool '${name}' with taskSupport 'forbidden'. Use registerTool() instead.`);
  29. }
  30. // Access McpServer's internal _createRegisteredTool method
  31. const mcpServerInternal = this._mcpServer;
  32. return mcpServerInternal._createRegisteredTool(name, config.title, config.description, config.inputSchema, config.outputSchema, config.annotations, execution, config._meta, handler);
  33. }
  34. }
  35. exports.ExperimentalMcpServerTasks = ExperimentalMcpServerTasks;
  36. //# sourceMappingURL=mcp-server.js.map