mcp-swagger

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

  1. Install dependencies:
npm install
  1. 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 path
  • method: HTTP method (GET, POST, etc.)
  • parameters: Optional path/query parameters
  • body: 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:

  1. A Dockerfile that builds and runs the server
  2. A smithery.yaml configuration file
  3. 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

  1. Build the Docker image:
docker build -t mcp-swagger .
  1. 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 code
  • npm run start: Run the server in production mode
  • npm run dev: Run the server in development mode with hot reloading