openai-tool2mcp

from ..models.mcp import MCPRequest, MCPResponse from ..translator.openai_to_mcp import format_code_result from ..utils.logging import logger from .base import ToolAdapter class CodeInterpreterAdapter(ToolAdapter): """Adapter for OpenAI's code interpreter tool""" @property def tool_id(self) -> str: """Get the MCP tool ID""" return "code-execution" @property def openai_tool_type(self) -> str: """Get the OpenAI tool type""" return "code_interpreter" @property def description(self) -> str: """Get the tool description""" return "Execute code and return the result" async def translate_request(self, request: MCPRequest) -> dict: """ Translate MCP request to OpenAI parameters Args: request: The MCP request to translate Returns: Dictionary of OpenAI parameters """ # Extract code to execute code = request.parameters.get("code", "") language = request.parameters.get("language", "python") logger.debug(f"Translating code execution request with language: {language}") # Return OpenAI parameters return {"code": code, "language": language} async def translate_response(self, response: dict) -> MCPResponse: """ Translate OpenAI response to MCP response Args: response: The OpenAI response to translate Returns: MCP response object """ # Extract execution result result = response.get("result", {}) logger.debug("Translating code execution response") # Format result as markdown content = format_code_result(result) # Check for errors error = None if isinstance(result, dict) and "error" in result: error = result["error"] # Return MCP response return MCPResponse(content=content, error=error, context={"language": response.get("language", "python")})