TONNode против официального @ton/mcp: честное сравнение
TON MCP сравнение: чем @ton/mcp отличается от TONNode. Кастодиальный агент-кошелёк против некастодиального 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_balance → get_swap_quote → build_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 запр/мин, карта не нужна.