Не так давно я публиковал проект openapi-to-mcp, который позволяет любой API сервер с нормальной OpenAPI/Swagger спецификацией конвертировать в MCP сервер. Но теперь я развил эту идею в сторону консоли и сделал openapi-to-cli, который по OpenAPI/Swagger спецификации генерит удобную CLI над тем же самым API.
Как это работает
Допустим в спецификации API есть такие эндпоинты:
- GET /messages
- POST /messages
- GET /status
- GET /users
В момент добавления профиля
openapi-to-cli конвертирует их в команды CLI примерно такого вида:- npx openapi-to-cli messages_get
- npx openapi-to-cli messages_post
- npx openapi-to-cli status
- npx openapi-to-cli users
Каждая такая команда это по сути HTTP запрос к API серверу, параметры запроса попадают через опции CLI, а ответ API печатается обратно в терминал, подробную справку по каждой команде можно почитать добавив
-h или --help на конце.Быстрый старт через npx
Самый простой способ попробовать:
npx openapi-to-cli profiles add default \
--api-base-url http://127.0.0.1:8080 \
--openapi-spec https://raw.githubusercontent.com/readmeio/oas-examples/refs/heads/main/3.1/json/petstore-simple.json
Эта команда:
1. качает пакет
openapi-to-cli, если его еще нет в кэше2. создает профиль
default для вашего API3. скачивает и кэширует OpenAPI спеку под
.ocli/specs/default.json4. записывает настройки профиля в
.ocli/profiles.iniСписок доступных команд можно посмотреть вызвав:
npx openapi-to-cli commands
После этого можно ходить в API из терминала, например вот так:
npx openapi-to-cli messages --limit 10
Есть короткая команда
ocli, она заменяет npx openapi-to-cli, но нужно ставить глобально через через:npm -g openapi-to-cli
Подробная справка на странице проекта.
Исходники: https://github.com/EvilFreelancer/openapi-to-cli
Пакет: https://www.npmjs.com/package/openapi-to-cli