# `io.github.fbsobreira/gotron-mcp` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/io.github.fbsobreira/gotron-mcp
- JSON: https://anlyon.dev/api/v1/servers/io.github.fbsobreira/gotron-mcp
- Version: 0.4.1 (active)
- Publisher: io.github.fbsobreira (GitHub account)
- Runs: remote (streamable-http), local (oci)
- Sign-in to list tools: none
- Repository: https://github.com/fbsobreira/gotron-mcp
- Metadata from the official MCP Registry, synced 2026-10-21T18:34:00.530Z

Title and description, as the publisher wrote them:

```untrusted-server-text
GoTRON MCP
TRON blockchain: accounts, TRC20 tokens, staking, contracts, resources and transaction builders
```

Scanned 2026-10-21T19:22:33.405Z over streamable-http.

**44 tools: 44 can delete or cancel things.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 44 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 0 | ask |
| Only reads | read | 0 | allow |

## Exfil surface

No private-data -> untrusted-input -> outbound path in this server alone: no tool is tagged private-data or outbound.

| Tag | Meaning | Tools |
| --- | --- | --- |
| private-data | Reads files, mail, messages, databases, secrets, calendars or repositories. | none |
| untrusted-input | Brings in text someone else can write: web pages, inbound email, messages, issues and comments. | `mcp__gotron__analyze_account` `mcp__gotron__analyze_transfer_cost` `mcp__gotron__decode_abi_output` `mcp__gotron__delegate_resource` `mcp__gotron__estimate_energy` `mcp__gotron__estimate_trc20_energy` `mcp__gotron__freeze_balance` `mcp__gotron__get_account` `mcp__gotron__get_account_permissions` `mcp__gotron__get_account_resources` `mcp__gotron__get_bandwidth_prices` `mcp__gotron__get_block` `mcp__gotron__get_chain_parameters` `mcp__gotron__get_contract_abi` `mcp__gotron__get_contract_events` `mcp__gotron__get_delegatable_amount` `mcp__gotron__get_delegated_resources` `mcp__gotron__get_energy_prices` `mcp__gotron__get_network` `mcp__gotron__get_pending_by_address` `mcp__gotron__get_pending_transactions` `mcp__gotron__get_pq_capabilities` `mcp__gotron__get_proposal` `mcp__gotron__get_token_price` `mcp__gotron__get_transaction` `mcp__gotron__get_transaction_history` `mcp__gotron__get_trc20_allowance` `mcp__gotron__get_trc20_balance` `mcp__gotron__get_trc20_token_info` `mcp__gotron__get_trc20_transfers` `mcp__gotron__is_transaction_pending` `mcp__gotron__list_contract_methods` `mcp__gotron__list_proposals` `mcp__gotron__list_witnesses` `mcp__gotron__revoke_approval` `mcp__gotron__transfer_trc20` `mcp__gotron__transfer_trx` `mcp__gotron__trigger_constant_contract` `mcp__gotron__trigger_contract` `mcp__gotron__undelegate_resource` `mcp__gotron__unfreeze_balance` `mcp__gotron__validate_address` `mcp__gotron__vote_witness` `mcp__gotron__withdraw_expire_unfreeze` |
| outbound | Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL. | none |

## Findings

