MERX - TRON Resource Exchange

TRON energy exchange for AI agents. 54 tools, 30 prompts, 21 resources. A2A + ACP.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
97%
Vollständigkeit des Schemas
93%
Qualität der Benennung
95%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (8)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin get_order
  • LOWTool 'analyze_prices' description lacks action verbin analyze_prices
  • LOWTool 'get_price_history' description lacks action verbin get_price_history
  • LOWTool 'compare_providers' description lacks action verbin compare_providers
  • LOWTool 'create_order' description lacks action verbin create_order
  • LOWTool 'suggest_duration' description lacks action verbin suggest_duration
  • LOWTool 'get_transaction' description lacks action verbin get_transaction

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~9,198Tokens (Tool-Definitionen)
~800 BTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (7.19% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "merx-mcp"
      ]
    }
  }
}

Ausführbare Pakete

npmmerx-mcp1.0.5stdio

Remote-Endpunkte

https://merx.exchange/mcp/ssestreamable-http

Was es kann

Tool-Inventar

Tools (66)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢get_prices(resource, duration)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "ENERGY",
        "BANDWIDTH"
      ],
      "description": "Filter by resource type. Omit for all."
    },
    "duration": {
      "type": "number",
      "description": "Filter to providers offering this exact duration in seconds (e.g. 3600 for 1h, 86400 for 1d, 604800 for 7d, 2592000 for 30d). Omit to see all tiers."
    }
  }
}
🟢get_best_price(resource, amount)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "ENERGY",
        "BANDWIDTH"
      ],
      "description": "Resource type."
    },
    "amount": {
      "type": "number",
      "description": "Amount of resource units needed."
    }
  },
  "required": [
    "resource"
  ]
}
🟢analyze_prices(resource)

Market price analysis with trends and recommendations. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "ENERGY",
        "BANDWIDTH"
      ],
      "description": "Filter by resource type. Omit for all."
    }
  }
}
🟢get_price_history(resource, provider, period)

Historical price snapshots. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "ENERGY",
        "BANDWIDTH"
      ],
      "description": "Filter by resource type."
    },
    "provider": {
      "type": "string",
      "description": "Filter by provider name."
    },
    "period": {
      "type": "string",
      "enum": [
        "1h",
        "6h",
        "24h",
        "7d",
        "30d"
      ],
      "description": "Time period (default: 24h)."
    }
  }
}
🟢compare_providers(resource)

Side-by-side provider comparison with prices and availability. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "ENERGY",
        "BANDWIDTH"
      ],
      "description": "Filter by resource type. Omit for all."
    }
  }
}
🟢estimate_transaction_cost(operation, from_address, to_address, token_address, amount, ...)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "trc20_transfer",
        "trc20_approve",
        "trx_transfer",
        "custom"
      ],
      "description": "Transaction type."
    },
    "from_address": {
      "type": "string",
      "description": "Sender TRON address."
    },
    "to_address": {
      "type": "string",
      "description": "Recipient TRON address."
    },
    "token_address": {
      "type": "string",
      "description": "TRC20 contract address."
    },
    "amount": {
      "type": "string",
      "description": "Token amount (as string)."
    },
    "contract_address": {
      "type": "string",
      "description": "Contract address (custom)."
    },
    "function_selector": {
      "type": "string",
      "description": "Function selector (custom)."
    },
    "parameter": {
      "type": "string",
      "description": "ABI-encoded parameter (custom)."
    }
  },
  "required": [
    "operation"
  ]
}
🟢check_address_resources(address)

Check energy, bandwidth, and TRX balance for any TRON address. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address (starts with T)."
    }
  },
  "required": [
    "address"
  ]
}
🟡create_order(resource_type, amount, duration_sec, target_address, max_price_sun)

Buy energy or bandwidth on Merx. Routed to cheapest provider. Auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "resource_type": {
      "type": "string",
      "enum": [
        "ENERGY",
        "BANDWIDTH"
      ],
      "description": "Resource type to purchase."
    },
    "amount": {
      "type": "number",
      "description": "Amount of resource units (min 65000 for ENERGY, 300 for BANDWIDTH)."
    },
    "duration_sec": {
      "type": "number",
      "description": "Rental duration in seconds (e.g. 300, 3600, 86400, 2592000)."
    },
    "target_address": {
      "type": "string",
      "description": "TRON address to receive delegated resources."
    },
    "max_price_sun": {
      "type": "number",
      "description": "Optional max price in SUN/unit. Order fails if no provider is cheaper."
    }
  },
  "required": [
    "resource_type",
    "amount",
    "duration_sec",
    "target_address"
  ]
}
🟢get_order(order_id)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "description": "The order UUID."
    }
  },
  "required": [
    "order_id"
  ]
}
🟢list_orders(status, limit)

