MERX - TRON Resource Exchange
by merx.exchange · remote · local (npm) · no sign-in to list tools · v1.0.5 · published by exchange.merx
TRON energy exchange for AI agents. 54 tools, 30 prompts, 21 resources. A2A + ACP.
66 tools: 13 can delete or cancel things, 1 do something that can't be undone, 21 change things and 31 only read.
Scanned Oct 21, 2026
- Deletes or cancels13Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things21Claude Code: ask: see these tools
- Only reads31Claude Code: allow: see these tools
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http merx https://merx.exchange/mcp/sseFindings
Matches of fixed checks, with the text they matched.
- Warnconvert_address
The server marks "convert_address" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}; The name "convert_address" says "convert": a word for a change.
- Warnread_contract
The server marks "read_contract" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}; The name "read_contract" says "read": a word for reading.
The server marks "estimate_contract_call" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}; The name "estimate_contract_call" says "call": a word for a change.
- Warnlogin
The server marks "login" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}; The description's first verb is "log": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
66 tools
Deletes or cancels 13Claude Code: deny
approve_trc20Approve TRC-20 spending allowance.No findings
Why it is in this group
- The name "approve_trc20" says "approve": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Approve TRC-20 spending allowance. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
call_contractExecute a state-changing smart contract function.No findings
Why it is in this group
- The name "call_contract" says "call": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Execute a state-changing smart contract function. Estimates resources, buys via Merx if needed. Requires TRON_PRIVATE_KEY and TRON_ADDRESS.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
cancel_monitorCancel an active monitor by its UUID.No findings
Why it is in this group
- The name "cancel_monitor" says "cancel": a word for removing or ending something.
Description, as the server wrote it Cancel an active monitor by its UUID. The monitor stops firing notifications. Auth required (API key).
cancel_standing_orderCancel a standing order by its UUID.No findings
Why it is in this group
- The name "cancel_standing_order" says "cancel": a word for removing or ending something.
Description, as the server wrote it Cancel a standing order by its UUID. The order is moved to CANCELLED status and will not trigger again. Already-executed actions are NOT reversed. Auth required (API key).
create_paid_orderUnavailable legacy resource-invoice order.No findings
Why it is in this group
- The name "create_paid_order" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Unavailable legacy resource-invoice order. No transaction is sent. Fund your personal Merx account and use quoted resource orders instead.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
deposit_trxSend a plain TRX transfer to your personal Merx deposit address.No findings
Why it is in this group
- The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Send a plain TRX transfer to your personal Merx deposit address. No memo is required. Broadcast acceptance does not mean the deposit is credited. Requires MERX_API_KEY + TRON_PRIVATE_KEY.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
execute_intentPlan a multi-step operation (transfer, swap, buy resources, etc) and return a cost estimate, total energy/bandwidth needed, and the cheapest resource acquisition strategy.No findings
Why it is in this group
- The name "execute_intent" says "execute": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Plan a multi-step operation (transfer, swap, buy resources, etc) and return a cost estimate, total energy/bandwidth needed, and the cheapest resource acquisition strategy. NOTE: actual on-chain execution of multi-step intents is not yet wired up — currently returns the same plan as simulate, regardless of dry_run. Use this for planning; for real execution call the underlying tools (create_order, transfer_trc20, execute_swap) yourself in sequence. Auth required.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
execute_swapExecute a token swap on SunSwap V2.No findings
Why it is in this group
- The name "execute_swap" says "execute": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Execute a token swap on SunSwap V2. Requires TRON_PRIVATE_KEY.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
pay_invoiceUnavailable legacy resource-invoice payment.No findings
Why it is in this group
- The name "pay_invoice" says "pay": a word that usually means money moves, which cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Unavailable legacy resource-invoice payment. No transaction is sent. Fund your personal Merx account and use quoted resource orders instead.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
resource_broadcastBroadcast a signed TRON transaction with automatic energy optimization.No findings
Why it is in this group
- The name "resource_broadcast" says "broadcast": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Broadcast a signed TRON transaction with automatic energy optimization. If the target address lacks sufficient energy, MERX purchases the deficit at the best market price before broadcasting. One call: estimate, buy energy, wait for delegation, broadcast. Requires MERX_API_KEY with the "broadcast" scope, and a pre-signed transaction. Returns txid on success, refunds on timeout. NOTE: This endpoint is currently behind a feature flag and disabled by default in production. If you get a 503 MAINTENANCE error, use the manual flow instead: call ensure_resources to provision energy, then sign and broadcast the transaction with your own TronWeb client.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
transfer_trc20Transfer TRC-20 tokens with automatic energy optimization.No findings
Why it is in this group
- The name "transfer_trc20" says "transfer": a word for a change that another call does not undo.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Transfer TRC-20 tokens with automatic energy optimization. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
transfer_trxSend TRX to an address.No findings
Why it is in this group
- The name "transfer_trx" says "transfer": a word for a change that another call does not undo.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Send TRX to an address. Checks bandwidth, buys via Merx if needed. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
withdrawWithdraw TRX or USDT from your Merx account to an external TRON address.No findings
Why it is in this group
- The name "withdraw" says "withdraw": a word that usually means money moves, which cannot be taken back.
- The input carries an amount (input.amount) and a currency, so it moves money.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Withdraw TRX or USDT from your Merx account to an external TRON address. The "amount" parameter is interpreted in the currency specified by "currency" — i.e. for currency=TRX it is TRX units, for currency=USDT it is USDT units. (The legacy parameter "amount_trx" is still accepted as an alias for backwards compatibility, but is misleading when currency is USDT — prefer "amount" in new code.) Requires MERX_API_KEY.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
Can't be undone 1Claude Code: ask
request_paymentCreate a TRC20 payment request on TRON (USDT, USDC, USDD, or any TRC20).No findings
Why it is in this group
- The name "request_payment" says "request": a word for a change.
- The name "request_payment" also says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Create a TRC20 payment request on TRON (USDT, USDC, USDD, or any TRC20). Returns a payment address. Fires webhook when payment arrives (<3 seconds). Use for receiving payments from other agents or humans. Requires agent registration first — call register_agent if you get AGENT_NOT_REGISTERED error.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
Changes things 21Claude Code: ask
calculate_savingsCalculate savings from renting energy vs burning TRX.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculate savings from renting energy vs burning TRX. No authentication required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
check_address_resourcesCheck energy, bandwidth, and TRX balance for any TRON address.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check energy, bandwidth, and TRX balance for any TRON address. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
compile_policyConvert a natural language energy management policy into MERX automation.No findings
Why it is in this group
- The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a natural language energy management policy into MERX automation. Creates standing orders and monitors based on your instructions. Examples: - "Keep 500k energy on my wallet, buy when price is below 55 SUN, max 200 TRX/week" - "Buy energy every day at 6 AM UTC, 1 million units, for 24 hours" - "Alert me when my energy drops below 100k" Returns a preview of what will be created. Set apply=true to execute.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
convert_addressConvert TRON address between base58 (T...) and hex (41...) formats.1 finding
Why it is in this group
- The name "convert_address" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "convert_address" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}; The name "convert_address" says "convert": a word for a change.
Description, as the server wrote it Convert TRON address between base58 (T...) and hex (41...) formats. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
create_accountCreate a new Merx account, generate an API key, and get deposit info.No findings
Why it is in this group
- The name "create_account" says "create": a word for a change.
Description, as the server wrote it Create a new Merx account, generate an API key, and get deposit info. No auth needed.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
create_invoiceCreate an invoice for another agent or human to pay.No findings
Why it is in this group
- The name "create_invoice" says "create": a word for a change.
Description, as the server wrote it Create an invoice for another agent or human to pay. Returns payment URL, address, and QR code. Payment is detected automatically via ZeroMQ (<3 seconds).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
create_monitorCreate a persistent server-side monitor that fires notifications when a condition is met.No findings
Why it is in this group
- The name "create_monitor" says "create": a word for a change.
Description, as the server wrote it Create a persistent server-side monitor that fires notifications when a condition is met. Four monitor types: delegation_expiry (warns when leased energy is about to expire so you can re-rent), balance_threshold (fires when an address goes below a TRX/USDT level), price_alert (fires when energy/bandwidth price crosses a SUN threshold), address_activity (fires on any incoming TX). Notification defaults to webhook=true if omitted. Auth required (API key).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
create_orderBuy energy or bandwidth at the Merx market quote.No findings
Why it is in this group
- The name "create_order" says "create": a word for a change.
Description, as the server wrote it Buy energy or bandwidth at the Merx market quote. Confirmed Merx funds and API key required; no commission.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
create_standing_orderCreate a server-side standing order with trigger-based automation.No findings
Why it is in this group
- The name "create_standing_order" says "create": a word for a change.
Description, as the server wrote it Create a server-side standing order with trigger-based automation. Auth required.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
enable_auto_depositConfigure automatic top-up when balance drops below a threshold.No findings
Why it is in this group
- The name "enable_auto_deposit" says "enable": a word for a change.
Description, as the server wrote it Configure automatic top-up when balance drops below a threshold. The configuration lives ONLY in the current MCP session — it is held in memory by the MCP server process and is lost on server restart, MCP client reconnect, or server redeploy. Top-ups are signed locally with TRON_PRIVATE_KEY and sent as plain TRX transfers to your personal Merx deposit address, without a memo. For persistent auto-deposit you currently need to call this tool again at the start of each session.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
ensure_resourcesDeclarative resource provisioning.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Declarative resource provisioning. Checks current resources on target address and purchases only what is missing. Auth required.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
estimate_contract_callEstimate energy and bandwidth cost for a smart contract call.1 finding
Why it is in this group
- The name "estimate_contract_call" says "call": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "estimate_contract_call" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}; The name "estimate_contract_call" says "call": a word for a change.
Description, as the server wrote it Estimate energy and bandwidth cost for a smart contract call. Compares rental vs burn cost. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
estimate_transaction_costEstimate cost of a TRON transaction BEFORE sending.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Estimate cost of a TRON transaction BEFORE sending. Aliases: estimate_cost, calculate_cost, transaction_cost, energy_cost, transfer_cost. Calculate exactly how much energy, bandwidth, and TRX a TRON transaction will cost before sending it. Use this to answer questions like "how much does a USDT transfer cost?" or "what will it cost me to send 100 USDT to address X?". Returns: energy units needed, bandwidth needed, TRX cost if you burn directly, and TRX cost if you rent energy from Merx (typically 70-80% cheaper). Supports trc20_transfer (e.g. USDT/USDC), trc20_approve, trx_transfer, and custom contract calls. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
loginLog in to an existing Merx account.1 finding
Why it is in this group
- The description's first verb is "log": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "login" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}; The description's first verb is "log": a word for reading.
Description, as the server wrote it Log in to an existing Merx account. No MERX_API_KEY needed.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
read_contractCall a view/pure function on a TRON smart contract.1 finding
Why it is in this group
- The name "read_contract" says "read": a word for reading.
- The description's first verb is "call": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "read_contract" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}; The name "read_contract" says "read": a word for reading.
Description, as the server wrote it Call a view/pure function on a TRON smart contract. No auth or private key required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
register_agentRegister your TRON address as an agent on agent.merx.exchange.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Register your TRON address as an agent on agent.merx.exchange. Required ONCE before using request_payment, create_invoice, watch_address, agent_status, or any other agent payment tool. Pass the TRON address you want to use as the on-chain identity for this API key. Idempotent — calling twice with the same key returns the existing registration. Auth required (API key).
set_api_keySet your Merx API key for this session.No findings
Why it is in this group
- The name "set_api_key" says "set": a word for a change.
Description, as the server wrote it Set your Merx API key for this session. Unlocks all authenticated tools (trading, balance, orders). Use this if you already have an API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
set_private_keySet your TRON private key for this session.No findings
Why it is in this group
- The name "set_private_key" says "set": a word for a change.
Description, as the server wrote it Set your TRON private key for this session. Address is derived automatically. Enables write tools: transfer_trx, transfer_trc20, approve_trc20, execute_swap, deposit_trx. Key stays local - never sent to Merx servers.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
simulateDry-run a multi-step operation (transfer, swap, buy resources, etc) without sending anything on-chain.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Dry-run a multi-step operation (transfer, swap, buy resources, etc) without sending anything on-chain. Returns per-step energy and bandwidth estimates plus a total TRX cost. Use this to preview a plan before committing — for example, before transferring USDT to multiple recipients you can simulate to see the total energy cost. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
suggest_durationRecommend a rental duration based on your use case.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Recommend a rental duration based on your use case. No authentication required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
watch_addressWatch any TRON address for TRC20 transfers (USDT, USDC, USDD, or any token).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Watch any TRON address for TRC20 transfers (USDT, USDC, USDD, or any token). Fires webhook on each matching transfer. Persistent - runs 24/7 even when conversation ends.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
Only reads 31Claude Code: allow
agent_statusGet a snapshot of your agent payment service: registered TRON address, count of pending payment requests (request_payment), active address watches (watch_address), and outstanding …No findings
Why it is in this group
- The name "agent_status" says "status": a word for reading.
Description, as the server wrote it Get a snapshot of your agent payment service: registered TRON address, count of pending payment requests (request_payment), active address watches (watch_address), and outstanding invoices (create_invoice). Use this right after register_agent to confirm the agent is set up, or any time you want to see how much in-flight activity your agent has. Auth required (API key) and agent must be registered first via register_agent.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
analyze_pricesMarket price analysis with trends and recommendations.No findings
Why it is in this group
- The name "analyze_prices" says "analyze": a word for reading.
Description, as the server wrote it Market price analysis with trends and recommendations. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
compare_providersSide-by-side provider comparison with prices and availability.No findings
Why it is in this group
- The name "compare_providers" says "compare": a word for reading.
Description, as the server wrote it Side-by-side provider comparison with prices and availability. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
explain_conceptExplain a TRON or Merx concept in plain language.No findings
Why it is in this group
- The name "explain_concept" says "explain": a word for reading.
Description, as the server wrote it Explain a TRON or Merx concept in plain language. Hardcoded topics (exact match): energy, bandwidth, staking, delegation, sun_units, burn_vs_rent, merx_routing, provider_types. The lookup is fuzzy — substring matches also work, so "rent" finds "burn_vs_rent" and "providers" finds "provider_types". For topics outside this list (e.g. x402, stablecoins, gasfree), pick the closest hardcoded topic, or just answer the question yourself from the broader context — this tool only returns canned explanations of TRON resource economics.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_account_infoInspect any TRON address.No findings
Why it is in this group
- The name "get_account_info" says "get": a word for reading.
Description, as the server wrote it Inspect any TRON address. Aliases: check_address, get_address_info, get_wallet_info, address_info, account_status. Read the full on-chain state of ANY TRON address (does not have to be your own): TRX balance, free + delegated energy, free + delegated bandwidth, frozen TRX, account creation timestamp. Use this to check if an address has enough resources before sending a transaction, or to inspect any TRON wallet. No auth required, no API key needed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_balanceGet your Merx account balance (TRX, USDT, locked).No findings
Why it is in this group
- The name "get_balance" says "get": a word for reading.
Description, as the server wrote it Get your Merx account balance (TRX, USDT, locked). Requires MERX_API_KEY.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_best_priceQuick lookup of the single cheapest provider for a resource type, with optional minimum amount filter.No findings
Why it is in this group
- The name "get_best_price" says "get": a word for reading.
Description, as the server wrote it Quick lookup of the single cheapest provider for a resource type, with optional minimum amount filter. CAVEAT: this returns a single representative price per provider, not broken down by duration tier — short rentals (5min) and long rentals (30 days) have very different per-unit prices and this tool does not distinguish between them. For an accurate per-tier comparison, use get_prices(duration=N) where N is the exact rental duration in seconds (e.g. 3600 for 1h, 86400 for 1d, 2592000 for 30d). Use get_best_price only when you need the absolute floor price as a quick sanity-check. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_blockGet TRON block info by number (or latest if omitted).No findings
Why it is in this group
- The name "get_block" says "get": a word for reading.
Description, as the server wrote it Get TRON block info by number (or latest if omitted). No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_chain_parametersGet TRON network parameters (energy fee, bandwidth cost, etc.) with Merx price comparison.No findings
Why it is in this group
- The name "get_chain_parameters" says "get": a word for reading.
Description, as the server wrote it Get TRON network parameters (energy fee, bandwidth cost, etc.) with Merx price comparison. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_contract_infoGet on-chain metadata for a TRON smart contract: existence check, owner address, energy origin, code hash, contract name (if set), ABI entries count.No findings
Why it is in this group
- The name "get_contract_info" says "get": a word for reading.
Description, as the server wrote it Get on-chain metadata for a TRON smart contract: existence check, owner address, energy origin, code hash, contract name (if set), ABI entries count. Use this to check whether an address is a contract before calling read_contract or estimate_contract_call. For TRC20-specific metadata (name, symbol, decimals, totalSupply) use get_token_info instead. No auth required.
get_deposit_infoGet your personal TRON address for TRX deposits.No findings
Why it is in this group
- The name "get_deposit_info" says "get": a word for reading.
Description, as the server wrote it Get your personal TRON address for TRX deposits. No memo is required. Requires MERX_API_KEY.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_orderGet order status by UUID.No findings
Why it is in this group
- The name "get_order" says "get": a word for reading.
Description, as the server wrote it Get order status by UUID. Aliases: get_order_status, check_order, order_status, order_details, fetch_order. Check the status and fill details of an existing order by its UUID. Returns current status (PENDING/FILLING/FILLED/PARTIAL/FAILED/CANCELLED), fill amounts, provider used, on-chain delegation tx hash if delivered. Use this to poll order progress after creating an order. Auth required (API key).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_price_historyHistorical price snapshots.No findings
Why it is in this group
- The name "get_price_history" says "get": a word for reading.
Description, as the server wrote it Historical price snapshots. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_pricesGet current energy and bandwidth prices from all Merx providers, sorted by best (minimum) price across all duration tiers.No findings
Why it is in this group
- The name "get_prices" says "get": a word for reading.
Description, as the server wrote it Get current energy and bandwidth prices from all Merx providers, sorted by best (minimum) price across all duration tiers. Each provider lists ALL its duration tiers (5min/1h/1d/7d/30d etc) — short rentals are usually more expensive per unit than long ones, so always check tier-by-tier. Optionally filter by exact duration in seconds. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_standing_orderGet full details of a single standing order by its UUID.No findings
Why it is in this group
- The name "get_standing_order" says "get": a word for reading.
Description, as the server wrote it Get full details of a single standing order by its UUID. Returns trigger config, action params, budget, executions count, and status. Auth required (API key).
get_swap_quoteGet a real swap quote from SunSwap V2.No findings
Why it is in this group
- The name "get_swap_quote" says "get": a word for reading.
Description, as the server wrote it Get a real swap quote from SunSwap V2. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_token_infoGet TRC-20 token metadata: name, symbol, decimals, total supply.No findings
Why it is in this group
- The name "get_token_info" says "get": a word for reading.
Description, as the server wrote it Get TRC-20 token metadata: name, symbol, decimals, total supply. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_token_priceGet token price via SunSwap quote + CoinGecko USD rate.No findings
Why it is in this group
- The name "get_token_price" says "get": a word for reading.
Description, as the server wrote it Get token price via SunSwap quote + CoinGecko USD rate. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_transactionLook up a transaction by ID on TRON.No findings
Why it is in this group
- The name "get_transaction" says "get": a word for reading.
Description, as the server wrote it Look up a transaction by ID on TRON. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_transaction_historyGet your Merx account transaction history.No findings
Why it is in this group
- The name "get_transaction_history" says "get": a word for reading.
Description, as the server wrote it Get your Merx account transaction history. Requires MERX_API_KEY.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_trc20_balanceGet TRC-20 token balance for an address.No findings
Why it is in this group
- The name "get_trc20_balance" says "get": a word for reading.
Description, as the server wrote it Get TRC-20 token balance for an address. Supports symbol (USDT, USDC) or contract address. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_trx_balanceQuick TRX balance for a TRON address.No findings
Why it is in this group
- The name "get_trx_balance" says "get": a word for reading.
Description, as the server wrote it Quick TRX balance for a TRON address. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
get_trx_priceGet current TRX price from CoinGecko.No findings
Why it is in this group
- The name "get_trx_price" says "get": a word for reading.
Description, as the server wrote it Get current TRX price from CoinGecko. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
list_monitorsList all monitors you created with create_monitor, optionally filtered by status (ACTIVE/CANCELLED).No findings
Why it is in this group
- The name "list_monitors" says "list": a word for reading.
Description, as the server wrote it List all monitors you created with create_monitor, optionally filtered by status (ACTIVE/CANCELLED). Each row shows the full monitor UUID (pass to cancel_monitor), monitor type, target address, and status. Note: the Target column will be empty for monitor types that do not have a single watched address — specifically price_alert and balance_threshold (when watching the API key holder rather than a third-party address). For delegation_expiry and address_activity monitors, Target will always be set. Auth required (API key).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
list_ordersList recent orders with optional status filter.No findings
Why it is in this group
- The name "list_orders" says "list": a word for reading.
Description, as the server wrote it List recent orders with optional status filter. Auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
list_providersList all Merx providers with types, durations, and availability.No findings
Why it is in this group
- The name "list_providers" says "list": a word for reading.
Description, as the server wrote it List all Merx providers with types, durations, and availability. No authentication required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
list_standing_ordersList all standing orders with optional status filter.No findings
Why it is in this group
- The name "list_standing_orders" says "list": a word for reading.
Description, as the server wrote it List all standing orders with optional status filter. Auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
lookup_invoiceLook up a MERX invoice.No findings
Why it is in this group
- The name "lookup_invoice" says "lookup": a word for reading.
Description, as the server wrote it Look up a MERX invoice. Shows amount, recipient, token, and status. Agent must sign and broadcast the transfer separately (non-custodial).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
search_transaction_historyGet on-chain transaction history for a TRON address.No findings
Why it is in this group
- The name "search_transaction_history" says "search": a word for reading.
Description, as the server wrote it Get on-chain transaction history for a TRON address. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
validate_addressValidate a TRON address format and check on-chain status.No findings
Why it is in this group
- The name "validate_address" says "validate": a word for reading.
Description, as the server wrote it Validate a TRON address format and check on-chain status. No auth required.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
wait_for_delegationBlock until an order reaches a terminal state (FILLED, PARTIAL, FAILED, or CANCELLED) by polling get_order at fixed intervals.No findings
Why it is in this group
- The name "wait_for_delegation" says "wait": a word for reading.
Description, as the server wrote it Block until an order reaches a terminal state (FILLED, PARTIAL, FAILED, or CANCELLED) by polling get_order at fixed intervals. Use this right after create_order when you need to confirm the energy/bandwidth has actually been delegated on-chain before sending the next transaction. Returns the final order details including the on-chain delegation tx hash. Auth required.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.5. Values in angle brackets are yours to fill in.
claude mcp add --transport http merx https://merx.exchange/mcp/sseRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__merx__get_prices",
"mcp__merx__get_best_price",
"mcp__merx__analyze_prices",
"mcp__merx__get_price_history",
"mcp__merx__compare_providers",
"mcp__merx__get_order",
"mcp__merx__list_orders",
"mcp__merx__wait_for_delegation",
"mcp__merx__get_balance",
"mcp__merx__get_deposit_info",
"mcp__merx__get_transaction_history",
"mcp__merx__explain_concept",
"mcp__merx__list_providers",
"mcp__merx__get_account_info",
"mcp__merx__get_trx_balance",
"mcp__merx__get_trc20_balance",
"mcp__merx__get_transaction",
"mcp__merx__get_block",
"mcp__merx__get_chain_parameters",
"mcp__merx__get_trx_price",
"mcp__merx__validate_address",
"mcp__merx__search_transaction_history",
"mcp__merx__get_token_info",
"mcp__merx__get_contract_info",
"mcp__merx__get_swap_quote",
"mcp__merx__get_token_price",
"mcp__merx__list_standing_orders",
"mcp__merx__get_standing_order",
"mcp__merx__list_monitors",
"mcp__merx__lookup_invoice",
"mcp__merx__agent_status"
],
"ask": [
"mcp__merx__estimate_transaction_cost",
"mcp__merx__check_address_resources",
"mcp__merx__create_order",
"mcp__merx__ensure_resources",
"mcp__merx__suggest_duration",
"mcp__merx__calculate_savings",
"mcp__merx__convert_address",
"mcp__merx__read_contract",
"mcp__merx__estimate_contract_call",
"mcp__merx__create_account",
"mcp__merx__login",
"mcp__merx__set_api_key",
"mcp__merx__set_private_key",
"mcp__merx__enable_auto_deposit",
"mcp__merx__simulate",
"mcp__merx__create_standing_order",
"mcp__merx__create_monitor",
"mcp__merx__compile_policy",
"mcp__merx__register_agent",
"mcp__merx__request_payment",
"mcp__merx__create_invoice",
"mcp__merx__watch_address"
],
"deny": [
"mcp__merx__transfer_trx",
"mcp__merx__transfer_trc20",
"mcp__merx__approve_trc20",
"mcp__merx__call_contract",
"mcp__merx__execute_swap",
"mcp__merx__deposit_trx",
"mcp__merx__pay_invoice",
"mcp__merx__create_paid_order",
"mcp__merx__execute_intent",
"mcp__merx__cancel_standing_order",
"mcp__merx__cancel_monitor",
"mcp__merx__withdraw",
"mcp__merx__resource_broadcast"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as merx. Review it before you use it.