clihub CLI

clihub превращает любой MCP-сервер в готовый CLI: каждый инструмент становится подкомандой, а на выходе один статический бинарник без зависимостей

  • 666 ★ репозитория
  • Последний коммит
  • MIT
CLI

Широкий доступ

Почему такой уровень

  • Через `--stdio` запускает произвольную команду, чтобы спросить у сервера список инструментов, генерирует код на Go и компилирует его
  • Хранит OAuth-токены и ключи в `~/.clihub/credentials.json` и принимает их через флаги командной строки
  • Сгенерированные программы вызывают инструменты сервера, в том числе записывающие, от имени вашей учетной записи
Все причины и проверки

thellimist/clihub

Установка

Работает в

В терминале, через 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, чтобы находить, смотреть и вызывать инструменты MCP-серверов прямо из командной строки

CLIРасширенный доступ1,3 тыс.Звезды репозитория

MCP-сервер, который дает агенту читать файлы, искать по коду и запускать команды в рабочей папке

MCP-серверШирокий доступ1,2 тыс.Звезды репозитория

CLI и TypeScript-рантайм для вызова MCP-серверов из терминала, скриптов и сгенерированных типизированных клиентов

CLIРасширенный доступ5,1 тыс.Звезды репозитория

Генератор CLI и MCP-серверов на Go по документации или сайту API: /printing-press собирает утилиту с локальной базой SQLite

ПлагинШирокий доступ4,9 тыс.Звезды репозитория

Плагин со скиллами для сборки MCP-серверов и MCP-приложений на TypeScript: агент создает, дорабатывает, отлаживает и проверяет их

ПлагинРасширенный доступ10,8 тыс.Звезды репозитория

MCP-сервер, который дает Claude Desktop и другим клиентам файловые инструменты, shell и подагентов в духе Claude Code

MCP-серверШирокий доступ305Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйЗвезды репозиторияГлавное отличие
clihub (эта запись)нет666
mcp2cliнет2 424строит команды на лету во время запуска, без генерации кода, и умеет работать с OpenAPI и GraphQL
MCPorterнет5 091CLI и среда выполнения на TypeScript для вызова MCP-серверов, с генерацией типизированных клиентов

Коротко о README

Главная страница показывает идею в одной команде и дает установку через `go install` или сборку из исходников. Дальше идут раздел для ИИ с готовым фрагментом для AGENTS.md, быстрые примеры для HTTP, OAuth и stdio, описание четырех шагов работы, раздел об авторизации с порядком разрешения и список флагов. Конец занимают структура проекта и правила для участников с хуками перед отправкой. В репозитории есть каталог `docs` с описанием проекта, архитектуры, авторизации и выпуска, а также тесты на авторизацию и генерацию кода.

Бейдж для README

Сообщить о проблеме

Foxx AIclihub
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.