Skip to main content
Glama
README.md4.93 kB
# ControlAPI-MCP MCP server that exposes any OpenAPI/REST API as MCP tools with dynamic server switching and variable substitution. ## 🚀 One-Click Install Click to install directly in your editor - **no configuration needed!** **Linux / macOS:** **[📥 Install in VS Code](https://vscode.dev/redirect/mcp/install?name=controlapi-mcp&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22bash%22%2C%22args%22%3A%5B%22-c%22%2C%22mkdir%20-p%20~/.local/bin/controlapi-mcp%20%26%26%20curl%20-fsSL%20https%3A//raw.githubusercontent.com/fellowabhi/ControlAPI-openapi-to-mcp/main/auto-run.sh%20-o%20~/.local/bin/controlapi-mcp/auto-run.sh%20%26%26%20chmod%20%2Bx%20~/.local/bin/controlapi-mcp/auto-run.sh%20%26%26%20~/.local/bin/controlapi-mcp/auto-run.sh%22%5D%7D)** **[📥 Install in VS Code Insiders](https://insiders.vscode.dev/redirect/mcp/install?name=controlapi-mcp&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22bash%22%2C%22args%22%3A%5B%22-c%22%2C%22mkdir%20-p%20~/.local/bin/controlapi-mcp%20%26%26%20curl%20-fsSL%20https%3A//raw.githubusercontent.com/fellowabhi/ControlAPI-openapi-to-mcp/main/auto-run.sh%20-o%20~/.local/bin/controlapi-mcp/auto-run.sh%20%26%26%20chmod%20%2Bx%20~/.local/bin/controlapi-mcp/auto-run.sh%20%26%26%20~/.local/bin/controlapi-mcp/auto-run.sh%22%5D%7D)** > 💡 **After Installation:** The AI assistant will guide you to connect to an API server. Simply provide the OpenAPI URL when asked, or use the `set_server_config` tool to connect to your API. ## Quick Start (Auto-Download) **Zero installation** - automatically downloads and runs the latest release: 1. Download the auto-run script: ```bash curl -O https://raw.githubusercontent.com/fellowabhi/ControlAPI-openapi-to-mcp/main/auto-run.sh chmod +x auto-run.sh ``` 2. Use it in your MCP config: ```json { "servers": { "controlapi-mcp": { "type": "stdio", "command": "/path/to/auto-run.sh" } } } ``` > Note: You can optionally set `OPENAPI_URL`, `BASE_URL`, and `SERVER_NICKNAME` in env vars, or configure dynamically using the `set_server_config` tool. Download from [releases](https://github.com/fellowabhi/ControlAPI-openapi-to-mcp/releases) or build: ```bash export OPENAPI_URL='http://your-api.com/openapi.json' export BASE_URL='http://your-api.com' # optional ./dist/controlapi-mcp ``` ## Setup (Development) ```bash pip install -e . ``` ## Building Binary ```bash ./build.sh ``` Creates a standalone executable at `dist/controlapi-mcp` (16MB) ## MCP Configuration ### Using Binary ```json { "servers": { "controlapi-mcp": { "type": "stdio", "command": "/path/to/openapi-mcp-adapter/dist/controlapi-mcp", "env": { "OPENAPI_URL": "http://localhost:8000/openapi.json", "BASE_URL": "http://localhost:8000" } } } } ``` ### Using Python (Development) ```json { "servers": { "controlapi-mcp": { "type": "stdio", "command": "/path/to/project/.venv/bin/python", "args": ["-m", "src.main"], "cwd": "/path/to/project", "env": { "OPENAPI_URL": "http://localhost:8000/openapi.json", "REFRESH_INTERVAL": "300", "PYTHONPATH": "/path/to/project", "BASE_URL": "http://localhost:8000" } } } } ``` **Optional:** `OPENAPI_URL`, `BASE_URL`, `SERVER_NICKNAME` > 💡 **No Configuration Needed:** You can start with no environment variables and configure the server dynamically using the `set_server_config` tool. The AI assistant will guide you through the setup. ## Features ### Cross-Platform Support - **Linux** (x86_64) - Full support - **macOS** (Intel & Apple Silicon) - Full support - **Windows** - Use Python or WSL ### Dynamic Server Switching - Connect to any OpenAPI server at runtime - Switch between multiple APIs (dev, staging, production) - Server context tracking with history - Automatic schema reloading ### Available Tools - `set_server_config` - Connect to an OpenAPI server (use this first if not configured) - `get_server_info` - Check current server and connection status - `get_server_history` - View recent server switches - `health_check` - Test server connectivity - `list_endpoints` - List all API endpoints - `search_schema` - Search endpoints by keyword - `execute_request` - Make HTTP requests with variable substitution - `set_variable` - Store variable (e.g., auth token) - `get_variables` - View all stored variables - `reload_schema` - Reload current server's schema ## Variable Substitution Use `{{variable_name}}` in headers, body, or path: ```json { "headers": { "Authorization": "{{token}}" } } ``` ## Example Workflow 1. **First time:** `set_server_config` with openapi_url 2. `execute_request` to `/auth/login` → get token 3. `set_variable` key="token" value="Bearer xyz..." 4. `execute_request` with `Authorization: {{token}}` 5. **Switch servers:** `set_server_config` to test on different environment

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fellowabhi/ControlAPI-openapi-to-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server