TRON blockchain: accounts, TRC20 tokens, staking, contracts, resources and transaction builders
MCP server for TRON blockchain — let AI agents query balances, tokens, blocks, and build transactions.
Built on the GoTRON SDK and the Model Context Protocol.
| Local Mode | Hosted Mode | |
|---|---|---|
| Transport | stdio | Streamable HTTP |
| Read tools | All | All |
| Transaction builders | All (unsigned tx hex) | All (unsigned tx hex) |
| Sign/Broadcast | Opt-in via --keystore | Disabled |
| Install | Required | Zero install |
go install github.com/fbsobreira/gotron-mcp/cmd/gotron-mcp@latest
brew install fbsobreira/tap/gotron-mcp
curl -fsSL gotron.sh/install-mcp | sh
docker run -p 8080:8080 ghcr.io/fbsobreira/gotron-mcp
The image starts the HTTP transport. For stdio, append --transport stdio:
docker run -i --rm ghcr.io/fbsobreira/gotron-mcp --transport stdio
Published to the MCP Registry as io.github.fbsobreira/gotron-mcp on each stable release tag (vX.Y.Z), from v0.4.1, with the Docker image (stdio) and the hosted endpoint.
Connect directly to https://mcp.gotron.sh/mcp — no installation needed.
{
"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", "--keystore", "~/.tronctl/keystore"],
"env": {
"GOTRON_NODE_API_KEY": "your-trongrid-api-key"
}
}
}
}
{
"mcpServers": {
"gotron": {
"url": "https://mcp.gotron.sh/mcp"
}
}
}
Add to current project:
claude mcp add gotron --scope project -- gotron-mcp --network mainnet
With keystore:
claude mcp add gotron --scope project -- gotron-mcp --network mainnet --keystore ~/.tronctl/keystore
Add globally:
claude mcp add gotron --scope user -- gotron-mcp --network mainnet
Hosted (zero install):
claude mcp add gotron --scope user --transport http https://mcp.gotron.sh/mcp
| Tool | Description |
|---|---|
get_account | Get account balance, bandwidth, energy, and details |
get_account_resources | Get energy/bandwidth usage and limits |
get_trc20_balance | Get TRC20 token balance for an account |
get_trc20_token_info | Get TRC20 token name, symbol, and decimals |
get_block | Get block by number or latest |
get_transaction | Get transaction details by ID |
list_witnesses | List all super representatives |
get_contract_abi | Get smart contract ABI |
estimate_energy | Estimate energy cost for a contract call |
trigger_constant_contract | Call read-only (view/pure) smart contract method |
decode_abi_output | Decode ABI-encoded output or revert reasons from contract calls |
list_contract_methods | Get human-readable summary of contract methods |
get_chain_parameters | Get network parameters |
validate_address | Validate a TRON address |
get_energy_prices | Get energy price history |
get_bandwidth_prices | Get bandwidth price history |
list_proposals | List governance proposals |
get_network | Get current network connection info |
get_pq_capabilities | Report node and build support for post-quantum (TIP-899) signing |
| Tool | Description |
|---|---|
transfer_trx | Build unsigned TRX transfer |
transfer_trc20 | Build unsigned TRC20 token transfer |
freeze_balance | Build unsigned stake TRX for energy/bandwidth (Stake 2.0) |
unfreeze_balance | Build unsigned unstake TRX (Stake 2.0) |
vote_witness | Build unsigned vote for super representatives |
trigger_contract | Build unsigned smart contract call |
| Tool | Description |
|---|---|
sign_transaction | Sign transaction using local keystore |
broadcast_transaction | Broadcast signed transaction to network |
create_wallet(name, key_type?) accepts ecdsa (default), ml_dsa_44 or fn_dsa_512; list_wallets and signing results report key_type. sign_transaction, sign_and_broadcast, sign_and_confirm and request_limit_override accept PQ wallets with the same policy limits, Telegram approval and elicitation as ECDSA wallets.
grpc.nile.trongrid.io:50051); governance switches each scheme on or off and mainnet reports none. Use get_pq_capabilities to check the node and this build.permission_id) on the owner account. A fresh PQ address must receive TRX first.GOTRON_MCP_KEYSTORE_PASSPHRASE under <keystore-dir>/pq-keys/<name>/ (wallet-cli compatible, same layout as tronctl). Point --keystore-dir at a tronctl config root (e.g. ~/.tronctl) to reuse its keys; the passphrase must match their password. Wallet names are unique across ECDSA and PQ wallets; list_wallets flags duplicate_name: true and such a wallet cannot sign until one copy is renamed.pq_auth_sig (txid unchanged); a transaction carries at most 5 signatures, ECDSA and PQ combined. PQ transactions are about 10-22x larger than ECDSA ones (roughly 10x for FN-DSA-512, 22x for ML-DSA-44), so they use more bandwidth.-tags falcon, CGO and liboqs installed via pkg-config: CGO_ENABLED=1 go build -tags falcon ./cmd/gotron-mcp. Without it, FN-DSA create/sign returns an error pointing to the gotron-mcp-pq build; release binaries for it are planned (GOT-97).| Flag | Env Var | Default | Description |
|---|---|---|---|
--node | GOTRON_MCP_NODE | (per network) | TRON gRPC node address |
--api-key | GOTRON_NODE_API_KEY | — | TronGrid API key |
--network | GOTRON_MCP_NETWORK | mainnet | Network: mainnet, nile, shasta |
--transport | — | stdio | Transport: stdio, http |
--port | — | 8080 | HTTP server port |
--bind | — | 127.0.0.1 | HTTP server bind address |
--fallback-node | GOTRON_MCP_FALLBACK_NODE | — | Fallback gRPC node (auto-failover) |
--keystore | — | — | Path to tronctl keystore directory |
--tls | — | false | Use TLS for gRPC connection (default: plaintext) |
| Network | Default Node |
|---|---|
| mainnet | grpc.trongrid.io:50051 |
| nile | grpc.nile.trongrid.io:50051 |
| shasta | grpc.shasta.trongrid.io:50051 |
Explicit --node overrides network presets.
--keystore flag# Build
make build
# Format code
make fmt
# Run tests
make test
# Lint
make lint
# Run HTTP mode locally
make run-http
Built and maintained by a CryptoChain community developer.
If you find this project useful, consider supporting TRON governance by voting for the CryptoChain Super Representative:
TKSXDA8HfE9E1y39RczVQ1ZascUEtaSToFLGPL-3.0 — same as the GoTRON SDK.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
docker run -i --rm ghcr.io/fbsobreira/gotron-mcp:0.4.1Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-fbsobreira-gotron-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/fbsobreira/gotron-mcp:0.4.1"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceghcr.io/fbsobreira/gotron-mcp:0.4.1dockerGoTRON MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.