TronGrid MCP Server 是一款基于 模型上下文协议 (Model Context Protocol, MCP) 的服务,它将波场 (TRON) 区块链的查询和操作能力封装为标准化的 MCP 工具。这使得 AI 客户端(如 Claude、Cursor、自定义 Agent 等)能够直接与波场网络进行交互。
- 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:<您的-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 使用可流式 HTTP 进行传输,所有通信均通过 POST /mcp 端点完成。该协议是有状态的,且需要按顺序进行握手:
┌──────────┐ ┌──────────┐
│ 客户端 │ │ 服务器 │
└────┬─────┘ └────┬─────┘
│ 1. initialize (初始化) │
│ ──────────────────────────────► │
│ ◄── mcp-session-id │
│ │
│ 2. notifications/initialized │
│ ──────────────────────────────► │
│ ◄── 202 Accepted │
│ │
│ 3. tools/list (工具列表) │
│ ──────────────────────────────► │
│ ◄── 工具列表 │
│ │
│ 4. tools/call (工具调用) │
│ ──────────────────────────────► │
│ ◄── 工具执行结果 │
└ ┘
所有请求必须携带以下请求头 (Headers):
| 请求头 | 取值 | 描述 |
|---|
Content-Type | application/json | 必填 |
Accept | application/json, text/event-stream | 必填 |
mcp-session-id | <session-id> | 握手完成后,后续请求必填 |
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": "2026-03-06",
"capabilities": {},
"clientInfo": { "name": "curl-test", "version": "1.0" }
}
}'
在响应中找到 mcp-session-id 并保存,用于后续请求。
curl -X POST https://mcp.trongrid.io/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <您的-session-id>" \
-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: <您的-session-id>" \
-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: <您的-session-id>" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "getBlockStatistics",
"arguments": { "blockNum": 68000000 }
}
}'
服务器共暴露了 149 个 MCP 工具,涵盖了波场网络的主要查询和操作:
通过 TronGrid REST API 查询链上数据。
| 工具名称 | 描述 |
|---|
getBlockStatistics | 通过区块号获取特定波场区块的统计信息 |
| 工具名称 | 描述 |
|---|
getAccountInfo | 获取波场地址的账户信息 |
getAccountTransactions | 获取波场账户地址的近期交易记录 |
getAccountTrc20Transactions | 获取波场账户的 TRC-20 代币转账历史 |
getInternalTransactions | 获取波场账户地址的内部交易记录 |
getInternalTransactionsByTxId | 获取特定交易 ID 的内部交易记录 |
getTrc20Balance | 获取波场账户地址的 TRC-20 代币余额 |
| 工具名称 | 描述 |
|---|
listAllAssets | 列举波场区块链上所有的 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 端点,用于交易创建与广播、账户管理、资源质押与代理、智能合约、超级代表以及治理提案。
| 工具名称 | 描述 |
|---|
validateAddress | 验证波场地址格式 |
broadcastTransaction | 向波场网络广播已签名的交易 |
broadcastHex | 向波场网络广播十六进制编码的已签名交易 |
| 工具名称 | 描述 |
|---|
createAccount | 在波场网络上激活账户 |
getAccount | 查询账户链上信息(TRX 余额、资产、质押情况) |
updateAccount | 更新波场账户名称 |
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 | 获取波场区块头或完整区块 |
getTransactionInfoByBlockNum | 获取区块中所有的交易信息 |
| 工具名称 | 描述 |
|---|
getTransactionById | 通过 ID 获取交易信息 |
getTransactionInfoById | 通过 ID 获取交易费用和回执信息 |
getTransactionListFromPending | 获取待处理 (Pending) 交易 ID 列表 |
getTransactionFromPending | 获取特定的待处理交易 |
getPendingSize | 获取待处理交易池的大小 |
| 工具名称 | 描述 |
|---|
listNodes | 列出所有波场网络节点 |
getNodeInfo | 获取波场节点信息 |
getChainParameters | 获取波场链参数 |
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 | 在波场上部署新的智能合约 |
updateSetting | 更新智能合约的 consume_user_resource_percent |
updateEnergyLimit | 更新智能合约的 origin_energy_limit |
clearAbi | 清除智能合约的 ABI |
estimateEnergy | 估算合约调用所需的能量 |
| 工具名称 | 描述 |
|---|
createWitness | 申请成为超级代表候选人 |
updateWitness | 更新超级代表信息 |
getBrokerage | 获取超级代表收益佣金比例 |
updateBrokerage | 更新超级代表收益佣金比例 |
voteWitnessAccount | 为超级代表投票 |
getReward | 获取未领取的投票奖励 |
withdrawBalance | 提取超级代表奖励 |
getNextMaintenanceTime | 获取下次波场投票维护时间 |
| 工具名称 | 描述 |
|---|
getPaginatedNowWitnessList | 分页获取超级代表列表 |
| 工具名称 | 描述 |
|---|
listProposals | 列出所有波场网络提案 |
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 | 获取波场已固化节点的信息 |
solidityGetBurnTrx | 从已固化节点获取已销毁的 TRX 总量 |
| 工具名称 | 描述 |
|---|
solidityTriggerConstantContract | 在已固化状态上模拟合约调用 |
solidityEstimateEnergy | 在已固化状态上估算能量 |
| 工具名称 | 描述 |
|---|
solidityGetAssetIssueById | 从已固化节点通过 ID 获取 TRC-10 资产 |
solidityGetAssetIssueByName | 从已固化节点通过名称获取 TRC-10 资产 |
solidityGetAssetIssueList | 从已固化节点获取所有 TRC-10 资产 |
solidityGetAssetIssueListByName | 从已固化节点通过名称获取 TRC-10 资产(列表) |
solidityGetPaginatedAssetIssueList | 从已固化节点分页获取 TRC-10 资产列表 |
| 工具名称 | 描述 |
|---|
solidityGetReward | 从已固化节点获取未领取的奖励 |
solidityGetBrokerage | 从已固化节点获取超级代表佣金比例 |
solidityGetPaginatedNowWitnessList | 从已固化节点分页获取超级代表列表 |
兼容以太坊的 JSON-RPC API 方法,供从以太坊生态迁移过来的开发者使用。
| 工具名称 | 描述 |
|---|
ethGetBalance | 返回波场账户的余额 |
| 工具名称 | 描述 |
|---|
ethBlockNumber | 返回波场最新的区块号 |
ethGetBlockByHash | 通过哈希获取波场区块 |
ethGetBlockByNumber | 通过高度获取波场区块 |
ethGetBlockReceipts | 获取波场区块的所有回执 |
ethGetBlockTransactionCountByHash | 通过区块哈希获取交易数量 |
ethGetBlockTransactionCountByNumber | 通过区块高度获取交易数量 |
ethGetWork | 返回当前波场区块哈希 |
| 工具名称 | 描述 |
|---|
ethGetTransactionByHash | 通过哈希获取波场交易信息 |
ethGetTransactionByBlockHashAndIndex | 通过区块哈希和索引获取交易 |
ethGetTransactionByBlockNumberAndIndex | 通过区块高度和索引获取交易 |
ethGetTransactionReceipt | 获取波场交易回执 |
ethCall | 在波场上执行只读消息调用 |
buildTransaction | 构建波场交易(TRX 转账、TRC-20、合约调用等) |
| 工具名称 | 描述 |
|---|
ethGetCode | 获取波场地址处的合约字节码 |
ethGetStorageAt | 获取波场合约地址处的存储值 |
ethEstimateGas | 估算波场交易的能量消耗 |
ethGasPrice | 返回当前能量价格(单位:sun) |
| 工具名称 | 描述 |
|---|
ethNewFilter | 创建波场日志过滤器 |
ethNewBlockFilter | 创建波场新区块过滤器 |
ethGetFilterChanges | 轮询波场过滤器的变动 |
ethGetFilterLogs | 获取匹配波场过滤器的日志 |
ethGetLogs | 根据过滤条件获取波场日志 |
ethUninstallFilter | 卸载波场过滤器 |
| 工具名称 | 描述 |
|---|
ethChainId | 返回波场链 ID |
ethCoinbase | 返回节点的超级代表地址 |
ethProtocolVersion | 返回波场区块版本 |
ethSyncing | 返回波场同步状态 |
netListening | 检查波场客户端是否正在监听 |
netPeerCount | 获取连接到波场的节点数量 |
netVersion | 返回波场创世区块哈希 |
web3ClientVersion | 返回波场节点客户端版本 |
web3Sha3 | 在波场上计算 Keccak-256 哈希 |
在您的 MCP 客户端配置文件中添加如下配置:
{
"mcpServers": {
"trongrid-mcp": {
"url": "https://mcp.trongrid.io/mcp"
}
}
}
对于不直接支持可流式 HTTP 的客户端(如 Claude Code),可以使用 mcp-remote 作为桥梁:
{
"mcpServers": {
"mcp-server-trongrid": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.trongrid.io/mcp"]
}
}
}
问:工具调用返回 405 Method Not Allowed?
答:会话可能已过期或失效。请重新运行 initialize 握手过程。
问:收到 TronGrid API 限流错误?
答:请通过 TRON-PRO-API-KEY 请求头传入您的 API Key。
问:curl 请求返回空数据?
答:请确保请求头包含 Accept: application/json, text/event-stream,这是可流式 HTTP 协议所要求的。