Skip to main content
Glama
gujord

OpenAPI to Model Context Protocol (MCP)

OpenAPI для моделирования контекстного протокола (MCP)

Лицензия: Массачусетский технологический институт Размер репоПоследний коммитОткрытые вопросыВерсия Python

Прокси-сервер OpenAPI-MCP преобразует спецификации OpenAPI в инструменты MCP, позволяя агентам ИИ получать доступ к внешним API без специальных оболочек!

OpenAPI-MCP

Устранение разрыва между агентами ИИ и внешними API

Прокси-сервер OpenAPI to Model Context Protocol (MCP) устраняет разрыв между агентами ИИ и внешними API, динамически преобразуя спецификации OpenAPI в стандартизированные инструменты , ресурсы и подсказки MCP. Это упрощает интеграцию, устраняя необходимость в пользовательских оболочках API.


Если вы считаете это полезным, пожалуйста, поставьте ему ⭐ на GitHub!


Related MCP server: MCP Command Proxy

Основные характеристики

  • FastMCP Transport: оптимизирован для stdio , работает «из коробки» с популярными оркестраторами LLM.

  • Интеграция OpenAPI: анализирует и регистрирует операции OpenAPI как вызываемые инструменты.

  • Регистрация ресурсов: автоматически преобразует схемы компонентов OpenAPI в объекты ресурсов с определенными URI.

  • Генерация подсказок: создает контекстные подсказки на основе операций API, помогающие магистрам права использовать API.

  • Поддержка OAuth2: обеспечивает аутентификацию компьютера с помощью потока учетных данных клиента.

  • Поддержка JSON-RPC 2.0: полностью совместимая структура запроса/ответа.

  • Автоматические метаданные: извлекает названия инструментов, сводки и схемы из спецификации OpenAPI.

  • Очищенные имена инструментов: обеспечивают совместимость с ограничениями имен MCP.

  • Гибкий анализ параметров: поддерживает строки запросов (с начальным «?») и несколько вариаций JSON (включая ключи с точками и числовыми значениями).

  • Улучшенная обработка параметров: автоматически преобразует параметры в правильные типы данных.

  • Расширенные метаданные инструмента: включают подробную информацию о параметрах и схемы ответов.

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

Установка

git clone https://github.com/gujord/OpenAPI-MCP.git
cd OpenAPI-MCP
pip install -r requirements.txt

Конфигурация оркестратора LLM

Для Claude Desktop , Cursor и Windsurf используйте приведенный ниже фрагмент и соответствующим образом измените пути:

{
  "mcpServers": {

    "petstore3": {
      "command": "full_path_to_openapi_mcp/venv/bin/python",
      "args": ["full_path_to_openapi_mcp/src/server.py"],
      "env": {
        "SERVER_NAME": "petstore3",
        "OPENAPI_URL": "https://petstore3.swagger.io/api/v3/openapi.json"
      },
      "transport": "stdio"
    }

  }
}

Примените эту конфигурацию к следующим файлам:

  • Курсор: ~/.cursor/mcp.json

  • Виндсерфинг: ~/.codeium/windsurf/mcp_config.json

  • Рабочий стол Клода: ~/Library/Application Support/Claude/claude_desktop_config.json

Замените full_path_to_openapi_mcp на фактический путь установки.

Конфигурация среды

Переменная

Описание

Необходимый

По умолчанию

OPENAPI_URL

URL-адрес спецификации OpenAPI

Да

-

SERVER_NAME

Имя сервера MCP

Нет

openapi_proxy_server

OAUTH_CLIENT_ID

Идентификатор клиента OAuth

Нет

-

OAUTH_CLIENT_SECRET

Секрет клиента OAuth

Нет

-

OAUTH_TOKEN_URL

URL конечной точки токена OAuth

Нет

-

OAUTH_SCOPE

Область действия OAuth

Нет

api

Как это работает

  1. Анализирует спецификацию OpenAPI: загружает спецификацию OpenAPI с помощью httpx и PyYAML при необходимости.

  2. Регистрирует операции: извлекает операции API и генерирует MCP-совместимые инструменты с надлежащими схемами ввода и ответа.

  3. Регистрация ресурсов: автоматически преобразует схемы компонентов OpenAPI в объекты ресурсов с назначенными URI (например, /resource/{name} ).

  4. Генерация подсказок: создает контекстные подсказки на основе операций API, чтобы помочь магистрам уровня магистра понять использование API.

  5. Аутентификация: поддерживает аутентификацию OAuth2 через поток учетных данных клиента.

  6. Обработка параметров: преобразует параметры в требуемые типы данных и поддерживает гибкие форматы строк запросов и JSON.

  7. Соответствие JSON-RPC 2.0: обеспечивает стандартные протоколы связи для взаимодействия инструментов.

sequenceDiagram
    participant LLM as LLM (Claude/GPT)
    participant MCP as OpenAPI-MCP Proxy
    participant API as External API

    Note over LLM, API: Communication Process

    LLM->>MCP: 1. Initialize (initialize)
    MCP-->>LLM: Metadata, tools, resources, and prompts

    LLM->>MCP: 2. Request tools (tools_list)
    MCP-->>LLM: Detailed list of tools, resources, and prompts

    LLM->>MCP: 3. Call tool (tools_call)

    alt With OAuth2
        MCP->>API: Request OAuth2 token
        API-->>MCP: Access Token
    end

    MCP->>API: 4. Execute API call with proper formatting
    API-->>MCP: 5. API response (JSON)

    alt Type Conversion
        MCP->>MCP: 6. Convert parameters to correct data types
    end

    MCP-->>LLM: 7. Formatted response from API

    alt Dry Run Mode
        LLM->>MCP: Call with dry_run=true
        MCP-->>LLM: Display request information without executing call
    end

Ресурсы и подсказки

Помимо инструментов, прокси-сервер теперь автоматически регистрирует:

  • Ресурсы: полученные из схем компонентов OpenAPI, объекты ресурсов регистрируются с определенными URI (например, /resource/{name} ) для структурированной обработки данных.

  • Подсказки: Контекстные подсказки генерируются на основе операций API, чтобы предоставить LLM-специалистам руководство по использованию, улучшая их понимание доступных конечных точек.

Эти расширенные метаданные улучшают интеграцию, предоставляя полный контекст API.

OpenAPI-MCP

Внося вклад

  • Сделайте форк этого репозитория.

  • Создайте новую ветку.

  • Отправьте запрос на извлечение с четким описанием ваших изменений.

Лицензия

Лицензия Массачусетского технологического института

Если вы считаете это полезным, пожалуйста, поставьте ему ⭐ на GitHub!

-
security - not tested
A
license - permissive license
-
quality - not tested

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/gujord/OpenAPI-MCP'

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