agent-openapi-mcp
Allows loading and interacting with any REST API described by an OpenAPI (Swagger) specification. Provides tools to load specs, list operations, call endpoints, and search operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agent-openapi-mcpLoad Petstore API spec and list operations with tag 'pet'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
agent-openapi-mcp
Live OpenAPI runtime proxy — call any REST API from Claude, Cursor, or any MCP client without writing wrapper code.
The Problem
Every time you want Claude to interact with a REST API, you have to:
Write a custom MCP server (2-3 hours of boilerplate)
Deploy it
Maintain it forever
Static generators like MCPForge require code gen + deploy — one-time, not live.
This server is the missing runtime layer. Point it at any OpenAPI spec URL — it handles everything at request time.
Related MCP server: MCP Adapter
Quick Start
Add to your MCP config (claude_desktop_config.json, .cursor/mcp.json, etc.):
{
"mcpServers": {
"openapi": {
"url": "https://agent-openapi-mcp.onrender.com/mcp"
}
}
}That's it. Now ask Claude:
"Load the Petstore API spec from https://petstore3.swagger.io/api/v3/openapi.json and list all the pet operations"
MCP Tools
openapi_load_spec
Load and cache an OpenAPI spec by URL. Returns a summary.
spec_url: "https://petstore3.swagger.io/api/v3/openapi.json"
cache_ttl: 300 # seconds (default 300, max 3600)Returns: { spec_id, title, version, base_url, operation_count, tags, servers }
openapi_list_operations
List all operations in a spec (auto-loads if not cached).
spec_url: "https://petstore3.swagger.io/api/v3/openapi.json"
tag: "pet" # optional filter
method: "GET" # optional filterReturns array of { operation_id, method, path, summary, tags, parameters, request_body }
openapi_call_endpoint
Execute a specific API endpoint. This is the core tool.
spec_url: "https://petstore3.swagger.io/api/v3/openapi.json"
operation_id: "getPetById"
path_params: '{"petId": "1"}'
query_params: '{"limit": "10"}'
body: '{"name": "doggie"}'
headers: '{"Authorization": "Bearer token123"}'
timeout: 30Returns: { status_code, headers, body, elapsed_ms, url, method }
openapi_search_operations
Keyword search across operation summaries and descriptions.
spec_url: "https://petstore3.swagger.io/api/v3/openapi.json"
query: "find pets by status"Returns ranked list of matching operations.
Example Conversation
You: Load https://petstore3.swagger.io/api/v3/openapi.json and find all operations
related to "inventory"
Claude: [calls openapi_load_spec, then openapi_search_operations]
Found 1 operation: getInventory — GET /store/inventory
"Returns pet inventories by status"
You: Call it
Claude: [calls openapi_call_endpoint with operation_id="getInventory"]
Status 200 — {"available": 847, "sold": 42, "pending": 3}REST API
The server also exposes a REST API at /api/v1/*:
Endpoint | Method | Description |
| POST | Load and cache a spec |
| POST | List operations |
| POST | Execute an endpoint |
| POST | Search operations |
| GET | Health check |
| GET | Swagger UI |
Example REST call
curl -X POST https://agent-openapi-mcp.onrender.com/api/v1/load-spec \
-H "Content-Type: application/json" \
-d '{"spec_url": "https://petstore3.swagger.io/api/v3/openapi.json"}'Self-Hosting with Docker
docker build -t agent-openapi-mcp .
docker run -p 8080:8080 \
-e PUBLIC_HOST=localhost:8080 \
agent-openapi-mcpThen use http://localhost:8080/mcp as your MCP URL.
Environment Variables
Variable | Default | Description |
|
| Public hostname |
|
| Port to listen on |
| (none) | Enable x402 micropayment paywall |
Supported Spec Formats
OpenAPI 3.x (JSON and YAML)
Swagger 2.x (JSON and YAML)
Any publicly accessible URL
Rate Limits
Free tier: 100 requests per IP per day
Paid: Include
X-Paymentheader (x402 micropayments)
Development
git clone https://github.com/aparajithn/agent-openapi-mcp
cd agent-openapi-mcp
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run locally
uvicorn src.main:app --reload --port 8080License
MIT © aparajithn
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/aparajithn/agent-openapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server