OpenAPI MCP-сервер
Сервер Model Context Protocol (MCP), который выставляет конечные точки OpenAPI как ресурсы MCP. Этот сервер позволяет моделям больших языков обнаруживать и взаимодействовать с API REST, определенными спецификациями OpenAPI, через протокол MCP.
Обзор
Этот сервер MCP поддерживает два метода транспортировки:
Stdio Transport (по умолчанию): для прямой интеграции с системами ИИ, такими как Claude Desktop, которые управляют соединениями MCP через стандартный ввод/вывод.
Потоковый HTTP-транспорт : для подключения к серверу по протоколу HTTP, позволяющий веб-клиентам и другим системам с поддержкой HTTP использовать протокол MCP.
Related MCP server: File Context MCP
Быстрый старт для пользователей
Вариант 1: Использование с Claude Desktop (Stdio Transport)
Нет необходимости клонировать этот репозиторий. Просто настройте Claude Desktop для использования этого сервера MCP:
Найдите или создайте файл конфигурации Claude Desktop:
В macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Добавьте следующую конфигурацию:
Замените переменные среды вашей фактической конфигурацией API:
API_BASE_URL: базовый URL вашего APIOPENAPI_SPEC_PATH: URL или путь к вашей спецификации OpenAPIAPI_HEADERS: пары ключ:значение, разделенные запятыми, для заголовков аутентификации API.
Вариант 2: использование с HTTP-клиентами (HTTP-транспорт)
Чтобы использовать сервер с HTTP-клиентами:
Установка не требуется! Используйте npx для прямого запуска пакета:
Взаимодействие с сервером с помощью HTTP-запросов:
Виды транспорта
Stdio-транспорт (по умолчанию)
Транспорт stdio предназначен для прямой интеграции с системами ИИ, такими как Claude Desktop, которые управляют соединениями MCP через стандартный ввод/вывод. Это самая простая настройка, не требующая настройки сети.
Когда использовать : При интеграции с Claude Desktop или другими системами, поддерживающими связь MCP на основе stdio.
Потоковый HTTP-транспорт
HTTP-транспорт позволяет получить доступ к серверу MCP по HTTP, позволяя веб-приложениям и другим HTTP-совместимым клиентам взаимодействовать с протоколом MCP. Он поддерживает управление сеансами, потоковые ответы и стандартные методы HTTP.
Основные характеристики :
Управление сеансом с помощью заголовка Mcp-Session-Id
HTTP-ответы для запросов
initializeиtools/listотправляются синхронно в POST.Другие сообщения от сервера к клиенту (например, результаты
tools/execute, уведомления) передаются по соединению GET с использованием событий, отправленных сервером (SSE).Поддержка методов POST/GET/DELETE
Когда использовать : Когда вам нужно предоставить доступ к серверу MCP веб-клиентам или системам, которые взаимодействуют по протоколу HTTP, а не stdio.
Параметры конфигурации
Сервер можно настроить с помощью переменных среды или аргументов командной строки:
Переменные среды
API_BASE_URL— базовый URL для конечных точек APIOPENAPI_SPEC_PATH— Путь или URL к спецификации OpenAPIAPI_HEADERS— пары ключ:значение, разделенные запятыми, для заголовков API.SERVER_NAME— имя сервера MCP (по умолчанию: «mcp-openapi-server»)SERVER_VERSION- Версия сервера (по умолчанию: "1.0.0")TRANSPORT_TYPE— тип используемого транспорта: «stdio» или «http» (по умолчанию: «stdio»).HTTP_PORT— порт для HTTP-транспорта (по умолчанию: 3000)HTTP_HOST— Хост для HTTP-транспорта (по умолчанию: «127.0.0.1»)ENDPOINT_PATH— путь к конечной точке для HTTP-транспорта (по умолчанию: "/mcp")
Аргументы командной строки
Соображения безопасности
HTTP-транспорт проверяет заголовки Origin для предотвращения атак перепривязки DNS.
По умолчанию HTTP-транспорт привязывается только к localhost (127.0.0.1)
При предоставлении доступа другим хостам рассмотрите возможность внедрения дополнительной аутентификации.
Отладка
Чтобы просмотреть журналы отладки:
При использовании транспорта stdio с Claude Desktop:
Журналы появляются в журналах Claude Desktop
При использовании HTTP-транспорта:
npx @ivotoby/openapi-mcp-server --transport http 2>debug.log
Для разработчиков
Инструменты разработки
npm run build— собирает исходный код TypeScriptnpm run clean— удаляет артефакты сборкиnpm run typecheck— запускает проверку типов TypeScriptnpm run lint— запускает ESLintnpm run dev— отслеживает исходные файлы и выполняет пересборку при внесении измененийnpm run inspect-watch— запускает инспектор с автоматической перезагрузкой при изменениях
Рабочий процесс разработки
Клонировать репозиторий
Установить зависимости:
npm installЗапустите среду разработки:
npm run inspect-watchВнесите изменения в файлы TypeScript в
src/Сервер автоматически перестроится и перезапустится.
Внося вклад
Форк репозитория
Создать ветку функций
Внесите изменения
Запуск тестов и линтинга:
npm run typecheck && npm run lintОтправить запрос на извлечение
Лицензия
Массачусетский технологический институт