Uses .ENV files for configuration management, allowing users to set server parameters and authentication credentials through environment variables.
Ingests Swagger/OpenAPI specifications and automatically generates MCP tools from API endpoints, supporting multiple authentication methods including Basic Auth, Bearer Token, API Key, and OAuth2.
Swagger MCP Server
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:
Install dependencies:
Create a
.env
file based on the example:
Configure your Swagger/OpenAPI specification:
Place your Swagger file in the project (e.g.,
swagger.json
)Or provide a URL to your Swagger specification
Update the configuration in
config.json
with your server settings:
Note: The server prioritizes settings from the Swagger specification over the config file:
If the Swagger file contains a
servers
array, the first server URL will be used as the base URLIf 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:
Build for production:
Start the production server:
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:
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
Bearer Token
API Key
OAuth2
Development
Start the development server:
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
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A server that enables interaction with any API that has a Swagger/OpenAPI specification through Model Context Protocol (MCP), automatically generating tools from API endpoints and supporting multiple authentication methods.
- Features
- Security
- TODO
- Prerequisites
- Installation
- Usage
- API Endpoints
- Testing
- Authentication
- Development
- License
- Environment Variables
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that connects to a Swagger specification and helps an AI to build all the required models to generate a MCP server for that service.Last updated -52177MIT License
- AsecurityFlicenseAqualityA server based on Model Context Protocol that parses Swagger/OpenAPI documents and generates TypeScript types and API client code for different frameworks (Axios, Fetch, React Query).Last updated -121216
- AsecurityAlicenseAqualityMCP server providing token-efficient access to OpenAPI/Swagger specs via MCP Resources for client-side exploration.Last updated -1052MIT License
- AsecurityAlicenseAqualityA tool that creates MCP (Model Context Protocol) servers from OpenAPI/Swagger specifications, enabling AI assistants to interact with your APIs.Last updated -3925MIT License