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