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!

Linux / macOS:

📥 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.

Related MCP server: OpenAPI MCP Server

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",
        "DEBUG_PORT": "45133"
      }
    }
  }
}

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",
        "DEBUG_PORT": "45133"
      }
    }
  }
}

Optional: OPENAPI_URL, BASE_URL, SERVER_NICKNAME, DEBUG_PORT (default: 45133)

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

🔍 Debug UI: Access browser-based request/response monitor at http://localhost:45133 (or custom DEBUG_PORT). URL available in get_server_info response.

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:

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Converts any OpenAPI/REST API into MCP tools with dynamic server switching, variable substitution, and runtime configuration. Enables seamless interaction with multiple API environments through natural language without pre-configuration.
    12
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A generic MCP server that dynamically converts OpenAPI-defined REST APIs into tools for LLMs like Claude. It supports multiple authentication methods and transport protocols, enabling seamless interaction with any OpenAPI-compliant API.
    21 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A universal MCP server that connects any REST API to AI assistants via OpenAPI or Postman specifications. It enables dynamic tool creation with GraphQL-style field selection and automatic schema inference for efficient data retrieval.
    31 npm
    6
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A dynamic MCP server that automatically discovers and generates tools from any REST API using OpenAPI/Swagger specifications, enabling instant endpoint access with zero manual configuration.
    MIT