mcp-swagger
0
The MCP Swagger Server is a tool designed to load and access Swagger/OpenAPI documentation, enabling API requests based on its specification. It supports authentication, caches specifications, and validates requests, making it a robust choice for API management.
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