* url elicitation * single tool for normal and error path * Address review feedback on URL elicitation tool - Remove src/everything/pnpm-lock.yaml (monorepo uses npm workspaces) - Drop redundant TriggerUrlElicitationSchema.parse(args) in the handler; destructure directly from args like the other tools, since the SDK validates against the registered schema before invoking the handler - Add explicit accept/decline/cancel messaging in the request path, mirroring trigger-elicitation-request.ts - Clarify the registerTool count comment in registrations.test.ts (task-based tools register via registerToolTask, counted separately) - Add tests covering the no-url / undefined-capability registration guards, the randomUUID() elicitationId fallback, and the decline/cancel response paths (100% coverage of the tool) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Add tool annotations to trigger-url-elicitation Match the annotations block on sibling elicitation tools and the CLAUDE.md guidance. Uses openWorldHint: true since the tool drives an external browser flow. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: cliffhall <cliff@futurescale.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
55 lines
2.8 KiB
TypeScript
55 lines
2.8 KiB
TypeScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
import { registerGetAnnotatedMessageTool } from "./get-annotated-message.js";
|
|
import { registerEchoTool } from "./echo.js";
|
|
import { registerGetEnvTool } from "./get-env.js";
|
|
import { registerGetResourceLinksTool } from "./get-resource-links.js";
|
|
import { registerGetResourceReferenceTool } from "./get-resource-reference.js";
|
|
import { registerGetRootsListTool } from "./get-roots-list.js";
|
|
import { registerGetStructuredContentTool } from "./get-structured-content.js";
|
|
import { registerGetSumTool } from "./get-sum.js";
|
|
import { registerGetTinyImageTool } from "./get-tiny-image.js";
|
|
import { registerGZipFileAsResourceTool } from "./gzip-file-as-resource.js";
|
|
import { registerToggleSimulatedLoggingTool } from "./toggle-simulated-logging.js";
|
|
import { registerToggleSubscriberUpdatesTool } from "./toggle-subscriber-updates.js";
|
|
import { registerTriggerElicitationRequestTool } from "./trigger-elicitation-request.js";
|
|
import { registerTriggerLongRunningOperationTool } from "./trigger-long-running-operation.js";
|
|
import { registerTriggerSamplingRequestTool } from "./trigger-sampling-request.js";
|
|
import { registerTriggerSamplingRequestAsyncTool } from "./trigger-sampling-request-async.js";
|
|
import { registerTriggerElicitationRequestAsyncTool } from "./trigger-elicitation-request-async.js";
|
|
import { registerSimulateResearchQueryTool } from "./simulate-research-query.js";
|
|
import { registerTriggerUrlElicitationTool } from "./trigger-url-elicitation.js";
|
|
|
|
/**
|
|
* Register the tools with the MCP server.
|
|
* @param server
|
|
*/
|
|
export const registerTools = (server: McpServer) => {
|
|
registerEchoTool(server);
|
|
registerGetAnnotatedMessageTool(server);
|
|
registerGetEnvTool(server);
|
|
registerGetResourceLinksTool(server);
|
|
registerGetResourceReferenceTool(server);
|
|
registerGetStructuredContentTool(server);
|
|
registerGetSumTool(server);
|
|
registerGetTinyImageTool(server);
|
|
registerGZipFileAsResourceTool(server);
|
|
registerToggleSimulatedLoggingTool(server);
|
|
registerToggleSubscriberUpdatesTool(server);
|
|
registerTriggerLongRunningOperationTool(server);
|
|
};
|
|
|
|
/**
|
|
* Register the tools that are conditional upon client capabilities.
|
|
* These must be registered conditionally, after initialization.
|
|
*/
|
|
export const registerConditionalTools = (server: McpServer) => {
|
|
registerGetRootsListTool(server);
|
|
registerTriggerElicitationRequestTool(server);
|
|
registerTriggerUrlElicitationTool(server);
|
|
registerTriggerSamplingRequestTool(server);
|
|
// Task-based research tool (uses experimental tasks API)
|
|
registerSimulateResearchQueryTool(server);
|
|
// Bidirectional task tools - server sends requests that client executes as tasks
|
|
registerTriggerSamplingRequestAsyncTool(server);
|
|
registerTriggerElicitationRequestAsyncTool(server);
|
|
};
|