Все статьи
6 мин чтения

TONNode против официального @ton/mcp: честное сравнение

TON MCP сравнение: чем @ton/mcp отличается от TONNode. Кастодиальный агент-кошелёк против некастодиального MCP с кроссчейном. Таблица и выбор.

TON MCP@ton/mcpнекастодиальный MCPкроссчейн TONИИ-агенты TONсравнение MCP

@ton/mcp против TONNode: честное сравнение — и первый вопрос, кто держит ключи?

Это сравнение двух MCP для TON начинается не с списка фич, а с одного вопроса безопасности. Представьте: вы дали Claude или Cursor доступ к TON. Агент читает балансы, собирает свапы, дёргает get-методы. Всё работает — до момента, когда нужно подписать транзакцию. И вот в 3 часа ночи агент по кривому промпту (или по подсунутой из веба инструкции) решает «оптимизировать портфель» и подписывает транзакцию сам. Средства ушли. Вы узнаёте об этом утром.

Это не страшилка, а прямое следствие одного архитектурного выбора: агент подписывает сам своим ключом или подпись всегда остаётся за кошельком пользователя? Именно в этой точке расходятся два зрелых MCP для TON — официальный @ton/mcp от TON Foundation и TONNode. Оба дают агенту руки в блокчейне. Разберём честно, без принижения ни одного из них — под разные задачи оба подхода имеют право на жизнь.

Зачем сравнивать: два разных подхода к MCP для TON

MCP (Model Context Protocol) — это стандарт, по которому ИИ-агенты (Claude, Cursor, ChatGPT/Codex, любой MCP-клиент) вызывают инструменты. Для TON это значит: агент получает набор функций вроде get_balance или build_swap_tx и вызывает их сам по ходу диалога, когда сочтёт нужным.

Разница между @ton/mcp и TONNode не в списке команд, а в философии. Аналогия: @ton/mcp — это как выдать помощнику корпоративную карту с лимитом: он платит сам, быстро, автономно, но карта у него в руках. TONNode — это помощник, который готовит платёжку и кладёт вам на подпись: без вашего кошелька ничего не уйдёт. Обе модели рабочие. Вопрос — под какую задачу.

Если вам ближе теория вопроса — есть отдельный разбор кастодиального против некастодиального MCP. Здесь сравним конкретику.

Официальный @ton/mcp: кастодиальный агент-кошелёк с NFT и DNS

@ton/mcp — официальный пакет TON Foundation, и это его сильная сторона: поддержка от команды сети, предсказуемое развитие, статус эталона.

По архитектуре это кастодиальный агент-кошелёк со split-key моделью:

  • operator-ключ — у агента. Им агент подписывает транзакции сам, без вашего участия.
  • owner-ключ — у пользователя, как второй контур контроля над кошельком.

Что умеет из коробки:

  • чтение состояния сети, аккаунтов, балансов;
  • отправка GRAM, жетонов и NFT (агент подписывает сам);
  • свап через DEX-агрегатор;
  • создание и импорт агент-кошельков;
  • чтение NFT и DNS — того, чего у TONNode пока нет, и это честное преимущество официального пакета.

Запускается локально, по HTTP или serverless. Ограничение по дизайну: только TON, кроссчейна нет.

Главное здесь — автономность. Агент тратит сам, без человека в цикле подписи. Для сценариев «пусть агент сам платит за подписку/газ/микрозадачи» это ровно то, что нужно. Но та же автономность означает: рабочий ключ, которым распоряжаются средствами, находится на стороне агента — а значит, промпт-инъекция или галлюцинация модели способны привести к реальной трате.

TONNode: некастодиальный MCP, кроссчейн и hosted-опция

TONNode — это hosted MCP-сервер для TON (сайт tonnode.io) с ровно 16 инструментами. Ключевой инвариант в одном предложении:

Сервер никогда не подписывает и не хранит средства и приватные ключи. Инструменты свапа, кроссчейна и кошелька возвращают неподписанные TonConnect-сообщения. Подписывает их кошелёк пользователя.

Нет момента, в который сервер мог бы увести средства, потому что у него физически нет ключа. Разберём по группам.

Чтение (7+1)

