We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alohays/openai-tool2mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
from ..models.mcp import MCPRequest
from ..models.openai import ToolRequest
from ..utils.logging import logger
from ..utils.security import sanitize_parameters
def translate_request(mcp_request: MCPRequest, tool_id: str) -> ToolRequest:
"""
Translate an MCP request to an OpenAI request format.
Args:
mcp_request: The MCP request to translate
tool_id: The ID of the tool to invoke
Returns:
An OpenAI tool request object
"""
# Extract tool parameters and sanitize them
parameters = sanitize_parameters(mcp_request.parameters)
# Extract context information
context = mcp_request.context or {}
# Determine if this is a new or existing conversation
thread_id = context.get("thread_id")
# Log the translation
logger.debug(f"Translating MCP request for tool {tool_id} to OpenAI format")
# Create OpenAI request
openai_request = ToolRequest(
tool_type=map_tool_id_to_openai_type(tool_id),
parameters=parameters,
thread_id=thread_id,
instructions=context.get("instructions", ""),
)
return openai_request
def map_tool_id_to_openai_type(tool_id: str) -> str:
"""
Map MCP tool IDs to OpenAI tool types.
Args:
tool_id: MCP tool ID
Returns:
OpenAI tool type
"""
mapping = {
"web-search": "retrieval",
"code-execution": "code_interpreter",
"browser": "web_browser",
"file-io": "file_search",
}
openai_type = mapping.get(tool_id, tool_id)
logger.debug(f"Mapped MCP tool ID {tool_id} to OpenAI tool type {openai_type}")
return openai_type