Skip to main content
Glama
itachiuchihadev

@abhishekkumar00019/swagger-mcp

@abhishekkumar00019/swagger-mcp

npm version License: MIT MCP Compatible

Динамический сервер Model Context Protocol (MCP), который преобразует любую спецификацию Swagger 2.0 или OpenAPI 3.x в вызываемые MCP-инструменты на лету.

Укажите URL любой спецификации OpenAPI/Swagger в формате JSON или YAML — и каждая конечная точка API автоматически станет интерактивным инструментом для Claude, Copilot, ChatGPT, Cursor, Windsurf и других клиентов с поддержкой MCP.


✨ Возможности

  • 🔄 Динамическая генерация инструментов — автоматически разбирает спецификации Swagger 2.0 и OpenAPI 3.x при запуске.

  • 🛠️ Ноль шаблонного кода — укажите URL спецификации, и каждая конечная точка мгновенно станет MCP-инструментом.

  • 🔐 Гибкая поддержка аутентификации — Bearer-токены, API-ключи и Basic Auth настраиваются без усилий через переменные окружения или флаги CLI.

  • 🌐 Умное определение базового URL — автоматически выводит базовый URL из конфигурации → определения сервера в спецификации → исходного URL спецификации.

  • 🔁 Горячая перезагрузка — повторно загружает и разбирает спецификацию на лету с помощью инструмента _swagger_mcp_reload.

  • 📝 Богатые схемы и описания — преобразует параметры OpenAPI и тела запросов в строгие JSON-схемы для точного вызова инструментов LLM.

  • ⏱️ Настраиваемые тайм-ауты и пользовательские заголовки — легко задавайте собственные заголовки запросов и пороги тайм-аута.


Related MCP server: Swagger to MCP

🚀 Быстрый старт

Вариант A: напрямую через npx (установка не требуется)

SWAGGER_MCP_SPEC_URL=https://petstore.swagger.io/v2/swagger.json npx @abhishekkumar00019/swagger-mcp

Вариант B: глобальная установка через NPM

npm install -g @abhishekkumar00019/swagger-mcp

SWAGGER_MCP_SPEC_URL=https://petstore.swagger.io/v2/swagger.json swagger-mcp

Вариант C: локальная настройка репозитория

  1. Клонируйте репозиторий и установите зависимости:

    git clone https://github.com/itachiuchihadev/swagger-mcp.git
    cd swagger-mcp
    npm install
  2. Соберите проект:

    npm run build
  3. Запустите локально:

    SWAGGER_MCP_SPEC_URL=https://petstore.swagger.io/v2/swagger.json node dist/index.js

⚙️ Конфигурации MCP-клиентов

Ниже приведены примеры конфигураций для популярных MCP-клиентов с использованием npx @abhishekkumar00019/swagger-mcp.

1. Claude Desktop

Добавьте в ваш claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "swagger-mcp": {
      "command": "npx",
      "args": ["-y", "@abhishekkumar00019/swagger-mcp"],
      "env": {
        "SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json",
        "SWAGGER_MCP_BEARER_TOKEN": "your-api-token-here"
      }
    }
  }
}

2. Claude Code (CLI)

Добавьте напрямую через CLI Claude Code:

claude mcp add swagger-mcp -- npx -y @abhishekkumar00019/swagger-mcp --spec-url https://petstore.swagger.io/v2/swagger.json

Или добавьте в .mcp.json в корне вашего проекта:

{
  "mcpServers": {
    "swagger-mcp": {
      "command": "npx",
      "args": ["-y", "@abhishekkumar00019/swagger-mcp"],
      "env": {
        "SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
      }
    }
  }
}

3. GitHub Copilot / VS Code

Добавьте в .vscode/mcp.json в вашем рабочем пространстве или в глобальные настройки VS Code:

{
  "server": {
    "swagger-mcp": {
      "command": "npx",
      "args": ["-y", "@abhishekkumar00019/swagger-mcp"],
      "env": {
        "SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json",
        "SWAGGER_MCP_API_KEY": "your-api-key"
      }
    }
  }
}

4. Cursor

Добавьте в .cursor/mcp.json или настройте в Cursor Settings → Features → MCP:

{
  "mcpServers": {
    "swagger-mcp": {
      "command": "npx",
      "args": ["-y", "@abhishekkumar00019/swagger-mcp"],
      "env": {
        "SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
      }
    }
  }
}

5. Windsurf

Добавьте в ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "swagger-mcp": {
      "command": "npx",
      "args": ["-y", "@abhishekkumar00019/swagger-mcp"],
      "env": {
        "SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
      }
    }
  }
}

6. Roo Code / Cline (VS Code Extension)

Добавьте в cline_mcp_settings.json (или roo_code_mcp_settings.json):

{
  "mcpServers": {
    "swagger-mcp": {
      "command": "npx",
      "args": ["-y", "@abhishekkumar00019/swagger-mcp"],
      "env": {
        "SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
      }
    }
  }
}

7. ChatGPT & OpenAI (Custom GPTs / Assistants / API)