List recent orders with optional status filter. Auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "FILLING",
        "FILLED",
        "PARTIAL",
        "FAILED",
        "CANCELLED"
      ],
      "description": "Filter by order status."
    },
    "limit": {
      "type": "number",
      "description": "Max number of orders to return (default: 20)."
    }
  }
}
⚪ensure_resources(target_address, energy_minimum, bandwidth_minimum, duration_sec)

Declarative resource provisioning. Checks current resources on target address and purchases only what is missing. Auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "target_address": {
      "type": "string",
      "description": "TRON address to provision resources for."
    },
    "energy_minimum": {
      "type": "number",
      "description": "Minimum energy the address should have."
    },
    "bandwidth_minimum": {
      "type": "number",
      "description": "Minimum bandwidth the address should have."
    },
    "duration_sec": {
      "type": "number",
      "description": "Rental duration in seconds (default: 3600)."
    }
  },
  "required": [
    "target_address"
  ]
}
🟡wait_for_delegation(order_id, timeout_sec, poll_interval_sec)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "description": "The order UUID returned by create_order."
    },
    "timeout_sec": {
      "type": "number",
      "description": "Maximum time to wait in seconds (default: 60, max: 300)."
    },
    "poll_interval_sec": {
      "type": "number",
      "description": "How often to check status in seconds (default: 3, min: 1)."
    }
  },
  "required": [
    "order_id"
  ]
}
🟢get_balance

Get your Merx account balance (TRX, USDT, locked). Requires MERX_API_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢get_deposit_info

Get your Merx deposit address and memo. Requires MERX_API_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢get_transaction_history(period)

Get your Merx account transaction history. Requires MERX_API_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "enum": [
        "7D",
        "30D",
        "90D"
      ],
      "description": "Time period to query. Default: 30D."
    }
  }
}
🟢explain_concept(topic)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "description": "Topic to explain. Exact: energy, bandwidth, staking, delegation, sun_units, burn_vs_rent, merx_routing, provider_types. Fuzzy substrings (e.g. \"rent\", \"providers\") also work."
    }
  },
  "required": [
    "topic"
  ]
}
🟢suggest_duration(use_case, transaction_count)

Recommend a rental duration based on your use case. No authentication required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "use_case": {
      "type": "string",
      "enum": [
        "single_transfer",
        "batch_transfers",
        "dapp_session",
        "daily_operations",
        "weekly_operations",
        "monthly_budget"
      ],
      "description": "Your intended use case."
    },
    "transaction_count": {
      "type": "number",
      "description": "Expected number of transactions (optional)."
    }
  },
  "required": [
    "use_case"
  ]
}
🟢calculate_savings(operation, transaction_count)

Calculate savings from renting energy vs burning TRX. No authentication required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "trc20_transfer",
        "trc20_approve",
        "trx_transfer"
      ],
      "description": "Operation type. Default: trc20_transfer."
    },
    "transaction_count": {
      "type": "number",
      "description": "Number of transactions. Default: 1."
    }
  }
}
🟢list_providers

List all Merx providers with types, durations, and availability. No authentication required.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢get_account_info(address)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address (T...)."
    }
  },
  "required": [
    "address"
  ]
}
🟢get_trx_balance(address)

Quick TRX balance for a TRON address. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address (T...)."
    }
  },
  "required": [
    "address"
  ]
}
🟢get_trc20_balance(address, token)

Get TRC-20 token balance for an address. Supports symbol (USDT, USDC) or contract address. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address to query."
    },
    "token": {
      "type": "string",
      "description": "Token symbol (USDT, USDC) or contract address."
    }
  },
  "required": [
    "address",
    "token"
  ]
}
🟢get_transaction(tx_id)

