@abhishekkumar00019/swagger-mcp
Dynamically converts any Swagger 2.0 or OpenAPI 3.x specification into callable MCP tools, enabling AI clients to interact with API endpoints.
README
@abhishekkumar00019/swagger-mcp
A dynamic Model Context Protocol (MCP) server that converts any Swagger 2.0 or OpenAPI 3.x specification into callable MCP tools on the fly.
Point it at any OpenAPI/Swagger JSON or YAML spec URL, and every API endpoint automatically becomes an interactive tool for Claude, Copilot, ChatGPT, Cursor, Windsurf, and other MCP-enabled clients.
⨠Features
- š Dynamic Tool Generation ā Automatically parses Swagger 2.0 & OpenAPI 3.x specs at startup.
- š ļø Zero Boilerplate ā Give it a spec URL and every endpoint is instantly exposed as an MCP tool.
- š Flexible Auth Support ā Bearer Tokens, API Keys, and Basic Auth configured effortlessly via env vars or CLI flags.
- š Smart Base URL Resolution ā Auto-derives base URL from config ā spec server definition ā spec origin URL.
- š Hot Reloading ā Re-fetch and re-parse the spec live at runtime using the
_swagger_mcp_reloadtool. - š Rich Schemas & Descriptions ā Translates OpenAPI parameters and request bodies into strict JSON schemas for precise LLM tool calling.
- ā±ļø Configurable Timeouts & Custom Headers ā Easily set custom request headers and request timeout thresholds.
š Quick Start
Option A: Direct via npx (No Installation Required)
SWAGGER_MCP_SPEC_URL=https://petstore.swagger.io/v2/swagger.json npx @abhishekkumar00019/swagger-mcp
Option B: Global NPM Installation
npm install -g @abhishekkumar00019/swagger-mcp
SWAGGER_MCP_SPEC_URL=https://petstore.swagger.io/v2/swagger.json swagger-mcp
Option C: Local Repository Setup
-
Clone & Install Dependencies:
git clone https://github.com/itachiuchihadev/swagger-mcp.git cd swagger-mcp npm install -
Build the Project:
npm run build -
Run locally:
SWAGGER_MCP_SPEC_URL=https://petstore.swagger.io/v2/swagger.json node dist/index.js
āļø MCP Client Configurations
Below are sample configurations for popular MCP clients using npx @abhishekkumar00019/swagger-mcp.
1. Claude Desktop
Add to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"swagger-mcp": {
"command": "npx",
"args": ["-y", "@abhishekkumar00019/swagger-mcp"],
"env": {
"SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json",
"SWAGGER_MCP_BEARER_TOKEN": "your-api-token-here"
}
}
}
}
2. Claude Code (CLI)
Add directly via the Claude Code CLI:
claude mcp add swagger-mcp -- npx -y @abhishekkumar00019/swagger-mcp --spec-url https://petstore.swagger.io/v2/swagger.json
Or add to .mcp.json in your project root:
{
"mcpServers": {
"swagger-mcp": {
"command": "npx",
"args": ["-y", "@abhishekkumar00019/swagger-mcp"],
"env": {
"SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
}
}
}
}
3. GitHub Copilot / VS Code
Add to .vscode/mcp.json in your workspace or global VS Code settings:
{
"mcpServers": {
"swagger-mcp": {
"command": "npx",
"args": ["-y", "@abhishekkumar00019/swagger-mcp"],
"env": {
"SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json",
"SWAGGER_MCP_API_KEY": "your-api-key"
}
}
}
}
4. Cursor
Add to .cursor/mcp.json or configure in Cursor Settings ā Features ā MCP:
{
"mcpServers": {
"swagger-mcp": {
"command": "npx",
"args": ["-y", "@abhishekkumar00019/swagger-mcp"],
"env": {
"SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
}
}
}
}
5. Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"swagger-mcp": {
"command": "npx",
"args": ["-y", "@abhishekkumar00019/swagger-mcp"],
"env": {
"SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
}
}
}
}
6. Roo Code / Cline (VS Code Extension)
Add to cline_mcp_settings.json (or roo_code_mcp_settings.json):
{
"mcpServers": {
"swagger-mcp": {
"command": "npx",
"args": ["-y", "@abhishekkumar00019/swagger-mcp"],
"env": {
"SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
}
}
}
}
7. ChatGPT & OpenAI (Custom GPTs / Assistants / API)
Direct OpenAPI Spec Import (Native Custom GPT Actions): ChatGPT Custom GPTs support OpenAPI specifications natively. You can directly import your Swagger/OpenAPI JSON/YAML spec URL in the Actions section of the Custom GPT Builder without needing an intermediate server.
Via MCP HTTP/SSE Gateway:
If connecting ChatGPT or OpenAI agents to this MCP server via an HTTP/SSE bridge (e.g., using supergateway or mcp-remote), start swagger-mcp with an SSE proxy:
npx supergateway --stdio "npx -y @abhishekkumar00019/swagger-mcp --spec-url https://petstore.swagger.io/v2/swagger.json" --port 8000
8. Zed Editor
Add to ~/.config/zed/settings.json:
{
"context_servers": {
"swagger-mcp": {
"command": {
"path": "npx",
"args": ["-y", "@abhishekkumar00019/swagger-mcp"]
},
"env": {
"SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
}
}
}
}
š§ Configuration Reference
All configuration parameters can be supplied via environment variables or CLI arguments. SWAGGER_MCP_SPEC_URL is the only required parameter.
| Environment Variable | CLI Argument | Required | Default | Description |
|---|---|---|---|---|
SWAGGER_MCP_SPEC_URL |
--spec-url |
Yes | ā | Swagger/OpenAPI spec URL |
SWAGGER_MCP_BASE_URL |
--base-url |
No | Auto-derived | Override target API base URL |
SWAGGER_MCP_BEARER_TOKEN |
--bearer-token |
No | ā | Bearer token for Authorization: Bearer <token> |
SWAGGER_MCP_API_KEY |
--api-key |
No | ā | API Key header value |
SWAGGER_MCP_API_KEY_HEADER |
--api-key-header |
No | X-API-Key |
Custom header name for API Key |
SWAGGER_MCP_BASIC_USER |
--basic-user |
No | ā | Username for Basic Auth |
SWAGGER_MCP_BASIC_PASS |
--basic-pass |
No | ā | Password for Basic Auth |
SWAGGER_MCP_TIMEOUT |
--timeout |
No | 30000 |
HTTP request timeout in milliseconds |
SWAGGER_MCP_HEADERS |
--headers |
No | {} |
Extra HTTP headers as JSON string |
š Authentication Examples
Multiple authentication methods can be set simultaneously:
# Bearer Token
SWAGGER_MCP_BEARER_TOKEN=sk-your-token-here
# API Key (Custom Header)
SWAGGER_MCP_API_KEY=your-api-key
SWAGGER_MCP_API_KEY_HEADER=X-Custom-Key
# Basic Auth
SWAGGER_MCP_BASIC_USER=admin
SWAGGER_MCP_BASIC_PASS=secret123
[!NOTE] If both Bearer and Basic Auth are specified, Basic Auth will overwrite the
Authorizationheader. Combine Bearer Token with API Key headers if multiple headers are required.
š·ļø Tool Naming Strategy
Endpoints from your OpenAPI spec are converted into MCP tools using the following priority order:
| Priority | Source | Example |
|---|---|---|
| 1st | operationId defined in spec |
getUserById |
| 2nd | Tag + Method + Path | users_get_by_id |
| 3rd | Method + Path | get_api_v1_users_by_id |
š§° Built-in Meta Tools
| Tool | Description |
|---|---|
_swagger_mcp_reload |
Re-fetches and parses the Swagger spec live. Useful when developing or updating APIs without restarting the server. |
š Project Structure
swagger-mcp/
āāā package.json
āāā tsconfig.json
āāā src/
ā āāā index.ts # Entry point & CLI argument parser
ā āāā server.ts # MCP server initialization & tool registration
ā āāā swagger-parser.ts # OpenAPI 2.0/3.x spec fetcher & parser
ā āāā tool-builder.ts # Converts OpenAPI operations -> JSON Schema tools
ā āāā request-handler.ts # Proxies MCP tool calls to HTTP endpoints
ā āāā auth.ts # Authentication header builder
ā āāā config.ts # Environment & CLI configuration manager
ā āāā types.ts # Shared TypeScript interfaces
āāā dist/ # Compiled JavaScript output
š License
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.
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.
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.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
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.