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
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
- -securityAlicense-qualityAn MCP server that exposes HTTP methods defined in an OpenAPI specification as tools, enabling interaction with APIs via the Model Context Protocol.Last updated -2PythonMIT License
- -securityAlicense-qualityAn 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 -14TypeScriptMIT License
- -securityFlicense-qualityA 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 -1431TypeScript
- -securityAlicense-qualityA server that translates Model Context Protocol (MCP) tool callings to traditional HTTP API requests, allowing existing HTTP APIs to be integrated into MCP territory through configurable mappings.Last updated -PythonApache 2.0