- **warn** Annotations that disagree with the tool in `analyze_account` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "analyze_account" destructive (destructiveHint: true), and its name says "analyze", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "analyze_account" says "analyze": a word for reading.
```

- **warn** Annotations that disagree with the tool in `analyze_transfer_cost` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "analyze_transfer_cost" destructive (destructiveHint: true), and its name says "analyze", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "analyze_transfer_cost" says "analyze": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_account` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_account" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_account" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_account_permissions` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_account_permissions" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_account_permissions" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_account_resources` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_account_resources" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_account_resources" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_bandwidth_prices` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_bandwidth_prices" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_bandwidth_prices" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_block` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_block" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_block" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_chain_parameters` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_chain_parameters" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_chain_parameters" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_contract_abi` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_contract_abi" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_contract_abi" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_contract_events` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_contract_events" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_contract_events" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_delegatable_amount` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_delegatable_amount" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_delegatable_amount" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_delegated_resources` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_delegated_resources" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_delegated_resources" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_energy_prices` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_energy_prices" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_energy_prices" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_network` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_network" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_network" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_pending_by_address` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_pending_by_address" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_pending_by_address" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_pending_transactions` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_pending_transactions" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_pending_transactions" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_pq_capabilities` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_pq_capabilities" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_pq_capabilities" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_proposal` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_proposal" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_proposal" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_token_price` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_token_price" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_token_price" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_transaction` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_transaction" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_transaction" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_transaction_history` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_transaction_history" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_transaction_history" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_trc20_allowance` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_trc20_allowance" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_trc20_allowance" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_trc20_balance` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_trc20_balance" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_trc20_balance" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_trc20_token_info` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_trc20_token_info" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_trc20_token_info" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `get_trc20_transfers` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "get_trc20_transfers" destructive (destructiveHint: true), and its name says "get", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "get_trc20_transfers" says "get": a word for reading.
```

- **warn** Annotations that disagree with the tool in `list_contract_methods` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "list_contract_methods" destructive (destructiveHint: true), and its name says "list", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "list_contract_methods" says "list": a word for reading.
```

- **warn** Annotations that disagree with the tool in `list_proposals` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "list_proposals" destructive (destructiveHint: true), and its name says "list", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "list_proposals" says "list": a word for reading.
```

- **warn** Annotations that disagree with the tool in `list_witnesses` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "list_witnesses" destructive (destructiveHint: true), and its name says "list", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "list_witnesses" says "list": a word for reading.
```

- **warn** Annotations that disagree with the tool in `validate_address` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "validate_address" destructive (destructiveHint: true), and its name says "validate", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "validate_address" says "validate": a word for reading.
```


## Deletes or cancels (44)

Removes, cancels or revokes something. Claude Code: deny.

### `analyze_account`

- The name "analyze_account" says "analyze": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Comprehensive account overview: balance, resources, staking, voting, permissions, and delegations in a single call
```

### `analyze_transfer_cost`

- The name "analyze_transfer_cost" says "analyze": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Estimate the cost of a TRX or TRC20 transfer: energy, bandwidth, and TRX burn options
```

### `decode_abi_output`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Decode ABI-encoded output hex from a contract call. Handles return values, revert reasons (Error(string)), and panic codes (Panic(uint256)).
```

### `delegate_resource`

- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Delegate energy or bandwidth to another address (Stake 2.0). Returns unsigned transaction hex for signing.
```

### `estimate_energy`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Estimate energy cost for a smart contract call. Requires a full node with vm.supportConstant=true and vm.estimateEnergy=true; falls back to secondary node if primary does not support it.
```

### `estimate_trc20_energy`

- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Estimate energy cost for a TRC20 transfer without creating a transaction. Dry-runs the transfer to check energy requirements.
```

### `freeze_balance`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Stake TRX for energy or bandwidth (Stake 2.0). Returns unsigned transaction hex for signing.
```

### `get_account`

- The name "get_account" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get TRON account balance and details including TRX balance, bandwidth, energy, frozen resources, and account type
```

### `get_account_permissions`

- The name "get_account_permissions" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get the permission structure of a TRON account including owner, active, and witness permissions with multi-sig keys and thresholds
```

### `get_account_resources`

- The name "get_account_resources" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get energy and bandwidth usage and limits for a TRON account
```

### `get_bandwidth_prices`

- The name "get_bandwidth_prices" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get current and historical bandwidth prices on the TRON network
```

### `get_block`

- The name "get_block" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get a TRON block by number or latest. Use include_transactions to get transaction details with decoded contract data (sender, receiver, amounts) and pagination.
```

### `get_chain_parameters`