Look up a transaction by ID on TRON. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "tx_id": {
      "type": "string",
      "description": "Transaction ID (hash)."
    }
  },
  "required": [
    "tx_id"
  ]
}
🟢get_block(block_number)

Get TRON block info by number (or latest if omitted). No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "block_number": {
      "type": "number",
      "description": "Block number. Omit for latest."
    }
  }
}
🟢get_chain_parameters

Get TRON network parameters (energy fee, bandwidth cost, etc.) with Merx price comparison. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢convert_address(address)

Convert TRON address between base58 (T...) and hex (41...) formats. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address in base58 (T...) or hex (41...)."
    }
  },
  "required": [
    "address"
  ]
}
🟢get_trx_price(currency)

Get current TRX price from CoinGecko. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "currency": {
      "type": "string",
      "description": "Fiat currency code (default: usd)."
    }
  }
}
🟢validate_address(address)

Validate a TRON address format and check on-chain status. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address to validate."
    }
  },
  "required": [
    "address"
  ]
}
🟢search_transaction_history(address, type, limit)

Get on-chain transaction history for a TRON address. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address."
    },
    "type": {
      "type": "string",
      "enum": [
        "all",
        "trx",
        "trc20"
      ],
      "description": "Transaction type filter (default: all)."
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 20)."
    }
  },
  "required": [
    "address"
  ]
}
🔴transfer_trx(to_address, amount_trx)

Send TRX to an address. Checks bandwidth, buys via Merx if needed. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "to_address": {
      "type": "string",
      "description": "Recipient TRON address."
    },
    "amount_trx": {
      "type": "string",
      "description": "Amount of TRX to send."
    }
  },
  "required": [
    "to_address",
    "amount_trx"
  ]
}
🔴transfer_trc20(to_address, token, amount)

Transfer TRC-20 tokens with automatic energy optimization. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "to_address": {
      "type": "string",
      "description": "Recipient TRON address."
    },
    "token": {
      "type": "string",
      "description": "Token symbol (USDT, USDC) or contract address."
    },
    "amount": {
      "type": "string",
      "description": "Amount to transfer (human-readable)."
    }
  },
  "required": [
    "to_address",
    "token",
    "amount"
  ]
}
🔴approve_trc20(token, spender, amount)

Approve TRC-20 spending allowance. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Token symbol or contract address."
    },
    "spender": {
      "type": "string",
      "description": "Spender TRON address."
    },
    "amount": {
      "type": "string",
      "description": "Allowance amount (human-readable, or \"unlimited\")."
    }
  },
  "required": [
    "token",
    "spender",
    "amount"
  ]
}
🟢get_token_info(token)

Get TRC-20 token metadata: name, symbol, decimals, total supply. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Token symbol or contract address."
    }
  },
  "required": [
    "token"
  ]
}
🟢read_contract(contract_address, function_selector, parameter)

Call a view/pure function on a TRON smart contract. No auth or private key required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "contract_address": {
      "type": "string",
      "description": "Contract TRON address."
    },
    "function_selector": {
      "type": "string",
      "description": "Function signature, e.g. \"balanceOf(address)\"."
    },
    "parameter": {
      "type": "string",
      "description": "ABI-encoded parameter hex (optional)."
    }
  },
  "required": [
    "contract_address",
    "function_selector"
  ]
}
🟢estimate_contract_call(contract_address, function_selector, parameter, caller_address)

Estimate energy and bandwidth cost for a smart contract call. Compares rental vs burn cost. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "contract_address": {
      "type": "string",
      "description": "Contract TRON address."
    },
    "function_selector": {
      "type": "string",
      "description": "Function signature, e.g. \"transfer(address,uint256)\"."
    },
    "parameter": {
      "type": "string",
      "description": "ABI-encoded parameter hex (optional)."
    },
    "caller_address": {
      "type": "string",
      "description": "Caller TRON address for simulation (optional)."
    }
  },
  "required": [
    "contract_address",
    "function_selector"
  ]
}
🔴call_contract(contract_address, function_selector, parameter, call_value_trx)

