Swagger MCP Server
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.
Integrations
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
- Place your Swagger file in the project (e.g.,
- 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 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:
- 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
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