GoTRON MCP

TRON blockchain: accounts, TRC20 tokens, staking, contracts, resources and transaction builders

OtherGov0.4.1

GoTRON MCP Server

Go Reference Go Report Card CI Coverage License

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.

Two Modes

Local ModeHosted Mode
TransportstdioStreamable HTTP
Read toolsAllAll
Transaction buildersAll (unsigned tx hex)All (unsigned tx hex)
Sign/BroadcastOpt-in via --keystoreDisabled
InstallRequiredZero install

Install

Go Install

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

The image starts the HTTP transport. For stdio, append --transport stdio:

docker run -i --rm ghcr.io/fbsobreira/gotron-mcp --transport stdio

MCP Registry

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.

Hosted (zero install)

Connect directly to https://mcp.gotron.sh/mcp — no installation needed.

Claude Desktop Configuration

Local mode

{
  "mcpServers": {
    "gotron": {
      "command": "gotron-mcp",
      "args": ["--network", "mainnet"],
      "env": {
        "GOTRON_NODE_API_KEY": "your-trongrid-api-key"
      }
    }
  }
}

Local mode with keystore signing

{
  "mcpServers": {
    "gotron": {
      "command": "gotron-mcp",
      "args": ["--network", "mainnet", "--keystore", "~/.tronctl/keystore"],
      "env": {
        "GOTRON_NODE_API_KEY": "your-trongrid-api-key"
      }
    }
  }
}

Hosted mode (zero install)

{
  "mcpServers": {
    "gotron": {
      "url": "https://mcp.gotron.sh/mcp"
    }
  }
}

Claude Code

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

Available Tools

Read-Only (both modes)

ToolDescription
get_accountGet account balance, bandwidth, energy, and details
get_account_resourcesGet energy/bandwidth usage and limits
get_trc20_balanceGet TRC20 token balance for an account
get_trc20_token_infoGet TRC20 token name, symbol, and decimals
get_blockGet block by number or latest
get_transactionGet transaction details by ID
list_witnessesList all super representatives
get_contract_abiGet smart contract ABI
estimate_energyEstimate energy cost for a contract call
trigger_constant_contractCall read-only (view/pure) smart contract method
decode_abi_outputDecode ABI-encoded output or revert reasons from contract calls
list_contract_methodsGet human-readable summary of contract methods
get_chain_parametersGet network parameters
validate_addressValidate a TRON address
get_energy_pricesGet energy price history
get_bandwidth_pricesGet bandwidth price history
list_proposalsList governance proposals
get_networkGet current network connection info
get_pq_capabilitiesReport node and build support for post-quantum (TIP-899) signing

Transaction Builders (both modes)

ToolDescription
transfer_trxBuild unsigned TRX transfer
transfer_trc20Build unsigned TRC20 token transfer
freeze_balanceBuild unsigned stake TRX for energy/bandwidth (Stake 2.0)
unfreeze_balanceBuild unsigned unstake TRX (Stake 2.0)
vote_witnessBuild unsigned vote for super representatives
trigger_contractBuild unsigned smart contract call

Sign & Broadcast (local mode + keystore)

ToolDescription
sign_transactionSign transaction using local keystore
broadcast_transactionBroadcast signed transaction to network

Post-quantum signing (TIP-899, Nile)

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.

  • TIP-899 is a draft, live only on Nile (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.
  • Before any policy check or approval, a PQ signature requires that the node has the scheme enabled and that the wallet's address is a key of the transaction's permission (permission_id) on the owner account. A fresh PQ address must receive TRX first.
  • PQ keys are stored encrypted with 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.
  • The signature goes into 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.
  • ML-DSA-44 is pure Go and works in every build. FN-DSA-512 (Falcon-512, currently enabled on Nile) needs a build with -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).
  • Not supported yet: adding a PQ key to an existing account's permissions from MCP (GOT-98; use tronctl or the SDK guide) and co-signing one transaction with several MCP wallets (GOT-99).

Configuration

FlagEnv VarDefaultDescription
--nodeGOTRON_MCP_NODE(per network)TRON gRPC node address
--api-keyGOTRON_NODE_API_KEY—TronGrid API key
--networkGOTRON_MCP_NETWORKmainnetNetwork: mainnet, nile, shasta
--transport—stdioTransport: stdio, http
--port—8080HTTP server port
--bind—127.0.0.1HTTP server bind address
--fallback-nodeGOTRON_MCP_FALLBACK_NODE—Fallback gRPC node (auto-failover)
--keystore——Path to tronctl keystore directory
--tls—falseUse TLS for gRPC connection (default: plaintext)

Network Presets

NetworkDefault Node
mainnetgrpc.trongrid.io:50051
nilegrpc.nile.trongrid.io:50051
shastagrpc.shasta.trongrid.io:50051

Explicit --node overrides network presets.

Security

  • The server never stores or manages private keys directly
  • All write tools return unsigned transaction hex — the user decides how to sign
  • Keystore signing is opt-in via --keystore flag
  • In hosted (HTTP) mode, all write and sign tools are automatically disabled
  • API key is optional and only needed for TronGrid rate limits

Development

# Build
make build

# Format code
make fmt

# Run tests
make test

# Lint
make lint

# Run HTTP mode locally
make run-http

Community

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:

License

LGPL-3.0 — same as the GoTRON SDK.

Links

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
docker run -i --rm ghcr.io/fbsobreira/gotron-mcp:0.4.1

Set up in your AI client

Merge 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.

json
{
  "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 reference

Package

ghcr.io/fbsobreira/gotron-mcp:0.4.1docker

Compatible MCP Clients

GoTRON 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.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.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.

Learn More