Best for
- Developers and teams who want to integrate existing REST APIs described by OpenAPI into the MCP ecosystem.
- Scenarios where you need quick conversion of APIs to MCP tools with dynamic tool generation.
mcp-openapi-proxy is a practical generic proxy that dynamically converts OpenAPI-defined REST APIs into MCP tools, simplifying integration. It supports multiple authentication schemes and filtering options, with rich examples and verified client compatibility. However, tool lists are dynamic and cannot be enumerated upfront; some clients have limited prompts/resources support. Overall, it's a powerful tool for quickly connecting a wide range of REST APIs.
Strongest · Setup experience 13/20 Weakest · Security and permissions 7/20
Static review · not runListed 2026-08-07
Read the FMRS scoring method →Runtime:Python
OPENAPI_SPEC_URL
Required; URL or file:// path to the OpenAPI specification JSON/YAML.
API_KEY
Auth token for the target API, sent as Bearer by default; get it from the API provider's dashboard.
OPENAPI_SIMPLE_MODE
Set to true to enable FastMCP simple mode (static tool set).
TOOL_WHITELIST
Comma-separated endpoint paths to expose as tools.
ADDITIONAL_RESOURCES
Comma-separated name=/path/to/file entries served as extra MCP resources.
TOOL_NAME_PREFIX
Prefix prepended to all tool names.
API_AUTH_TYPE
Overrides the default Bearer scheme (e.g. Token, api-key).
STRIP_PARAM
JMESPath expression to strip unwanted parameters from payloads (e.g. token for Slack).
DEBUG
Set to true/1/yes for verbose debug logging.
EXTRA_HEADERS
Extra outgoing HTTP headers; accepts a JSON array, one per line, or \n-separated entries.
SERVER_URL_OVERRIDE
Overrides the base URL from the OpenAPI spec.
TOOL_NAME_MAX_LENGTH
Maximum length for tool names before truncation.
IGNORE_SSL_SPEC
Set to true to skip SSL verification when fetching the spec.
IGNORE_SSL_TOOLS
Set to true to skip SSL verification for tool API requests.
API_AUTH_HEADER
Header name used when API_AUTH_TYPE=api-key (e.g. x-apikey).
OPENAPI_SPEC_FORMAT
Set to yaml to parse file:// specs as YAML.
OPENAPI_SPEC_CACHE_TTL_SECONDS
Disk cache TTL in seconds for remote specs; default 86400, 0 disables.
ENABLE_TOOLS
Feature gate for the tools surface in low-level mode; default enabled.
ENABLE_PROMPTS
Feature gate for the prompts surface in low-level mode; default enabled.
ENABLE_RESOURCES
Feature gate for the resources surface in low-level mode; default enabled.
CAPABILITIES_TOOLS
Advertise listChanged on the tools capability; default false.
CAPABILITIES_PROMPTS
Advertise listChanged on the prompts capability; default false.
CAPABILITIES_RESOURCES
Advertise listChanged on the resources capability; default false.
Install from PyPI:\n\n``bash\nuvx mcp-openapi-proxy\n`\n\nConfigure within your MCP ecosystem's mcpServers settings:\n\n`json\n{\n "mcpServers": {\n "mcp-openapi-proxy": {\n "command": "uvx",\n "args": ["mcp-openapi-proxy"],\n "env": {\n "OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",\n "API_KEY": "${API_OPENAPI_KEY}"\n }\n }\n }\n}\n``\n\nSet the required OPENAPI_SPEC_URL environment variable and optional ones like API_KEY, TOOL_WHITELIST, etc.
{
"mcpServers": {
"mcp-openapi-proxy": {
"command": "uvx",
"args": [
"mcp-openapi-proxy"
],
"env": {
"OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",
"API_KEY": "${API_OPENAPI_KEY}"
}
}
}
}
Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.
{
"servers": {
"mcp-openapi-proxy": {
"command": "uvx",
"args": [
"mcp-openapi-proxy"
],
"env": {
"OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",
"API_KEY": "${API_OPENAPI_KEY}"
}
}
}
}
Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).
claude mcp add mcp-openapi-proxy -e 'OPENAPI_SPEC_URL=${OPENAPI_SPEC_URL}' -e 'API_KEY=${API_OPENAPI_KEY}' -- uvx mcp-openapi-proxy
Run it in a terminal; replace any <…> placeholders with your own values first.
Run `OPENAPI_SPEC_URL="https://glama.ai/api/mcp/openapi." uvx mcp-openapi-proxy`; tools dynamically generated from the spec (e.g. get_v1_attributes) should appear in your client's tool list, or a JSON-RPC tools/list call should return a non-empty list.
Once connected, you can ask your AI assistant things like:
Listed from the project's documentation, not tested by this site.
mcp-openapi-proxy is a Python package that implements a Model Context Protocol (MCP) server designed to dynamically expose REST APIs—defined by OpenAPI specifications—as MCP tools, facilitating seamless integration of OpenAPI-described APIs into MCP-based workflows. It offers two operational modes: Low-Level Mode (default) renders each valid endpoint as a tool; FastMCP Mode (simple mode) exposes a static set of tools (list_functions and call_function). It supports OpenAPI v3 (with potential v2 support), endpoint filtering via whitelist, flexible authentication (Bearer in Authorization header, custom schemes, api-key header), and payload token stripping via JMESPath. It also provides additional MCP resources (e.g., use-case documents) and prompts (summarize_spec, whimsical_blog).
Upstash's official server providing up-to-date third-party library docs for AI coding assistants
AI-powered NPM package analysis MCP server
An independent control layer that gives AI coding agents budgets, brakes, and receipts
GitHub's official MCP server for managing repos, issues, PRs, and workflows via natural language
Source revision 04334a0c8992 Data synced 2026-10-12 Read the FMRS scoring method