openapi-to-mcp
Click on "Deploy 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., "@openapi-to-mcplist all users from the API"
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.
openapi-to-mcp
A minimal MCP server that auto-generates tools from your OpenAPI spec. Optimized for Vercel's serverless architecture.
Quick Start
Fork this repo
Set
OPENAPI_SPEC_URLto your OpenAPI spec URLDeploy to Vercel
Related MCP server: Swagger MCP Adapter
Configuration
Variable | Required | Description |
| Yes | URL or file path to your OpenAPI spec (YAML or JSON) |
| No | Override the API base URL (defaults to |
| No | Override the MCP server name (defaults to |
| No | Prefix prepended to every tool name, for namespacing (e.g. |
| No | Local dev server port (default: 3000) |
How It Works
On cold start, the server fetches and parses your OpenAPI spec
Each API endpoint becomes an MCP tool; its JSON Schema validates arguments before your API is called (tools whose schema fails to compile are skipped with a logged error)
When a tool is called, the request is forwarded to your API with the caller's headers (API key, Bearer token, etc.) passed through unchanged; MCP transport headers (
Mcp-*) are strippedThe spec and tools are cached in memory, so warm invocations skip the fetch
The server is stateless and serves both MCP 2026-07-28 and 2025-era clients from the root path. GET returns 405.
Tool Annotations
Hints are derived from the HTTP method:
Method | readOnly | destructive | idempotent |
| yes | yes | |
| |||
| yes | yes | |
| yes | ||
| yes | yes |
openWorldHint is always false. Set x-mcp-destructive: true|false on an operation to override.
Running Locally
1. Install dependencies
pnpm install2. Configure environment variables
Create .env and set OPENAPI_SPEC_URL to your OpenAPI spec. For local dev, this can be a remote URL or an absolute file path:
# Remote URL
OPENAPI_SPEC_URL=https://api.example.com/openapi.yaml
# Or an absolute file path (local dev only)
OPENAPI_SPEC_URL=/path/to/your/openapi.yml3. Start the dev server
pnpm devThe server starts at http://localhost:3000.
4. Connect your MCP client to the local server
How you connect to the MCP server depends on your client (Claude Code, Cursor, VS Code, etc.). Check your client's docs for where to add MCP servers. Most clients use a similar JSON format. Here's an example for Claude Code (.mcp.json):
{
"mcpServers": {
"my-api": {
"type": "http",
"url": "http://localhost:3000",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}Use whatever headers your API requires. See Auth.
Deploying to Vercel
Push this repo to GitHub
Import it at vercel.com/new
Add
OPENAPI_SPEC_URLunder Settings > Environment Variables. The other variables in Configuration are optional.
That's it. Your MCP server is live at https://your-project.vercel.app (or a custom domain like mcp.example.com). Connect clients the same way as local, just swap the URL.
Auth
All headers from your MCP client config are forwarded to the target API on every tool call. The MCP server does not validate or store credentials. Your API handles authentication.
Configure whatever headers your API expects in the client config:
// API key auth
"headers": { "X-Api-Key": "<your-key>" }
// Bearer token
"headers": { "Authorization": "Bearer <your-token>" }
// Multiple headers
"headers": { "Authorization": "Bearer <token>", "X-Org-Id": "org_123" }This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTurns any OpenAPI specification into a fully working MCP server with a single command, enabling AI agents to call APIs without writing any glue code.7 npmMIT
- AlicenseAqualityDmaintenanceA TypeScript-based MCP server that integrates with Swagger/OpenAPI specifications to expose API endpoints as tools for Large Language Models (LLMs), enabling natural language interaction with any OpenAPI-compliant API.49MIT
- AlicenseNot gradedqualityDmaintenanceAutomatically generates MCP server tools from OpenAPI specifications, enabling LLMs to interact with any API defined by an OpenAPI spec through natural language.22 npmMIT
- AlicenseNot gradedqualityDmaintenanceA generic MCP server that builds its tools at runtime from any OpenAPI specification, enabling interaction with any REST API through natural language.MIT