openapi-to-mcp

openapi-to-mcp

A minimal MCP server that auto-generates tools from your OpenAPI spec, optimized for Vercel.

Category
Visit Server

README

openapi-to-mcp

A minimal MCP server that auto-generates tools from your OpenAPI spec. Optimized for Vercel's serverless architecture.

Deploy with Vercel

Quick Start

  1. Fork this repo
  2. Set OPENAPI_SPEC_URL to your OpenAPI spec URL
  3. Deploy to Vercel

Configuration

Variable Required Description
OPENAPI_SPEC_URL Yes URL or file path to your OpenAPI spec (YAML or JSON)
API_BASE_URL No Override the API base URL (defaults to servers[0].url from the spec)
MCP_SERVER_NAME No Override the MCP server name (defaults to info.title from the spec)
PORT No Local dev server port (default: 3000)

How It Works

  1. On cold start, the server fetches and parses your OpenAPI spec
  2. Each API endpoint becomes an MCP tool with a Zod-validated input schema
  3. 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
  4. The spec and tools are cached in memory — warm invocations skip the fetch

Running Locally

1. Install dependencies

pnpm install

2. 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.yml

3. Start the dev server

pnpm dev

The server starts at http://localhost:3000/mcp.

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/mcp",
      "headers": {
        "Authorization": "Bearer <your-token>"
      }
    }
  }
}

The headers block above shows a Bearer token, but you can use any header your API requires. The MCP server forwards all headers from your client config to the target API on every tool call without modification — it doesn't validate, store, or care which header is "the auth header". See Auth for examples (API key, Bearer token, multiple headers).

Deploying to Vercel

  1. Push this repo to GitHub
  2. Import it at vercel.com/new
  3. Add OPENAPI_SPEC_URL under Settings > Environment Variables. API_BASE_URL and MCP_SERVER_NAME are optional overrides.

That's it. Your MCP server is live at https://your-project.vercel.app/mcp. 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" }

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

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.

Official
Featured