Skip to main content
Glama

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!

📥 Install in VS Code

📥 Install in VS Code Insiders

💡 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:

curl -O https://raw.githubusercontent.com/fellowabhi/ControlAPI-openapi-to-mcp/main/auto-run.sh chmod +x auto-run.sh
  1. Use it in your MCP config:

{ "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 or build:

export OPENAPI_URL='http://your-api.com/openapi.json' export BASE_URL='http://your-api.com' # optional ./dist/controlapi-mcp

Setup (Development)

pip install -e .

Building Binary

./build.sh

Creates a standalone executable at dist/controlapi-mcp (16MB)

MCP Configuration

Using Binary

{ "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)

{ "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

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:

{ "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

-
security - not tested
A
license - permissive license
-
quality - not tested

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