ControlAPI

Exposes any OpenAPI/REST API as MCP tools with dynamic server switching and variable substitution.
  • typescript

4

GitHub Stars

typescript

Language

5 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "fellowabhi-controlapi-openapi-to-mcp": {
      "command": "/path/to/openapi-mcp-adapter/dist/controlapi-mcp",
      "args": [],
      "env": {
        "BASE_URL": "http://localhost:8000",
        "OPENAPI_URL": "http://localhost:8000/openapi.json",
        "SERVER_NICKNAME": "dev-api"
      }
    }
  }
}

ControlAPI-MCP exposes any OpenAPI/REST API as MCP tools, enabling dynamic server switching and variable substitution. It lets you connect to multiple API servers at runtime, reuse endpoints across environments, and automate requests with stored variables like tokens. This makes testing, prototyping, and integrating external APIs into your MCP workflow straightforward and repeatable.

How to use

You use an MCP client to connect to one or more API servers and then perform operations as defined by the MCP toolset. Start by configuring a server, then list endpoints, execute requests with variable substitution, and store values (like authentication tokens) for reuse in subsequent calls. You can switch between development, staging, and production APIs on the fly and have automatic schema reloading when a server changes.

How to install

Prerequisites: Python is required for development setup, and you can also run a pre-built binary. You should have Python installed to run the development workflow, or use the provided binary for a quick start.

# Development setup (Python)
pip install -e .

# Build a standalone binary (produces dist/controlapi-mcp)
./build.sh

Additional notes

Two MCP configurations are demonstrated for ControlAPI-MCP. One uses a Python runtime and the other uses a standalone binary. Each config runs as a local stdio server and can expose the API via the MCP interface.

{
  "servers": {
    "controlapi": {
      "type": "stdio",
      "command": "/path/to/openapi-mcp-adapter/dist/controlapi-mcp",
      "env": {
        "OPENAPI_URL": "http://localhost:8000/openapi.json",
        "BASE_URL": "http://localhost:8000"
      }
    }
  }
}
{
  "servers": {
    "controlapi_py": {
      "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"
      }
    }
  }
}

Available tools

set_server_config

Connect to an OpenAPI server and establish the initial MCP context.

get_server_info

Check the current active server and its connection status.

get_server_history

View the history of recent server switches.

health_check

Test connectivity and responsiveness of the current server.

list_endpoints

List all available API endpoints from the active OpenAPI schema.

search_schema

Search endpoints by keyword within the loaded schema.

execute_request

Make HTTP requests with automatic variable substitution in headers and body.

set_variable

Store a value (for example, an auth token) for later use in requests.

get_variables

View all stored variables and their values.

reload_schema

Reload the current server's API schema after changes.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
ControlAPI MCP Server - fellowabhi/controlapi-openapi-to-mcp | VeilStrat