Разделение OpenAPI MCP Server
Этот проект предоставляет сервер Model Context Protocol (MCP) с инструментами для разделения файлов спецификаций OpenAPI на несколько файлов или извлечения определенных конечных точек в новый файл. Он позволяет клиенту MCP (например, помощнику AI) программно манипулировать спецификациями OpenAPI.
Предпосылки
Node.js (рекомендуется версия LTS, например v18 или v20)
npm (входит в состав Node.js)
Related MCP server: MCP-openproject
Использование
Установка через Smithery
Чтобы автоматически установить Unbundle OpenAPI MCP Server для Claude Desktop через Smithery :
npx -y @smithery/cli install @auto-browse/unbundle_openapi_mcp --client claudeСамый простой способ использовать этот сервер — через npx , что гарантирует вам постоянное использование последней версии без необходимости глобальной установки.
npx @auto-browse/unbundle-openapi-mcp@latestКроме того, вы можете установить его глобально (что обычно не рекомендуется):
npm install -g @auto-browse/unbundle-openapi-mcp
# Then run using: unbundle-openapi-mcpСервер запустится и будет прослушивать запросы MCP на стандартном вводе/выводе (stdio).
Конфигурация клиента
Чтобы использовать этот сервер с клиентами MCP, такими как VS Code, Cline, Cursor или Claude Desktop, добавьте его конфигурацию в соответствующий файл настроек. Рекомендуемый подход использует npx .
VS Code / Клайн / Курсор
Добавьте следующее в файл User settings.json (доступный через Ctrl+Shift+P > Preferences: Open User Settings (JSON) ) или в файл .vscode/mcp.json в корневом каталоге рабочей области.
// In settings.json:
"mcp.servers": {
"unbundle_openapi": { // You can choose any key name
"command": "npx",
"args": [
"@auto-browse/unbundle-openapi-mcp@latest"
]
}
// ... other servers can be added here
},
// Or in .vscode/mcp.json (omit the top-level "mcp.servers"):
{
"unbundle_openapi": { // You can choose any key name
"command": "npx",
"args": [
"@auto-browse/unbundle-openapi-mcp@latest"
]
}
// ... other servers can be added here
}Клод Десктоп
Добавьте следующее в файл claude_desktop_config.json .
{
"mcpServers": {
"unbundle_openapi": {
// You can choose any key name
"command": "npx",
"args": ["@auto-browse/unbundle-openapi-mcp@latest"]
}
// ... other servers can be added here
}
}После добавления конфигурации перезапустите клиентское приложение, чтобы изменения вступили в силу.
Предоставляемые инструменты MCP
split_openapi
Описание: Выполняет команду redocly split для разделения файла определения OpenAPI на несколько меньших файлов на основе его структуры.
Аргументы:
apiPath(строка, обязательно): абсолютный путь к входному файлу определения OpenAPI (например,openapi.yaml).outputDir(string, required): Абсолютный путь к каталогу, в котором должны быть сохранены разделенные выходные файлы. Этот каталог будет создан, если он не существует.
Возврат:
При успешном выполнении: текстовое сообщение, содержащее стандартный вывод команды
redocly split(обычно подтверждающее сообщение).При сбое: сообщение об ошибке, содержащее стандартные сведения об ошибке или исключении при выполнении команды, отмеченное как
isError: true.
Пример использования (концептуальный запрос MCP):
{
"tool_name": "split_openapi",
"arguments": {
"apiPath": "/path/to/your/openapi.yaml",
"outputDir": "/path/to/output/directory"
}
}extract_openapi_endpoints
Описание: Извлекает определенные конечные точки из большого файла определения OpenAPI и создает новый, меньший файл OpenAPI, содержащий только эти конечные точки и их ссылочные компоненты. Это достигается путем разделения исходного файла, изменения структуры для сохранения только указанных путей, а затем объединения результата.
Аргументы:
inputApiPath(строка, обязательно): абсолютный путь к большому входному файлу определения OpenAPI.endpointsToKeep(массив строк, обязательно): список точных путей конечных точек (строк), которые следует включить в конечный вывод (например,["/api", "/api/projects/{id}{.format}"]). Пути, не найденные в исходной спецификации, будут игнорироваться.outputApiPath(string, required): Абсолютный путь, по которому должен быть сохранен окончательный, меньший упакованный файл OpenAPI. Каталог будет создан, если он не существует.
Возврат:
В случае успеха: текстовое сообщение с указанием пути к созданному файлу и стандартный вывод команды
redocly bundle.При ошибке: сообщение об ошибке, содержащее сведения о шаге, который не был выполнен (разделение, изменение, объединение), отмеченное как
isError: true.
Пример использования (концептуальный запрос MCP):
{
"tool_name": "extract_openapi_endpoints",
"arguments": {
"inputApiPath": "/path/to/large-openapi.yaml",
"endpointsToKeep": ["/users", "/users/{userId}/profile"],
"outputApiPath": "/path/to/extracted-openapi.yaml"
}
}Примечание: Этот сервер использует npx @redocly/cli@latest внутренне для выполнения базовых команд split и bundle . Для npx может потребоваться подключение к Интернету для извлечения @redocly/cli если он не кэширован. Временные файлы создаются во время процесса extract_openapi_endpoints и автоматически очищаются.
Разработка
Если вы хотите внести свой вклад или запустить сервер из исходного кода:
Клонировать: Клонировать этот репозиторий.
Перейдите:
cd unbundle_openapi_mcpУстановка зависимостей:
npm installСборка:
npm run build(компилирует TypeScript вdist/)Запустить:
npm start(запускает сервер, используя скомпилированный код вdist/)
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.