Закрывает повседневное:

get_masterchain_info — голова мастерчейна
get_balance          — баланс GRAM
get_account_state    — статус, флаги, последняя транзакция
get_transactions     — история транзакций
run_get_method       — любой read-only get-метод контракта
get_jetton_balance   — баланс жетона/USDT (кошелёк жетона считается он-чейн)
get_jetton_info      — метаданные жетона: имя, символ, decimals, эмиссия
parse_address        — конвертация EQ/UQ/raw, офлайн

get_jetton_info отдаёт decimals — они нужны для пересчёта raw-единиц: у USDT их 6, у большинства жетонов 9.

Своп (2)

Идёт через протокол Omniston — агрегированную ликвидность STON.fi и DeDust:

  • get_swap_quote — твёрдая котировка GRAM⇄жетон;
  • build_swap_tx — неподписанная транзакция, готовая под TonConnect.

Кроссчейн (5)

То, чего у официального пакета нет вовсе. Атомарный HTLC-эскроу, где TON всегда источник:

  • get_crosschain_quote — котировка;
  • build_crosschain_swap_tx — неподписанная HTLC-эскроу транзакция + секрет;
  • track_crosschain_swap — фазы сделки на обеих сетях;
  • disclose_crosschain_secret — раскрыть секрет для расчёта, после проверки готовности он-чейн;
  • build_crosschain_refund — вернуть средства из эскроу, если сделка зависла.

Поддержаны сети: Ethereum, Arbitrum, Base, BNB Chain, Polygon, Avalanche. TRON пока не поддерживается. Как устроена такая сделка, показано в материале про первый кроссчейн для агента на TON.

Кошелёк (1): generate_wallet создаёт кошелёк версий v3r2/v4/v5r1/highload_v3 и отдаёт мнемонику, ключи и адрес пользователю — сервер их не хранит.

Чего у TONNode пока нет: инструментов NFT и DNS — они в роадмапе. Если задача сегодня — читать NFT-коллекции или резолвить .ton-домены, это зона официального пакета. Обратите внимание: прямого инструмента «отправить/перевести» GRAM или жетон у TONNode тоже нет. Все билдеры неподписанных транзакций — это build_swap_tx, build_crosschain_swap_tx и build_crosschain_refund, то есть перевод средств возможен только в рамках свапа, кроссчейна или возврата из эскроу. Произвольного «send» здесь нет по дизайну.

Таблица сравнения: @ton/mcp против TONNode

Критерий Официальный @ton/mcp TONNode
Кто подписывает Агент сам (operator-ключ, split-key) Кошелёк пользователя (сервер не подписывает)
Модель Кастодиальная Строго некастодиальная
Автономная трата Да Нет (по дизайну)
Прямая отправка GRAM/жетонов Да, автономно Отдельного инструмента нет; перевод — только внутри свапа/кроссчейна как неподписанная tx
Свап DEX-агрегатор Omniston (STON.fi + DeDust)
Кроссчейн Нет (только TON) Да, HTLC-эскроу на 6 сетей
NFT / DNS Есть (чтение) В роадмапе
Генерация кошелька Создание/импорт агент-кошельков v3r2/v4/v5r1/highload_v3, ключи у пользователя
Запуск Локально / HTTP / serverless Локально (npx) + hosted-эндпоинт
Статус Официальный, TON Foundation Независимый, open source (MIT)

Ключевая развилка: кто держит ключи агента

Всё остальное — детали. Настоящий выбор в одном вопросе: готовы ли вы, чтобы агент подписывал транзакции сам?

У @ton/mcp operator-ключ у агента — значит агент может потратить средства по промпту, без второго фактора в виде подписи человеком. Это мощно для автономии и рискованно при промпт-инъекции или галлюцинации: скомпрометированный контекст = потенциально потраченные средства.

У TONNode подпись физически не может произойти на сервере. Даже если агент «сойдёт с ума» и вызовет build_swap_tx с абсурдными параметрами, максимум, что он получит, — неподписанный объект транзакции. Пока пользовательский кошелёк её не подтвердит, ничего не двинется. Это архитектурная гарантия, а не политика.

