Search / exchange.merx/mcp
MERX - TRON Resource Exchange
R0· no sign-inTRON energy exchange for AI agents. 54 tools, 30 prompts, 21 resources. A2A + ACP.
v1.0.5 · active · repository · descriptor JSON · versions
Search / exchange.merx/mcp
R0· no sign-inTRON energy exchange for AI agents. 54 tools, 30 prompts, 21 resources. A2A + ACP.
v1.0.5 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"merx": {
"type": "http",
"url": "https://merx.exchange/mcp/sse"
}
}
}claude mcp add --transport http merx https://merx.exchange/mcp/sse[mcp_servers.merx]
url = "https://merx.exchange/mcp/sse"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"merx": {
"type": "remote",
"url": "https://merx.exchange/mcp/sse",
"enabled": true
}
}
}{
"mcpServers": {
"merx": {
"type": "http",
"url": "https://merx.exchange/mcp/sse"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=merx&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWVyeC5leGNoYW5nZS9tY3Avc3NlIn0%3D"
}{
"servers": {
"merx": {
"type": "http",
"url": "https://merx.exchange/mcp/sse"
}
}
}{
"mcpServers": {
"merx": {
"httpUrl": "https://merx.exchange/mcp/sse"
}
}
}extensions:
"merx":
enabled: true
name: "merx"
type: streamable_http
uri: "https://merx.exchange/mcp/sse"
timeout: 300
protocol.modernnewest supported version is 2024-11-05; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations60 of 66 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: read_contract (openWorldHint); create_account (openWorldHint); list_standing_orders (openWorldHint); …tools.token_costabout 9,204 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes12 tool changes in 30 daysstability.rug_pull5 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns7 advisories to act on (malicious, or rated high or critical with a fix available): GHSA-3pq3-5fj3-cg6v in [email protected] (indirect, fixed in 1.20.0), GHSA-542g-h47m-68v8 in [email protected] (indirect, fixed in 1.20.0), GHSA-c29m-xwm3-cm6r in [email protected] (indirect, fixed in 1.20.0), ...; 5 more of lower severity or without a fixdeps.mcp_sdk_versionthe official MCP SDK is not in the dependency graphdeps.resolvable[email protected] resolved: 52 packagescreate_orderchangeddescriptionBuy energy or bandwidth at the Merx market quote, fulfilled by PowerSun. Confirmed Merx funds and API key required; no commission.
Buy energy or bandwidth at the Merx market quote. Confirmed Merx funds and API key required; no commission.
create_paid_orderchangeddescription, input schemameaning changedCreate a zero-registration order via x402 pay-per-use. Requires TRON_PRIVATE_KEY.
Unavailable legacy resource-invoice order. No transaction is sent. Fund your personal Merx account and use quoted resource orders instead.
pay_invoicechangeddescription, input schemameaning changedPay an x402 invoice by signing and broadcasting a TRX transfer to the invoice address, then verifying the payment with the facilitator. x402 (Coinbase + Cloudflare HTTP 402 standard) is the protocol AI agents use to pay APIs per call. Use this when you receive an invoice_id from a paywalled service or another agent. REQUIRES: TRON_PRIVATE_KEY in env (use set_private_key first) AND a valid invoice_id from create_invoice or x402 challenge response. The transfer is signed locally — your private key never leaves the MCP process.
Unavailable legacy resource-invoice payment. No transaction is sent. Fund your personal Merx account and use quoted resource orders instead.
enable_auto_depositchangeddescriptionConfigure 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 to your Merx deposit address (memo-routed). For persistent auto-deposit you currently need to call this tool again at the start of each session.
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.
deposit_trxchangeddescriptionmeaning changedDeposit TRX to your Merx account. Requires MERX_API_KEY + TRON_PRIVATE_KEY.
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.
get_deposit_infochangeddescriptionmeaning changedGet your Merx deposit address and memo. Requires MERX_API_KEY.
Get your personal TRON address for TRX deposits. No memo is required. Requires MERX_API_KEY.
execute_swapchangedinput schemacall_contractchangedinput schemaapprove_trc20changedinput schematransfer_trc20changedinput schemaShowing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +dns-namespace +reachable +uptime-100% -stale-201d
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] npm51 dependencies, resolved · advisories checked 2026-10-19
| advisory | severity | package | fixed in |
|---|---|---|---|
| GHSA-3pq3-5fj3-cg6vAxios: HTTP/2 adapter bypasses configured DNS lookup and proxy controls | high | [email protected]indirect | fixed in 1.20.0 |
| GHSA-542g-h47m-68v8Axios: Denial of Service via Unhandled 'error' Event in HTTP/2 ClientHttp2Session Initialization | high | [email protected]indirect | fixed in 1.20.0 |
| GHSA-c29m-xwm3-cm6rAxios: ReDoS in fromDataURI data: URL parser freezes the Node event loop (DoS) | high | [email protected]indirect | fixed in 1.20.0 |
| GHSA-m8m8-qj5v-23w3Axios: Node HTTP adapter prototype-pollution gadget allows request socket hijack via inherited createConnection | high | [email protected]indirect | fixed in 1.20.0 |
| GHSA-mghh-pgcx-3jjjAxios: ReDoS (O(N²)) in shouldBypassProxy host normalization, reachable via untrusted redirect Location | high | [email protected]indirect | fixed in 1.20.0 |
| GHSA-r4gj-5m52-g5whAxios: maxRedirects: 0 is not enforced by the fetch adapter, allowing redirect-based SSRF | high | [email protected]indirect | fixed in 1.20.0 |
| GHSA-x97p-jq2g-jp4fAxios: Prototype Pollution Gadget in axios toFormData Options | high | [email protected]indirect | fixed in 1.20.0 |
| GHSA-44g4-m2mj-wpvxAxios: CIDR-form NO_PROXY entries are ignored, causing proxy exclusion bypass for internal IP ranges | moderate | [email protected]indirect | fixed in 1.20.0 |
| GHSA-4hqw-qxg8-jxx2Axios: Fetch Adapter Header Injection via Inherited FormData getHeaders | moderate | [email protected]indirect | fixed in 1.20.0 |
| GHSA-9fr6-4gfg-395gAxios: Prototype-Pollution Gadget in the Default Instance Allows Inherited Object.prototype.method to Override HTTP Method | moderate | [email protected]indirect | fixed in 1.20.0 |
2 more advisories in the dependencies endpoint.
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://merx.exchange/mcp/sse streamable-http | none | yes | 100% | 493 ms | 2024-11-05 | 2026-10-20 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
merx-mcp | npm | 1.0.5 | – | MERX_API_KEY, TRON_PRIVATE_KEY |
agent_statusread-only | 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. |
analyze_pricesread-only | Market price analysis with trends and recommendations. No auth required. |
approve_trc20destructive | Approve TRC-20 spending allowance. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY. |
calculate_savingsread-only | Calculate savings from renting energy vs burning TRX. No authentication required. |
call_contractdestructive | Execute a state-changing smart contract function. Estimates resources, buys via Merx if needed. Requires TRON_PRIVATE_KEY and TRON_ADDRESS. |
cancel_monitor | Cancel an active monitor by its UUID. The monitor stops firing notifications. Auth required (API key). |
cancel_standing_order | 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). |
check_address_resourcesread-only | Check energy, bandwidth, and TRX balance for any TRON address. No auth required. |
compare_providersread-only | Side-by-side provider comparison with prices and availability. No auth required. |
compile_policy | 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. |
convert_addressread-only | Convert TRON address between base58 (T...) and hex (41...) formats. No auth required. |
create_account | Create a new Merx account, generate an API key, and get deposit info. No auth needed. |
create_invoice | 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). |
create_monitor | 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). |
create_order | Buy energy or bandwidth at the Merx market quote. Confirmed Merx funds and API key required; no commission. |
create_paid_orderdestructive | Unavailable legacy resource-invoice order. No transaction is sent. Fund your personal Merx account and use quoted resource orders instead. |
create_standing_order | Create a server-side standing order with trigger-based automation. Auth required. |
deposit_trxdestructive | 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. |
enable_auto_deposit | 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. |
ensure_resources | Declarative resource provisioning. Checks current resources on target address and purchases only what is missing. Auth required. |
estimate_contract_callread-only | Estimate energy and bandwidth cost for a smart contract call. Compares rental vs burn cost. No auth required. |
estimate_transaction_costread-only | 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. |
execute_intentdestructive | 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. |
execute_swapdestructive | Execute a token swap on SunSwap V2. Requires TRON_PRIVATE_KEY. |
explain_conceptread-only | 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. |
get_account_inforead-only | 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. |
get_balanceread-only | Get your Merx account balance (TRX, USDT, locked). Requires MERX_API_KEY. |
get_best_priceread-only | 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. |
get_blockread-only | Get TRON block info by number (or latest if omitted). No auth required. |
get_chain_parametersread-only | Get TRON network parameters (energy fee, bandwidth cost, etc.) with Merx price comparison. No auth required. |
get_contract_info | 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_inforead-only | Get your personal TRON address for TRX deposits. No memo is required. Requires MERX_API_KEY. |
get_orderread-only | 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). |
get_price_historyread-only | Historical price snapshots. No auth required. |
get_pricesread-only | 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. |
get_standing_order | 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_quoteread-only | Get a real swap quote from SunSwap V2. No auth required. |
get_token_inforead-only | Get TRC-20 token metadata: name, symbol, decimals, total supply. No auth required. |
get_token_priceread-only | Get token price via SunSwap quote + CoinGecko USD rate. No auth required. |
get_transactionread-only | Look up a transaction by ID on TRON. No auth required. |
get_transaction_historyread-only | Get your Merx account transaction history. Requires MERX_API_KEY. |
get_trc20_balanceread-only | Get TRC-20 token balance for an address. Supports symbol (USDT, USDC) or contract address. No auth required. |
get_trx_balanceread-only | Quick TRX balance for a TRON address. No auth required. |
get_trx_priceread-only | Get current TRX price from CoinGecko. No auth required. |
list_monitorsread-only | 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). |
list_ordersread-only | List recent orders with optional status filter. Auth required. |
list_providersread-only | List all Merx providers with types, durations, and availability. No authentication required. |
list_standing_ordersread-only | List all standing orders with optional status filter. Auth required. |
login | Log in to an existing Merx account. No MERX_API_KEY needed. |
lookup_invoiceread-only | Look up a MERX invoice. Shows amount, recipient, token, and status. Agent must sign and broadcast the transfer separately (non-custodial). |
pay_invoicedestructive | Unavailable legacy resource-invoice payment. No transaction is sent. Fund your personal Merx account and use quoted resource orders instead. |
read_contractread-only | Call a view/pure function on a TRON smart contract. No auth or private key required. |
register_agent | 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). |
request_payment | 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. |
resource_broadcastdestructive | 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. |
search_transaction_historyread-only | Get on-chain transaction history for a TRON address. No auth required. |
set_api_key | Set your Merx API key for this session. Unlocks all authenticated tools (trading, balance, orders). Use this if you already have an API key. |
set_private_key | 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. |
simulateread-only | 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. |
suggest_durationread-only | Recommend a rental duration based on your use case. No authentication required. |
transfer_trc20destructive | Transfer TRC-20 tokens with automatic energy optimization. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY. |
transfer_trxdestructive | Send TRX to an address. Checks bandwidth, buys via Merx if needed. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY. |
validate_addressread-only | Validate a TRON address format and check on-chain status. No auth required. |
wait_for_delegation | 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. |
watch_address | 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. |
withdrawdestructive | 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. |
Schemas: list_tools.
{
"name": "exchange.merx/mcp",
"title": "MERX - TRON Resource Exchange",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://merx.exchange/mcp/sse",
"type": "streamable-http"
}
],
"version": "1.0.5",
"packages": [
{
"version": "1.0.5",
"transport": {
"type": "stdio"
},
"identifier": "merx-mcp",
"registryType": "npm",
"environmentVariables": [
{
"name": "MERX_API_KEY",
"isSecret": true,
"description": "API key from merx.exchange. Unlocks trading, balance, standing orders, and monitors."
},
{
"name": "TRON_PRIVATE_KEY",
"isSecret": true,
"description": "TRON wallet private key for signing transactions. Never sent to any server. Enables transfers, swaps, and contract calls."
}
]
}
],
"repository": {
"url": "https://github.com/Hovsteder/merx-mcp",
"source": "github"
},
"description": "TRON energy exchange for AI agents. 54 tools, 30 prompts, 21 resources. A2A + ACP."
}