All tools from all connected servers, as OpenAI tool definitions.
()
| 206 | |
| 207 | /** All tools from all connected servers, as OpenAI tool definitions. */ |
| 208 | getTools(): OpenAI.Chat.ChatCompletionTool[] { |
| 209 | const tools: OpenAI.Chat.ChatCompletionTool[] = [] |
| 210 | for (const connection of this.connections.values()) { |
| 211 | for (const tool of connection.tools) { |
| 212 | tools.push({ |
| 213 | type: "function", |
| 214 | function: { |
| 215 | name: tool.name, |
| 216 | description: tool.description ?? `MCP tool ${tool.originalName} from server ${tool.server}`, |
| 217 | parameters: (tool.inputSchema as Record<string, unknown>) ?? { |
| 218 | type: "object", |
| 219 | properties: {}, |
| 220 | }, |
| 221 | }, |
| 222 | }) |
| 223 | } |
| 224 | } |
| 225 | return tools |
| 226 | } |
| 227 | |
| 228 | /** Route an `mcp__<server>__<tool>` call to the right connection. */ |
| 229 | async callTool(toolName: string, args: Record<string, unknown>): Promise<{ text: string; isError?: boolean }> { |