Ни один подход не «лучше» вообще — они про разный уровень доверия к автономности агента.

Когда выбирать официальный @ton/mcp, а когда TONNode

Берите @ton/mcp, если:

  • нужна автономная трата — агент сам платит и подписывает, без человека в цикле;
  • работаете строго внутри TON, кроссчейн не нужен;
  • нужны NFT и DNS уже сегодня;
  • важен официальный статус пакета Foundation.

Берите TONNode, если:

  • деньгами должен распоряжаться только кошелёк пользователя, не агент — паттерн разобран в материале про некастодиальный своп для агентов на TON;
  • нужен кроссчейн TON⇄EVM (Ethereum, Arbitrum, Base, BNB Chain, Polygon, Avalanche);
  • нужен свап через агрегированную ликвидность Omniston;
  • нужен hosted-эндпоинт с гарантированной пропускной способностью, а не только локальный запуск.

Это не «лучше/хуже», а разные инструменты. Подходы не взаимоисключающие: многие команды держат оба сервера в конфиге — официальный для NFT/DNS и автономных задач, TONNode для некастодиального свапа и кроссчейна.

Как подключить каждый из них

Общее введение в MCP для TON, если вы здесь впервые, — гайд по MCP для TON.

TONNode локально — бесплатно, полный набор чтения

Пакет @tonnode/mcp — open source (MIT, на npm и GitHub tonnode/mcp), работает по нативному ADNL-протоколу TON без HTTP-прослоек:

{
  "mcpServers": {
    "ton": {
      "command": "npx",
      "args": ["-y", "@tonnode/mcp"]
    }
  }
}

TONNode hosted — свой ключ, гарантированная пропускная способность

{
  "mcpServers": {
    "ton": {
      "type": "http",
      "url": "https://mcp.tonnode.io/mcp",
      "headers": { "Authorization": "Bearer tn_live_…" }
    }
  }
}

После подключения агенту можно давать обычные текстовые задачи — он сам подберёт инструмент:

Проверь мой баланс USDT на кошельке EQ… через get_jetton_balance.
Затем возьми get_swap_quote на обмен 50 USDT в GRAM
и собери транзакцию через build_swap_tx.
Транзакцию не отправляй — верни мне для подписи в кошельке.

Агент вызовет get_jetton_balanceget_swap_quotebuild_swap_tx и отдаст неподписанное TonConnect-сообщение. Деньги двинутся только после подтверждения в кошельке.

Кроссчейн-задача выглядит так же естественно:

Собери обмен 100 GRAM из TON в USDC на Base.
Дай get_crosschain_quote, потом build_crosschain_swap_tx.
Секрет сохрани, статус отслеживай через track_crosschain_swap.

На всех тарифах доступны все 16 инструментов — платите только за пропускную способность: Hobby — бесплатно навсегда, 60 запросов/мин; Pro — $29/мес, 300 запросов/мин; Scale — $199/мес, 1200 запросов/мин. Ключ Hobby выдаётся сразу после входа, без карты.

Официальный @ton/mcp

@ton/mcp ставится по инструкции TON Foundation и запускается локально, по HTTP или serverless. При первичной настройке агенту создаётся или импортируется агент-кошелёк с operator-ключом. Учитывайте кастодиальную модель: заранее продумайте лимиты и то, к каким средствам агент получит доступ.

Итог

@ton/mcp — официальный кастодиальный агент-кошелёк: split-key, автономная трата, NFT и DNS, только TON. TONNode — некастодиальный сервер из 16 инструментов: сервер никогда не подписывает, добавляет кроссчейн на 6 сетей и hosted-опцию. Разница честная и архитектурная — про то, кому вы доверяете право подписи. Кто подписывает — тот и решает риск-профиль.

Детальное сравнение по каждому инструменту — на странице TONNode против официального MCP. Попробовать некастодиальный подход прямо сейчас, на бесплатном ключе Hobby без карты, можно здесь: tonnode.io/dashboard?plan=hobby.

Дайте вашему агенту доступ к TON

16 MCP-инструментов: чтение, некастодиальные свапы, кроссчейн и кошельки. Бесплатный тариф — 60 запр/мин, карта не нужна.