TronGrid MCP 服务器。把 TRON 链上能力封装为 MCP 标准工具,供 AI 客户端(Claude、Cursor、自定义 Agent 等)调用。
TronGrid MCP 服务器是一项基于 Model Context Protocol(MCP) 的服务,它将 TRON 区块链上的查询与操作能力封装为标准化的 MCP 工具。这使 AI 客户端(如 Claude、Cursor、自定义 Agent 等)能够直接与 TRON 网络进行交互。
- MCP 协议版本:2025-11-25
- 传输协议:Streamable HTTP
编辑配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"trongrid": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.trongrid.io/mcp"
]
}
}
}
传入 API key:
{
"mcpServers": {
"trongrid": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.trongrid.io/mcp",
"--header",
"TRON-PRO-API-KEY:<your-api-key>"
]
}
}
}
claude mcp add --transport http trongrid https://mcp.trongrid.io/mcp
在项目根目录创建 .mcp.json:
{
"mcpServers": {
"trongrid": {
"type": "http",
"url": "https://mcp.trongrid.io/mcp"
}
}
}
MCP 使用 Streamable HTTP 进行传输,所有通信均通过 POST /mcp endpoint 完成。协议是有状态的,需要按顺序完成握手:
┌──────────┐ ┌──────────┐
│ Client │ │ Server │
└────┬─────┘ └────┬─────┘
│ 1. initialize │
│ ──────────────────────────────► │
│ ◄── mcp-session-id ──────────── │
│ │
│ 2. notifications/initialized │
│ ──────────────────────────────► │
│ ◄── 202 Accepted ────────────── │
│ │
│ 3. tools/list │
│ ──────────────────────────────► │
│ ◄── tool list ───────────────── │
│ │
│ 4. tools/call │
│ ──────────────────────────────► │
│ ◄── tool execution result ───── │
└ ┘
请求头要求如下;握手后的请求还必须携带会话 ID 和协商出的协议版本:
| Header | Value | 说明 |
|---|
Content-Type | application/json | 必填 |
Accept | application/json, text/event-stream | 必填 |
mcp-session-id | <session-id> | 握手完成后的请求必填 |
MCP-Protocol-Version | <protocol-version> | 握手完成后的请求必填,值取自初始化响应的 result.protocolVersion |
curl -v -X POST https://mcp.trongrid.io/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {},
"clientInfo": { "name": "curl-test", "version": "1.0" }
}
}'
在响应中找到 mcp-session-id,并从响应 JSON 的 result.protocolVersion 读取协商版本。将两者分别保存为 <your-session-id> 和 <protocol-version>,供后续请求使用。
curl -X POST https://mcp.trongrid.io/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <your-session-id>" \
-H "MCP-Protocol-Version: <protocol-version>" \
-d '{
"jsonrpc": "2.0",
"method": "notifications/initialized",
"params": {}
}'
返回 202 Accepted 表示成功。
curl -X POST https://mcp.trongrid.io/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <your-session-id>" \
-H "MCP-Protocol-Version: <protocol-version>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
以查询区块统计信息为例:
curl -X POST https://mcp.trongrid.io/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <your-session-id>" \
-H "MCP-Protocol-Version: <protocol-version>" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "getBlockStatistics",
"arguments": { "blockNum": 68000000 }
}
}'
服务器共暴露 149 个 MCP 工具,覆盖 TRON 网络的主要查询与操作:
通过 TronGrid REST API 查询链上数据。
| 工具名 | 说明 |
|---|
getBlockStatistics | 通过区块高度获取指定区块的统计信息 |
| 工具名 | 说明 |
|---|
getAccountInfo | 获取 TRON 地址的账户信息 |
getAccountTransactions | 获取 TRON 账户地址的近期交易 |
getAccountTrc20Transactions | 获取 TRON 账户的 TRC-20 通证转账历史 |
getInternalTransactions | 获取 TRON 账户地址的内部交易 |
getInternalTransactionsByTxId | 获取指定交易 ID 的内部交易 |
getTrc20Balance | 获取 TRON 账户地址的 TRC-20 通证余额 |
| 工具名 | 说明 |
|---|
listAllAssets | 列出 TRON 区块链上的所有 TRC-10 资产(通证) |
getAssetByName | 按名称获取 TRC-10 资产 |
getAssetByIdentifier | 通过数字 ID 或发行方地址获取 TRC-10 资产 |
| 工具名 | 说明 |
|---|
getContractTransactions | 获取智能合约地址的交易 |
getContractInternalTransactions | 获取智能合约的内部交易 |
getTrc20TokenHolders | 获取合约地址的 TRC-20 通证持有人余额 |
| 工具名 | 说明 |
|---|
getEventsByTransactionId | 获取指定交易触发的事件 |
getEventsByContractAddress | 获取智能合约地址触发的事件 |
getEventsByBlockNumber | 获取指定区块高度的事件 |
getEventsByLatestBlock | 获取最新区块的事件 |
| 工具名 | 说明 |
|---|
getTrc20Info | 获取 TRC-20/721/1155 通证的信息(名称、符号、精度) |
全节点 /wallet/* API endpoint,用于交易创建与广播、账户管理、资源质押与代理、智能合约、超级代表(SR)以及治理提案。
| 工具名 | 说明 |
|---|
validateAddress | 校验 TRON 地址格式 |
broadcastTransaction | 向 TRON 网络广播已签名的交易 |
broadcastHex | 向 TRON 广播已签名的十六进制编码交易 |
| 工具名 | 说明 |
|---|
createAccount | 在 TRON 网络上激活账户 |
getAccount | 查询账户链上信息(TRX 余额、资产、质押情况) |
updateAccount | 更新 TRON 账户名称 |
accountPermissionUpdate | 更新账户权限 |
getApprovedList | 获取交易的已批准签名者列表 |
| 工具名 | 说明 |
|---|
createTransaction | 创建 TRX 转账交易 |
| 工具名 | 说明 |
|---|
getAccountResource | 获取账户资源信息(带宽、能量) |
getAccountNet | 获取账户带宽信息 |
| 工具名 | 说明 |
|---|
freezeBalance | [已废弃] 为带宽/能量质押 TRX(Stake 1.0) |
unfreezeBalance | [已废弃] 解除 TRX 质押(Stake 1.0) |
getDelegatedResource | 查询资源代理信息 |
getDelegatedResourceAccountIndex | 查询代理索引 |
| 工具名 | 说明 |
|---|
freezeBalanceV2 | 为带宽/能量质押 TRX(Stake 2.0) |
unfreezeBalanceV2 | 解除 TRX 质押(Stake 2.0) |
cancelAllUnfreezeV2 | 取消 Stake 2.0 中所有待处理的解质押 |
delegateResource | 将带宽/能量代理给另一个账户 |
unDelegateResource | 取消带宽/能量代理 |
withdrawExpireUnfreeze | 提取已过期的解质押 TRX |
getAvailableUnfreezeCount | 获取剩余解质押次数 |
getCanWithdrawUnfreezeAmount | 获取可提取的解质押 TRX 数量 |
getCanDelegatedMaxSize | 获取最大可代理资源数量 |
getDelegatedResourceV2 | 查询 Stake 2.0 代理信息 |
getDelegatedResourceAccountIndexV2 | 查询 Stake 2.0 代理索引 |
| 工具名 | 说明 |
|---|
getBlock | 获取 TRON 区块头或完整区块 |
getTransactionInfoByBlockNum | 获取区块中所有交易信息 |
| 工具名 | 说明 |
|---|
getTransactionById | 按 ID 获取交易信息 |
getTransactionInfoById | 按 ID 获取交易手续费与回执信息 |
getTransactionListFromPending | 获取待处理交易 ID 列表 |
getTransactionFromPending | 获取指定的待处理交易 |
getPendingSize | 获取待处理交易池大小 |
| 工具名 | 说明 |
|---|
listNodes | 列出所有 TRON 网络节点 |
getNodeInfo | 获取 TRON 节点信息 |
getChainParameters | 获取 TRON 链参数 |
getEnergyPrices | 获取历史能量单价 |
getBandwidthPrices | 获取历史带宽单价 |
| 工具名 | 说明 |
|---|
getBurnTrx | 获取 TRX 总销毁量 |
| 工具名 | 说明 |
|---|
getAssetIssueByAccount | 获取账户发行的 TRC-10 资产 |
getAssetIssueById | 按通证 ID 获取 TRC-10 资产 |
getAssetIssueByName | 按名称获取 TRC-10 资产 |
getAssetIssueList | 获取所有 TRC-10 资产 |
getAssetIssueListByName | 按名称获取 TRC-10 资产列表 |
getPaginatedAssetIssueList | 分页获取 TRC-10 资产 |
createAssetIssue | 发行新 TRC-10 通证 |
participateAssetIssue | 参与 TRC-10 通证发行 |
transferAsset | 创建 TRC-10 通证转账交易 |
unfreezeAsset | 解冻 TRC-10 通证 |
updateAsset | 更新 TRC-10 通证参数 |
| 工具名 | 说明 |
|---|
getContract | 获取智能合约字节码和 ABI |
getContractInfo | 获取智能合约信息(含能量设置) |
triggerSmartContract | 触发智能合约函数调用 |
triggerConstantContract | 预执行(模拟)智能合约调用 |
deployContract | 在 TRON 上部署新智能合约 |
updateSetting | 更新智能合约的 consume_user_resource_percent |
updateEnergyLimit | 更新智能合约的 origin_energy_limit |
clearAbi | 清除智能合约的 ABI |
estimateEnergy | 估算合约调用所需的能量 |
| 工具名 | 说明 |
|---|
createWitness | 申请成为超级代表(SR)候选人 |
updateWitness | 更新超级代表信息 |
getBrokerage | 获取 SR 奖励分成率 |
updateBrokerage | 更新 SR 奖励分成率 |
voteWitnessAccount | 为超级代表投票 |
getReward | 获取未领取的投票奖励 |
withdrawBalance | 提取 SR 奖励 |
getNextMaintenanceTime | 获取 TRON 下次投票维护周期时间 |
| 工具名 | 说明 |
|---|
getPaginatedNowWitnessList | 分页获取 SR 列表 |
| 工具名 | 说明 |
|---|
listProposals | 列出所有 TRON 网络提案 |
getProposalById | 按 ID 获取指定提案 |
proposalCreate | 创建新的网络提案 |
proposalApprove | 批准网络提案 |
proposalDelete | 删除网络提案 |
从已固化的 Solidity 节点读取数据,确保数据的最终性。所有工具名均以 solidity 为前缀。
| 工具名 | 说明 |
|---|
solidityGetAccount | 从已固化节点查询账户信息 |
| 工具名 | 说明 |
|---|
solidityGetTransactionById | 按 ID 获取已固化交易 |
solidityGetTransactionInfoById | 按 ID 获取已固化交易手续费信息 |
solidityGetTransactionInfoByBlockNum | 获取已固化区块中的交易信息 |
solidityGetTransactionCountByBlockNum | 获取已固化区块的交易数量 |
| 工具名 | 说明 |
|---|
solidityGetBlock | 获取已固化的区块头/完整区块 |
| 工具名 | 说明 |
|---|
solidityGetDelegatedResource | 从已固化节点查询代理信息 |
solidityGetDelegatedResourceAccountIndex | 从已固化节点查询代理索引 |
solidityGetDelegatedResourceV2 | 从已固化节点查询 Stake 2.0 代理 |
solidityGetDelegatedResourceAccountIndexV2 | 从已固化节点查询 Stake 2.0 代理索引 |
solidityGetCanDelegatedMaxSize | 从已固化节点获取最大可代理数量 |
solidityGetCanWithdrawUnfreezeAmount | 从已固化节点获取可提取数量 |
solidityGetAvailableUnfreezeCount | 从已固化节点获取解质押次数 |
| 工具名 | 说明 |
|---|
solidityGetNodeInfo | 获取 TRON 已固化节点信息 |
solidityGetBurnTrx | 从已固化节点获取 TRX 总销毁量 |
| 工具名 | 说明 |
|---|
solidityTriggerConstantContract | 在已固化状态下模拟合约调用 |
solidityEstimateEnergy | 在已固化状态下估算能量 |
| 工具名 | 说明 |
|---|
solidityGetAssetIssueById | 从已固化节点按 ID 获取 TRC-10 资产 |
solidityGetAssetIssueByName | 从已固化节点按名称获取 TRC-10 资产 |
solidityGetAssetIssueList | 从已固化节点获取所有 TRC-10 资产 |
solidityGetAssetIssueListByName | 从已固化节点按名称获取 TRC-10 资产列表 |
solidityGetPaginatedAssetIssueList | 从已固化节点分页获取 TRC-10 资产 |
| 工具名 | 说明 |
|---|
solidityGetReward | 从已固化节点获取未领取奖励 |
solidityGetBrokerage | 从已固化节点获取 SR 分成率 |
solidityGetPaginatedNowWitnessList | 从已固化节点分页获取 SR 列表 |
兼容以太坊的 JSON-RPC API 方法,适用于从以太坊生态迁移的开发者。
| 工具名 | 说明 |
|---|
ethGetBalance | 返回 TRON 账户余额 |
| 工具名 | 说明 |
|---|
ethBlockNumber | 返回最新 TRON 区块高度 |
ethGetBlockByHash | 通过哈希获取 TRON 区块 |
ethGetBlockByNumber | 通过区块高度获取 TRON 区块 |
ethGetBlockReceipts | 获取 TRON 区块的所有回执 |
ethGetBlockTransactionCountByHash | 通过哈希获取区块交易数量 |
ethGetBlockTransactionCountByNumber | 通过区块高度获取区块交易数量 |
ethGetWork | 返回当前 TRON 区块哈希 |
| 工具名 | 说明 |
|---|
ethGetTransactionByHash | 通过哈希获取 TRON 交易 |
ethGetTransactionByBlockHashAndIndex | 通过区块哈希和索引获取交易 |
ethGetTransactionByBlockNumberAndIndex | 通过区块高度和索引获取交易 |
ethGetTransactionReceipt | 获取 TRON 交易回执 |
ethCall | 在 TRON 上执行只读消息调用 |
buildTransaction | 构建 TRON 交易(TRX 转账、TRC-20、合约调用) |
| 工具名 | 说明 |
|---|
ethGetCode | 获取 TRON 地址的合约字节码 |
ethGetStorageAt | 获取 TRON 合约地址的存储值 |
ethEstimateGas | 估算 TRON 交易的能量消耗 |
ethGasPrice | 返回当前能量单价(单位:sun) |
| 工具名 | 说明 |
|---|
ethNewFilter | 创建 TRON 日志过滤器 |
ethNewBlockFilter | 创建 TRON 新区块过滤器 |
ethGetFilterChanges | 轮询 TRON 过滤器变化 |
ethGetFilterLogs | 获取匹配 TRON 过滤器的日志 |
ethGetLogs | 获取 TRON 上匹配过滤条件的日志 |
ethUninstallFilter | 卸载 TRON 过滤器 |
| 工具名 | 说明 |
|---|
ethChainId | 返回 TRON 链 ID |
ethCoinbase | 返回节点的超级代表(SR)地址 |
ethProtocolVersion | 返回 TRON 区块版本 |
ethSyncing | 返回 TRON 同步状态 |
netListening | 检查 TRON 客户端是否在监听 |
netPeerCount | 获取连接到 TRON 的对等节点数 |
netVersion | 返回 TRON 创世区块哈希 |
web3ClientVersion | 返回 TRON 节点客户端版本 |
web3Sha3 | 在 TRON 上计算 Keccak-256 哈希 |
在 MCP 客户端配置文件中添加以下配置:
{
"mcpServers": {
"trongrid-mcp": {
"url": "https://mcp.trongrid.io/mcp"
}
}
}
对于不直接支持 Streamable HTTP 的客户端(如 Claude Code),可使用 mcp-remote 作为桥接:
{
"mcpServers": {
"mcp-server-trongrid": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.trongrid.io/mcp"]
}
}
}
Q:工具调用返回 405 Method Not Allowed?
A:会话可能已过期或失效。请重新执行 initialize 握手流程。
Q:收到 TronGrid API 速率限制错误?
A:通过 TRON-PRO-API-KEY 请求头传入您的 API key。
Q:curl 请求没有返回数据?
A:请确保请求头包含 Accept: application/json, text/event-stream,这是 Streamable HTTP 协议的必填项。