Execute a state-changing smart contract function. Estimates resources, buys via Merx if needed. Requires TRON_PRIVATE_KEY and TRON_ADDRESS.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "contract_address": {
      "type": "string",
      "description": "Contract TRON address."
    },
    "function_selector": {
      "type": "string",
      "description": "Function signature, e.g. \"stake(uint256)\"."
    },
    "parameter": {
      "type": "string",
      "description": "ABI-encoded parameter hex (optional)."
    },
    "call_value_trx": {
      "type": "string",
      "description": "TRX to send with call (optional)."
    }
  },
  "required": [
    "contract_address",
    "function_selector"
  ]
}
🟢get_contract_info(address)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Contract TRON address (T...)"
    }
  },
  "required": [
    "address"
  ]
}
🟢get_swap_quote(from_token, to_token, amount, slippage)

Get a real swap quote from SunSwap V2. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "from_token": {
      "type": "string",
      "description": "Source token symbol (TRX, USDT, USDC, etc.)"
    },
    "to_token": {
      "type": "string",
      "description": "Destination token symbol"
    },
    "amount": {
      "type": "string",
      "description": "Amount of source token to swap"
    },
    "slippage": {
      "type": "number",
      "description": "Slippage tolerance in percent (default 1)"
    }
  },
  "required": [
    "from_token",
    "to_token",
    "amount"
  ]
}
🔴execute_swap(from_token, to_token, amount, slippage)

Execute a token swap on SunSwap V2. Requires TRON_PRIVATE_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "from_token": {
      "type": "string",
      "description": "Source token symbol (TRX, USDT, USDC, etc.)"
    },
    "to_token": {
      "type": "string",
      "description": "Destination token symbol"
    },
    "amount": {
      "type": "string",
      "description": "Amount of source token to swap"
    },
    "slippage": {
      "type": "number",
      "description": "Slippage tolerance in percent (default 1)"
    }
  },
  "required": [
    "from_token",
    "to_token",
    "amount"
  ]
}
🟢get_token_price(token)

Get token price via SunSwap quote + CoinGecko USD rate. No auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Token symbol (USDT, USDC, SUN, etc.)"
    }
  },
  "required": [
    "token"
  ]
}
🟡create_account(email, password)

Create a new Merx account, generate an API key, and get deposit info. No auth needed.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "Email address for the account"
    },
    "password": {
      "type": "string",
      "description": "Password (min 8 characters)"
    }
  },
  "required": [
    "email",
    "password"
  ]
}
⚪login(email, password)

Log in to an existing Merx account. No MERX_API_KEY needed.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "Email address"
    },
    "password": {
      "type": "string",
      "description": "Password"
    }
  },
  "required": [
    "email",
    "password"
  ]
}
🟡set_api_key(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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "api_key": {
      "type": "string",
      "description": "Your Merx API key (starts with sk_live_)"
    }
  },
  "required": [
    "api_key"
  ]
}
🟡set_private_key(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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "private_key": {
      "type": "string",
      "description": "Your TRON private key (64 hex characters)"
    }
  },
  "required": [
    "private_key"
  ]
}
🔴deposit_trx(amount_trx)

Deposit TRX to your Merx account. Requires MERX_API_KEY + TRON_PRIVATE_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "amount_trx": {
      "type": "string",
      "description": "Amount of TRX to deposit"
    }
  },
  "required": [
    "amount_trx"
  ]
}
⚪enable_auto_deposit(threshold_trx, deposit_amount_trx, max_daily_deposits)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "threshold_trx": {
      "type": "string",
      "description": "Balance threshold in TRX"
    },
    "deposit_amount_trx": {
      "type": "string",
      "description": "Amount of TRX per deposit"
    },
    "max_daily_deposits": {
      "type": "number",
      "description": "Max deposits per day (default 5)"
    }
  },
  "required": [
    "threshold_trx",
    "deposit_amount_trx"
  ]
}
🔴pay_invoice(invoice_id)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "description": "Invoice ID to pay"
    }
  },
  "required": [
    "invoice_id"
  ]
}
🔴create_paid_order(resource_type, amount, duration_sec, target_address)

