OpenAPI MCP Server
A generic MCP server that dynamically exposes any OpenAPI-documented REST API to LLMs by auto-discovering endpoints. It provides tools for exploring API capabilities and making authenticated requests directly through natural language interfaces.
README
OpenAPI MCP Server
A generic Model Context Protocol (MCP) server that exposes any OpenAPI-documented REST API to LLMs like Claude.
Features
- Auto-discovers endpoints from any OpenAPI 3.x specification (YAML or JSON)
- Two simple tools:
api_discoverandapi_request - Flexible authentication: None, API Key, or Bearer token
- Caching: Caches OpenAPI spec locally with configurable TTL
- Retry logic: Automatic retry on rate limits (429) with exponential backoff
Installation
npm install @cloudwarriors/openapi-mcp
Or run directly with npx:
npx @cloudwarriors/openapi-mcp
Configuration
The server is configured via environment variables:
Required
| Variable | Description | Example |
|---|---|---|
API_BASE_URL |
Base URL of the API | https://api.example.com |
Optional
| Variable | Description | Default |
|---|---|---|
API_OPENAPI_PATH |
Path to OpenAPI spec | /openapi.yaml |
API_AUTH_TYPE |
Authentication type: none, apiKey, bearer |
none |
API_KEY |
API key (when API_AUTH_TYPE=apiKey) |
- |
API_KEY_HEADER |
Header name for API key | X-API-Key |
API_BEARER_TOKEN |
Bearer token (when API_AUTH_TYPE=bearer) |
- |
API_TIMEOUT_MS |
Request timeout in milliseconds | 30000 |
API_CACHE_TTL_MS |
OpenAPI spec cache TTL | 3600000 (1 hour) |
Usage with Claude Code
Add to your .mcp.json or Claude Code settings:
{
"mcpServers": {
"my-api": {
"command": "npx",
"args": ["@cloudwarriors/openapi-mcp"],
"env": {
"API_BASE_URL": "https://api.example.com",
"API_OPENAPI_PATH": "/docs/openapi.yaml"
}
}
}
}
Example: Connecting to Hermes
{
"mcpServers": {
"hermes": {
"command": "npx",
"args": ["@cloudwarriors/openapi-mcp"],
"env": {
"API_BASE_URL": "http://localhost:3345",
"API_OPENAPI_PATH": "/api/docs/openapi.yaml"
}
}
}
}
Example: Connecting to a Protected API
{
"mcpServers": {
"my-api": {
"command": "npx",
"args": ["@cloudwarriors/openapi-mcp"],
"env": {
"API_BASE_URL": "https://api.mycompany.com",
"API_OPENAPI_PATH": "/openapi.json",
"API_AUTH_TYPE": "bearer",
"API_BEARER_TOKEN": "your-token-here"
}
}
}
}
Tools
api_discover
Lists all available API endpoints grouped by domain/tag.
Parameters:
domain(optional): Filter endpoints by domain/tagincludeParameters(optional): Include parameter details (default: false)
Example:
{ "domain": "users", "includeParameters": true }
api_request
Makes an HTTP request to any API endpoint.
Parameters:
method(required): HTTP method (GET,POST,PUT,DELETE,PATCH)path(required): API path (e.g.,/api/users/{id})body(optional): Request body for POST/PUT/PATCHquery(optional): Query parameters as key-value pairspathParams(optional): Path parameter substitutions
Example:
{
"method": "GET",
"path": "/api/users/{id}",
"pathParams": { "id": "123" }
}
Finding Your API's OpenAPI Spec
Common locations for OpenAPI specifications:
/openapi.yamlor/openapi.json/api/docs/openapi.yaml/swagger.json/v1/openapi.json/api-docs
Check your API's documentation or try accessing these paths directly.
Development
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Development mode (watch)
npm run dev
License
MIT
Author
CloudWarriors
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.