TON MCP 免费接入指南:两种方式把 AI 智能体连上 TON
免费 TON MCP:用 npx 免密钥把 AI 智能体接入 TON,或领取免费 Hobby 套餐(60 请求/分钟,无需绑卡)。附完整配置,一步步照做即可。
你让 Claude 或 Cursor“查一下这个 TON 钱包的余额,顺便看看最近几笔交易”——智能体确实会老老实实去试。它去调全局配置里的公共 lite server,收到 not ready,重试,然后撞上 ADNL 超时。或者它不带密钥直接请求 toncenter,卡在大约每秒一个请求的限额上,拿到 HTTP 429 Too Many Requests。智能体自己是“读”不了 TON 的——它需要工具。走到这一步,大多数开发者的第一反应是:得自己跑节点、折腾配置、掏钱买接口了。其实不用:把智能体接入 TON 可以完全免费,还能绕开这些坑——有两条路可选,而且都不需要绑卡。
想让智能体真正能在 TON 上动手,最快的方式就是 MCP。Model Context Protocol 是一套标准,AI 智能体(Claude、Cursor、ChatGPT/Codex 以及任何 MCP 客户端)通过它调用外部工具。你不必教智能体去调原始 JSON-RPC、解析 cell,而是直接给它一组现成的工具,比如 get_balance 或 get_jetton_balance——什么时候调用,由它自己决定。TONNode 是一个面向 TON 的 hosted MCP 服务器(官网 tonnode.io),通过它免费接入 TON MCP 有两条路径,两条都不需要银行卡。下面逐一拆解。
免费 TON MCP:两条路——本地 npx 与 Hobby 密钥
要免费把智能体接入 TON,你有两个选择:
- 通过
npx本地运行,走公共配置——完全不需要密钥,也不用注册。包会下载到你自己的机器上运行。 - 免费 Hobby 密钥——登录官网即刻发放,无需绑卡,通过 hosted 端点每分钟 60 个请求。
两者的差别不在工具集,而在于进程跑在哪里、吞吐量从哪来。先从最简单的开始。
方式一:npx 本地运行,走公共配置(无需密钥)
说白了,就是往你 MCP 客户端的配置里加一段。不用提前安装任何东西——npx 会自己把包拉下来。
{
"mcpServers": {
"ton": {
"command": "npx",
"args": ["-y", "@tonnode/mcp"]
}
}
}
就这么多。客户端启动时会拉起本地的 @tonnode/mcp 进程,通过 TON 原生协议连上网络,并把完整的读取工具集交给智能体。不需要密钥,不需要银行卡,不需要账号。
有个底层细节值得一提:@tonnode/mcp 这个包是开源的(MIT),同时发布在 npm 和 GitHub(tonnode/mcp)上,走的是 TON 原生 ADNL 协议——你的智能体和网络之间没有任何 HTTP 中间层。也就是说,它不是套在别人家 REST API 外面的一层壳(那种迟早会撞上别人的 rate limit),而是直连网络的客户端。
这段配置放哪儿
- Claude Desktop / Claude Code —— 放进 MCP 配置文件的
mcpServers里。 - Cursor —— 放进项目或全局的 MCP 服务器设置。
- ChatGPT/Codex 及其他 MCP 客户端 —— 放进各自的 MCP 接入设置。
每个客户端的图文详解见单独的教程:如何把 Claude 和 Cursor 接入 TON。
免费能用什么:完整的 TON 读取工具集
本地免费模式不是阉割版 demo。你拿到的是完整的读取工具集——八个工具,足以覆盖绝大多数智能体任务:
get_masterchain_info—— 主链“链头”:网络的当前状态,智能体靠它判断链“现在走到哪了”。get_balance—— 钱包的 GRAM 余额(GRAM 是 2026 年 6 月改名后的 Toncoin;网络本身仍叫 TON)。get_account_state—— 账户状态、标志位、最近一笔交易。用来判断合约是否已部署、钱包是否活跃很方便。get_transactions—— 按地址查交易历史。run_get_method—— 调用任意合约的任意只读 get 方法。这是你面向智能合约的“万能读取器”。get_jetton_balance—— jetton 余额,包括 USDT;jetton 钱包地址在链上实时计算,你不需要提前知道。get_jetton_info—— jetton 元数据:名称、符号、发行量,以及对换算至关重要的decimals。USDT 的 decimals 是 6,大多数 jetton 是 9——没有这个数字,你没法把原始单位换算成人能看懂的金额。parse_address—— 地址转换与校验(EQ/UQ/raw),完全离线,不访问网络。
来个实战例子。“一次调用查出 USDT 余额”这个经典任务,用 get_jetton_info(查 decimals)+ get_jetton_balance 的组合就能解决。你只需要给智能体一句自然语言提示:
查一下地址 UQAbc...xyz 的 USDT 余额,
并按正确的小数位数显示。
智能体会自己调用 get_jetton_info,看到 decimals: 6,接着调用 get_jetton_balance,最后给出正确的金额——你一行代码都不用写。详细拆解见 TON MCP 指南,还有一个单独的示例:如何一次调用查出 TON 上的 USDT 余额。
方式二:免费 Hobby 密钥——每分钟 60 请求,无需绑卡
本地 npx 适合开发和一次性任务,但它有天花板:它走的是 TON 全局配置里的公共 lite server。这些服务器共享且限流,高负载下经常返回 not ready 或 ADNL 超时,也不保留多少历史数据。对一个要服务真实用户的生产环境智能体来说,这等于是在碰运气。
这时第二条免费路径就派上用场了——Hobby 套餐。它永久免费,提供每分钟 60 个请求,密钥登录后立即发放,无需绑卡。它和本地模式的区别在于:请求不再从你的机器经公共共享基础设施发出,而是带着你的专属密钥走 TONNode 的 hosted 端点——也就是说,你有一个可预期的、绑定在你自己身上的 60 请求/分钟限额。
hosted 接入的配置长这样:
{
"mcpServers": {
"ton": {
"type": "http",
"url": "https://mcp.tonnode.io/mcp",
"headers": {
"Authorization": "Bearer tn_live_…"
}
}
}
}
和本地配置只有两处不同:用 type: "http" 代替拉起本地进程,以及带上你 tn_live_… 密钥的 Authorization 头。智能体对这个切换毫无感知——同样的工具、同样的名字、同样的参数。
重要的一点:在 Hobby 上,和所有其他套餐一样,TONNode 的全部 16 个工具都可用——不止读取,还有兑换、跨链、钱包生成。正是在 hosted 密钥上,八个读取工具之外还多出了 generate_wallet——创建新的 TON 钱包,支持 v3r2、v4、v5r1 或 highload_v3 版本:工具把助记词、密钥和地址直接返回给你,服务器不保存生成的钱包。套餐限制的从来不是功能,而是吞吐量。只有当你真的需要更高吞吐量时,才需要为它付费。
领取 Hobby 密钥(无需绑卡):tonnode.io/dashboard?plan=hobby。
本地还是 hosted:免费够用到哪一步,什么时候需要买吞吐量
一句话:只要还停留在开发、原型和低频调用阶段,免费几乎永远够用。两种模式的差别不在工具集,而在吞吐量。
| 模式 | 密钥 / 银行卡 | 吞吐量 | 适用场景 |
|---|---|---|---|
本地 npx |
都不需要 | 公共 lite server(共享、限流) | 开发、一次性任务 |
| Hobby(hosted) | 密钥,无需绑卡 | 你的密钥专属 60 请求/分钟 | 个人项目、轻量生产 |
| Pro / Scale(hosted) | 密钥 + 付费 | 300 / 1200 请求/分钟 | 高负载生产 |
关键事实:所有套餐都能用全部 16 个工具——包括兑换和跨链。你付费买的只是吞吐量,而不是给功能“解锁”。Pro 每月 $29,300 请求/分钟;Scale 每月 $199,1200 请求/分钟。什么时候才需要付费吞吐量?当每分钟 60 个请求不够用,或者你需要在真实负载下、在 hosted 端点 mcp.tonnode.io 上拥有可预期的专属限额时。完整对比见价格页和工具介绍页。
一步步来:接入智能体并完成第一次调用
我们以本地运行为例把整个流程串一遍(Hobby 只有配置块不同)。
第 1 步:把服务器加进 MCP 客户端配置。 把上面那段 npx -y @tonnode/mcp 的配置块粘贴进你客户端的配置里(Claude、Cursor、Codex——路径因客户端而异)。
第 2 步:重启客户端。 它会拉起 @tonnode/mcp 进程并识别出工具。大多数客户端会在界面里显示已连接的工具列表——确认 ton 出现了。
第 3 步:用普通文字给智能体布置任务。 比如:
获取 TON 主链当前的链头,顺便查一下
地址 UQAbc...xyz 的 GRAM 余额。
智能体会自己先调 get_masterchain_info,再调 get_balance,然后用人话把结果讲给你。
第 4 步:复杂一点的任务同样一句提示搞定。 比如:
钱包 UQAbc...xyz 上有多少 USDT?返回按 decimals 换算后的金额。
这里智能体会先调 get_jetton_info 查出 USDT 的 decimals(=6),再调 get_jetton_balance 拿到原始余额,然后换算成人能看懂的金额。jetton 钱包地址它会自己在链上算出来——不用你提供。
第 5 步:当你撞上公共 lite server 的限制(看到 not ready 或超时)——把配置块换成带 Hobby 密钥的 hosted 配置即可。变的只有配置,提示词和智能体逻辑原封不动。
非托管:为什么免费访问也是安全的
一个很自然的疑问:服务器免费,还负责生成钱包、构建交易——我的私钥会不会有风险?不会,这是架构上的原则性立场。TONNode 严格非托管。
服务器从不签名交易,也从不保管资金和私钥。读取类工具只是读取公开的链上状态。而会改变状态的工具——兑换和跨链——不会以你的名义发送任何东西:它们返回的是未签名的 TonConnect 消息。签名由用户的钱包在本地、用自己的密钥完成。generate_wallet(hosted 密钥可用)也是一样:生成的钱包和助记词直接交给你,服务器不留存。
换句话说,免费访问并不比付费更有风险:物理上只有钱包的主人才能给交易签名——服务器手里没有任何密钥,想签也签不了。这是与托管模式的本质区别:托管模式下服务器持有 operator 密钥,自己签名。两种方案及各自风险的拆解见另一篇文章:托管与非托管 MCP。
总结
要让 AI 智能体真正能在 TON 上动手,既不用自己跑节点,也不需要银行卡。本地 npx -y @tonnode/mcp 现在就能给你完整的读取工具集,不需要密钥——拿来上手体验再合适不过。免费的 Hobby 套餐则通过 hosted 端点给你专属的、可预期的 60 请求/分钟,同样无需绑卡,在公共 lite server 开始不够用时正好接上。两种模式都是非托管的,用的是同一套工具,任何时候你都可以升级到付费吞吐量,智能体的逻辑一行都不用改。
领取免费 Hobby 密钥(无需绑卡):tonnode.io/dashboard?plan=hobby