Как использовать Bencher MCP
Bencher MCP - это размещённый сервер Model Context Protocol (MCP).
Он позволяет ИИ-агентам и ассистентам запрашивать данные бенчмарков и отправлять результаты без установки CLI bencher.
Если CLI bencher доступен, он остаётся рекомендуемым способом работы с Bencher.
bencher run берёт на себя адаптеры бенчмарк-харнессов, итерации и интеграцию с CI.
Используйте Bencher MCP, когда CLI не установлен или когда ваш MCP-клиент не может выполнять команды оболочки.
Подключение
Bencher есть в каталоге коннекторов Claude, который обслуживает claude.ai, Claude Desktop, Claude Mobile и Claude Code. Добавьте коннектор Bencher и войдите с помощью своей учётной записи Bencher, когда Claude попросит. Claude Code использует коннекторы, добавленные в claude.ai, когда в нём выполнен вход с подпиской claude.ai. Коннектор подключается только к Bencher Cloud.
Bencher есть в каталоге плагинов OpenAI, который обслуживает ChatGPT и Codex.
Добавьте плагин Bencher и войдите с помощью своей учётной записи Bencher, когда вас попросят.
В Codex плагин также добавляет навык Bencher, чтобы Codex мог запускать CLI bencher.
Плагин подключается только к Bencher Cloud.
Вместо этого используйте URL с другими MCP-клиентами, с Claude Code без входа по подписке claude.ai, с Bencher Self-Hosted и в CI:
| Развёртывание | URL |
|---|---|
| Bencher Cloud | https://mcp.bencher.dev/mcp |
| Bencher Self-Hosted | https://<api-host>/mcp |
Добавьте URL в свой MCP-клиент и войдите с помощью своей учётной записи Bencher, когда клиент попросит. Claude Code входит через OAuth, так же как ChatGPT и claude.ai, когда вы добавляете сервер Bencher Self-Hosted по его URL. Например, подключитесь из Claude Code:
claude mcp add --transport http bencher https://mcp.bencher.dev/mcpКогда инструменту потребуется вход, выполните /mcp в Claude Code и следуйте инструкциям в браузере.
Чтобы вместо этого подключиться с API-ключом, передайте его в заголовке Authorization:
claude mcp add --transport http bencher https://mcp.bencher.dev/mcp \ --header "Authorization: Bearer $BENCHER_API_KEY"Или используйте универсальную конфигурацию MCP-клиента:
{ "mcpServers": { "bencher": { "type": "http", "url": "https://mcp.bencher.dev/mcp", "headers": { "Authorization": "Bearer ${BENCHER_API_KEY}" } } }}Аутентификация
Вход через OAuth
MCP-клиенты с поддержкой OAuth входят с помощью вашей учётной записи Bencher, поэтому вам никогда не нужно вставлять в них ключ.
Клиент открывает Bencher в браузере либо при подключении, либо когда инструменту впервые потребуется вход.
Bencher называет приложение по его веб-адресу и перечисляет, что приложение просит разрешить.
Войдите или вставьте API-ключ пользователя (bencher_user_*), а затем одобрите или отклоните запрос.
Bencher спрашивает каждый раз, когда приложение подключается, а API-ключ проекта (bencher_run_*) не может одобрить запрос.
Приложение остаётся подключённым не дольше года.
Приложение, одобренное с API-ключом пользователя, отключается, как только этот ключ отзывается или истекает.
Токены доступа OAuth предназначены для Bencher MCP:
API Bencher отклоняет их с 401 Unauthorized.
В Bencher Self-Hosted вход работает, как только настроен раздел plus.oauth API-сервера.
ChatGPT и claude.ai должны иметь доступ к серверу из интернета.
Claude Code может войти и на сервер в вашей собственной сети, доступный по https, если сервер может получить документ метаданных клиента Claude Code или он настроен в plus.oauth.clients.
Области доступа
Вы одобряете либо все области доступа, которые запрашивает приложение, либо ни одной:
| Область доступа | Приложение может |
|---|---|
projects:read |
Просматривать ваши проекты и их результаты, включая приватные проекты |
projects:write |
Просматривать, создавать и изменять данные в ваших проектах, включая приватные проекты, например отчёты, пороги и алерты, а также отправлять запуски, которые создают проекты или присваивают себе unclaimed организации |
openid |
Знать, под какой учётной записью Bencher вы вошли |
email |
Просматривать ваш адрес электронной почты и то, подтверждён ли он |
profile |
Просматривать ваше имя и имя пользователя |
Инструментам чтения (list_*, view_*, query_perf и perf_image) нужна область projects:read.
Всем остальным инструментам нужна область projects:write, которая включает projects:read.
Приложение, которое не запрашивает ни одну из них, получает projects:read.
Приложению, вошедшему без projects:write, предлагается войти снова, когда оно вызывает инструмент, выполняющий запись.
Области openid, email и profile предназначены для OpenID Connect и доступны, только если на сервере задан plus.oauth.signing_key.
Приложение действует от вашего имени: ваша роль в каждом проекте по-прежнему определяет, что оно может видеть и изменять, и у него никогда нет прав администратора сервера.
Подключённые приложения
Чтобы увидеть приложения, подключённые к вашей учётной записи, откройте Connected Apps в меню учётной записи в Bencher Console или перейдите на /console/users/apps.
Каждое приложение указано по его веб-адресу вместе с тем, что оно может делать, когда оно подключилось, когда оно последний раз обновило доступ и как вы его одобрили.
Revoke сразу отключает приложение.
API-ключи
Bencher MCP также принимает те же учётные данные Authorization: Bearer, что и API Bencher:
API-ключ проекта (bencher_run_*) или API-ключ пользователя (bencher_user_*).
API-ключ проекта ограничен одним проектом, поэтому это лучший выбор для большинства агентов.
API-ключ пользователя имеет доступ ко всем проектам пользователя.
Недействительные учётные данные отклоняются при каждом запросе и никогда не считаются анонимными.
Без входа
Публичные проекты можно читать без каких-либо учётных данных. Анонимные запросы делят общий лимит запросов на IP-адрес, а запросы после входа учитываются в ваших собственных лимитах. Если на сервере настроен OAuth, Bencher MCP просит ваш клиент войти, когда это нужно анонимному вызову инструмента:
- При чтении приватного проекта. Несуществующий проект получает тот же ответ, поэтому опечатка в проекте или ID, даже внутри публичного проекта, тоже приводит к просьбе войти.
- При вызове инструмента, выполняющего запись, кроме
submit_runвunclaimedпроект. - При получении списка проектов организации с помощью
list_projects. - При превышении анонимного лимита запросов.
Инструменты
Набор инструментов отражает то, что может делать API-ключ проекта (bencher_run_*):
чтение и запись в рамках проекта, без инструментов удаления.
Инструментов переименования нет, а с API-ключом проекта обновления алертов ограничены изменением статуса.
Большинство инструментов принимают аргумент project, который может быть слагом или UUID проекта.
| Инструмент | Назначение |
|---|---|
submit_run |
Отправить необработанный вывод бенчмарк-харнесса; сервер разбирает его и на лету создаёт ветки, тестбеды и пороги |
query_perf, perf_image |
Запросить метрики бенчмарков во времени; построить изображение графика производительности |
list_projects, view_project |
Проекты |
list_reports, create_report, view_report |
Отчёты |
list_branches, create_branch, view_branch, update_branch |
Ветки |
list_testbeds, create_testbed, view_testbed, update_testbed |
Тестбеды |
list_benchmarks, create_benchmark, view_benchmark, update_benchmark |
Бенчмарки |
list_measures, create_measure, view_measure, update_measure |
Меры |
list_thresholds, create_threshold, view_threshold, update_threshold |
Пороги |
list_alerts, view_alert, update_alert |
Алерты |
view_metric |
Отдельная метрика с полным контекстом |
list_plots, create_plot, view_plot, update_plot |
Сохранённые графики дашборда |
list_jobs, view_job |
Задачи bare metal раннеров |