Mcp Swagger
Access Swagger/OpenAPI documentation and make API requests while validating them against the Swagger specification. Features include authentication support and caching to enhance performance during API interactions.
Author

andersmandersen
No License
Quick Info
Tools 1
Last Updated 11/4/2025
Actions
Tags
swagger api tools swagger openapi swagger specification access swagger
MCP Swagger Server
An MCP server that provides access to Swagger/OpenAPI documentation and allows making API requests based on the specification.
Features
- Loads Swagger documentation from a URL
- Makes API requests based on the Swagger spec
- Supports authentication via API key
- Caches Swagger spec for better performance
- Validates requests against the Swagger spec
Setup
- Install dependencies:
npm install
- Build the TypeScript code:
npm run build
Running Locally
Development mode:
npm run dev
Production mode:
npm run start
Configuration
The server requires the following environment variables:
SWAGGER_URL
: URL to the Swagger specification (required)AUTH_KEY
: Authentication key for API requests (optional)
Available Resources and Tools
Resource: swagger-doc
- URI:
swagger://documentation
- Description: Get the full Swagger documentation
Tool: makeRequest
Make API requests based on the Swagger spec.
Parameters:
path
: The API endpoint pathmethod
: HTTP method (GET, POST, etc.)parameters
: Optional path/query parametersbody
: Optional request body
Example:
const result = await mcp.tools.makeRequest({
path: "/api/users",
method: "GET",
parameters: { userId: "123" }
});
Smithery.ai Deployment
This server is configured for deployment on Smithery.ai. The deployment requires:
- A
Dockerfile
that builds and runs the server - A
smithery.yaml
configuration file - Proper TypeScript build setup
Configuration Schema
When deploying on Smithery.ai, configure the server with:
{
"swaggerUrl": "https://api.example.com/swagger.json",
"authKey": "your-api-key" // Optional
}
Local Testing with Smithery
- Build the Docker image:
docker build -t mcp-swagger .
- Run the container:
docker run -e SWAGGER_URL=your-swagger-url -e AUTH_KEY=your-auth-key mcp-swagger
Development
Scripts
npm run build
: Build TypeScript codenpm run start
: Run the server in production modenpm run dev
: Run the server in development mode with hot reloading