MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

C
Controlapi Openapi To MCP

MCP server by fellowabhi

Created 12/24/2025
Updated 1 day ago
Repository documentation and setup instructions

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.

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

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
Quick Setup
Installation guide for this server

Install Package (if required)

uvx controlapi-openapi-to-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "fellowabhi-controlapi-openapi-to-mcp": { "command": "uvx", "args": [ "controlapi-openapi-to-mcp" ] } } }