clihub CLI
clihub превращает любой MCP-сервер в готовый CLI: каждый инструмент становится подкомандой, а на выходе один статический бинарник без зависимостей
- 666 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Через `--stdio` запускает произвольную команду, чтобы спросить у сервера список инструментов, генерирует код на Go и компилирует его
- Хранит OAuth-токены и ключи в `~/.clihub/credentials.json` и принимает их через флаги командной строки
- Сгенерированные программы вызывают инструменты сервера, в том числе записывающие, от имени вашей учетной записи
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/clihubОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Через `--stdio` запускает произвольную команду, чтобы спросить у сервера список инструментов, генерирует код на Go и компилирует его
- Хранит OAuth-токены и ключи в `~/.clihub/credentials.json` и принимает их через флаги командной строки
- Сгенерированные программы вызывают инструменты сервера, в том числе записывающие, от имени вашей учетной записи
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
clihub — генератор на Go: он подключается к MCP-серверу, узнает список его инструментов и собирает из них отдельную программу командной строки. Команда `clihub generate --url https://mcp.linear.app/mcp` создает бинарник `./out/linear`, где каждый инструмент сервера стал подкомандой, а флаги выведены из JSON Schema его параметров. Работает с серверами по потоковому HTTP (`--url`) и по stdio (`--stdio "npx @modelcontextprotocol/server-github"`, переменные окружения передают флагом `--env`). Конвейер состоит из четырех шагов: подключение к серверу, получение списка инструментов через `tools/list`, генерация кода на Go с одной подкомандой на инструмент и компиляция в статический бинарник. Готовая программа не зависит от clihub и работает без конфигурационных файлов. Флаг `--platform` собирает бинарники для нескольких систем сразу, например `linux/amd64,darwin/arm64,windows/amd64`, а `--include-tools` и `--exclude-tools` ограничивают набор инструментов. Каждая подкоманда принимает параметры флагами или целиком в `--from-json`. Авторизацию сгенерированный CLI выполняет сам. Подкоманда `auth` запускает вход через браузер по OAuth с PKCE, принимает токен через `--token`, а `auth status` и `auth logout` показывают и сбрасывают состояние. Поддерживаются Bearer, ключ в заголовке, Basic, OAuth 2.0 по схеме server-to-server и сервисный аккаунт Google. Учетные данные сохраняются в `~/.clihub/credentials.json`.
Для кого. Для разработчиков и тех, кто настраивает агентов, которым удобнее вызывать инструмент командой из терминала, скрипта или CI, чем держать подключенным MCP-сервер.
Подходит, если
- MCP-сервер нужен в скрипте, CI или по SSH, где агент не запущен, и удобнее вызывать его инструменты обычной командой
- Нужно раздать коллегам один исполняемый файл для сервера вроде Linear или Notion, собрав его под `linux/amd64`, `darwin/arm64` и `windows/amd64`
- Из большого набора инструментов сервера требуется оставить несколько с помощью `--include-tools`
- Нужен вход в сервер по OAuth через `auth` или с токеном через `--auth-token`, а ключ не хочется вписывать в конфигурацию агента
- Агент работает через оболочку, и вызов `./out/linear create-issue --from-json '{...}'` ему проще, чем настройка MCP
Не подходит, если
- На машине нет Go: clihub вызывает компилятор, README требует Go 1.24 или новее, а `go.mod` указывает 1.25.6
- Сервер доступен только по SSE или другому транспорту: флаг `--url` принимает адрес потокового HTTP
- Нужна гибкая работа сразу с несколькими серверами без сборки: программа mcp2cli строит команды на лету, без генерации кода
- Вы не можете хранить токен на диске: после входа он сохраняется в `~/.clihub/credentials.json`
Пример запроса к агенту
Собери через clihub CLI для MCP-сервера Linear по адресу https://mcp.linear.app/mcp, войди через браузер и покажи список командОграничения
- Лицензия MIT. Файл `VERSION` содержит 0.0.8, выпусков на GitHub нет: ставится из исходников через `go install`.
- Нужен Go: README называет Go 1.24 и новее, а `go.mod` требует 1.25.6, ориентируйтесь на более новую версию. Если команда `clihub` не найдена после установки, в `PATH` надо добавить `$(go env GOPATH)/bin`.
- Для некоторых MCP-серверов авторизация нужна уже при генерации, потому что без нее сервер не отдает список инструментов. Нужные флаги показывает `clihub generate --help-auth`.
- Порядок разрешения авторизации фиксирован: флаг `--auth-token`, затем `--auth-type` с флагами, переменная `CLIHUB_AUTH_TOKEN`, файл `~/.clihub/credentials.json`, иначе запрос без авторизации.
- Пример в README для AGENTS.md предлагает агенту собирать недостающие CLI командой `go run github.com/thellimist/clihub@latest`, то есть скачивать и запускать код из сети. Решайте, разрешать ли такое.
Как отключить. Удалите бинарник `clihub` из каталога `$(go env GOPATH)/bin` или `~/.local/bin`, а сгенерированные программы из папки `./out/` или из `bin` проекта. Сохраненные токены лежат в `~/.clihub/credentials.json`: для выхода из конкретного сервера выполните `./out/<имя> auth logout`, для полной очистки удалите файл. Если вы добавили правило из README в AGENTS.md, уберите его.
Частые вопросы
Чем сгенерированный CLI отличается от самого MCP-сервера?
Он работает как обычная программа командной строки без запущенного агента. Инструменты сервера доступны подкомандами, параметры флагами, а вывод удобно передавать в скрипты. Сервер при этом остается тем же, программа лишь подключается к нему при вызове.
Как передать параметры вызова целиком?
Каждая подкоманда принимает флаг `--from-json` с JSON-объектом: `./out/linear create-issue --from-json '{"title":"Bug report","priority":"high"}'`. Его нельзя сочетать с типизированными флагами в одном вызове. Если у инструмента уже есть параметр `from-json`, используется `--clihub-from-json`.
Как подключить сервер, который требует OAuth?
При генерации добавьте флаг `--oauth`, например `clihub generate --url https://mcp.notion.com/mcp --oauth`. Сгенерированная программа откроет браузер для входа при вызове `auth`. Обнаружение конечных точек выполняется по RFC 9728 и RFC 8414, регистрация клиента — по RFC 7591.
Какие типы авторизации поддерживаются?
Семь: OAuth 2.0 с PKCE, динамическая регистрация клиента, Bearer-токен, ключ в заголовке (по умолчанию `X-API-Key`), Basic, OAuth 2.0 клиентских учетных данных без браузера и сервисный аккаунт Google с подписанным JWT.
Можно ли собрать бинарники для других систем?
Да, флагом `--platform` с парами GOOS/GOARCH через запятую или значением `all`. Результат лежит в `./out/`, а каталог можно сменить флагом `--output`. Для Linear пример в README называет размер 6,5 МБ.
Как ограничить набор инструментов?
Флагами `--include-tools` и `--exclude-tools` со списком имен через запятую. Фильтр работает на этапе генерации, поэтому лишние подкоманды в программу не попадают. Реализация находится в `internal/toolfilter` и допускает нечеткое сопоставление имен.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыЛегкий CLI, чтобы находить, смотреть и вызывать инструменты MCP-серверов прямо из командной строки
MCP-сервер, который дает агенту читать файлы, искать по коду и запускать команды в рабочей папке
CLI и TypeScript-рантайм для вызова MCP-серверов из терминала, скриптов и сгенерированных типизированных клиентов
Генератор CLI и MCP-серверов на Go по документации или сайту API: /printing-press собирает утилиту с локальной базой SQLite
Плагин со скиллами для сборки MCP-серверов и MCP-приложений на TypeScript: агент создает, дорабатывает, отлаживает и проверяет их
MCP-сервер, который дает Claude Desktop и другим клиентам файловые инструменты, shell и подагентов в духе Claude Code
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| clihub (эта запись) | нет | 666 | |
| mcp2cli | нет | 2 424 | строит команды на лету во время запуска, без генерации кода, и умеет работать с OpenAPI и GraphQL |
| MCPorter | нет | 5 091 | CLI и среда выполнения на TypeScript для вызова MCP-серверов, с генерацией типизированных клиентов |
Коротко о README
Главная страница показывает идею в одной команде и дает установку через `go install` или сборку из исходников. Дальше идут раздел для ИИ с готовым фрагментом для AGENTS.md, быстрые примеры для HTTP, OAuth и stdio, описание четырех шагов работы, раздел об авторизации с порядком разрешения и список флагов. Конец занимают структура проекта и правила для участников с хуками перед отправкой. В репозитории есть каталог `docs` с описанием проекта, архитектуры, авторизации и выпуска, а также тесты на авторизацию и генерацию кода.