SuperAPI AI 工具集

ton-cli

部署与运维

查看项目

更新于 10-16 02:13

技能介绍

用途

ton-cli 是 TON 项目中一个允许用户直接从命令行调用 TON 钱包 MCP 工具的工具。它适合需要在终端或脚本中查询与操作 TON 钱包数据的场景。

调用模式

命令 说明
npx @ton/mcp@alpha stdio MCP 服务器(用于 Claude Desktop / MCP 客户端)
npx @ton/mcp@alpha --http [port] HTTP MCP 服务器
npx @ton/mcp@alpha <tool_name> [--arg value ...] 原生 CLI:调用一个工具后退出

在同一个工作流中只能使用一种模式:要么是 MCP 服务器模式(stdio/--http),要么是原生 CLI。不要在同一任务或会话中混用。

原生 CLI 用法

# 无参数
npx @ton/mcp@alpha get_balance

# 命名参数(--key value)
npx @ton/mcp@alpha get_transactions --limit 5
npx @ton/mcp@alpha get_jetton_balance --jettonAddress EQAbc...

所有值以纯字符串形式传入;也接受 JSON 对象或数组。参数以 --key value 成对传入。对象或数组({...} / [...])会被 JSON 解析,其余内容保持为纯字符串。

输出

所有工具将 JSON 打印到 stdout。错误打印到 stderr,进程以退出码 1 退出。

BALANCE=$(npx @ton/mcp@alpha get_balance)
echo $BALANCE | jq '.balance'

环境变量

CLI 遵循与服务器相同的环境变量:

变量 说明
NETWORK mainnet(默认)或 testnet
MNEMONIC 单钱包模式下的 24 词助记词
PRIVATE_KEY 十六进制编码的私钥(助记词的替代方案)
WALLET_VERSION v5r1(默认)、v4r2 或 agentic
TONCENTER_API_KEY 可选的 Toncenter API key
TON_CONFIG_PATH 配置文件路径(默认:~/.config/ton/config.json)

如果没有 MNEMONIC 或 PRIVATE_KEY,CLI 会使用位于 ~/.config/ton/config.json 的本地配置注册表(注册表模式)。在注册表模式下,钱包范围的工具可接受可选的 --walletSelector,按 id、名称或地址指定特定钱包。

工具参考

钱包与余额

工具 必需参数 可选参数
get_wallet — --walletSelector
get_balance — --walletSelector
get_balance_by_address --address --walletSelector
get_jetton_balance --jettonAddress --walletSelector
get_jettons — --walletSelector
get_jettons_by_address --address --limit, --offset, --walletSelector
get_jetton_info --jettonAddress --walletSelector
get_transactions — --limit, --walletSelector
get_transaction_status --normalizedHash --walletSelector
get_known_jettons — —

钱包注册表(仅配置注册表模式)

工具 必需参数 可选参数
list_wallets — —
get_current_wallet — —
set_active_wallet --walletSelector —
remove_wallet --walletSelector —

转账

工具 必需参数 可选参数
build_ton_transfer --toAddress, --amount --comment, --walletSelector
build_jetton_transfer --toAddress, --jettonAddress, --amount --comment, --walletSelector
build_nft_transfer --nftAddress, --toAddress --comment, --walletSelector
send_raw_transaction --messages --validUntil, --fromAddress, --walletSelector
emulate_transaction --messages --validUntil, --walletSelector

build_ton_transfer、build_jetton_transfer、build_nft_transfer 只构建交易(返回 transaction.messages 以及 transaction.fromAddress),不会广播。需先用 emulate_transaction 预览,再用 send_raw_transaction --messages ... --fromAddress ... 广播。

兑换

工具 必需参数 可选参数
get_swap_quote --fromToken, --toToken, --amount --slippageBps, --walletSelector

NFT

工具 必需参数 可选参数
get_nfts — --limit, --offset, --walletSelector
get_nfts_by_address --address --limit, --offset, --walletSelector
get_nft --nftAddress --walletSelector

DNS

工具 必需参数 可选参数
resolve_dns --domain --walletSelector
back_resolve_dns --address --walletSelector

认证

工具 必需参数 可选参数
generate_ton_proof --domain, --payload --walletSelector

示例会话

# 检查钱包地址与网络
npx @ton/mcp@alpha get_wallet

# 检查 GRAM(例如 TON)余额
npx @ton/mcp@alpha get_balance

# 列出所有代币
npx @ton/mcp@alpha get_jettons

# 最近 10 笔交易
npx @ton/mcp@alpha get_transactions --limit 10

# 获取特定 jetton 的余额
npx @ton/mcp@alpha get_jetton_balance --jettonAddress EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs

# 解析 .ton 域名
npx @ton/mcp@alpha resolve_dns --domain foundation.ton

# 注册表模式下:查询命名钱包的余额
npx @ton/mcp@alpha get_balance --walletSelector "my-hot-wallet"

# 注册表模式下:列出所有已注册钱包
npx @ton/mcp@alpha list_wallets

# 发送 GRAM(例如 TON)——构建、预览,然后广播(广播前需与用户确认)
npx @ton/mcp@alpha build_ton_transfer --toAddress UQA... --amount 0.5 --comment "payment"
npx @ton/mcp@alpha emulate_transaction --messages '<transaction.messages>'        # 推荐预览
npx @ton/mcp@alpha send_raw_transaction --messages '<transaction.messages>' --fromAddress '<transaction.fromAddress>'

# 兑换报价
npx @ton/mcp@alpha get_swap_quote --fromToken TON --toToken EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs --amount 1

# 为服务挑战生成 TonProof
npx @ton/mcp@alpha generate_ton_proof --domain getgems.io --payload getgems-llm

注意事项

  • build_ton_transfer、build_jetton_transfer、build_nft_transfer 只构建交易;send_raw_transaction 才是签名并广播已准备好 transaction.messages 的工具(还需传入 transaction.fromAddress——jetton/NFT 消息绑定在其被构建时对应的钱包上)。
  • 在广播前使用 emulate_transaction 预览预期余额变化(伪签名)。
  • 仅在用户或验证服务提供了准确 domain 与 payload 时使用 generate_ton_proof;签名前不要改动 payload。
  • generate_ton_proof 需要签名权限,尽管它不广播交易。
  • build_ton_transfer、build_jetton_transfer、build_nft_transfer 与 emulate_transaction 不签名也不广播,可自由运行。仅在 send_raw_transaction(广播)之前,于使用 emulate_transaction 预览后与用户确认。
  • 对于确认和小型选项集,优先使用宿主客户端提供的结构化确认或选择 UI(如果可用);否则使用简短的自然语言是/否提示,绝不要要求精确的魔法词。
  • 发送后,轮询 get_transaction_status --normalizedHash <hash>,直到状态为 completed 或 failed(除非用户要求跳过)。
  • 注册表模式下,默认使用来自 ~/.config/ton/config.json 的活跃钱包。