- The name "get_chain_parameters" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get TRON network node info and current energy/bandwidth prices
```

### `get_contract_abi`

- The name "get_contract_abi" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get the ABI of a smart contract on TRON. Automatically resolves proxy contracts (ERC-1967). Note: many TRON contracts are deployed without on-chain ABI — if empty, check TronScan for verified source code.
```

### `get_contract_events`

- The name "get_contract_events" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get decoded events emitted by a smart contract via TronGrid REST API. Returns a compact summary per event. Use a small limit and paginate with fingerprint to control response size
```

### `get_delegatable_amount`

- The name "get_delegatable_amount" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get the maximum amount of energy or bandwidth an account can still delegate
```

### `get_delegated_resources`

- The name "get_delegated_resources" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get resources delegated to and from an account (Stake 2.0 delegation info)
```

### `get_energy_prices`

- The name "get_energy_prices" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get current and historical energy prices on the TRON network
```

### `get_network`

- The name "get_network" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get current MCP server connection info: network name, node address, and latest block
```

### `get_pending_by_address`

- The name "get_pending_by_address" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get pending transactions for a specific address from the mempool
```

### `get_pending_transactions`

- The name "get_pending_transactions" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
List pending transaction IDs and pool size from the mempool
```

### `get_pq_capabilities`

- The name "get_pq_capabilities" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data. The description's first sentence says "post": it reads posts, which other people can write.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Report which TIP-899 post-quantum signature schemes the connected node enables and this build can sign (FN-DSA-512 needs the gotron-mcp-pq build). TIP-899 is a draft live only on Nile. can_sign reflects the node and this build; signing also needs local mode with a keystore.
```

### `get_proposal`

- The name "get_proposal" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get full details of a governance proposal by ID, including the complete list of approval addresses.
```

### `get_token_price`

- The name "get_token_price" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get the current USD price of TRX or a TRC20 token. Uses CoinGecko with caching.
```

### `get_transaction`

- The name "get_transaction" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get transaction details by transaction ID
```

### `get_transaction_history`

- The name "get_transaction_history" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get transaction history for a TRON address via TronGrid REST API. Returns a compact summary per transaction. Use a small limit and paginate with fingerprint to control response size
```

### `get_trc20_allowance`

- The name "get_trc20_allowance" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Query how many tokens a spender is approved to transfer on behalf of the owner. Flags unlimited approvals as high risk.
```

### `get_trc20_balance`

- The name "get_trc20_balance" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get TRC20 token balance for an account
```

### `get_trc20_token_info`

- The name "get_trc20_token_info" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get TRC20 token metadata (name, symbol, decimals, total supply)
```

### `get_trc20_transfers`

- The name "get_trc20_transfers" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get TRC20 token transfer history for a TRON address via TronGrid REST API. Returns a compact summary per transfer with token info. Use a small limit and paginate with fingerprint to control response size
```

### `is_transaction_pending`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Check if a specific transaction is still in the pending pool (mempool)
```

### `list_contract_methods`

- The name "list_contract_methods" says "list": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Get a human-readable summary of a smart contract's methods with signatures, inputs, outputs, and mutability. Auto-resolves proxy contracts.
```

### `list_proposals`

- The name "list_proposals" says "list": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
List governance proposals on the TRON network with pagination support. Returns a compact summary per proposal (use get_proposal for full details including approval addresses). Newest first by default.
```

### `list_witnesses`

- The name "list_witnesses" says "list": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
List super representatives (witnesses) on the TRON network with pagination support.
```

### `revoke_approval`

- The name "revoke_approval" says "revoke": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Build unsigned transaction to revoke a TRC20 token approval (sets allowance to 0)
```

### `transfer_trc20`

- The name "transfer_trc20" says "transfer": a word for a change that another call does not undo.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Create an unsigned TRC20 token transfer transaction. Returns transaction hex for signing.
```

### `transfer_trx`

- The name "transfer_trx" says "transfer": a word for a change that another call does not undo.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Create an unsigned TRX transfer transaction. Returns transaction hex for signing.
```

### `trigger_constant_contract`

- The name "trigger_constant_contract" says "trigger": a word for a change.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Call a read-only (view/pure) smart contract method. No transaction created, no fees. Returns decoded result. Provide either method+params OR data (pre-packed calldata).
```

