Swagger API
FreeNot checkedTransforms Swagger/OpenAPI specifications into tools that enable interaction with any documented API through multiple authentication methods and real-time commu
About
Transforms Swagger/OpenAPI specifications into tools that enable interaction with any documented API through multiple authentication methods and real-time communication.
README
A server that ingests and serves Swagger/OpenAPI specifications through the Model Context Protocol (MCP).
Features
- Loads Swagger/OpenAPI specifications
- Supports multiple authentication methods:
- Basic Auth
- Bearer Token
- API Key (header or query)
- OAuth2
- Automatically generates MCP tools from API endpoints
- Server-Sent Events (SSE) support for real-time communication
- TypeScript support
Security
This is a personal server!! Do not expose it to the public internet. If the underlying API requires authentication, you should not expose the MCP server to the public internet.
TODO
- secrets - the MCP server should be able to use secrets from the user to authenticate requests to the API
- Comprehensive test suite
Prerequisites
- Node.js (v18 or higher)
- Yarn package manager
- TypeScript
Installation
- Clone the repository:
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
- Install dependencies:
yarn install
- Create a
.envfile based on the example:
cp .env.example .env
Configure your Swagger/OpenAPI specification:
- Place your Swagger file in the project (e.g.,
swagger.json) - Or provide a URL to your Swagger specification
- Place your Swagger file in the project (e.g.,
Update the configuration in
config.jsonwith your server settings:
{
"server": {
"host": "localhost",
"port": 3000
},
"swagger": {
"url": "url-or-path/to/your/swagger.json",
"apiBaseUrl": "https://api.example.com", // Fallback if not specified in Swagger
"defaultAuth": { // Fallback if not specified in Swagger
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "api_key",
"apiKeyIn": "header"
}
}
}
Note: The server prioritizes settings from the Swagger specification over the config file:
- If the Swagger file contains a
serversarray, the first server URL will be used as the base URL - If the Swagger file defines security schemes, they will be used for authentication
- The config file settings serve as fallbacks when not specified in the Swagger file
Usage
- Start the development server:
yarn dev
- Build for production:
yarn build
- Start the production server:
yarn start
API Endpoints
GET /health- Check server health statusGET /sse- Establish Server-Sent Events connectionPOST /messages- Send messages to the MCP server
Testing
Run the test suite:
# Run tests once
yarn test
# Run tests in watch mode
yarn test:watch
# Run tests with coverage report
yarn test:coverage
Authentication
The server supports various authentication methods. Configure them in the config.json file as fallbacks when not specified in the Swagger file:
Basic Auth
{
"defaultAuth": {
"type": "basic",
"username": "your-username",
"password": "your-password"
}
}
Bearer Token
{
"defaultAuth": {
"type": "bearer",
"token": "your-bearer-token"
}
}
API Key
{
"defaultAuth": {
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "X-API-Key",
"apiKeyIn": "header"
}
}
OAuth2
{
"defaultAuth": {
"type": "oauth2",
"token": "your-oauth-token"
}
}
Development
- Start the development server:
yarn dev
License
This project is licensed under the Apache 2.0 License.
Environment Variables
PORT: Server port (default: 3000)API_USERNAME: Username for API authentication (fallback)API_PASSWORD: Password for API authentication (fallback)API_TOKEN: API token for authentication (fallback)DEFAULT_API_BASE_URL: Default base URL for API endpoints (fallback)DEFAULT_SWAGGER_URL: Default Swagger specification URL
Installing Swagger API
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/dcolley/swagger-mcpFAQ
Is Swagger API MCP free?
Yes, Swagger API MCP is free — one-click install via Unyly at no cost.
Does Swagger API need an API key?
No, Swagger API runs without API keys or environment variables.
Is Swagger API hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Swagger API in Claude Desktop, Claude Code or Cursor?
Open Swagger API on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Swagger API with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
