Fetches tools from MCP and converts them to OpenAI/Wintermute format.
Source code in wintermute/integrations/surgeon/backend.py
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193 | async def get_ai_tools(self) -> List[Dict[str, Any]]:
"""
Fetches tools from MCP and converts them to OpenAI/Wintermute format.
"""
if not self.session:
return []
try:
mcp_tools = await self.session.list_tools()
openai_tools = []
for tool in mcp_tools.tools:
openai_tools.append(
{
"type": "function",
"function": {
"name": tool.name,
"description": tool.description,
"parameters": getattr(
tool, "inputSchema", getattr(tool, "input_schema", {})
),
},
}
)
return openai_tools
except Exception as e:
log.error(f"Failed to list tools from SURGEON MCP: {e}")
return []
|