Перейти к содержимому
Verbumia

MCP

Настрой Claude Desktop

Verbumia поставляется со встроенным MCP сервером, чтобы любой MCP-клиент — Claude Desktop, Cursor, твой собственный агент — мог искать ключи, предлагать переводы, ревьюить PR'ы и смотреть очередь missing-keys. Две строки конфига, твой токен — готово.

1. Получи API-ключ

В дашборде перейди в Org Settings → API Keys → Create. Дай ему scope mcp:* (покрывает все пять инструментов ниже). Секрет показывается один раз; скопируй полную строку vrb_live_<prefix>.<secret>.

Храни в keychain ОС или в локальном .env — никогда не коммить. Ключ привязан к твоей org (и опционально к одному проекту); вызовы вне этого scope возвращают 404. Отозвать можно из дашборда в любой момент; отозванные ключи отдают 401 на следующем вызове.

2. Установка (или пропусти)

MCP server опубликован в npm и Homebrew. С npx ничего ставить не нужно — Claude Desktop тянет последнюю версию при каждом запуске. С brew получаешь зафиксированный локальный бинарник, удобно за строгими firewall'ами.

npx (рекомендуется)
1// установка не нужна — npx подтягивает свежий @verbumia/mcp по требованию2npx -y @verbumia/mcp --version
Homebrew (альтернатива) Tap публикуется в V1
1// опционально: установить глобально один раз — будет к запуску V12brew install verbumia/tap/verbumia-mcp

3. Подключи Claude Desktop

Открой конфиг-файл Claude Desktop, добавь запись verbumia под mcpServers, затем закрой и перезапусти приложение.

claude_desktop_config.json
1// macOS:   ~/Library/Application Support/Claude/claude_desktop_config.json2// Windows: %APPDATA%/Claude/claude_desktop_config.json3{4  "mcpServers": {5    "verbumia": {6      "command": "npx",7      "args": ["-y", "@verbumia/mcp@^0.11.0"],8      "env": {9        "VERBUMIA_API_KEY": "vrb_live_<prefix>.<secret>",10        "VERBUMIA_PROJECTS": "<uuid1>,<uuid2>"11      }12    }13  }14}