Create a zero-registration order via x402 pay-per-use. Requires TRON_PRIVATE_KEY.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "resource_type": {
      "type": "string",
      "enum": [
        "ENERGY",
        "BANDWIDTH"
      ],
      "description": "Resource type"
    },
    "amount": {
      "type": "number",
      "description": "Amount of resource units"
    },
    "duration_sec": {
      "type": "number",
      "description": "Duration in seconds"
    },
    "target_address": {
      "type": "string",
      "description": "TRON address to receive resources"
    }
  },
  "required": [
    "resource_type",
    "amount",
    "duration_sec",
    "target_address"
  ]
}
🔴execute_intent(steps, resource_strategy, dry_run)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "steps": {
      "type": "array",
      "description": "Array of { action, params } steps to execute."
    },
    "resource_strategy": {
      "type": "string",
      "enum": [
        "batch_cheapest",
        "per_step",
        "no_resources"
      ],
      "description": "Resource acquisition strategy (default: batch_cheapest)."
    },
    "dry_run": {
      "type": "boolean",
      "description": "If true, simulate only without executing (default: false)."
    }
  },
  "required": [
    "steps"
  ]
}
🟢simulate(steps, resource_strategy)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "steps": {
      "type": "array",
      "description": "Array of { action, params } steps to simulate."
    },
    "resource_strategy": {
      "type": "string",
      "enum": [
        "batch_cheapest",
        "per_step",
        "no_resources"
      ],
      "description": "Resource acquisition strategy (default: batch_cheapest)."
    }
  },
  "required": [
    "steps"
  ]
}
🟡create_standing_order(trigger_type, trigger_params, action_type, action_params, budget_trx, ...)

Create a server-side standing order with trigger-based automation. Auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "trigger_type": {
      "type": "string",
      "enum": [
        "price_below",
        "price_above",
        "schedule",
        "balance_below"
      ],
      "description": "Condition that triggers the order."
    },
    "trigger_params": {
      "type": "object",
      "description": "Trigger parameters: { resource, threshold_sun } or { cron }."
    },
    "action_type": {
      "type": "string",
      "enum": [
        "buy_resource",
        "ensure_resources",
        "notify_only"
      ],
      "description": "Action to perform when triggered."
    },
    "action_params": {
      "type": "object",
      "description": "Action parameters: { resource_type, amount, duration_sec, target_address }."
    },
    "budget_trx": {
      "type": "string",
      "description": "Maximum budget in TRX (converted to SUN internally)."
    },
    "max_executions": {
      "type": "number",
      "description": "Maximum number of times this order can execute."
    },
    "expires_at": {
      "type": "string",
      "description": "ISO 8601 expiration date (optional)."
    }
  },
  "required": [
    "trigger_type",
    "trigger_params",
    "action_type",
    "action_params",
    "budget_trx",
    "max_executions"
  ]
}
🟢list_standing_orders(status)

List all standing orders with optional status filter. Auth required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "TRIGGERED",
        "EXHAUSTED",
        "EXPIRED",
        "CANCELLED"
      ],
      "description": "Filter by status."
    }
  }
}
🟢get_standing_order(order_id)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "description": "Standing order UUID (from list_standing_orders)."
    }
  },
  "required": [
    "order_id"
  ]
}
🔴cancel_standing_order(order_id)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "description": "Standing order UUID to cancel."
    }
  },
  "required": [
    "order_id"
  ]
}
🟡create_monitor(monitor_type, target_address, params, notify)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "monitor_type": {
      "type": "string",
      "enum": [
        "delegation_expiry",
        "balance_threshold",
        "price_alert",
        "address_activity"
      ],
      "description": "Type of monitor to create."
    },
    "target_address": {
      "type": "string",
      "description": "TRON address to monitor. Required for delegation_expiry, balance_threshold, address_activity. Not used for price_alert."
    },
    "params": {
      "type": "object",
      "description": "Type-specific params. delegation_expiry: { alert_before_sec, auto_renew, resource_type }. balance_threshold: { resource: \"TRX\"|\"ENERGY\"|\"BANDWIDTH\", below: number }. price_alert: { resource: \"ENERGY\"|\"BANDWIDTH\", above_sun?: number, below_sun?: number }. address_activity: { min_amount_trx?: number }."
    },
    "notify": {
      "type": "object",
      "description": "Notification config: { webhook?: boolean, telegram_chat_id?: string }. Defaults to { webhook: true } if omitted."
    }
  },
  "required": [
    "monitor_type",
    "params"
  ]
}
🟢list_monitors(status)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "CANCELLED"
      ],
      "description": "Filter by monitor status."
    }
  }
}
🔴cancel_monitor(monitor_id)

