openai-tool2mcp

  • openai_tool2mcp
#!/usr/bin/env python """ Standalone entry script for openai-tool2mcp server. This script is designed to be used with `uv run` as recommended by the MCP documentation. It provides a simple way to start the MCP server with OpenAI tools. Usage: uv run openai_tool2mcp/server_entry.py """ import argparse import os from dotenv import load_dotenv from openai_tool2mcp import MCPServer, OpenAIBuiltInTools, ServerConfig from openai_tool2mcp.utils.logging import logger, setup_logging # Load environment variables from .env file if present load_dotenv() def main(): """Start the MCP server for OpenAI tools.""" parser = argparse.ArgumentParser(description="Start an MCP server for OpenAI tools") parser.add_argument("--host", default="127.0.0.1", help="Host to listen on (for HTTP transport)") parser.add_argument("--port", type=int, default=8000, help="Port to listen on (for HTTP transport)") parser.add_argument("--api-key", help="OpenAI API key (defaults to OPENAI_API_KEY env var)") parser.add_argument( "--tools", nargs="+", choices=[t.value for t in OpenAIBuiltInTools], default=[t.value for t in OpenAIBuiltInTools], help="Enabled tools", ) parser.add_argument("--timeout", type=int, default=30, help="Request timeout in seconds") parser.add_argument("--retries", type=int, default=3, help="Maximum number of retries") parser.add_argument( "--log-level", choices=["debug", "info", "warning", "error", "critical"], default="info", help="Logging level" ) parser.add_argument( "--transport", choices=["stdio", "sse", "http"], default="stdio", help="Transport method (stdio, sse, or http). Use stdio for MCP compatibility.", ) # Parse arguments args = parser.parse_args() # Set up logging setup_logging(args.log_level) # Create server config config = ServerConfig( openai_api_key=args.api_key or os.environ.get("OPENAI_API_KEY"), tools=args.tools, request_timeout=args.timeout, max_retries=args.retries, ) # Create and start the server logger.info("Starting MCP server with OpenAI tools") logger.info(f"Transport: {args.transport}") server = MCPServer(config) server.start(host=args.host, port=args.port, transport=args.transport) if __name__ == "__main__": main()