Быстрый старт MCP
Сервер запускается на вашей машине и ходит в API Инвойсбокс вашим токеном. Токен не попадает ни в модель, ни к посредникам: он лежит в конфигурации клиента и используется только для запросов к API Инвойсбокс. Начните с демо-контура — там ничего не стоит денег. Учтите только, что демо-магазин общий для всех читателей документации: пробные счета видны всем, поэтому реальные реквизиты и персональные данные туда не вводите.
@invoicebox/mcp-server@0.2.1 — у платёжного инструментаlatest означает, что набор инструментов может измениться между двумя запусками одного диалога. Что-то ведёт себя не так — напишите в поддержку.Правило до установки: отдельная сессия
Подключайте платёжный сервер в сессию, где нет серверов почты, задач и веб-поиска. Это не примечание, а часть процедуры: письмо постороннего человека в соседнем инструменте — потенциальная команда для ассистента, а здесь ассистент умеет выставлять счета. Подробнее — в безопасности.
Что понадобится
Node.js 20.11 или новее — это требование самого пакета (engines в манифесте): на старших версиях npx откажется его запускать.
| Переменная | Где взять |
|---|---|
INVOICEBOX_API_TOKEN | Личный кабинет; для проб — демо-токен из раздела авторизации |
INVOICEBOX_MERCHANT_ID | Идентификатор магазина, там же |
INVOICEBOX_ENV | demo или production |
INVOICEBOX_TOOLSETS | Необязательно. По умолчанию только чтение; write добавляет счёт, отмену и отгрузку, refund — возвраты. Чтение включено всегда |
Claude Code
# Демо-доступ публичный, поэтому его не страшно передать флагами claude mcp add invoicebox \ --env INVOICEBOX_API_TOKEN=b37c4c689295904ed21eee5d9a48d42e \ --env INVOICEBOX_MERCHANT_ID=ffffffff-ffff-ffff-ffff-ffffffffffff \ --env INVOICEBOX_ENV=demo \ -- npx -y @invoicebox/mcp-server@0.2.1
Claude Desktop
Откройте настройки, раздел «Разработчик», и добавьте сервер в claude_desktop_config.json:
{
"mcpServers": {
"invoicebox": {
"command": "npx",
"args": ["-y", "@invoicebox/mcp-server@0.2.1"],
"env": {
"INVOICEBOX_API_TOKEN": "b37c4c689295904ed21eee5d9a48d42e",
"INVOICEBOX_MERCHANT_ID": "ffffffff-ffff-ffff-ffff-ffffffffffff",
"INVOICEBOX_ENV": "demo"
}
}
}
}После сохранения перезапустите приложение — список инструментов подхватывается при старте.
Боевой токен
Флагами боевой токен передавать не стоит: оболочка разворачивает значение до запуска, и он попадает в аргументы процесса — виден любому, кто смотрит список процессов. Держите его в файле настроек клиента с правами только для владельца.
# ~/.claude/mcp.json — права 600, значение не проходит через командную строку
{
"mcpServers": {
"invoicebox": {
"command": "npx",
"args": ["-y", "@invoicebox/mcp-server@0.2.1"],
"env": {
"INVOICEBOX_API_TOKEN": "<боевой токен>",
"INVOICEBOX_MERCHANT_ID": "<идентификатор магазина>",
"INVOICEBOX_ENV": "production",
"INVOICEBOX_TOOLSETS": "read,write"
}
}
}
}Версия в команде указана намеренно: latest у платёжного инструмента означает, что завтра он может обновиться сам и повести себя иначе. Обновляйтесь осознанно, прочитав, что изменилось.
Cursor и VS Code
Формат тот же, файл — .cursor/mcp.json в проекте либо настройки MCP в VS Code. Токен лучше держать в переменных окружения, а не в файле проекта: конфигурация обычно попадает в репозиторий.
{
"mcpServers": {
"invoicebox": {
"command": "npx",
"args": ["-y", "@invoicebox/mcp-server@0.2.1"],
"env": {
"INVOICEBOX_API_TOKEN": "${env:INVOICEBOX_API_TOKEN}",
"INVOICEBOX_MERCHANT_ID": "${env:INVOICEBOX_MERCHANT_ID}",
"INVOICEBOX_ENV": "demo"
}
}
}
}Агенты на LangChain и LangGraph, GigaChat, GigaAgent
Клиента MCP в этих сборках даёт не модель, а фреймворк: пакет langchain-mcp-adapters умеет и stdio, и HTTP, поэтому наш сервер подключается тем же способом, что выше, — командой запуска или адресом. Модель при этом любая из доступных LangChain: GigaChat через langchain-gigachat, ChatGPT, Claude. Автономный GigaAgent от Сбера и AIRI подключает серверы MCP каталогом коннекторов.
Ассистентам без MCP-клиента — YandexGPT в Yandex Cloud Foundation Models, навыкам Алисы, локальным моделям вроде Qwen или Llama на своём сервере вывода — нужен слой функций: тот же каталог инструментов отдаётся списком функций.
Все настройки
Для запуска на своей машине хватает таблицы выше. Остальное нужно, когда сервер работает у вас службой: по HTTP, для нескольких клиентов, на тестовом стенде. Адреса по умолчанию — боевые адреса Инвойсбокс; для собственной установки — ваши адреса. Помеченное «следующий выпуск» появится в npm с ближайшей версией пакета.
| Переменная | Назначение |
|---|---|
INVOICEBOX_API_TOKEN | Токен интеграции. Вместо переменной — файл: его кладёт команда invoicebox-mcp-server login |
INVOICEBOX_TOKEN_FILE | Свой путь к файлу токена |
INVOICEBOX_ENV | demo или production; демо работает только с демонстрационным магазином |
INVOICEBOX_MERCHANT_ID, INVOICEBOX_COUNTERPARTY_ID | Магазин и организация — для операций магазина и организации |
INVOICEBOX_TOOLSETS | read по умолчанию, плюс write и refund. Следующий выпуск: shop — каталог интернет-магазина, только сеансу OAuth |
INVOICEBOX_STATE_DIR | Каталог журнала и защиты от дублей; без него защита живёт только в пределах запуска |
INVOICEBOX_RATE_LIMIT | Свой ограничитель частоты, запросы/секунды; по умолчанию 60/30 |
INVOICEBOX_LIMITS | Суточные потолки, JSON |
INVOICEBOX_CONFIRM_THRESHOLD | Порог суммы в копейках, выше которого операция подтверждается отдельно |
INVOICEBOX_LOG_LEVEL | error, warn, info или debug |
INVOICEBOX_GRAYLOG_URL, INVOICEBOX_SENTRY_DSN, INVOICEBOX_SENTRY_ENV | Внешние приёмники журнала — адреса ваших приёмников; по умолчанию выключены |
INVOICEBOX_HTTP_PORT | Задан — транспорт Streamable HTTP на этом порту, иначе stdio |
INVOICEBOX_HTTP_HOST | Адрес привязки HTTP; по умолчанию 127.0.0.1 |
INVOICEBOX_HTTP_ALLOWED_HOSTS, INVOICEBOX_HTTP_ALLOWED_ORIGINS | Белые списки Host и Origin; по умолчанию наружу закрыто |
INVOICEBOX_HTTP_SESSION_IDLE_MS, INVOICEBOX_HTTP_MAX_SESSIONS | Срок жизни сессии без запросов (30 минут) и потолок числа сессий (200) |
TRUSTED_PROXY_HOPS | Сколько прокси перед сервером доверять, определяя адрес клиента по X-Forwarded-For: от 0 до 9, по умолчанию 0 — адрес соединения. За одним ингрессом или балансировщиком — 1. Адрес идёт в журнал и привязывает сессию к клиенту. При 0 за прокси все клиенты видны с адресом прокси, а значение больше числа прокси позволяет клиенту подделать свой адрес заголовком |
INVOICEBOX_API_URL, INVOICEBOX_API_PREFIX | Адрес API и префикс методов. По умолчанию — боевой API Инвойсбокс и v3; l3 — для прежних интеграций. Для собственной установки — ваш адрес |
INVOICEBOX_OAUTH_CLIENT_ID, INVOICEBOX_OAUTH_CLIENT_SECRET | Учётные данные посредника: токен сеанса проверяется обменом на токен к API. Следующий выпуск: вместе с портом HTTP включают режим OAuth — токен сервера не нужен, магазин и права приходят с доступом каждого сеанса |
INVOICEBOX_PUBLIC_URL, INVOICEBOX_OAUTH_ISSUERS, INVOICEBOX_OAUTH_TOKEN_ENDPOINT, INVOICEBOX_OAUTH_API_RESOURCE | Публичный адрес сервера и адреса Инвойсбокс ID для проверки токена. По умолчанию — адреса Инвойсбокс; для собственной установки — ваши адреса |
REDIS_URL | Следующий выпуск. Redis для нескольких экземпляров: сеансы, ограничитель и защита от дублей общие. Адрес — redis://[[пользователь]:пароль@]хост:порт/номер-базы, rediss:// — TLS со сверкой сертификата. Задан вместе с DATABASE_URL — работает Redis. Без журнала на диске (AOF) Redis после перезапуска забывает сеансы и защиту от дублей: для инструментов записи нужен Redis с AOF или PostgreSQL |
DATABASE_URL | Следующий выпуск. PostgreSQL вместо Redis — для того же: сеансы, ограничитель и защита от дублей общие. Схему создаёт команда invoicebox-mcp-server migrate; базе вне вашей сети — sslmode=verify-full |
DEPLOY_ENV | Следующий выпуск. Среда выката: пусто, prod или production — боевая, действуют адреса по умолчанию. Любое другое значение — не боевая среда: сервер не стартует, пока адреса не заданы явно — INVOICEBOX_API_URL, а в режиме OAuth ещё INVOICEBOX_PUBLIC_URL, INVOICEBOX_OAUTH_ISSUERS, INVOICEBOX_OAUTH_TOKEN_ENDPOINT и INVOICEBOX_OAUTH_API_RESOURCE. Так тестовый стенд с забытым адресом не уходит в боевой API |
Проверка
- Спросите ассистента: «покажи неоплаченные счета». Ответ приходит — сервер подключён.
- Включите
INVOICEBOX_TOOLSETS=writeи попросите выставить счёт на демо-контуре. Ассистент покажет счёт целиком и дождётся подтверждения. - Убедитесь, что ссылка на оплату открывается, и переходите на боевой токен.
Если что-то не работает
- Сервер не стартует. Он проверяет токен при запуске и пишет причину в поток ошибок клиента — там будет видно, дело в токене или в идентификаторе магазина.
- Инструментов не видно. Клиент читает список при старте: перезапустите приложение после правки конфигурации.
- Счёт не выставляется. Скорее всего, включён режим чтения — добавьте
INVOICEBOX_TOOLSETS.
Что именно умеет сервер — в справочнике инструментов. Как он защищает деньги — на странице безопасности.