Всего три env-переменные: VERBUMIA_TOKEN (обязательная), VERBUMIA_PROJECT (опциональная — заранее задаёт проект, чтобы агенту не пришлось сначала вызывать list_projects) и VERBUMIA_API_BASE (опциональная — по умолчанию https://api.verbumia.dev; переопредели для self-hosted или staging).

VERBUMIA_PROJECTS requires @verbumia/mcp ≥ 0.11.0. On older releases, see Backwards compatibility below.

Multi-project tool calls

When VERBUMIA_PROJECTS lists more than one UUID, the agent can't infer which project you mean — every tool call must include project_uuid. With a single UUID (or only the legacy VERBUMIA_PROJECT set), it's optional and defaults to that project.

tools/call arguments
1// list_missing_keys — project_uuid is REQUIRED when VERBUMIA_PROJECTS lists more than one UUID2{3  "name": "list_missing_keys",4  "arguments": {5    "project_uuid": "<uuid1>",6    "namespace": "checkout",7    "language_code": "ja"8  }9}

Phrase your prompt with the project in mind (« in the Checkout project, list missing keys for ja ») — the agent will resolve the project to its UUID and pass project_uuid on the tool call. For ambiguous prompts across multiple projects, the agent will call list_projects first.

Cursor (и другие MCP-клиенты)

Тот же JSON, другой файл. В Cursor положи его в .cursor/mcp.json (на проект) или ~/.cursor/mcp.json (на пользователя). Для других клиентов следуй их документации по MCP-конфигу — запись mcpServers.verbumia идентична.

.cursor/mcp.json
1// .cursor/mcp.json (project-scoped) or ~/.cursor/mcp.json (user-scoped)2{3  "mcpServers": {4    "verbumia": {5      "command": "npx",6      "args": ["-y", "@verbumia/mcp@^0.11.0"],7      "env": { "VERBUMIA_API_KEY": "vrb_live_<prefix>.<secret>" }8    }9  }10}

5 инструментов V1

После настройки агент получает доступ к этим инструментам. По именам ты их не вызываешь — опиши намерение в чате, и агент сам выберет. Имена ниже — канонические идентификаторы, полезны при чтении трасс агента или при построении кастомных агентов поверх того же сервера.

list_projects Перечисляет проекты, доступные текущему API-ключу. Удобно для выбора workspace в начале чата.

Аргументы

  • limit number опциональный лимит на число возвращаемых проектов

Пример промпта

«List my Verbumia projects.»

get_project_info Получает метаданные проекта: исходный язык, целевые языки, namespace'ы, общее число ключей.

Аргументы

  • project_uuid string required

Пример промпта

«Какие языки и namespace'ы у проекта Checkout?»

list_missing_keys Возвращает накопленные события missing-keys, собранные runtime SDK (cursor-пагинация). Фильтруется по namespace или языку.

Аргументы

  • project_uuid string required
  • namespace string сузить до одного namespace (например, "checkout")
  • language_code string сузить до одного языка (например, "ja")
  • cursor string cursor пагинации, возвращённый предыдущим вызовом
  • limit number размер страницы (по умолчанию 20)

Пример промпта

«Какие ключи переводов отсутствуют для ja в namespace checkout?»

propose_translation Отправляет вариант перевода ключа на целевой язык. Всегда пишется как draft; повышает до approved человек-ревьюер — Verbumia это менеджер, а не движок.

Аргументы

  • project_uuid string required
  • key string required
  • namespace string required
  • language_code string required
  • value string required

Пример промпта

«Propose \"Confirmer la commande\" for checkout.review.confirm in fr-CA.»

validate_translations Линтит JSON i18next payload перед push'ем: парность ICU-плейсхолдеров, отсутствующие/лишние ключи, расхождение типов между локалями.

Аргументы

  • project_uuid string required
  • language_code string required
  • payload object required карта переводов в формате JSON i18next

Пример промпта

«Validate this translation file against the project's English source.»

Plan limits & quotas

You pay when an agent mutates your project, not when it observes it. Reads and listings are free; writes burn one unit; bulk and AI-assisted ops scale with the work they do.

What counts as a billable call

Reads — free

list_missing, list_keys, get_translation, search, plus auth / discover / meta. Browse the missing-key queue all day — it never touches your quota.

Writes — 1 unit

Each set / create / update / delete on a key or translation costs one unit, regardless of payload size.

Bulk — 1 unit per key

Multi-key endpoints (e.g. acknowledge) bill per key touched: a 50-key acknowledge debits 50 units, with rollback on partial-reject.

AI / auto-translate — ×5

Calls that invoke an LLM (auto-translate, AI Quality Review, suggest) bill 5 units per call. Higher weight reflects model cost.

Per-plan ceilings

Monthly quota, hard per-minute rate, concurrent MCP sessions, and whether writes are allowed. The same numbers feed the X-MCP-Quota-Remaining header on every response.

Plan Units / month Rate Sessions Writes
Free NaN NaNreq/min NaN blocked
Hobby NaN NaNreq/min NaN blocked
Pro NaN NaNreq/min NaN blocked
Team NaN NaNreq/min NaN blocked

When you hit a ceiling

Over the per-minute rate → 429 mcp_rate_limited with Retry-After (seconds). Over the monthly quota → 429 mcp_quota_exceeded with Retry-After set to the rollover. Free plan writes → 403 mcp_writes_disabled. Quotas reset on the 1st of each calendar month, UTC.

Как проверить

  1. 1 Полностью перезапусти Claude Desktop (выйди и запусти снова — конфиг читается при старте).
  2. 2 Открой новый чат. Иконка молотка должна показывать verbumia с пятью доступными инструментами.
  3. 3 Напиши «List my Verbumia projects.» Агент должен вызвать list_projects и вернуть твои workspace'ы.

Застрял? Смотри логи Claude Desktop в ~/Library/Logs/Claude/mcp*.log (macOS). 90% проблем — опечатки в JSON или просроченный токен.

Backwards compatibility

Старые имена VERBUMIA_TOKEN и VERBUMIA_API_BASE (до 0.4.0) по-прежнему принимаются как фолбэк; SDK читает их молча, если канонические не заданы.

Дальше