()
| 403 | }); |
| 404 | |
| 405 | const describeTools = () => |
| 406 | Effect.promise(async (): Promise<ReadonlyArray<McpToolDef>> => { |
| 407 | const defs = await (await runtime()).listTools(serverName, callOptions); |
| 408 | connected = true; |
| 409 | return defs.map((tool: { name: string; description?: string }) => ({ |
| 410 | name: tool.name, |
| 411 | description: tool.description ?? "", |
| 412 | })); |
| 413 | }); |
| 414 | |
| 415 | const call = (name: string, args: Record<string, unknown> = {}) => |
| 416 | Effect.promise(async (): Promise<McpCallResult> => { |