### `trigger_contract`

- The name "trigger_contract" says "trigger": a word for a change.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Call a smart contract method. Returns unsigned transaction hex for signing. Provide either method+params OR data (pre-packed calldata).
```

### `undelegate_resource`

- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Reclaim previously delegated energy or bandwidth (Stake 2.0). Returns unsigned transaction hex for signing.
```

### `unfreeze_balance`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Unstake TRX (Stake 2.0). Returns unsigned transaction hex for signing. Note: unstaked TRX has a 14-day withdrawal period.
```

### `validate_address`

- The name "validate_address" says "validate": a word for reading.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Validate a TRON address and convert supported inputs to TRON base58/hex. Accepts base58 (T...), TRON hex (41...), or Ethereum/EVM format (0x...).
```

### `vote_witness`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Vote for super representatives. Returns unsigned transaction hex for signing. Requires staked TRX (1 TRX staked = 1 vote).
```

### `withdraw_expire_unfreeze`

- The name "withdraw_expire_unfreeze" says "withdraw": a word that usually means money moves, which cannot be taken back.
- The server marks it destructive (destructiveHint: true).
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Withdraw TRX that has completed the 14-day unstaking period (Stake 2.0). Returns unsigned transaction hex for signing.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `gotron`:

```json
{
  "permissions": {
    "allow": [],
    "ask": [],
    "deny": [
      "mcp__gotron__analyze_account",
      "mcp__gotron__analyze_transfer_cost",
      "mcp__gotron__decode_abi_output",
      "mcp__gotron__delegate_resource",
      "mcp__gotron__estimate_energy",
      "mcp__gotron__estimate_trc20_energy",
      "mcp__gotron__freeze_balance",
      "mcp__gotron__get_account",
      "mcp__gotron__get_account_permissions",
      "mcp__gotron__get_account_resources",
      "mcp__gotron__get_bandwidth_prices",
      "mcp__gotron__get_block",
      "mcp__gotron__get_chain_parameters",
      "mcp__gotron__get_contract_abi",
      "mcp__gotron__get_contract_events",
      "mcp__gotron__get_delegatable_amount",
      "mcp__gotron__get_delegated_resources",
      "mcp__gotron__get_energy_prices",
      "mcp__gotron__get_network",
      "mcp__gotron__get_pending_by_address",
      "mcp__gotron__get_pending_transactions",
      "mcp__gotron__get_pq_capabilities",
      "mcp__gotron__get_proposal",
      "mcp__gotron__get_token_price",
      "mcp__gotron__get_transaction",
      "mcp__gotron__get_transaction_history",
      "mcp__gotron__get_trc20_allowance",
      "mcp__gotron__get_trc20_balance",
      "mcp__gotron__get_trc20_token_info",
      "mcp__gotron__get_trc20_transfers",
      "mcp__gotron__is_transaction_pending",
      "mcp__gotron__list_contract_methods",
      "mcp__gotron__list_proposals",
      "mcp__gotron__list_witnesses",
      "mcp__gotron__revoke_approval",
      "mcp__gotron__transfer_trc20",
      "mcp__gotron__transfer_trx",
      "mcp__gotron__trigger_constant_contract",
      "mcp__gotron__trigger_contract",
      "mcp__gotron__undelegate_resource",
      "mcp__gotron__unfreeze_balance",
      "mcp__gotron__validate_address",
      "mcp__gotron__vote_witness",
      "mcp__gotron__withdraw_expire_unfreeze"
    ]
  }
}
```

Capability tags behind the rules (a read tagged outbound is asked about):

- `mcp__gotron__analyze_account`: untrusted-input
- `mcp__gotron__analyze_transfer_cost`: untrusted-input
- `mcp__gotron__decode_abi_output`: untrusted-input
- `mcp__gotron__delegate_resource`: untrusted-input
- `mcp__gotron__estimate_energy`: untrusted-input
- `mcp__gotron__estimate_trc20_energy`: untrusted-input
- `mcp__gotron__freeze_balance`: untrusted-input
- `mcp__gotron__get_account`: untrusted-input
- `mcp__gotron__get_account_permissions`: untrusted-input
- `mcp__gotron__get_account_resources`: untrusted-input
- `mcp__gotron__get_bandwidth_prices`: untrusted-input
- `mcp__gotron__get_block`: untrusted-input
- `mcp__gotron__get_chain_parameters`: untrusted-input
- `mcp__gotron__get_contract_abi`: untrusted-input
- `mcp__gotron__get_contract_events`: untrusted-input
- `mcp__gotron__get_delegatable_amount`: untrusted-input
- `mcp__gotron__get_delegated_resources`: untrusted-input
- `mcp__gotron__get_energy_prices`: untrusted-input
- `mcp__gotron__get_network`: untrusted-input
- `mcp__gotron__get_pending_by_address`: untrusted-input
- `mcp__gotron__get_pending_transactions`: untrusted-input
- `mcp__gotron__get_pq_capabilities`: untrusted-input
- `mcp__gotron__get_proposal`: untrusted-input
- `mcp__gotron__get_token_price`: untrusted-input
- `mcp__gotron__get_transaction`: untrusted-input
- `mcp__gotron__get_transaction_history`: untrusted-input
- `mcp__gotron__get_trc20_allowance`: untrusted-input
- `mcp__gotron__get_trc20_balance`: untrusted-input
- `mcp__gotron__get_trc20_token_info`: untrusted-input
- `mcp__gotron__get_trc20_transfers`: untrusted-input
- `mcp__gotron__is_transaction_pending`: untrusted-input
- `mcp__gotron__list_contract_methods`: untrusted-input
- `mcp__gotron__list_proposals`: untrusted-input
- `mcp__gotron__list_witnesses`: untrusted-input
- `mcp__gotron__revoke_approval`: untrusted-input
- `mcp__gotron__transfer_trc20`: untrusted-input
- `mcp__gotron__transfer_trx`: untrusted-input
- `mcp__gotron__trigger_constant_contract`: untrusted-input
- `mcp__gotron__trigger_contract`: untrusted-input
- `mcp__gotron__undelegate_resource`: untrusted-input
- `mcp__gotron__unfreeze_balance`: untrusted-input
- `mcp__gotron__validate_address`: untrusted-input
- `mcp__gotron__vote_witness`: untrusted-input
- `mcp__gotron__withdraw_expire_unfreeze`: untrusted-input

## Remote posture

What an anonymous client saw at the remote endpoint, last 2026-10-22T14:59:07.044Z, unchanged since 2026-10-22T14:59:07.044Z. No credentials were sent and no tool was called. Values are shown as the endpoint returned them. Method: https://anlyon.dev/methodology#remote-posture

| Fact | Observed |
| --- | --- |
| Reachable | `yes` |
| HTTP status of an anonymous initialize | `200` |
| tools/list served without credentials | `yes` |
| Tools that change things, listed without credentials | `44` |
| Protocol version | `2025-06-18` |
| WWW-Authenticate on 401 | `not observed` |
| resource_metadata in WWW-Authenticate | `none` |
| RFC 9728 protected resource metadata | `none` |
| Authorization servers | `none` |
| Legacy HTTP+SSE transport | `no` |
| Dynamic client registration | `not observed` |
| Client ID metadata documents | `not observed` |

- **high** Tools that change things, listed to anyone ([unauth-remote-writes](https://anlyon.dev/methodology#unauth-remote-writes))

```untrusted-server-text
The endpoint served tools/list without credentials, and the list has 44 tools that change things (44 destructive). Whether a call also works without credentials was not tested: tools are never called.

https://mcp.gotron.sh/mcp: tools/list returned 44 tools to an anonymous client, including analyze_account (destructive), analyze_transfer_cost (destructive), decode_abi_output (destructive), delegate_resource (destructive), estimate_energy (destructive) and 39 more
```
