| | import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | export function safeToolHandler<T>( |
| | handler: (args: T) => Promise<unknown> |
| | ): (args: T) => Promise<{ isError?: boolean; content: { type: "text"; text: string }[];[x: string]: unknown }> { |
| | return async (args: T) => { |
| | try { |
| | const result = await handler(args); |
| | return { |
| | content: [{ type: "text" as const, text: JSON.stringify(result, null, 2) }], |
| | }; |
| | } catch (error: unknown) { |
| | const message = error instanceof Error ? error.message : "An unexpected error occurred"; |
| | console.error("[MCP Tool Error]", message); |
| | return { |
| | isError: true, |
| | content: [{ type: "text" as const, text: `Error: ${message}` }], |
| | }; |
| | } |
| | }; |
| | } |
| |
|
| | |
| | |
| | |
| | export type ToolRegistrar = (mcp: McpServer) => void; |
| |
|