Cancel an active monitor by its UUID. The monitor stops firing notifications. Auth required (API key).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "monitor_id": {
      "type": "string",
      "description": "Monitor UUID to cancel."
    }
  },
  "required": [
    "monitor_id"
  ]
}
🔴withdraw(address, amount, currency, amount_trx)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Destination TRON address (starts with T)."
    },
    "amount": {
      "type": "string",
      "description": "Amount to withdraw, in units of the chosen currency. E.g. \"100\" with currency=TRX = 100 TRX, \"100\" with currency=USDT = 100 USDT."
    },
    "currency": {
      "type": "string",
      "enum": [
        "TRX",
        "USDT"
      ],
      "description": "Currency to withdraw. Default: TRX."
    },
    "amount_trx": {
      "type": "string",
      "description": "DEPRECATED alias for \"amount\" — kept for backwards compatibility. Pass \"amount\" instead in new code."
    }
  },
  "required": [
    "address"
  ]
}
🟡compile_policy(instruction, address, apply)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "instruction": {
      "type": "string",
      "description": "Natural language description of the desired automation policy"
    },
    "address": {
      "type": "string",
      "description": "TRON address this policy applies to (optional)"
    },
    "apply": {
      "type": "boolean",
      "description": "Set to true to create the standing orders. Default false (preview only)."
    }
  },
  "required": [
    "instruction"
  ]
}
🔴resource_broadcast(signed_tx, target_address)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "signed_tx": {
      "type": "string",
      "description": "Hex-encoded signed TRON transaction"
    },
    "target_address": {
      "type": "string",
      "description": "TRON address that will execute the transaction (must match TX sender)"
    }
  },
  "required": [
    "signed_tx",
    "target_address"
  ]
}
🟡register_agent(tron_address, label)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "tron_address": {
      "type": "string",
      "description": "Your TRON address (T...) that will receive payments and act as the agent identity."
    },
    "label": {
      "type": "string",
      "description": "Optional human-readable label (max 64 chars)"
    }
  },
  "required": [
    "tron_address"
  ]
}
🟡request_payment(amount_usdt, description, timeout_seconds, tolerance_pct, webhook_url)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "amount_usdt": {
      "type": "string",
      "description": "Amount in token units (e.g. \"5.00\")"
    },
    "description": {
      "type": "string",
      "description": "What this payment is for"
    },
    "timeout_seconds": {
      "type": "number",
      "description": "Wait timeout (10-3600, default 300)"
    },
    "tolerance_pct": {
      "type": "number",
      "description": "Amount tolerance % (default 0 = exact)"
    },
    "webhook_url": {
      "type": "string",
      "description": "URL to notify on payment (optional)"
    }
  },
  "required": [
    "amount_usdt"
  ]
}
🟢lookup_invoice(invoice_id)

Look up a MERX invoice. Shows amount, recipient, token, and status. Agent must sign and broadcast the transfer separately (non-custodial).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "description": "Invoice UUID (e.g. eaa00c4e-1234-5678-90ab-cdef12345678) returned by create_invoice, or a full payment URL containing /pay/<uuid>."
    }
  },
  "required": [
    "invoice_id"
  ]
}
🟡create_invoice(amount_usdt, description, expires_in)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "amount_usdt": {
      "type": "string",
      "description": "Amount in USDT"
    },
    "description": {
      "type": "string",
      "description": "What the invoice is for"
    },
    "expires_in": {
      "type": "number",
      "description": "Expiry in seconds (60-86400, default 3600)"
    }
  },
  "required": [
    "amount_usdt"
  ]
}
⚪watch_address(address, event_types, min_amount_usdt, webhook_url, ttl_hours)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "TRON address to watch (T...)"
    },
    "event_types": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "usdt_incoming",
          "usdt_outgoing",
          "trx_incoming"
        ]
      },
      "description": "Event types to watch"
    },
    "min_amount_usdt": {
      "type": "string",
      "description": "Minimum amount filter (default \"0\")"
    },
    "webhook_url": {
      "type": "string",
      "description": "Webhook URL for notifications"
    },
    "ttl_hours": {
      "type": "number",
      "description": "Watch duration in hours (1-720, default 24)"
    }
  },
  "required": [
    "address",
    "webhook_url"
  ]
}
🟢agent_status

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet66 Tools
verifiziertVersion nicht aufgezeichnet66 Tools