Прямой импорт спецификации OpenAPI (встроенные действия Custom GPT): ChatGPT Custom GPTs поддерживают спецификации OpenAPI нативно. Вы можете напрямую импортировать URL вашей Swagger/OpenAPI JSON/YAML спецификации в разделе Actions конструктора Custom GPT без необходимости в промежуточном сервере.

Через MCP HTTP/SSE шлюз: Если вы подключаете агентов ChatGPT или OpenAI к этому MCP-серверу через HTTP/SSE мост (например, с помощью supergateway или mcp-remote), запустите swagger-mcp с SSE-прокси:

npx supergateway --stdio "npx -y @abhishekkumar00019/swagger-mcp --spec-url https://petstore.swagger.io/v2/swagger.json" --port 8000

8. Zed Editor

Добавьте в ~/.config/zed/settings.json:

{
  "context_servers": {
    "swagger-mcp": {
      "command": {
        "path": "npx",
        "args": ["-y", "@abhishekkumar00019/swagger-mcp"]
      },
      "env": {
        "SWAGGER_MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json"
      }
    }
  }
}

🔧 Справочник по конфигурации

Все параметры конфигурации можно задать через переменные окружения или аргументы CLI. SWAGGER_MCP_SPEC_URL — единственный обязательный параметр.

Переменная окружения

Аргумент CLI

Обязательный

По умолчанию

Описание

SWAGGER_MCP_SPEC_URL

--spec-url

Да

URL спецификации Swagger/OpenAPI

SWAGGER_MCP_BASE_URL

--base-url

Нет

Автоопределение

Переопределяет базовый URL целевого API

SWAGGER_MCP_BEARER_TOKEN

--bearer-token

Нет

Bearer-токен для Authorization: Bearer <token>

SWAGGER_MCP_API_KEY

--api-key

Нет

Значение заголовка API-ключа

SWAGGER_MCP_API_KEY_HEADER

--api-key-header

Нет

X-API-Key

Пользовательское имя заголовка для API-ключа

SWAGGER_MCP_BASIC_USER

--basic-user

Нет

Имя пользователя для Basic Auth

SWAGGER_MCP_BASIC_PASS

--basic-pass

Нет

Пароль для Basic Auth

SWAGGER_MCP_TIMEOUT

--timeout

Нет

30000

Тайм-аут HTTP-запроса в миллисекундах

SWAGGER_MCP_HEADERS

--headers

Нет

{}

Дополнительные HTTP-заголовки в виде JSON-строки


🔑 Примеры аутентификации

Несколько методов аутентификации можно задать одновременно:

# Bearer Token
SWAGGER_MCP_BEARER_TOKEN=sk-your-token-here

# API Key (Custom Header)
SWAGGER_MCP_API_KEY=your-api-key
SWAGGER_MCP_API_KEY_HEADER=X-Custom-Key

# Basic Auth
SWAGGER_MCP_BASIC_USER=admin
SWAGGER_MCP_BASIC_PASS=secret123

[!NOTE] Если указаны и Bearer, и Basic Auth, Basic Auth перезапишет заголовок Authorization. Комбинируйте Bearer-токен с заголовками API-ключа, если требуется несколько заголовков.


🏷️ Стратегия именования инструментов

Конечные точки из вашей спецификации OpenAPI преобразуются в MCP-инструменты в следующем порядке приоритета:

Приоритет

Источник

Пример

1-й

operationId, определённый в спецификации

getUserById

2-й

Тег + метод + путь

users_get_by_id

3-й

Метод + путь

get_api_v1_users_by_id


🧰 Встроенные мета-инструменты

Инструмент

Описание

_swagger_mcp_reload

Повторно загружает и разбирает спецификацию Swagger на лету. Полезно при разработке или обновлении API без перезапуска сервера.


📁 Структура проекта

swagger-mcp/
├── package.json
├── tsconfig.json
├── src/
│   ├── index.ts              # Entry point & CLI argument parser
│   ├── server.ts             # MCP server initialization & tool registration
│   ├── swagger-parser.ts     # OpenAPI 2.0/3.x spec fetcher & parser
│   ├── tool-builder.ts       # Converts OpenAPI operations -> JSON Schema tools
│   ├── request-handler.ts    # Proxies MCP tool calls to HTTP endpoints
│   ├── auth.ts               # Authentication header builder
│   ├── config.ts             # Environment & CLI configuration manager
│   └── types.ts              # Shared TypeScript interfaces
└── dist/                     # Compiled JavaScript output

📄 Лицензия

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Dynamically generates MCP tools from Swagger/OpenAPI specifications by extracting swagger.json files at runtime. Enables natural language interaction with any REST API that has Swagger documentation.
    -
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Automatically converts Swagger/OpenAPI specifications into dynamic MCP tools, enabling interaction with any REST API through natural language by loading specs from local files or URLs.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Dynamically converts any API with an OpenAPI v3 specification into MCP tools for AI assistants. It supports multiple authentication methods including OAuth2, Bearer tokens, and API keys for flexible integration.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Converts any OpenAPI/Swagger API specification into MCP tools that AI assistants can use to interact with the API.
    37
    7
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itachiuchihadev/swagger_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server