关于 GoTRON MCP
GoTRON MCP 是面向 AI Agent 和 MCP 客户端的 TRON 区块链服务,基于 GoTRON SDK 构建。它提供链上查询和未签名交易构建,并支持本地模式与托管模式;本地签名可选。
主要功能
- 01查询 TRX 和 TRC20 余额
- 02查看区块、交易与合约
- 03估算转账费用和能量
- 04构建未签名转账与质押交易
- 05可选的本地密钥库签名
适用场景
- 01检查账户余额和网络资源
- 02查看合约数据并估算调用能量
- 03准备 TRX 或 TRC20 转账以供签名
- 04查看治理提案和超级代表信息
MCP 相关
向 MCP 客户端提供 TRON 账户、代币、链、合约和治理工具。本地模式使用 stdio,并可选启用密钥库签名;托管 HTTP 模式会禁用写入和签名工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.gotron.sh/mcpclaude mcp add --transport http gotron https://mcp.gotron.sh/mcp{"mcpServers":{"gotron":{"type":"http","url":"https://mcp.gotron.sh/mcp"}}}在 Cursor 中打开{"servers":{"gotron":{"type":"http","url":"https://mcp.gotron.sh/mcp"}}}在 VS Code 中打开{"mcpServers":{"gotron":{"type":"http","url":"https://mcp.gotron.sh/mcp"}}}{"mcpServers":{"gotron":{"serverUrl":"https://mcp.gotron.sh/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
ghcr.io/fbsobreira/gotron-mcp:0.4.2stdio工具
44| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| address | string | 是 | TRON Base58 地址(以 T 开头) |
详细介绍
GoTRON MCP 服务
用于 TRON 区块链的 MCP 服务——让 AI Agent 查询余额、代币和区块,并构建交易。
基于 GoTRON SDK 和 Model Context Protocol 构建。
两种模式
| 本地模式 | 托管模式 | |
|---|---|---|
| 传输方式 | stdio | Streamable HTTP |
| 读取工具 | 全部 | 全部 |
| 交易构建器 | 全部(未签名交易十六进制数据) | 全部(未签名交易十六进制数据) |
| 签名/广播 | 可通过密钥库口令启用 | 已禁用 |
| 安装 | 需要 | 无需安装 |
安装
Go 安装
go install github.com/fbsobreira/gotron-mcp/cmd/gotron-mcp@latest
Homebrew
brew install fbsobreira/tap/gotron-mcp
curl
curl -fsSL gotron.sh/install-mcp | sh
Docker
docker run -p 8080:8080 ghcr.io/fbsobreira/gotron-mcp
该镜像会启动 HTTP 传输。若要使用 stdio,请追加 --transport stdio:
docker run -i --rm ghcr.io/fbsobreira/gotron-mcp --transport stdio
MCP Registry
每次发布稳定版本标签(vX.Y.Z)时,都会从 v0.4.1 开始将其发布到 MCP Registry,名称为 io.github.fbsobreira/gotron-mcp,并提供 Docker 镜像(stdio)和托管端点。
托管模式(无需安装)
直接连接到 https://mcp.gotron.sh/mcp——无需安装。
Claude Code 插件
gotron 插件将托管服务与 USDT 转账和能量估算技能打包在一起。 gotron-local 插件会在本地运行 gotron-mcp 二进制文件,并支持密钥库签名。
目前尚不支持通过公共市场安装。若要立即连接,请使用下方的 Claude Code MCP 配置。插件源代码和配置详情请参见上方链接的目录。
Claude Desktop 配置
本地模式
{
"mcpServers": {
"gotron": {
"command": "gotron-mcp",
"args": ["--network", "mainnet"],
"env": {
"GOTRON_NODE_API_KEY": "your-trongrid-api-key"
}
}
}
}
使用密钥库签名的本地模式
{
"mcpServers": {
"gotron": {
"command": "gotron-mcp",
"args": ["--network", "mainnet"],
"env": {
"GOTRON_NODE_API_KEY": "your-trongrid-api-key",
"GOTRON_MCP_KEYSTORE_PASSPHRASE": "your-keystore-passphrase"
}
}
}
}
托管模式(无需安装)
{
"mcpServers": {
"gotron": {
"url": "https://mcp.gotron.sh/mcp"
}
}
}
Claude Code
选择以下设置选项之一。
项目范围的本地服务:
claude mcp add gotron --scope project -- gotron-mcp --network mainnet
使用密钥库签名的用户范围本地服务:
如果已存在项目范围的 gotron 条目,请先使用 claude mcp remove gotron --scope project 将其移除。对于本地范围的条目,请使用 claude mcp remove gotron --scope local。使用 claude mcp get gotron 检查所选条目:本地和项目条目的优先级高于用户条目,且它们的设置不会合并。请参阅 Claude Code 的范围优先级。
保存环境变量引用,而不是口令本身。保留单引号,以免 shell 在注册服务时展开该引用:
claude mcp add gotron --scope user -e 'GOTRON_MCP_KEYSTORE_PASSPHRASE=${GOTRON_MCP_KEYSTORE_PASSPHRASE:-}' -- gotron-mcp --network mainnet
然后在 Bash 或 Zsh 中启动 Claude,并通过隐藏的口令提示输入口令:
(
set +x
printf 'Keystore passphrase: '
IFS= read -r -s GOTRON_MCP_KEYSTORE_PASSPHRASE || exit 1
printf '\n'
export GOTRON_MCP_KEYSTORE_PASSPHRASE
claude
)
子 shell 会将导出的值限制在该 Claude 会话中。提示可避免口令出现在 shell 历史记录和命令行参数中;但它仍可在 Claude 及其 MCP 服务的环境中使用。每次启动新的签名会话时,都要重新输入口令。如果未提供口令,该引用会展开为空值,钱包/签名工具也会保持禁用状态。
如果之前使用 -e 注册了明文口令,它会以纯文本形式存储在 ~/.claude.json 中,也可能仍留在 shell 历史记录中。使用 claude mcp remove gotron --scope user 移除旧的用户范围条目,然后使用上面的引用重新注册,并删除旧的历史记录条目。请参阅 Claude Code 的环境变量展开文档。
未配置密钥库的用户范围本地服务:
claude mcp add gotron --scope user -- gotron-mcp --network mainnet
托管服务(零安装):
claude mcp add gotron --scope user --transport http https://mcp.gotron.sh/mcp
可用工具
只读(两种模式均可用)
| 工具 | 描述 |
|---|---|
get_account | 获取账户余额、带宽、能量及详细信息 |
get_account_resources | 获取能量/带宽使用量和限额 |
get_trc20_balance | 获取账户的 TRC20 代币余额 |
get_trc20_token_info | 获取 TRC20 代币名称、符号和小数位数 |
analyze_transfer_cost | 估算 TRX 或 TRC20 转账成本,包括向新 TRX 接收方转账时的账户激活费用 |
get_block | 按区块编号获取区块,或获取最新区块 |
get_transaction | 按 ID 获取交易详情 |
list_witnesses | 列出所有超级代表 |
get_contract_abi | 获取智能合约 ABI |
estimate_energy | 估算合约调用的能量成本 |
trigger_constant_contract | 调用只读(view/pure)智能合约方法 |
decode_abi_output | 解码合约调用的 ABI 编码输出或还原原因 |
list_contract_methods | 获取合约方法的易读摘要 |
get_chain_parameters | 获取网络参数 |
validate_address | 验证 TRON 地址 |
get_energy_prices | 获取能量价格历史记录 |
get_bandwidth_prices | 获取带宽价格历史记录 |
list_proposals | 列出治理提案 |
get_network | 获取当前网络连接信息 |
get_pq_capabilities | 报告节点和构建版本对后量子(TIP-899)签名的支持情况 |
交易构建器(两种模式均可用)
| 工具 | 描述 |
|---|---|
transfer_trx | 构建未签名的 TRX 转账 |
transfer_trc20 | 构建未签名的 TRC20 代币转账 |
freeze_balance | 构建未签名的 TRX 质押交易,以获取能量/带宽(Stake 2.0) |
unfreeze_balance | 构建未签名的 TRX 取消质押交易(Stake 2.0) |
vote_witness | 构建未签名的超级代表投票交易 |
trigger_contract | 构建未签名的智能合约调用 |
签名与广播(本地模式 + 密钥库)
| 工具 | 描述 |
|---|---|
sign_transaction | 使用本地密钥库签名交易 |
broadcast_transaction | 将已签名交易广播到网络 |
后量子签名(TIP-899,Nile)
create_wallet(name, key_type?) 接受 ecdsa(默认值)、ml_dsa_44 或 fn_dsa_512;list_wallets 和签名结果会报告 key_type。sign_transaction、sign_and_broadcast、sign_and_confirm 和 request_limit_override 支持使用 PQ 钱包,并遵循与 ECDSA 钱包相同的策略限制、Telegram 审批和征询流程。
- TIP-899 仍是草案,目前仅在 Nile 上启用(
grpc.nile.trongrid.io:50051);治理机制可切换各方案的启用状态,主网则报告均未启用。使用get_pq_capabilities检查节点和此构建版本是否支持。 - 在进行任何策略检查或审批之前,PQ 签名都要求节点已启用相应方案,并且钱包地址是所有者账户上该交易权限(
permission_id)的密钥。新的 PQ 地址必须先收到 TRX。 - PQ 密钥会使用
GOTRON_MCP_KEYSTORE_PASSPHRASE加密存储在<keystore-dir>/pq-keys/<name>/下(兼容 wallet-cli,目录布局与 tronctl 相同)。将--keystore-dir指向 tronctl 配置根目录(例如~/.tronctl)即可复用其密钥;口令必须与其密码一致。ECDSA 和 PQ 钱包的名称必须唯一;list_wallets会将此类钱包标记为duplicate_name: true,在重命名其中一个副本之前,此类钱包无法签名。 - 签名会写入
pq_auth_sig(txid 不变);一笔交易最多携带 5 个签名,ECDSA 和 PQ 签名合计计算。PQ 交易的大小约为 ECDSA 交易的 10–22 倍(FN-DSA-512 约为 10 倍,ML-DSA-44 约为 22 倍),因此会占用更多带宽。 - ML-DSA-44 使用纯 Go 实现,适用于所有构建版本。FN-DSA-512(Falcon-512,目前已在 Nile 启用)需要使用
-tags falcon构建,并安装 CGO 和通过 pkg-config 安装的 liboqs:CGO_ENABLED=1 go build -tags falcon ./cmd/gotron-mcp。若未满足这些条件,FN-DSA 的创建或签名操作会返回错误,并提示使用gotron-mcp-pq构建;计划提供相应的发布二进制文件(GOT-97)。 - 目前尚不支持:通过 MCP 将 PQ 密钥添加到现有账户的权限中(GOT-98;请使用 tronctl 或 SDK 指南),以及使用多个 MCP 钱包共同签署一笔交易(GOT-99)。
配置
| 标志 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|
--node | GOTRON_MCP_NODE | (因网络而异) | TRON gRPC 节点地址 |
--api-key | GOTRON_NODE_API_KEY | — | TronGrid API 密钥 |
--network | GOTRON_MCP_NETWORK | mainnet | 网络:mainnet、nile、shasta |
--transport | — | stdio | 传输方式:stdio、http |
--port | — | 8080 | HTTP 服务端口 |
--bind | — | 127.0.0.1 | HTTP 服务绑定地址 |
--fallback-node | GOTRON_MCP_FALLBACK_NODE | — | 备用 gRPC 节点(自动故障转移) |
--keystore-dir | GOTRON_MCP_KEYSTORE_DIR | ~/.gotron-mcp/wallets | 钱包目录 |
--keystore-pass | GOTRON_MCP_KEYSTORE_PASSPHRASE | — | 密钥库口令;仅在设置后才会注册钱包和签名工具 |
--tls | — | false | 对 gRPC 连接使用 TLS(默认:明文) |
网络预设
| 网络 | 默认节点 |
|---|---|
| mainnet | grpc.trongrid.io:50051 |
| nile | grpc.nile.trongrid.io:50051 |
| shasta | grpc.shasta.trongrid.io:50051 |
显式指定的 --node 会覆盖网络预设。
读取合约需要节点支持 vm.supportConstant = true。如果节点报告不支持常量执行,且配置了 --fallback-node,读取操作会尝试使用该备用节点。TRC20 读取也会在结果为空时使用备用节点,因为代币读取需要返回数据。一般合约模拟即使没有返回数据也可能成功。备用节点必须服务于同一网络。此备用机制按调用独立应用,不受区块健康检查影响;合约执行回退会作为错误返回。
向未激活的接收方转账 TRX 时,analyze_transfer_cost 会从链参数中读取账户创建费用和带宽乘数。只有质押或委托的带宽可以抵扣账户创建费用;免费带宽不能抵扣。如果无法确定接收方是否已激活或所需的费用参数,该工具会返回错误,而不是报出零费用。
安全性
- 服务器绝不会直接存储或管理私钥
- 所有写入工具都会返回未签名的交易十六进制字符串——由用户决定如何签名
- 密钥库签名为可选功能:只有设置了密钥库密码短语时,才会注册钱包和签名工具
- 在托管(HTTP)模式下,所有写入和签名工具都会自动禁用
- API 密钥为可选项,仅在需要应对 TronGrid 速率限制时使用
开发
# Build
make build
# Format code
make fmt
# Run tests
make test
# Lint
make lint
# Run HTTP mode locally
make run-http
社区
由 CryptoChain 社区开发者构建并维护。
如果你觉得这个项目有用,可以通过投票支持 CryptoChain 超级代表,助力 TRON 治理:
- 在 TronScan 上投票
- SR 地址:
TKSXDA8HfE9E1y39RczVQ1ZascUEtaSToF
许可证
LGPL-3.0 — 与 GoTRON SDK 相同。
链接
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。