ask-openai
Ask direct questions to OpenAI's assistant models like GPT-4 and GPT-3.5-turbo through the MCP protocol, with customizable parameters for temperature and response length.
Instructions
Ask my assistant models a direct question
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max_tokens | No | ||
| model | No | gpt-4 | |
| query | Yes | Ask assistant | |
| temperature | No |
Implementation Reference
- src/mcp_server_openai/llm.py:10-24 (handler)Core handler function that executes the 'ask-openai' tool logic by calling OpenAI's chat completions API.async def ask_openai(self, query: str, model: str = "gpt-4", temperature: float = 0.7, max_tokens: int = 500) -> str: try: response = await self.client.chat.completions.create( messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": query} ], model=model, temperature=temperature, max_tokens=max_tokens ) return response.choices[0].message.content except Exception as e: logger.error(f"Failed to query OpenAI: {str(e)}") raise
- src/mcp_server_openai/server.py:46-53 (handler)MCP server tool call handler that dispatches 'ask-openai' to the LLMConnector.if name == "ask-openai": response = await connector.ask_openai( query=arguments["query"], model=arguments.get("model", "gpt-4"), temperature=arguments.get("temperature", 0.7), max_tokens=arguments.get("max_tokens", 500) ) return [types.TextContent(type="text", text=f"OpenAI Response:\n{response}")]
- src/mcp_server_openai/server.py:21-39 (registration)Registers the 'ask-openai' tool with the MCP server via the list_tools handler.@server.list_tools() async def handle_list_tools() -> list[types.Tool]: return [ types.Tool( name="ask-openai", description="Ask my assistant models a direct question", inputSchema={ "type": "object", "properties": { "query": {"type": "string", "description": "Ask assistant"}, "model": {"type": "string", "default": "gpt-4", "enum": ["gpt-4", "gpt-3.5-turbo"]}, "temperature": {"type": "number", "default": 0.7, "minimum": 0, "maximum": 2}, "max_tokens": {"type": "integer", "default": 500, "minimum": 1, "maximum": 4000} }, "required": ["query"] } ) ]
- Defines the input schema for the 'ask-openai' tool.inputSchema={ "type": "object", "properties": { "query": {"type": "string", "description": "Ask assistant"}, "model": {"type": "string", "default": "gpt-4", "enum": ["gpt-4", "gpt-3.5-turbo"]}, "temperature": {"type": "number", "default": 0.7, "minimum": 0, "maximum": 2}, "max_tokens": {"type": "integer", "default": 500, "minimum": 1, "maximum": 4000} }, "required": ["query"] }