About MCP Swagger Server
MCP Swagger Server gives developers MCP access to Swagger/OpenAPI documentation and API requests based on the specification. It loads a specification from a URL and validates requests against it.
Key features
- 01Load Swagger documentation from a URL
- 02Expose the full documentation as a resource
- 03Make API requests based on the specification
- 04Support API key authentication
- 05Cache specifications and validate requests
Use cases
- 01Inspect API documentation in an MCP session
- 02Call an API using its OpenAPI specification
- 03Validate parameters before sending a request
MCP support
Exposes the full documentation as the `swagger://documentation` resource and provides the `makeRequest` tool for API requests based on the specification.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP 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
Dockerfilethat builds and runs the server - A
smithery.yamlconfiguration 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
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.