TRON infrastructure for AI agents.
The MERX MCP server gives AI agents comprehensive access to the TRON blockchain through 55 tools, 30 prompts, and 21 resources. Key capabilities include:
Price Intelligence & Market Analysis
Monitor real-time energy/bandwidth prices, compare providers, analyze trends, and access historical data (
get_prices,get_best_price,analyze_prices,get_price_history,compare_providers)
Resource Trading & Optimization
Buy energy/bandwidth at the best price, declaratively provision resources, and estimate transaction costs (
create_order,ensure_resources,estimate_transaction_cost)
Token Operations (Private Key Required)
Send TRX and TRC-20 tokens (USDT, USDC, etc.) with automatic energy/bandwidth optimization, approve allowances, and fetch token metadata
Smart Contract Interaction
Read contract state, estimate call costs, and execute state-changing functions with automatic resource provisioning
DEX Swaps
Get SunSwap V2 quotes and execute token swaps with exact energy simulation; fetch token prices via SunSwap + CoinGecko
On-Chain Queries
Look up accounts, TRX/TRC-20 balances, transactions, blocks, network parameters, and search transaction history for any address
Account Management (API Key Required)
Check MERX balances, get deposit info, view transaction history, withdraw funds, and enable auto top-up
Automation & Monitoring
Create server-side standing orders with
price_below,price_above,schedule(cron), orbalance_belowtriggers; set up delegation expiry/balance/price monitors with optional auto-renew
Multi-Step Intent Execution
Simulate or execute complex multi-step plans (transfer + swap + resource purchase) with accurate total cost estimates (
simulate,execute_intent)
Flexible Payments
Use pre-funded MERX balances, deposit TRX from an agent wallet, or use x402 pay-per-use with no account registration required (
create_paid_order,pay_invoice)
Onboarding & Session Management
Create or log into a MERX account, set API keys and private keys (keys stay local) to unlock progressively more capabilities
Agent Convenience
Get explanations of TRON concepts, rental duration recommendations, savings calculations vs. burning TRX, and provider listings
Supports A2A protocol integration allowing CrewAI agents to access MERX TRON resource exchange functionality for automated energy/bandwidth procurement and multi-provider price optimization.
Supports A2A protocol integration allowing LangChain agents to interact with the MERX platform for TRON resource management, price discovery, and automated order execution.
MERX
https://MERX.exchange
TRON infrastructure for AI agents.
66 MCP tools. Energy market across 6 providers. USDT/USDC/USDD payments. x402 v2 facilitator on TRON mainnet.
Documentation | API Reference | MCP Server
Table of contents
What is MERX — TRON infrastructure for AI agents
The problem — why TRON had no agent layer until MERX
Platform overview — MCP, agent payment service, x402, GasFree, energy aggregator
Quick start — 4 paths (web, REST/SDK, Claude Code plugin, MCP)
What sets MERX apart — only complete agent stack on TRON
Related MCP server: aipaygen-mcp
What is MERX
MERX is the infrastructure layer for AI agents and agentic networks on TRON. Where Stripe is infrastructure for web commerce and Cloudflare for the open web, MERX is the missing infrastructure layer that lets autonomous AI agents discover, transact, and operate on TRON without ever touching energy, bandwidth, or low-level blockchain mechanics.
The platform exposes one coherent stack: 66-tool MCP server, agent payment service for TRC-20 stablecoins, x402 v2 facilitator (the only TRON facilitator in the coinbase/x402 ecosystem registry), GasFree transfers via a MERX-deployed mainnet controller, dedicated TRON RPC node, A2A (Google, 7 skills) and ACP (BeeAI, 7 capabilities) protocol coverage, and a natural language Policy Engine powered by Anthropic Claude.
Underneath those agent surfaces sits an energy aggregator across 6 active
providers (CatFee, Netts, TronSave, iTRX, PowerSun, TEM) that routes resource
purchases to the cheapest source automatically -- so when an agent calls
send(), MERX estimates the energy required, buys only the deficit, and
broadcasts the transaction. The agent never holds TRX or thinks about energy.
Any AI agent running in Claude, LangChain, CrewAI, Vertex AI, AutoGen, or BeeAI can send payments and acquire resources on TRON through a single integration with MERX.
Three ways to plug an agent into MERX:
MCP server -- 66 tools for AI agents. Hosted SSE at
https://merx.exchange/mcp/sse(zero install) or local stdio vianpx merx-mcp. Works with Claude, GPT, Cursor, Windsurf, and any MCP-compatible client.Claude Code plugin -- one-line install for Claude Code. Auto-registers the MCP server, ships 6 slash commands and a
tron-agent-engineersub-agent. See Hovsteder/merx-claude-plugin.REST API + SDKs -- direct programmatic access for agents that aren't using MCP. JavaScript (
merx-sdkv2.1 on npm), Python (merx-sdkv2.1 on PyPI), or raw HTTP against/api/v1/(70+ versioned endpoints).
For human users, the web platform at merx.exchange remains available for manual energy trading, dashboard, deposits, and withdrawals -- but the platform is built primarily for agents.
The problem
AI agents will become the dominant transactional users of stablecoins, and TRON -- home to USDD, $86B+ USDT, USDC, and the dominant chain for retail USDT in Southeast Asia, Africa, and Latin America -- is already the largest USDT-native network in the world.
But TRON has no infrastructure designed for agents:
No agent-native payment service. Existing TRON wallets are built for human users with mouse clicks and seed-phrase backups, not for autonomous programs that need to register addresses, send TRC-20s, watch for incoming payments, and create invoices via REST.
Energy and bandwidth are a UX dead-end. Every smart contract call on TRON requires energy. Without energy, TRX tokens burn as fees -- a single USDT transfer burns 3-13 TRX (~$1-4) for cold receivers. Renting energy from a provider drops the cost to ~$0.10 -- a 94% reduction -- but every provider has a different price, different API, different duration tiers, and different failure modes. No agent can be expected to manage that.
No x402 facilitator on TRON before MERX. The x402 protocol has already processed $43.57M in agent-to-agent payments on Base, Solana, Stellar, and Ethereum. TRON was completely absent from the coinbase/x402 ecosystem registry until MERX. Agents that wanted to pay for TRON-hosted APIs in USDT had no standardized way to do it.
Three agent protocols, zero TRON integrations. MCP (Anthropic), A2A (Google), and ACP (BeeAI) are the three major agent communication protocols. Until MERX, none of them had a deployed, production-grade TRON server. AI agents in Claude, Vertex AI, or BeeAI literally could not see TRON.
MERX builds the missing layer. AI agents call one API, hold zero TRX, and get paid / pay / send / receive in USDT, USDC, or USDD on the world's largest USDT network.
Without MERX | With MERX |
Agent has to manage energy + bandwidth manually |
|
Agent has to hold TRX as gas | GasFree transfers — agents send stablecoins from zero-TRX wallets |
Agent has to integrate every energy provider's API | One MERX API routes to the cheapest of 6 providers |
No way to pay for TRON-hosted APIs in USDT | x402 v2 facilitator with full USDT/USDC/USDD support |
No A2A/ACP discovery on TRON | Agent Card + Manifest live, 7 skills, 7 capabilities |
Agent has to write its own MCP server for TRON | 66 tools, 30 prompts, 21 resources, hosted |
Address watching means polling RPC |
|
Platform overview
Component | Description |
MCP server | 66 tools, 30 prompts, 21 resources for AI agents. Hosted SSE at |
Claude Code plugin | One-line install: |
Agent Payment Service |
|
x402 v2 Facilitator |
|
GasFree Transfer Service | Mainnet controller |
A2A Protocol (Google) | Agent Card at |
ACP Protocol (BeeAI) | Manifest at |
Policy Engine | Natural language → standing orders, powered by Anthropic Claude Sonnet 4. Available as MCP tool, A2A skill, and REST endpoint. |
Energy aggregator | Real-time price comparison across 6 active providers (CatFee, Netts, TronSave, iTRX, PowerSun, TEM). Routes orders to cheapest source. Underneath the agent surfaces. |
Dedicated TRON RPC node |
|
REST API | 70+ versioned endpoints under |
WebSocket | Real-time TRC-20 transfer stream and price updates at |
JavaScript SDK |
|
Python SDK |
|
x402 middleware |
|
Documentation | 38+ pages at merx.exchange/docs. API reference, MCP/A2A/ACP guides, x402 integration. |
Quick start
Four paths depending on your use case. For AI agents, paths 3 and 4 are the primary surfaces. Path 1 (web) is for human operators; path 2 (REST/SDK) is for direct programmatic integration.
Path 1: Web platform (humans)
Go to merx.exchange. Sign in. Deposit TRX. Manage energy, agent API keys, and balance through the dashboard. No code required.
Path 2: REST API / SDK (programmatic)
Install the JavaScript SDK:
npm install merx-sdkUse it in your application (replace merx_sk_your_key with your API key from merx.exchange):
import { MerxClient } from 'merx-sdk'
const merx = new MerxClient({ apiKey: 'merx_sk_your_key' })
// Get current prices from all providers
const prices = await merx.prices.list()
console.log(prices[0])
// { provider: "netts", price_sun: 22, available: 100000000 }
// Buy energy at best price
const order = await merx.orders.create({
resource_type: 'ENERGY',
amount: 65000,
duration_sec: 300,
target_address: 'TYourAddress...',
})
console.log(order.status) // "FILLED"
console.log(order.cost_trx) // 1.4311Python:
from merx import MerxClient
merx = MerxClient(api_key="merx_sk_your_key")
prices = merx.prices.list()
order = merx.orders.create(
resource_type="ENERGY",
amount=65000,
duration_sec=300,
target_address="TYourAddress..."
)curl (no SDK needed):
# Public -- no auth required
curl https://merx.exchange/api/v1/prices
# Authenticated
curl -X POST https://merx.exchange/api/v1/orders \
-H "Authorization: Bearer merx_sk_your_key" \
-H "Content-Type: application/json" \
-d '{
"resource_type": "ENERGY",
"amount": 65000,
"duration_sec": 300,
"target_address": "TYourAddress..."
}'Path 3: Claude Code plugin (one-line install)
If you're using Claude Code, this is the fastest path. The plugin auto-registers
the hosted MCP server, ships 6 slash commands, and includes a
tron-agent-engineer sub-agent specialized in agentic payment workflows on TRON.
/plugin marketplace add Hovsteder/merx-claude-plugin
/plugin install merx@merxThen run /merx:setup to configure your MERX API key. Available commands:
Command | What it does |
| First-time setup: API key, connection test, capability tour |
| Live TRON energy and bandwidth prices across all providers |
| Buy energy via cheapest provider, delegated to a target address |
| MERX prepaid balance, recent orders, free-tier usage |
| Look up a TRON transaction with structured fields |
| Send TRC-20 stablecoin via the agent payment service |
Source: github.com/Hovsteder/merx-claude-plugin.
Path 4: MCP for any AI agent (Claude, Cursor, Windsurf, custom)
Hosted (zero install) -- works with Claude.ai, Cursor, Windsurf, and any SSE-compatible MCP client:
{
"mcpServers": {
"merx": {
"url": "https://merx.exchange/mcp/sse"
}
}
}22 read-only tools are available immediately: prices, estimation, market analysis, on-chain queries, address lookups. No API key required.
To unlock trading tools, call set_api_key in any conversation:
set_api_key("merx_sk_your_key")
-> All 34 authenticated tools unlocked for this session.To unlock write tools (send TRX, swap tokens), call set_private_key:
set_private_key("your_64_char_hex_key")
-> Address derived automatically. All 66 tools available.
-> Key never leaves your machine.Local (stdio) -- full power with keys set via environment variables:
npm install -g merx{
"mcpServers": {
"merx": {
"command": "npx merx-mcp",
"env": {
"MERX_API_KEY": "merx_sk_your_key",
"TRON_PRIVATE_KEY": "your_private_key"
}
}
}
}All 66 tools available from the first message.
Additional protocol support
MERX also exposes A2A and ACP for non-MCP orchestrators -- same backend, different discovery surface:
A2A (LangChain, CrewAI, Vertex AI, AutoGen, Mastra): Agent Card at https://merx.exchange/.well-known/agent.json -- 7 skills, SSE streaming
ACP (BeeAI): Manifest at https://merx.exchange/.well-known/agent-manifest.json -- 7 capabilities, run-based execution
Access levels
Configuration | Tools | Capabilities |
No keys | 22 | Prices, estimation, market analysis, on-chain queries, address lookups |
+ | 34 | + Orders, balance, deposits, standing orders, monitors |
+ | 66 | + Send TRX/USDT/USDC/USDD, swap tokens, approve contracts, execute intents, agent payments |
What sets MERX apart
The only complete agent stack on TRON
MERX is the only TRON project that runs all three major agent protocols as
production-grade services: MCP (Anthropic), A2A (Google, 7 skills), and ACP
(BeeAI, 7 capabilities). TronLink published a core MCP library
(@tronlink/tronlink-mcp-core v0.1.0, March 2026) but it is explicitly a
building block, not a hosted service. MERX is the only TRON entry in the
coinbase/x402 ecosystem partner registry.
Agent payment service with sub-3-second receive
agent.merx.exchange is non-custodial: agents register their own TRON address
and MERX never holds private keys or controls funds. The ZMQ event listener
matches incoming TRC-20 transfers (USDT, USDC, USDD, plus any other token in
real time) and dispatches webhooks within ~3 seconds of on-chain confirmation.
watch() provides persistent 24/7 address monitoring with per-token filtering.
invoice() creates payment requests with payment links and automatic
detection. batch() sends up to 50 transfers in one call.
x402 v2 facilitator with full TRON stablecoin coverage
x402.merx.exchange implements the standard /verify, /settle, and
/supported endpoints, so any x402 client (including the Coinbase CDP
reference implementation) interoperates out of the box. Three settlement
schemes live on TRON mainnet: exact (direct TRC-20 transfer),
exact_permit and exact_gasfree (TIP-712 PermitTransfer through MERX's own
GasFreeController contract). USDT, USDC, and USDD all settled on mainnet
with verified txids and on-chain commission collection. Among 15 known x402
facilitators, MERX is the only one supporting the full TRON stablecoin set.
GasFree zero-TRX sends
The MERX-deployed GasFreeController contract TKjJ1r5XYqnLZmLakcP3knis7Lh6gm3qtR
went live on mainnet 2026-04-08 with three verified mainnet permitTransfer
settlements (USDT, USDC, USDD). Agents send stablecoins from wallets that
hold zero TRX -- the controller pulls value+fee from a per-user GasFree
subaccount and the executor pays the broadcast gas. Single biggest UX barrier
for agents on TRON, removed.
Resource-aware transactions
Every write operation (TRC-20 transfer, token swap, contract call) automatically estimates energy AND bandwidth needed, buys the deficit at the best market price across 6 providers, waits for delegation to arrive on-chain, then executes. The agent never burns TRX unnecessarily. Tested on mainnet: a USDT transfer with auto-resources saves up to 94% compared to burning.
Exact energy simulation
Before buying energy for swaps and contract calls, MERX simulates the exact
transaction via triggerConstantContract with real parameters. No hardcoded
estimates -- the precise energy amount is purchased. For a SunSwap V2 swap,
simulation returned 223,354 energy; the on-chain transaction used exactly
223,354.
Natural language Policy Engine
"Keep 500,000 energy on my wallet. Buy when price drops below 55 SUN. Max 200 TRX per week."
The Policy Engine (powered by Anthropic Claude Sonnet 4) parses this instruction, generates structured standing orders with triggers, budget limits, and expiration, previews them for the user, and creates everything with one confirmation. Available through MCP, A2A skill, and REST endpoint. No competitor can replicate this without their own Anthropic integration, standing order infrastructure, and real-time provider price feeds.
Multi-provider energy routing (under the agent surfaces)
All 6 active energy providers are aggregated (CatFee, Netts, TronSave, iTRX, PowerSun, TEM). Orders are routed to the cheapest source automatically. If one provider fails or runs out of capacity, the next cheapest fills the order. Prices cover both energy and bandwidth across every available duration tier.
Standing orders + delegation monitors
Server-side 24/7 automation stored in PostgreSQL. Trigger types: price_below,
price_above, schedule (cron), balance_below, delegation_expiry.
Persists across restarts. Works when the client is offline. Auto-renew with
configurable max price.
Full MCP protocol
The only TRON MCP server using all three MCP primitives: tools (66), prompts
(30), and resources (21 -- 14 static + 7 templates). Two transport modes:
hosted SSE (zero install) and local stdio (full key management). Three
protocol versions supported: 2024-11-05, 2025-03-26, 2025-06-18.
Architecture
Platform overview
graph TB
User[User / Application / AI Agent]
Platform[MERX Platform<br>merx.exchange]
PM[Price Monitor<br>polls every 30s]
OE[Order Executor<br>routes to cheapest]
DV[Delegation Verifier<br>confirms on-chain]
TR[Treasury<br>balance management]
RPC[TronGrid / GetBlock<br>TRON RPC]
Providers[Energy Providers<br>all connected]
TRON[TRON Blockchain]
User -->|Web / API / SDK / MCP| Platform
Platform --> PM
Platform --> OE
Platform --> DV
Platform --> TR
PM -->|Price polling| Providers
OE -->|Order routing<br>cheapest first| Providers
DV -->|Verify delegations| RPC
RPC --> TRON
Providers -->|Delegate energy<br>+ bandwidth| TRON
style User fill:#1a1a2e,stroke:#B8963E,color:#F5F0E8
style Platform fill:#0C0B09,stroke:#B8963E,color:#F5F0E8
style TRON fill:#141310,stroke:#B8963E,color:#F5F0E8User / Application / AI Agent
|
| Web / REST API / SDK / MCP
v
+----------------------------------+
| MERX Platform |
| merx.exchange |
| |
| +------------+ +-------------+ |
| | Price | | Order | |
| | Monitor | | Executor | |
| | (every 30s)| | (cheapest) | |
| +------------+ +-------------+ |
| +------------+ +-------------+ |
| | Delegation | | Treasury | |
| | Verifier | | Manager | |
| +------------+ +-------------+ |
+----------------------------------+
| |
v v
TronGrid / GetBlock Energy Providers
(TRON RPC) (all connected)
| |
v v
+----------------------------------+
| TRON Blockchain |
+----------------------------------+Key architecture principle: All traffic goes through the MERX platform. Users never need TronGrid API keys. MERX manages all RPC infrastructure, caching, and failover server-side. The only operation that stays on the client: transaction signing with a private key. Private keys never leave the client process.
Resource-aware transaction flow
This sequence diagram shows a real USDT transfer with auto-resource optimization. Numbers are from production testing.
sequenceDiagram
participant C as Client
participant M as MERX
participant P as Providers
participant T as TRON
C->>M: POST /orders or transfer_trc20(USDT, 100, TAddr)
M->>M: POST /estimate (trc20_transfer)
Note over M: energy: 7,896 / bandwidth: 345
M->>M: GET /chain/resources/TSender
Note over M: energy: 0 / bandwidth: 0 / free BW: 600
Note over M: Energy deficit: 7,896 (round up to 65,000 min)<br>Bandwidth: 345 < 1,500 min order, skip
M->>P: Route order: ENERGY, 65,000, 300s
P-->>M: FILLED at 22 SUN (1.43 TRX)
Note over M: Poll every 2s until delegation arrives
M->>T: Verify delegation on sender address
T-->>M: energy: 65,050 available
Note over M: Sign TX (client-side if MCP, server-side if API)
M->>T: Broadcast signed TX
T-->>M: TX confirmed
M-->>C: USDT sent. Cost: 1.43 TRX.<br>Burn alternative: 3.66 TRX. Savings: 87.6%Client MERX Providers TRON
| | | |
| order / transfer | | |
|---------------------->| | |
| | estimate energy+BW | |
| | energy: 7,896 | |
| | bandwidth: 345 | |
| | | |
| | check sender resources| |
| | energy: 0, BW: 0 | |
| | | |
| | [deficit: 7,896 -> round up to 65,000] |
| | [BW: 345 < 1,500 min -> skip, burn ~0.3 TRX]|
| | | |
| | route to cheapest | |
| |---------------------->| |
| | FILLED 22 SUN | |
| | 1.43 TRX | |
| |<----------------------| |
| | | |
| | [poll until delegation arrives] |
| | | |
| | verify delegation |--------------------->|
| | energy: 65,050 |<---------------------|
| | | |
| | [sign + broadcast] | |
| |---------------------->|--------------------->|
| | | TX confirmed |
| |<----------------------|<---------------------|
| | | |
| USDT sent | | |
| Cost: 1.43 TRX | | |
| Burn alt: 3.66 TRX | | |
| Savings: 87.6% | | |
|<----------------------| | |Resource purchase rules
Rule | Details |
Energy deficit > 0 | Round up to minimum 65,000 units. Cheaper to buy minimum than to burn even small deficits. |
Bandwidth deficit < 1,500 | Skip purchase, let network burn ~0.3 TRX. Cheaper than minimum bandwidth order. |
After energy purchase | Poll |
DEX swaps | Simulate exact energy via |
API overview
Base URL: https://merx.exchange/api/v1
All endpoints are versioned. Errors follow a standard format:
{ "error": { "code": "...", "message": "...", "details": { ... } } }.
Idempotency-Key header supported on POST /orders and POST /withdraw.
Public endpoints (no authentication)
Method | Endpoint | Description |
GET |
| Current energy and bandwidth prices from all providers |
GET |
| Cheapest provider for given resource and amount |
GET |
| Historical price snapshots by provider and period |
GET |
| Price statistics: min, max, average, percentiles |
GET |
| Market analysis with trends and recommendations |
GET |
| Preview order cost without creating it |
POST |
| Estimate energy and bandwidth for any transaction type |
GET |
| On-chain account info |
GET |
| Energy, bandwidth, and free BW for any address |
GET |
| Transaction details by ID |
GET |
| Block info by number or latest |
GET |
| TRON network parameters |
Authenticated endpoints (API key required)
Method | Endpoint | Description |
POST |
| Create order -- routed to cheapest provider |
GET |
| List orders with optional status filter |
GET |
| Order details with fills, TX hashes, verification |
GET |
| MERX account balance (TRX, USDT, locked) |
GET |
| Deposit address and memo |
POST |
| Withdraw TRX to external address |
GET |
| Account transaction history |
GET |
| History summary with totals |
POST |
| Create new API key |
GET |
| List API keys |
DELETE |
| Revoke API key |
POST |
| Register webhook endpoint |
GET |
| List registered webhooks |
DELETE |
| Remove webhook |
POST |
| Ensure minimum resources on an address |
POST |
| Create server-side standing order |
GET |
| List standing orders |
POST |
| Create delegation or balance monitor |
GET |
| List monitors |
x402 endpoints (zero registration)
Method | Endpoint | Description |
POST |
| Create payment invoice |
POST |
| Verify invoice payment |
Full API reference: merx.exchange/docs/api
MCP server
MERX provides a full MCP (Model Context Protocol) server for AI agents. 66 tools across 18 categories, 30 pre-built prompts, and 21 live data resources.
Note: the tool catalog table below was last fully audited at 52 tools. Twelve newer tools (agent payment service, swap module, advanced standing orders) are documented at merx.exchange/docs/tools/mcp-server. The canonical count is 64, served by the live MCP server.
Tool categories
Category | Count | Auth | Description |
Price Intelligence | 5 | -- | Real-time prices from all providers, market analysis, trends, history |
Resource Estimation | 2 | -- | Estimate energy + bandwidth for any transaction type |
Resource Trading | 4 | API key | Buy energy/bandwidth at best price, ensure resources on any address |
Account Management | 3 | API key | Balance, deposit info, transaction history |
Agent Convenience | 4 | -- | Explain concepts, suggest durations, calculate savings, list providers |
On-chain Queries | 5 | -- | Account info, TRX/TRC20 balances, transaction lookup, blocks |
Token Operations | 4 | Private key | Send TRX, transfer TRC20, approve tokens -- all resource-aware |
Smart Contracts | 3 | Mixed | Read contract state, estimate call cost, execute with auto-resources |
Network Utilities | 5 | -- | Chain parameters, address tools, TRX price, on-chain history |
DEX Swaps | 3 | Private key | SunSwap V2 quotes, execution with exact energy simulation |
Onboarding | 2 | -- | Create account + login, no browser needed |
Payments | 4 | Mixed | Self-deposit, auto-deposit config, x402 pay-per-use |
Intent Execution | 2 | Mixed | Multi-step plans: simulate or execute complex sequences |
Standing Orders | 4 | API key | Server-side 24/7 automation: price triggers, cron, monitors |
Session Management | 2 | -- | Set API key and private key for current session |
Total | 52 |
Prompts (30)
Pre-built conversation templates available in Claude Desktop prompt picker and via
prompts/get in any MCP client.
Group | Prompts | Examples |
Market (5) | buy-energy, buy-bandwidth, ensure-resources, market-analysis, compare-providers | "Buy energy at best market price" |
Transactions (5) | send-usdt, send-trx, send-token, multi-transfer, explain-transaction | "Send USDT with auto resource optimization" |
Wallet (4) | check-wallet, audit-spending, monitor-delegations, optimize-wallet | "Full wallet overview with balances and delegations" |
DEX (3) | swap-tokens, check-token, price-check | "Swap tokens via SunSwap" |
Planning (3) | estimate-costs, budget-plan, stake-vs-rent | "Plan energy budget for a period" |
Developer (2) | integrate-merx, setup-mcp | "How to integrate MERX API" |
Onboarding (2) | onboard, fund-account | "Create account and get started" |
Payments (2) | setup-auto-funding, buy-without-account | "x402 zero-registration purchase" |
Simulation (2) | simulate-plan, execute-plan | "Simulate a multi-step plan" |
Monitoring (2) | setup-standing-order, auto-renew-delegations | "Set up auto-renewal for delegations" |
Resources (21)
14 static resources + 7 URI templates. Attach to conversations as context or subscribe for real-time updates.
Resource | URI | Updates |
Energy prices |
| Every 30s |
Bandwidth prices |
| Every 30s |
Best price |
| Every 30s |
Market analysis |
| Every 5m |
Provider list |
| Every 30s |
Provider status |
| Every 30s |
Account balance |
| On change |
Recent orders |
| On change |
Account stats |
| Every 5m |
Auto-deposit config |
| On change |
Network parameters |
| Every 1h |
TRX price |
| Every 1m |
Token reference |
| Static |
Standing orders |
| On change |
URI Templates:
Template | Description |
| Full address state: TRX, tokens, energy, bandwidth |
| Energy + bandwidth with free BW tracking |
| Recent transactions with type and amounts |
| Active delegations with expiry times |
| Token metadata + price + transfer energy cost |
| Order details with fills and cost breakdown |
| Standing order trigger state and executions |
Example conversations
Check prices and buy energy:
User: What is the cheapest energy right now?
Agent: [calls get_prices] Cheapest energy is 22 SUN from Netts (5-minute
delegation). For 65,000 energy, that is 1.43 TRX.
User: Buy it for TLyqz...
Agent: [calls create_order] Done. 65,050 energy delegated via Netts.
Cost: 1.43 TRX. TX: 27ab0019... (verified on-chain).Resource-aware USDT transfer:
User: Send 100 USDT to TAddr.
Agent: [calls transfer_trc20] MERX estimated 7,896 energy needed,
bought 65,000 at 22 SUN, waited for delegation, signed and
broadcast. USDT sent. Cost: 1.43 TRX instead of 3.66 TRX.
Savings: 87.6%.Market analysis:
User: Is now a good time to buy energy?
Agent: [calls analyze_prices] Energy is at 22 SUN -- the 1st percentile
of the last 7 days. 64% below the weekly average of 62 SUN.
Trend: falling. Recommendation: good time to buy.Full tool reference
All 66 tools with auth requirements. For input schemas and output examples, see docs/TOOLS.md.
Price Intelligence
# | Tool | Description | Auth |
1 |
| Current energy and bandwidth prices from all providers | -- |
2 |
| Cheapest provider for given resource and amount | -- |
3 |
| Market analysis with trends, percentile, and recommendation | -- |
4 |
| Historical price snapshots by provider, resource, and period | -- |
5 |
| Side-by-side provider comparison with all duration tiers | -- |
Resource Estimation
# | Tool | Description | Auth |
6 |
| Estimate energy + bandwidth for TRX/TRC20/custom operations | -- |
7 |
| Energy, bandwidth, free BW, and TRX balance for any address | -- |
Resource Trading
# | Tool | Description | Auth |
8 |
| Buy energy or bandwidth, routed to cheapest provider | API key |
9 |
| Order details with fills, TX hashes, and verification status | API key |
10 |
| List orders with optional status filter | API key |
11 |
| Declarative: ensure minimum energy/bandwidth on an address | API key |
Account Management
# | Tool | Description | Auth |
12 |
| MERX account balance (TRX, USDT, locked) | API key |
13 |
| MERX deposit address and memo | API key |
14 |
| MERX account order history (7D/30D/90D) | API key |
Agent Convenience
# | Tool | Description | Auth |
15 |
| Explain TRON concepts: energy, bandwidth, staking, delegation, sun_units | -- |
16 |
| Recommend rental duration based on use case and TX count | -- |
17 |
| Calculate savings from renting vs burning for N transactions | -- |
18 |
| All providers with types, durations, and availability | -- |
On-chain Queries
# | Tool | Description | Auth |
19 |
| Full on-chain account: TRX, energy, bandwidth, limits | -- |
20 |
| Quick TRX balance for any address | -- |
21 |
| TRC-20 token balance (supports symbol or contract address) | -- |
22 |
| Look up transaction by ID with status, energy, bandwidth used | -- |
23 |
| Block info by number (or latest) | -- |
Token Operations
# | Tool | Description | Auth |
24 |
| Send TRX with auto bandwidth optimization | Private key |
25 |
| Transfer TRC-20 tokens with auto energy + bandwidth | Private key |
26 |
| Approve TRC-20 spending allowance with auto energy | Private key |
27 |
| Token metadata: name, symbol, decimals, total supply | -- |
Smart Contracts
# | Tool | Description | Auth |
28 |
| Call view/pure contract functions (no gas, no signing) | -- |
29 |
| Estimate energy + bandwidth for a contract call | -- |
30 |
| Execute state-changing contract function with auto resources | Private key |
Network Utilities
# | Tool | Description | Auth |
31 |
| TRON network parameters with MERX price comparison | -- |
32 |
| Convert between base58 (T...) and hex (41...) formats | -- |
33 |
| Current TRX price from CoinGecko | -- |
34 |
| Validate TRON address format and check on-chain status | -- |
35 |
| On-chain transaction history for any address | -- |
DEX Swaps
# | Tool | Description | Auth |
36 |
| Real SunSwap V2 quote with expected output and slippage | -- |
37 |
| Execute SunSwap swap with exact energy simulation | Private key |
38 |
| Token price via SunSwap pools + CoinGecko USD rate | -- |
Onboarding
# | Tool | Description | Auth |
39 |
| Create MERX account and get API key | -- |
40 |
| Log in to existing MERX account | -- |
Payments
# | Tool | Description | Auth |
41 |
| Deposit TRX to MERX from wallet (signs TX with memo) | API key + Private key |
42 |
| Configure auto-deposit when balance drops below threshold | API key |
43 |
| Pay an existing x402 invoice | Private key |
44 |
| x402 zero-registration order: invoice, pay, verify, order | Private key |
Intent Execution
# | Tool | Description | Auth |
45 |
| Execute multi-step plan with resource optimization | API key |
46 |
| Simulate multi-step plan without executing | -- |
Standing Orders and Monitors
# | Tool | Description | Auth |
47 |
| Create server-side standing order with trigger + action | API key |
48 |
| List standing orders with status filter | API key |
49 |
| Create persistent monitor (delegation, balance, price) | API key |
50 |
| List monitors with status filter | API key |
Session Management
# | Tool | Description | Auth |
51 |
| Set MERX API key for this session | -- |
55 |
| Set TRON private key for this session (address auto-derived) | -- |
SDKs
JavaScript / TypeScript
npm install merx-sdkimport { MerxClient } from 'merx-sdk'
const merx = new MerxClient({ apiKey: 'merx_sk_your_key' })
// 4 modules: prices, orders, balance, webhooks
const prices = await merx.prices.list()
const best = await merx.prices.best({ resource: 'ENERGY' })
const order = await merx.orders.create({ ... })
const status = await merx.orders.get(order.id)
const balance = await merx.balance.get()
const webhooks = await merx.webhooks.list()Property | Value |
Package |
|
Modules |
|
Methods | 16 |
TypeScript | Full type definitions included |
Dependencies | Zero |
Node.js | 18+ |
Python
pip install merx-sdkfrom merx import MerxClient
merx = MerxClient(api_key="merx_sk_your_key")
# Same 4 modules, snake_case
prices = merx.prices.list()
best = merx.prices.best(resource="ENERGY")
order = merx.orders.create(resource_type="ENERGY", amount=65000, ...)
status = merx.orders.get(order.id)
balance = merx.balance.get()Property | Value |
Package |
|
Modules |
|
Methods | 16 |
Type hints | Full type annotations |
Dependencies | Zero |
Python | 3.11+ |
REST API
No SDK required. All endpoints accept JSON and return JSON.
# Get prices (public, no auth)
curl https://merx.exchange/api/v1/prices
# Get best price for energy
curl https://merx.exchange/api/v1/prices/best?resource=ENERGY
# Create order (authenticated)
curl -X POST https://merx.exchange/api/v1/orders \
-H "Authorization: Bearer merx_sk_your_key" \
-H "Content-Type: application/json" \
-d '{"resource_type":"ENERGY","amount":65000,"duration_sec":300,"target_address":"TAddr..."}'
# Check balance
curl https://merx.exchange/api/v1/balance \
-H "Authorization: Bearer merx_sk_your_key"Real-time data
WebSocket
Connect to wss://merx.exchange/ws for real-time price updates.
const ws = new WebSocket('wss://merx.exchange/ws')
ws.onopen = () => {
// Subscribe to all energy price updates
ws.send(JSON.stringify({ type: 'subscribe', channel: 'prices', resource: 'ENERGY' }))
}
ws.onmessage = (event) => {
const data = JSON.parse(event.data)
// { provider: "netts", resource: "ENERGY", price_sun: 22, available: 100000000, ... }
}Property | Value |
Endpoint |
|
Channels |
|
Update frequency | Every 30 seconds for prices |
Heartbeat | Every 30 seconds |
Reconnect | Client-side with exponential backoff recommended |
Webhooks
Register webhook endpoints to receive HTTP POST notifications for account events.
curl -X POST https://merx.exchange/api/v1/webhooks \
-H "Authorization: Bearer merx_sk_your_key" \
-H "Content-Type: application/json" \
-d '{"url":"https://your-app.com/webhook","events":["order.filled","deposit.received"]}'Event | Fired when |
| Energy or bandwidth order has been filled by a provider |
| Order failed after all provider attempts exhausted |
| TRX deposit confirmed and credited to balance |
| TRX withdrawal broadcast and confirmed on-chain |
Security: Every webhook request includes an X-Merx-Signature header containing
an HMAC-SHA256 signature computed with your webhook secret. Verify this signature
before processing. Failed deliveries are retried with exponential backoff.
Payment methods
MERX supports three ways to pay for energy and bandwidth.
1. Pre-funded MERX balance
Deposit TRX to your MERX account via the dashboard at merx.exchange or via the API. Trade directly from your balance. Best for high-volume users and teams.
# Check balance
curl https://merx.exchange/api/v1/balance \
-H "Authorization: Bearer merx_sk_your_key"
# Response
# { "available_trx": 45.20, "locked_trx": 1.43, "total_trx": 46.63 }2. Self-deposit from agent wallet
The agent deposits TRX to MERX from its own wallet using the deposit_trx tool or
API. The tool builds a TRX transfer with the correct memo, signs it locally, and
broadcasts. Balance is credited in 1-2 minutes.
deposit_trx(amount: 10)
-> TX: 4bc60854f828...8ddcd509
-> 10 TRX deposited. Will be credited to your MERX balance shortly.3. x402 pay-per-use
No account needed. No pre-deposit. Create an invoice, pay with TRX from any wallet,
and receive energy delegation directly. Complete flow in one API call or one tool
call via create_paid_order.
create_paid_order(amount: 65000, duration_sec: 300,
resource_type: "ENERGY", target_address: "THT49...")
-> Invoice: inv_f41ffc2f...
-> Payment TX: 53236a5a...
-> Cost: 1.43 TRX
-> Status: PENDING -> FILLED
-> 65,050 energy delegated to THT49...Method | Setup required | Best for | Min deposit |
Pre-funded balance | Account + dashboard deposit | High-volume users, teams | Any amount |
Self-deposit ( | API key + private key | Autonomous agents | Any amount |
x402 ( | Private key only | One-off purchases, no-account agents | Per-order |
See docs/PAYMENT-METHODS.md for detailed flow diagrams.
Standing orders and monitors
Standing orders
Server-side 24/7 automation stored in PostgreSQL. Persists across restarts. Works when the client is offline.
Trigger types:
Trigger | Description | Example |
| Fire when best price drops below threshold | Buy 65,000 energy when price < 20 SUN |
| Fire when best price exceeds threshold | Alert when energy exceeds 50 SUN |
| Cron-based schedule | Buy energy every day at 03:00 UTC |
| Fire when MERX balance drops below threshold | Auto-deposit 50 TRX when balance < 10 TRX |
Action types:
Action | Description |
| Buy specified amount of energy or bandwidth |
| Ensure minimum resources on target address |
| Send notification via webhook |
Example:
create_standing_order(
trigger: { type: "price_below", resource: "ENERGY", threshold_sun: 20 },
action: { type: "buy_resource", amount: 65000, duration_sec: 300 },
target_address: "TLyqz...",
max_executions: 10,
budget_trx: 15
)
-> Standing Order: so_a1b2c3d4
-> Status: ACTIVE
-> Trigger: ENERGY price < 20 SUN
-> Action: Buy 65,000 energy (5m)
-> Budget: 15 TRX (10 executions max)Delegation monitors
Watch delegations and resources on any address. Alert before expiry. Auto-renew with configurable max price.
Monitor type | Description | Example |
| Alert before energy/bandwidth delegation expires | Alert 5 minutes before expiry, auto-renew at max 30 SUN |
| Alert when TRX balance drops below threshold | Alert when balance < 5 TRX |
| Alert on price movements | Alert when energy price drops below 20 SUN |
Example:
create_monitor(
type: "delegation_expiry",
address: "TLyqz...",
resource: "ENERGY",
alert_before_sec: 300,
auto_renew: true,
max_price_sun: 30
)
-> Monitor: mon_e5f6g7h8
-> Status: ACTIVE
-> Type: delegation_expiry
-> Alert: 5 minutes before expiry
-> Auto-renew: Yes (max 30 SUN)Savings calculator
Energy is the expensive resource on TRON. These numbers show the cost difference between burning TRX (no energy) and renting energy through MERX.
Resource | Purpose | Free daily | Without it |
Energy | Smart contract execution (USDT transfers, swaps, approvals) | 0 (must stake or rent) | TRX burned at network rate |
Bandwidth | Transaction serialization (every TX needs some) | 600 bytes/day | TRX burned at network rate |
Cost comparison
Scenario | Burn cost (no energy) | Rental cost (MERX) | Savings |
1 USDT transfer | 3-13 TRX | 1.43 TRX | 56-89% |
10 USDT transfers | 30-130 TRX | 14.30 TRX | 52-89% |
100 USDT transfers/day | 300-1,300 TRX | 143 TRX | 52-89% |
SunSwap swap (small) | ~50 TRX | ~4.91 TRX | ~90% |
Contract call (simple) | ~1 TRX | ~0.09 TRX | ~91% |
Numbers assume the cheapest available provider at time of order. Actual burn cost varies by recipient address state (whether it has held the token before).
How it works
1 TRX = 1,000,000 SUN. Energy is priced in SUN per unit. A USDT transfer needs approximately 65,000 energy units. At 22 SUN per unit, that is 65,000 x 22 = 1,430,000 SUN = 1.43 TRX. Without energy, the network burns 3-13 TRX from the sender depending on the recipient's account state.
Error handling
All errors follow a standard format across API, SDKs, and MCP:
{
"error": {
"code": "INSUFFICIENT_BALANCE",
"message": "MERX balance too low. Need 1.43 TRX, have 0.50 TRX.",
"details": {
"required_trx": 1.43,
"available_trx": 0.50
}
}
}Common error codes
Code | Description | Resolution |
| MERX account balance too low | Deposit TRX via dashboard or |
| All providers failed for this order | Try again later or increase max price |
| TRON address format invalid | Check address starts with T and is 34 characters |
| Energy delegation did not arrive within timeout | Check order status with |
| Contract call simulation failed | Check contract address and function parameters |
| Operation requires TRON private key | Set |
| Operation requires MERX API key | Set |
| Amount below minimum order size | Energy minimum: 65,000. Bandwidth minimum: 1,500 |
Security
Private key handling
Private keys are set via environment variable (
TRON_PRIVATE_KEY) or theset_private_keytool in-session.Keys never leave the client process. All transaction signing happens locally.
The MERX API never receives private keys.
The
set_private_keytool derives the TRON address automatically -- the user only provides the 64-character hex key.
API key handling
API keys authenticate with the MERX API for trading operations.
Keys can be set via environment variable (
MERX_API_KEY) or theset_api_keytool in-session.Create an account and get an API key without leaving the conversation using the
create_accounttool.
What MERX can and cannot do
With private key | Without private key |
Sign and broadcast transactions | Read-only operations only |
Send TRX and TRC-20 tokens | Check prices and balances |
Execute swaps | Get swap quotes |
Approve contracts | Estimate costs |
Deposit TRX to MERX | View market data |
Tested on mainnet
Every capability was tested in production on TRON mainnet. These are not simulations -- every TX hash is verifiable on TronScan.
Verified transactions
Category | Operation | TX Hash | Status | Details |
Token Operations |
|
| SUCCESS | 0.1 TRX sent, 267 bandwidth consumed |
Payments |
|
| SUCCESS | 10 TRX deposited to MERX with memo, credited to balance |
Token Operations |
|
| SUCCESS | USDT approval, 99,764 energy consumed |
Smart Contracts |
|
| SUCCESS | name() call on contract, 4,098 energy consumed |
DEX Swaps |
|
| SUCCESS | 0.1 TRX -> 0.032 USDT via SunSwap V2, 223,354 energy (exactly as simulated) |
Resource Trading |
|
| FILLED | 65,050 energy via Netts at 22 SUN, 1.43 TRX |
Payments |
|
| SUCCESS | x402 flow: 1.43 TRX invoice paid, 65,050 energy delegated |
Key findings from mainnet testing
Metric | Value |
USDT transfer energy (typical) | 65,000 units |
USDT transfer cost (rented energy) | 1.43 TRX |
USDT transfer cost (burned) | 3-13 TRX |
Maximum savings observed | 94% |
SunSwap swap energy (0.1 TRX -> USDT) | 223,354 units (exact simulation match) |
SunSwap swap output | 0.032094 USDT for 0.1 TRX |
x402 payment flow | Invoice -> pay -> verify -> order -> fill -> delegate (one call) |
Energy delegation confirmation | 2-6 seconds after order fill |
Comparison with alternatives
Factual comparison based on publicly available information.
Feature | MERX | Sun Protocol | Netts MCP | TronLink MCP | PowerSun MCP |
MCP Tools | 55 | ~20 | ~10 | 27 | 27 |
MCP Prompts | 30 | 0 | 0 | 0 | 0 |
MCP Resources | 21 | 0 | 0 | 0 | 0 |
REST API | 70+ endpoints | No | No | No | No |
JavaScript SDK | Yes | No | No | No | No |
Python SDK | Yes | No | No | No | No |
WebSocket | Yes | No | No | No | No |
Web exchange | Yes | No | No | No | No |
Transport | stdio + SSE | stdio | stdio | stdio | SSE |
Energy providers | All connected | 0 | 1 | 0 | 1 |
Bandwidth support | Yes | No | No | No | No |
Auto resource purchase | Energy + BW | No | No | No | Energy only |
Exact energy simulation | Yes | No | No | No | No |
Intent execution | Yes | No | No | No | No |
Standing orders (24/7) | Yes | No | No | No | No |
Delegation monitors | Yes | No | No | No | No |
x402 pay-per-use | Yes | No | No | No | No |
DEX swaps | Yes | No | No | No | Yes |
Zero install option | Yes (SSE) | No | No | No | Yes (SSE) |
Private key required | Optional | Yes | Yes | Yes | No |
Webhooks | Yes | No | No | No | No |
Tested on mainnet | 7 TX verified | Unknown | Unknown | Unknown | Unknown |
MERX covers resource economics, transaction optimization, and general blockchain operations. Other servers focus on one area.
Documentation
Platform | |
Documentation | |
API Reference | |
MCP Tools | |
MCP Prompts | |
MCP Resources | |
Configuration | |
Examples | |
Comparison | |
Intent Guide | |
Standing Orders | |
Payment Methods | |
Architecture | |
Changelog |
License
MIT. See LICENSE.
Available Tools
53 toolsanalyze_pricesCInspect
Market price analysis with trends and recommendations. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | No | Filter by resource type. Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure burden. It adds valuable operational context ('No auth required') and output characteristics ('trends and recommendations'), but omits whether the operation is read-only, rate limits, or how recommendations are generated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two efficient sentences with the primary purpose front-loaded. Every word earns its place, though the extreme brevity leaves gaps in sibling differentiation and parameter context that a slightly longer description could address.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool without output schema, the description adequately hints at return values ('trends and recommendations'). However, given the presence of numerous sibling price tools and lack of annotations, the description should specify the analysis scope (ENERGY/BANDWIDTH) and ideal use cases to be truly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the resource parameter is fully documented as 'Filter by resource type. Omit for all.'), establishing a baseline of 3. The description adds no explicit mention of the resource parameter or its ENERGY/BANDWIDTH enum values, but the schema sufficiency prevents a lower score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it performs 'Market price analysis with trends and recommendations' which uses a specific verb and suggests output format. However, it fails to mention the critical constraint that this only analyzes ENERGY and BANDWIDTH resources (as revealed in the schema), leaving the scope ambiguous regarding whether it supports tokens, commodities, or other assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note 'No auth required' provides one usage constraint, but there is no guidance on when to use this tool versus siblings like get_price_history, get_best_price, or get_prices. Given the crowded namespace of price-related tools, explicit differentiation is needed but absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_trc20AInspect
Approve TRC-20 spending allowance. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token symbol or contract address. | |
| spender | Yes | Spender TRON address. | |
| amount | Yes | Allowance amount (human-readable, or "unlimited"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Adds critical safety context: 'Signs and broadcasts on-chain' indicates permanent state change, and 'Requires TRON_PRIVATE_KEY' warns of credential need. Lacks details on return values, gas costs, or reversibility (can be overridden by subsequent approvals).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste. Front-loaded with action ('Approve...'), followed by behavioral trait ('Signs...'), then prerequisite ('Requires...'). Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for basic invocation but incomplete for a financial mutation tool: missing return value description (transaction hash?), gas fee implications, and reversibility notes. No output schema exists to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description term 'spending allowance' conceptually maps to the parameters (token, spender, amount) but adds no syntax, format, or example details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Approve' with clear resource 'TRC-20 spending allowance'. Distinct from sibling 'transfer_trc20' (which moves tokens) and 'get_trc20_balance' (read-only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides critical prerequisite ('Requires TRON_PRIVATE_KEY') but lacks explicit when-to-use guidance vs alternatives (e.g., when to approve vs immediate transfer, or that this is typically needed before execute_swap). Usage is implied by 'spending allowance' terminology.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_savingsAInspect
Calculate savings from renting energy vs burning TRX. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | Operation type. Default: trc20_transfer. | |
| transaction_count | No | Number of transactions. Default: 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses 'No authentication required' (a key behavioral trait), but omits other critical behavioral context like whether the calculation is deterministic, rate limits, or what the return value contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient: two declarative statements with zero redundancy. The purpose is front-loaded and the auth note provides essential context without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage for 2 simple parameters, the input side is well-covered. However, lacking an output schema and annotations, the description should ideally disclose what the calculation returns (amount, percentage, breakdown) and whether the operation has any side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description adds no explicit parameter semantics, though the schema already fully documents the 'operation' enum values and 'transaction_count' defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Calculate') and clearly defines the resource ('savings from renting energy vs burning TRX'), distinguishing it from siblings like 'estimate_transaction_cost' (which estimates cost) and 'compare_providers' (which compares providers).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (comparing energy rental vs TRX burning costs) but provides no explicit guidance on when to choose this over 'estimate_transaction_cost' or prerequisites for the calculation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_contractAInspect
Execute a state-changing smart contract function. Estimates resources, buys via Merx if needed. Requires TRON_PRIVATE_KEY and TRON_ADDRESS.
| Name | Required | Description | Default |
|---|---|---|---|
| contract_address | Yes | Contract TRON address. | |
| function_selector | Yes | Function signature, e.g. "stake(uint256)". | |
| parameter | No | ABI-encoded parameter hex (optional). | |
| call_value_trx | No | TRX to send with call (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, description effectively covers behavioral traits: declares state-changing nature, discloses automatic resource estimation/acquisition via Merx, and specifies auth requirements ('Requires TRON_PRIVATE_KEY and TRON_ADDRESS'). Missing explicit failure modes or confirmation waiting behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with zero waste: 1) Core purpose, 2) Automatic resource behavior, 3) Prerequisites. Each sentence earns its place and builds necessary context without redundancy. Excellent front-loading of primary function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers execution behavior and auth well, but lacks description of return values or transaction confirmation semantics. For a state-changing blockchain tool without output schema, description should indicate whether it returns tx hashes, receipts, or confirmation status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage, so baseline applies. Description does not add parameter semantics beyond schema (e.g., no examples of ABI-encoding format or guidance on optional vs required context), but schema adequately documents the four parameters including hex encoding note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states specific action ('Execute a state-changing smart contract function') that distinguishes it from sibling tool 'read_contract'. The 'state-changing' modifier explicitly signals this is a write operation, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context by specifying 'state-changing' (use when modifying state vs reading), and mentions automatic resource handling ('Estimates resources, buys via Merx if needed'). Could be improved by explicitly contrasting with 'read_contract' or stating when NOT to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_address_resourcesBInspect
Check energy, bandwidth, and TRX balance for any TRON address. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | TRON address (starts with T). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Absent annotations, the description carries the full disclosure burden. It successfully communicates the authentication requirement (none), but omits other behavioral traits: read-only/idempotent nature, error handling for invalid addresses, rate limits, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences. The first sentence states the function; the second states the auth policy. No wasted words, front-loaded with the most critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup tool without output schema, the description should ideally describe return value structure (object with three fields? individual values?). Currently omits this, leaving the agent blind to expected response format despite adequately covering inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter ('TRON address (starts with T.)'), so the baseline applies. The description adds no incremental parameter guidance (examples, validation rules, or format constraints) beyond the schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action (Check) and resources (energy, bandwidth, TRX balance) for TRON addresses. Implicitly distinguishes from sibling tools like get_trx_balance (which likely omits resource metrics) by explicitly naming energy/bandwidth, though lacks explicit comparative guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this versus siblings like get_account_info, get_balance, or ensure_resources. The only contextual hint is 'No auth required' which is a constraint, not a usage scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_providersAInspect
Side-by-side provider comparison with prices and availability. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | No | Filter by resource type. Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully communicates the authentication requirement (none needed), but omits details about return format, pagination, rate limiting, or whether the comparison is real-time versus cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First sentence front-loads the core function; second sentence provides critical prerequisite info. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with complete schema coverage, the description adequately covers the essential context. Mentions key output data (prices, availability) despite lack of output schema, though explicit return structure would strengthen completeness further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for the single 'resource' parameter. The description does not add parameter-specific semantics, which is acceptable given the high schema coverage establishes the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb phrase 'Side-by-side provider comparison' that clearly identifies the operation and resource. Distinguishes from sibling list_providers by emphasizing comparative analysis and specific data points (prices and availability).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful prerequisite guidance ('No auth required') indicating when the tool is accessible, but lacks explicit differentiation from siblings like list_providers or analyze_prices regarding when to choose this comparison approach over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_addressAInspect
Convert TRON address between base58 (T...) and hex (41...) formats. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | TRON address in base58 (T...) or hex (41...). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses 'No auth required' which is critical behavioral context. However, lacks disclosure of error handling (what happens with invalid addresses), return format structure, or rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero waste. Front-loaded with action verb, immediately followed by format specifics and auth status. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for input explanation given single-parameter simplicity. However, lacking output schema, the description omits what the tool returns (converted string? object with both formats?), which would be necessary for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage with format examples (T..., 41...). Description reinforces these format patterns but does not add syntax details, validation rules, or semantic constraints beyond the schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb (convert), resource (TRON address), and scope (base58 T... vs hex 41... formats). Distinguishes from siblings like validate_address (which only checks validity) and get_account_info (which retrieves data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'No auth required' which provides prerequisite guidance, but lacks explicit when-to-use distinctions from similar tools like validate_address or guidance on bidirectional conversion preferences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_accountAInspect
Create a new Merx account, generate an API key, and get deposit info. No auth needed.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address for the account | ||
| password | Yes | Password (min 8 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It reveals the operation generates an API key and retrieves deposit info (side effects/outputs), and the 'No auth needed' disclosure is crucial behavioral context. However, it omits error handling (e.g., duplicate email), idempotency, or rate limit details expected for an account creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Front-loaded with the primary action (account creation), followed by secondary outputs (API key, deposit info), and closes with the critical constraint (no auth needed). Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description partially compensates by disclosing that the operation returns/generates an API key and deposit info. With 100% schema coverage and simple parameter structure, this is sufficient context, though error scenarios remain undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing baseline 3. The description implies email/password are for the new account but does not add parameter-specific semantics beyond the schema (e.g., password requirements, email validation rules) or explain the parameter relationship to the generated API key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Create' with resource 'Merx account' and distinguishes from siblings like 'login' (existing auth) and 'set_api_key' (configuring existing credentials). The additional clauses about generating an API key and getting deposit info clarify the full scope of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'No auth needed' clause provides critical contextual guidance distinguishing this from most sibling tools that likely require authentication. However, it lacks explicit guidance on when to use this versus 'login' (e.g., 'for new users only').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_monitorAInspect
Create a persistent monitor (delegation expiry, balance, price alert). Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| monitor_type | Yes | Type of monitor to create. | |
| target_address | No | TRON address to monitor (for delegation_expiry). | |
| params | Yes | Monitor params: { alert_before_sec, auto_renew, resource_type, max_price_sun, duration_sec }. | |
| notify | Yes | Notification config: { webhook, telegram_chat_id }. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It successfully indicates persistence (distinguishing from ephemeral operations) and authentication requirements, but omits lifecycle details (how to delete/disable), trigger behavior specifics, or reversibility notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient two-sentence structure. Every element is high-signal: the verb+resource, the parenthetical type enumeration, and the auth prerequisite. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (4 params, nested objects) and lack of annotations/output schema, the description covers the core creation purpose but has gaps around expected return values (e.g., monitor ID), error conditions, and lifecycle management (how monitors are stopped or expire).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds value by translating the enum values of monitor_type (delegation_expiry, balance_threshold, price_alert) into readable business terms (delegation expiry, balance, price alert) and implying the alert nature of the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Create) and resource (persistent monitor), and specifically enumerates the three supported monitor types (delegation expiry, balance, price alert) in parentheses, which distinguishes this from generic monitoring or analysis tools in the sibling list like analyze_prices or get_price_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a critical prerequisite ('Auth required'), but lacks explicit guidance on when to choose this over one-time checks (like get_balance) or how it relates to sibling list_monitors. The listing of monitor types offers implied usage context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_orderBInspect
Buy energy or bandwidth on Merx. Routed to cheapest provider. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| resource_type | Yes | Resource type to purchase. | |
| amount | Yes | Amount of resource units (min 65000 for ENERGY, 300 for BANDWIDTH). | |
| duration_sec | Yes | Rental duration in seconds (e.g. 300, 3600, 86400, 2592000). | |
| target_address | Yes | TRON address to receive delegated resources. | |
| max_price_sun | No | Optional max price in SUN/unit. Order fails if no provider is cheaper. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses automatic routing logic ('Routed to cheapest provider') and authentication requirement. However, with no annotations and no output schema, it omits crucial purchasing behavior: payment method, failure modes beyond price limits, atomicity, and return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse at three short sentences. No redundancy, but arguably underspecified given the complexity of blockchain resource procurement—front-loaded action is good, but length is insufficient for the domain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Financial transaction tool with no annotations and no output schema requires extensive behavioral documentation. Missing: return structure, error handling, payment flow, and side effects on the target_address balance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in struct fields. Description adds no parameter-specific guidance beyond implying the resource types through the first sentence, warranting baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Buy') identifies the transaction type and resources ('energy or bandwidth') with platform context ('Merx'). However, it fails to distinguish from sibling order tools like 'create_paid_order' and 'create_standing_order'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only mentions 'Auth required' as a prerequisite. Provides no guidance on when to use this generic order creation versus siblings (create_paid_order, create_standing_order) or other resource acquisition methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_paid_orderAInspect
Create a zero-registration order via x402 pay-per-use. Requires TRON_PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| resource_type | Yes | Resource type | |
| amount | Yes | Amount of resource units | |
| duration_sec | Yes | Duration in seconds | |
| target_address | Yes | TRON address to receive resources |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully indicates the payment model ('x402 pay-per-use') and authentication requirements ('TRON_PRIVATE_KEY'), but omits critical operational details such as whether the operation spends funds immediately, error handling, idempotency, or return value structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the first front-loads purpose and mechanism, while the second states prerequisites. Every word earns its place with no redundancy or tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, and the existence of similar sibling tools (create_order, create_standing_order), the description should explicitly differentiate usage scenarios. It mentions the 'zero-registration' characteristic but does not explain the trade-offs or outcomes compared to alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds value by documenting an implicit requirement ('TRON_PRIVATE_KEY') not present in the input schema, alerting the agent to necessary environment configuration. However, it does not elaborate on parameter formats or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('zero-registration order') with specific protocol context ('x402 pay-per-use'). However, while 'zero-registration' implicitly distinguishes this from sibling 'create_order', it does not explicitly name the alternative or clarify when to choose between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies a critical prerequisite ('Requires TRON_PRIVATE_KEY'), which helps the agent understand setup requirements. However, it fails to provide explicit guidance on when to use this tool versus siblings like 'create_order' or 'create_standing_order'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_standing_orderBInspect
Create a server-side standing order with trigger-based automation. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| trigger_type | Yes | Condition that triggers the order. | |
| trigger_params | Yes | Trigger parameters: { resource, threshold_sun } or { cron }. | |
| action_type | Yes | Action to perform when triggered. | |
| action_params | Yes | Action parameters: { resource_type, amount, duration_sec, target_address }. | |
| budget_trx | Yes | Maximum budget in TRX (converted to SUN internally). | |
| max_executions | Yes | Maximum number of times this order can execute. | |
| expires_at | No | ISO 8601 expiration date (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully indicates the server-side persistence and authentication requirement, but lacks critical behavioral details: execution semantics (synchronous vs queued), cancellation mechanisms, idempotency guarantees, or budget enforcement behavior when 'max_executions' is reached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with zero waste. Two sentences deliver the core value proposition and authentication requirement. Every word earns its place in this minimal description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Grossly insufficient for a complex 7-parameter automation tool with financial implications (budget_trx). No output schema is provided, yet the description does not explain what the tool returns (e.g., order ID) or how to manage created orders (via list_standing_orders). Missing lifecycle documentation for a persistent server-side resource.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, establishing a baseline of 3. The description adds semantic context by mentioning 'trigger-based automation,' which helps frame the relationship between trigger_type/trigger_params and action_type/action_params, but does not elaborate on parameter formats (e.g., valid cron syntax) beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Create) and resource (standing order) with key characteristics (server-side, trigger-based automation). However, it fails to distinguish from siblings like 'create_order' or 'create_paid_order', leaving ambiguity about when to choose this over immediate execution orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance provided is 'Auth required,' which is a prerequisite rather than usage context. There is no indication of when to use this automated approach versus immediate execution tools like 'create_order' or 'ensure_resources', nor any mention of prerequisites like existing account balances.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deposit_trxAInspect
Deposit TRX to your Merx account. Requires MERX_API_KEY + TRON_PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| amount_trx | Yes | Amount of TRX to deposit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and successfully discloses authentication requirements. However, it lacks details on irreversibility, confirmation times, or return values for this financial operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no redundancy. Information is front-loaded with the action first, followed by prerequisites. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter operation, covering core intent and auth. However, gaps remain regarding the return structure, synchronous/asynchronous behavior, and amount formatting specifics given this is a financial transaction tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter already described as 'Amount of TRX to deposit'. The tool description adds no additional parameter-specific semantics (e.g., unit format, decimal precision), warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Deposit), resource (TRX), and destination (Merx account), distinguishing it from sibling tools like transfer_trx or withdraw.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states authentication prerequisites (MERX_API_KEY + TRON_PRIVATE_KEY), but lacks guidance on when to use this tool versus alternatives like transfer_trx or enable_auto_deposit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_auto_depositBInspect
Configure automatic top-up when balance drops below a threshold. Session-only.
| Name | Required | Description | Default |
|---|---|---|---|
| threshold_trx | Yes | Balance threshold in TRX | |
| deposit_amount_trx | Yes | Amount of TRX per deposit | |
| max_daily_deposits | No | Max deposits per day (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It discloses the session-scoped nature ('Session-only'), which is essential. However, it omits mutation details such as whether this creates immediate transactions, overwrites previous auto-deposit settings, or what happens on trigger failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero redundancy. Front-loaded action ('Configure automatic top-up') followed by constraint ('Session-only'). Minor ambiguity in whether 'Session-only' refers to the configuration duration or deposit timing prevents a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple 3-parameter schema and lack of annotations/output schema, the description covers the essential purpose and session constraint. However, it omits expected return values, side effects (e.g., interaction with existing monitors), and disable/cancellation procedures, leaving moderate gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (threshold_trx, deposit_amount_trx, max_daily_deposits fully documented). The description mentions 'threshold' generally but does not add semantic value beyond the schema—such as explaining why amounts are strings not numbers, or the relationship between threshold and deposit amount.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Configure' and clear resource 'automatic top-up' identify the tool's function. The phrase 'when balance drops below a threshold' defines the trigger condition, and 'Session-only' distinguishes this from persistent automation siblings like create_standing_order. However, it does not explicitly contrast with manual deposit_trx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Session-only' constraint provides critical usage context (configuration expires with session). However, it lacks explicit guidance on when to choose this over manual deposits (deposit_trx) or persistent standing orders, and does not state prerequisites like minimum balance requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensure_resourcesAInspect
Declarative resource provisioning. Checks current resources on target address and purchases only what is missing. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| target_address | Yes | TRON address to provision resources for. | |
| energy_minimum | No | Minimum energy the address should have. | |
| bandwidth_minimum | No | Minimum bandwidth the address should have. | |
| duration_sec | No | Rental duration in seconds (default: 3600). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry behavioral disclosure. It adds valuable context about the declarative/idempotent pattern and differential purchasing (only missing amounts), but omits crucial mutation details like failure modes, transaction confirmation timing, cost attribution, or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three efficient sentences with zero redundancy. Front-loaded with pattern ('Declarative'), followed by mechanism ('Checks... purchases'), and prerequisite ('Auth required'). Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter blockchain mutation tool with no output schema, the description adequately explains the provisioning logic but lacks disclosure around return values, error states, or asynchronous completion behavior that would help an agent handle the response correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage (target_address, energy_minimum, bandwidth_minimum, duration_sec), establishing baseline 3. The description mentions 'target address' and implies the minimums are thresholds, but adds no additional syntax guidance, format details, or examples beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies 'Declarative resource provisioning' and clarifies the mechanism ('Checks current resources... purchases only what is missing'), distinguishing it from simple check or buy operations. It identifies the resource type (energy/bandwidth implied by parameters) and action, though it doesn't explicitly name sibling contrasts like check_address_resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Auth required' indicating a prerequisite, but lacks explicit when-to-use guidance relative to siblings (e.g., when to use check_address_resources vs this tool) or when not to use (e.g., insufficient TRX balance scenarios).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_contract_callAInspect
Estimate energy and bandwidth cost for a smart contract call. Compares rental vs burn cost. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| contract_address | Yes | Contract TRON address. | |
| function_selector | Yes | Function signature, e.g. "transfer(address,uint256)". | |
| parameter | No | ABI-encoded parameter hex (optional). | |
| caller_address | No | Caller TRON address for simulation (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. It successfully adds the rental vs burn comparison behavior and the no-auth requirement. However, it omits critical safety context: it doesn't explicitly state whether this executes the call or is purely simulative, and provides no hint about return value structure or rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: purpose declaration, behavioral detail (rental/burn comparison), and usage constraint (no auth). Perfectly front-loaded with the core action in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriately complete for a 4-parameter estimation tool with full schema coverage. Addresses the core value proposition (cost estimation with comparison) and prerequisites. Minor deduction for lacking return value description given no output schema exists, though 'Estimate... cost' provides reasonable expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage with clear type hints (e.g., 'ABI-encoded parameter hex'). The description adds no additional parameter semantics, but the baseline 3 is appropriate when the schema already fully documents all 4 parameters including optional/required status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Estimate' with clear resource targets (energy and bandwidth cost) and scope (smart contract call). The mention of 'rental vs burn cost' distinguishes this from generic estimation tools like estimate_transaction_cost or simulate, clearly positioning it within the TRON resource model context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one explicit usage constraint ('No auth required'), which helps determine prerequisites. However, lacks explicit guidance on when to use this versus siblings like call_contract (execution vs estimation) or simulate, though the 'Estimate' verb partially implies read-only simulation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_transaction_costAInspect
Estimate energy and bandwidth cost for a TRON transaction. Compares rental vs burn cost. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Transaction type. | |
| from_address | No | Sender TRON address. | |
| to_address | No | Recipient TRON address. | |
| token_address | No | TRC20 contract address. | |
| amount | No | Token amount (as string). | |
| contract_address | No | Contract address (custom). | |
| function_selector | No | Function selector (custom). | |
| parameter | No | ABI-encoded parameter (custom). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Successfully discloses key behaviors: comparison logic ('rental vs burn cost') and auth requirements. Missing return value format and rate limit information, but covers the critical domain-specific behavior (TRON's dual resource model).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste. Front-loaded with core purpose (estimation), followed by distinguishing behavioral detail (rental/burn comparison), ending with operational constraint (auth). Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 8 parameters with conditional requirements (custom operation needs contract_address/function_selector) and no output schema. Description omits conditional parameter logic and return structure. Adequate for basic usage but gaps remain for complex 'custom' operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage (all 8 params documented). Description does not add parameter semantics beyond schema, which is acceptable given the high coverage. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Estimate' plus clear resource 'energy and bandwidth cost for a TRON transaction'. Distinguishes from execution siblings (transfer_trx, transfer_trc20) by being estimation-focused, and differentiates from estimate_contract_call by targeting general transactions rather than specific contract calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit auth guidance ('No auth required'), which helps determine when it can be called safely. However, lacks explicit differentiation from similar estimation sibling estimate_contract_call or guidance on when to use 'custom' vs predefined operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_intentBInspect
Execute a multi-step operation (transfer, swap, buy resources, etc). Validates and simulates all steps with resource cost estimates. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Array of { action, params } steps to execute. | |
| resource_strategy | No | Resource acquisition strategy (default: batch_cheapest). | |
| dry_run | No | If true, simulate only without executing (default: false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses validation, simulation behavior, and cost estimation features. Also notes auth requirement. Lacks critical details for a financial execution tool: atomicity guarantees (all-or-nothing execution?), error handling, and side effects on partial failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three well-structured sentences: purpose first, behavioral features second, requirements third. No redundancy. Front-loaded with action verb. Minor quibble: 'etc.' is vague, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimum viable for a complex financial orchestration tool. With 100% schema coverage and no output schema, description covers essentials (purpose, validation, auth). However, given complexity of multi-step blockchain operations, gaps remain regarding return value structure, step failure behavior, and interaction with sibling transaction tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage with clear parameter definitions. Description adds value by connecting 'simulates' to dry_run behavior and 'resource cost estimates' to resource_strategy, but primarily reinforces what the schema already documents. Baseline 3 appropriate given comprehensive schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Execute' and resource 'multi-step operation' with concrete examples (transfer, swap, buy resources) that distinguish it from single-step siblings like transfer_trx or execute_swap. The 'multi-step' qualifier effectively differentiates its orchestration role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides prerequisite ('Auth required') and implies usage through 'multi-step' capability, suggesting when to use it (complex workflows). However, lacks explicit guidance on when to prefer specific tools (execute_swap, transfer_trc20) versus this orchestration tool, or when to use dry_run mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_swapCInspect
Execute a token swap on SunSwap V2. Requires TRON_PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| from_token | Yes | Source token symbol (TRX, USDT, USDC, etc.) | |
| to_token | Yes | Destination token symbol | |
| amount | Yes | Amount of source token to swap | |
| slippage | No | Slippage tolerance in percent (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full disclosure burden. It mentions the authentication requirement but omits critical behavioral traits: that the operation is irreversible, consumes gas fees, requires sufficient TRX for bandwidth, may fail due to slippage or liquidity, and returns transaction details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero redundancy. The first identifies the operation and platform; the second states the critical prerequisite. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-stakes DeFi mutation with no output schema and no annotations, the description is insufficient. It lacks warnings about financial risk, irreversibility, gas costs, expected return values (transaction hash?), and failure modes essential for an agent to safely invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds minimal parameter-related context—primarily noting the external TRON_PRIVATE_KEY requirement (not in schema)—but does not clarify parameter formats (e.g., whether amount is in base units or decimal) or slippage calculation specifics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (execute), resource (token swap), and platform (SunSwap V2). However, it does not explicitly differentiate from the sibling tool `get_swap_quote`, which agents might confuse as the execution step versus the quoting step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it notes the prerequisite 'Requires TRON_PRIVATE_KEY', it fails to provide workflow guidance such as when to use this versus `get_swap_quote` (get price first) or `approve_trc20` (required approval before swapping TRC20 tokens). No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_conceptAInspect
Explain a TRON or Merx concept. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Topic: energy, bandwidth, staking, delegation, sun_units, burn_vs_rent, merx_routing, provider_types |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully communicates the authentication requirement (a key behavioral trait), but omits other behavioral details such as whether the explanation is static or dynamic, output length/format, or idempotency characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two highly efficient sentences. The first establishes core purpose (explain concepts); the second provides critical operational context (no auth required). Every word earns its place with zero redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 required parameter, no nested objects), full schema coverage, and lack of output schema, the description is sufficiently complete. The mention of authentication requirements covers the essential safety context, though explicitly stating 'read-only' would further improve completeness given the absence of destructiveHint annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the 'topic' parameter includes a detailed description enumerating valid values like 'energy, bandwidth, staking'). The description adds no supplementary parameter guidance beyond what the schema provides, warranting the baseline score of 3 for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a specific verb ('Explain') and resource ('TRON or Merx concept') that clearly identifies this as an educational tool. While it implicitly distinguishes itself from operational siblings like 'transfer_trx' or 'execute_swap' by nature of being informational rather than transactional, it lacks explicit differentiation language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes valuable usage guidance via 'No authentication required,' which is critical context in a blockchain toolset where most operations require keys. However, it lacks explicit when-to-use guidance versus analytical tools like 'analyze_prices' or 'get_account_info' that might also provide explanatory context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoAInspect
Full on-chain account state: TRX balance, energy, bandwidth, creation date. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | TRON address (T...). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It successfully discloses the auth requirement (none needed), which is critical behavioral context. However, it omits other behavioral details such as rate limits, caching behavior, or what happens when an invalid address is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver high information density. The first sentence front-loads the return value specifics (account state components), and the second states the auth requirement. Zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (1 string parameter) and lack of output schema, the description appropriately compensates by enumerating the specific data fields returned (energy, bandwidth, etc.). It meets the minimum viable standard for completeness, though error handling documentation would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the address parameter is fully documented in the schema as 'TRON address (T...)'). Therefore, per the scoring rules, the baseline score is 3. The description adds no additional parameter semantics, but none are required given the complete schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool returns (TRX balance, energy, bandwidth, creation date) and the scope (full on-chain account state), providing specific resource detail. However, it does not explicitly differentiate from siblings like `get_balance` or `get_trx_balance` despite those being available alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'No auth required' provides a usage prerequisite, indicating when the tool can be safely called. However, it lacks explicit guidance on when to choose this over sibling tools like `get_balance` or `get_trx_balance` that return partial data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceAInspect
Get your Merx account balance (TRX, USDT, locked). Requires MERX_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully notes the MERX_API_KEY requirement (auth behavior) and implies read access via 'Get', but omits output format details, rate limits, and explicit safety confirmation that would be necessary for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First sentence establishes action and scope (including specific currencies); second states prerequisites. Information is front-loaded and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read operation but has clear gaps: no output schema exists (common for this tool type), and with numerous sibling balance-related tools (get_trx_balance, get_trc20_balance, get_account_info), the description should clarify the specific use case or return structure differences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters justifies the baseline score of 4. The description adds value by noting the MERX_API_KEY requirement, which indicates external configuration is needed despite no input parameters being defined in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' and resource 'Merx account balance' with specific assets (TRX, USDT, locked) mentioned. The 'Merx account' and 'locked' status implicitly distinguish it from siblings like get_trx_balance and get_trc20_balance, though explicit contrast would strengthen this to a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the prerequisite 'Requires MERX_API_KEY' which is critical usage context given the empty parameter schema. However, lacks explicit guidance on when to use this versus sibling tools like get_trx_balance, get_trc20_balance, or get_account_info which appear to serve similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_best_priceAInspect
Find the cheapest provider for a given resource and amount. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes | Resource type. | |
| amount | No | Amount of resource units needed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully notes the auth requirement but does not confirm the read-only nature of the operation, disclose rate limits, or describe what data structure is returned (e.g., single provider vs list with prices).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two efficient sentences. The primary purpose appears first, followed by the auth note. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a simple 2-parameter tool, but lacks description of the return value (critical given no output schema exists) and does not mention the default behavior when optional 'amount' is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema adequately documents 'resource' and 'amount'. The description references both parameters ('resource and amount') but adds minimal semantic meaning beyond the schema's existing descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Find') and scope ('cheapest provider for a given resource and amount'). Identifies specific commodities (ENERGY, BANDWIDTH). However, does not explicitly differentiate from siblings like 'compare_providers' or 'get_prices', which also involve price analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one usage constraint ('No auth required') which is helpful context. However, lacks explicit guidance on when to use this versus alternatives like 'compare_providers' or 'list_providers', or when the optional 'amount' parameter should be included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blockAInspect
Get TRON block info by number (or latest if omitted). No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| block_number | No | Block number. Omit for latest. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries full behavioral burden. It successfully discloses 'No auth required' but fails to confirm read-only safety, describe what specific block data is returned, or mention rate limits/idempotency for this blockchain operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. Main action 'Get TRON block info by number' is front-loaded, followed by parameter optionality and auth requirements. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple single-parameter tool without output schema. Covers core function, optional parameter behavior, and auth requirements. Could be improved by briefly characterizing what 'block info' includes or confirming the read-only nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (parameter fully described as 'Block number. Omit for latest'), establishing baseline 3. Description adds domain context 'TRON' but largely restates the optional parameter behavior already documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' with resource 'TRON block info' and parameter context 'by number', clearly distinguishing it from sibling tools like get_transaction, get_account_info, or get_balance which handle transactions, accounts, and balances respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides parameter usage guidance '(or latest if omitted)' and prerequisite 'No auth required', but lacks explicit guidance on when to use this tool vs. alternatives like get_transaction or get_transaction_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chain_parametersAInspect
Get TRON network parameters (energy fee, bandwidth cost, etc.) with Merx price comparison. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations, the description carries the full disclosure burden. It successfully communicates the authentication requirement (none needed), which is critical behavioral context. However, it omits other potentially relevant behaviors such as data freshness (cached vs. live), rate limits, or the specific structure of the Merx comparison in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient two-sentence structure. First sentence establishes purpose with examples; second sentence states the auth policy. No redundant words or tautologies. Information is front-loaded with the core action before qualifying details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriately complete for a zero-parameter read-only tool. Covers the essential what (network parameters), context (Merx comparison), and operational requirement (no auth). Lacks output description, but for a simple getter without an output schema defined, the description provides sufficient orientation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema contains zero parameters, triggering the baseline score of 4 per evaluation rules. No parameters exist requiring semantic clarification beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: 'Get' is a clear verb, 'TRON network parameters' identifies the resource, and concrete examples (energy fee, bandwidth cost) clarify scope. The 'Merx price comparison' clause distinguishes it from sibling tools like get_prices or compare_providers which focus on token trading rather than network resource costs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one key usage constraint ('No auth required'), which helps identify when this tool is appropriate versus authenticated siblings like transfer_trx or execute_swap. However, lacks explicit guidance on when to prefer this over similar analytical tools like estimate_transaction_cost or compare_providers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deposit_infoBInspect
Get your Merx deposit address and memo. Requires MERX_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully reveals the authentication requirement (MERX_API_KEY), but omits other behavioral traits such as what happens if the key is missing, whether the result is cached, or the specific structure of the returned address/memo data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short, efficient sentences with zero redundancy. The purpose is front-loaded in the first sentence, and the prerequisite is clearly stated in the second. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description identifies what is retrieved (address and memo) and the auth requirement, it lacks description of the return format (critical given no output schema exists) and does not explain the 'memo' concept for users unfamiliar with tagged deposits. For a financial operation tool, this leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters. Per the rubric guidelines for zero-parameter tools, this warrants a baseline score of 4, as there are no parameter semantics to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the exact resource ('Merx deposit address and memo'), clearly indicating this is a retrieval operation. However, it does not explicitly distinguish this from the sibling tool `deposit_trx`, which could confuse whether this tool performs the deposit or merely retrieves the address for future use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only states a prerequisite ('Requires MERX_API_KEY') but provides no guidance on when to use this tool versus alternatives like `deposit_trx` or `create_order`, nor does it explain the workflow context (e.g., 'use this before depositing funds').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderBInspect
Get order details and fill status by ID. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | The order UUID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations provided, the description carries the full disclosure burden. It successfully notes the authentication requirement but omits error handling (e.g., missing ID behavior), rate limits, and detailed return structure. It barely meets minimum viable disclosure for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero fluff. The core purpose ('Get order details...') is front-loaded, with prerequisites ('Auth required') following. Appropriately sized for the tool's simplicity, though the second sentence could specify return structure instead of just auth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter input and lack of output schema, the description adequately covers the basic contract by mentioning returned data types ('details', 'fill status'). However, with numerous order-related siblings present, the absence of selection guidance creates a completeness gap for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage ('The order UUID'), establishing a baseline of 3. The description adds minimal semantic value beyond the schema—only implying the 'order_id' parameter via 'by ID' without adding format constraints, requirements, or usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get'), resource ('order details'), and scope ('fill status by ID'), identifying the unique lookup capability. However, it lacks explicit differentiation from sibling tools like 'list_orders' or 'create_order', which could cause selection ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While 'Auth required' establishes a prerequisite, the description provides no guidance on when to use this specific tool versus siblings (e.g., 'list_orders' for searching, 'get_order' for specific ID retrieval). No alternatives or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_historyCInspect
Historical price snapshots. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | No | Filter by resource type. | |
| provider | No | Filter by provider name. | |
| period | No | Time period (default: 24h). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry full behavioral disclosure. It only conveys authorization requirements ('No auth required'), but omits read-only safety confirmation, rate limits, data granularity, or how far back the history extends.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse at two fragments; while lacking fluff, the brevity compromises clarity. 'Price snapshots' is vague and wastes the opportunity to specify the resource domain (ENERGY/BANDWIDTH) upfront.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple 3-parameter read tool, but lacks expected context for a history-focused endpoint: no mention of data format, pagination, or the specific resource types being priced, leaving functional gaps despite the minimal surface area.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage ('Filter by resource type', etc.), so the baseline is 3. The description adds no parameter syntax details, constraints, or examples beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States it retrieves historical price data, but fails to specify that this applies to ENERGY/BANDWIDTH resources (per schema enum), leaving ambiguity amid sibling tools like get_trx_price and get_token_price. The temporal aspect ('Historical') provides some differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'No auth required' which establishes a prerequisite, but provides no guidance on when to prefer this over get_prices or get_token_price, nor when the historical view is appropriate versus current pricing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesBInspect
Get current energy and bandwidth prices from all Merx providers. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | No | Filter by resource type. Omit for all. | |
| duration | No | Filter by duration in seconds. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authentication requirements (none) and implies read-only nature via 'Get'. However, with no annotations provided, the description carries full burden and omits other behavioral traits like caching, rate limits, error handling, or response format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two lean sentences with zero waste. First sentence front-loads purpose (what it gets, from where), second sentence adds critical behavioral constraint (no auth). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple 2-parameter query tool with complete schema coverage. Covers core purpose and auth, but lacks output description (no output schema exists) and sibling differentiation critical for the crowded price-tool namespace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with clear descriptions for both parameters ('Filter by resource type', 'Filter by duration'). Description mentions 'energy and bandwidth' which maps to enum values but doesn't add syntax details or usage examples beyond what the schema provides. Baseline 3 appropriate for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action (Get), resource (energy and bandwidth prices), and scope (from all Merx providers). Implicitly distinguishes from siblings like get_best_price (all vs best) and get_price_history (current vs historical), though explicit guidance would strengthen this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'No auth required' which is useful usage information, but fails to clarify when to use this versus similar tools like get_best_price, compare_providers, or get_price_history. No explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_swap_quoteCInspect
Get a real swap quote from SunSwap V2. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| from_token | Yes | Source token symbol (TRX, USDT, USDC, etc.) | |
| to_token | Yes | Destination token symbol | |
| amount | Yes | Amount of source token to swap | |
| slippage | No | Slippage tolerance in percent (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only reveals the authentication requirement ('No auth required'). It fails to disclose whether this is a read-only operation, what data structure the quote returns, rate limits, or quote expiration behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two efficient sentences with zero waste. The core purpose ('Get a real swap quote from SunSwap V2') is front-loaded, while the constraint ('No auth required') follows as essential secondary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a DeFi quoting tool with 4 parameters and no output schema or annotations, the description is inadequate. It fails to describe what the quote contains (price, route, minimum output, deadline) or its relationship to 'execute_swap,' which is critical for agent workflow completion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, documenting all four parameters including token symbols and slippage tolerance. The description adds no additional parameter semantics (such as valid token formats or amount precision), but the comprehensive schema makes this acceptable at baseline level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action ('Get'), resource ('swap quote'), and source system ('SunSwap V2'), distinguishing it from generic price tools. However, it does not explicitly differentiate from siblings like 'get_best_price' or 'analyze_prices' that may also provide pricing information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes 'No auth required,' which indicates a usage constraint, but provides no guidance on when to use this versus 'execute_swap' (which performs the actual swap) or versus 'simulate.' It lacks prerequisites or workflow context for the quoting process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_infoAInspect
Get TRC-20 token metadata: name, symbol, decimals, total supply. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token symbol or contract address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully communicates the authentication requirement ('No auth required') and implicitly suggests read-only behavior via 'Get' and the field list. However, it omits explicit safety confirmation (e.g., 'read-only'), error handling behavior, or rate limit warnings that would fully compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with zero waste. First sentence front-loads the action and scope, followed by the specific metadata fields returned. Second sentence provides critical operational context (auth requirements). Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a simple single-parameter lookup tool. The description compensates for the missing output schema by listing the four return fields. Could be improved by explicitly stating the tool is read-only/safe and noting error cases (e.g., invalid token), but adequate for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter fully documented in the schema ('Token symbol or contract address'). The description adds no additional parameter guidance, but meets the baseline expectation when the schema already carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity: 'Get' is a precise verb, 'TRC-20 token metadata' identifies the exact resource type, and listing the four fields (name, symbol, decimals, total supply) clearly distinguishes this from sibling tools like get_token_price (which returns prices) and get_trc20_balance (which returns wallet balances).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides the usage condition 'No auth required,' which helps determine when the tool is accessible (vs. authenticated alternatives). However, it lacks explicit comparison to siblings like get_token_price or get_trc20_balance to clarify when to use metadata retrieval versus price or balance queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_priceBInspect
Get token price via SunSwap quote + CoinGecko USD rate. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token symbol (USDT, USDC, SUN, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully identifies the external data sources (SunSwap, CoinGecko) and authentication requirements, but omits operational details like caching behavior, rate limits, error handling for unsupported tokens, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient at 9 words. The description front-loads the action, specifies the mechanism, and states the auth requirement without redundancy. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter tool, covering the essential function and data provenance. However, given the high sibling complexity (numerous price tools) and lack of output schema, it should provide more differentiation or behavioral context to be considered complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (token parameter fully documented), establishing a baseline of 3. The description adds no additional parameter-specific context (e.g., case sensitivity, supported token standards, or validation rules) beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get token price') and the specific data sources ('SunSwap quote + CoinGecko USD rate'), which implicitly distinguishes its methodology from siblings like get_best_price or get_swap_quote. However, it does not explicitly clarify when to prefer this over the five other price-related sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it notes 'No auth required' (a prerequisite), it provides no guidance on when to select this tool versus alternatives like get_best_price, get_prices, or get_swap_quote. Given the crowded namespace of price tools, this omission creates selection ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionAInspect
Look up a transaction by ID on TRON. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_id | Yes | Transaction ID (hash). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully communicates the authentication requirement (none needed) and implies a read-only operation through 'look up,' but omits details about return format, error handling for invalid IDs, or rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two information-dense sentences. The purpose is front-loaded in the first sentence, and the second sentence provides a critical behavioral note. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a simple, single-parameter lookup tool with full schema coverage. While it lacks an output schema or return value description (which would be ideal), the 'No auth required' note adds necessary context for blockchain operations, making it sufficiently complete for agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage (tx_id described as 'Transaction ID (hash)'), the baseline score is 3. The description references 'by ID' which aligns with the schema but adds no additional semantic context about the parameter format or constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (look up), resource (transaction), and scope (by ID on TRON). The 'by ID' phrasing implicitly distinguishes it from sibling tools like get_transaction_history and search_transaction_history, though it doesn't explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one usage constraint ('No auth required'), which is valuable for blockchain tooling. However, it lacks explicit guidance on when to use this specific tool versus get_transaction_history or search_transaction_history, leaving the agent to infer based on the 'by ID' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transaction_historyBInspect
Get your Merx account transaction history. Requires MERX_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period to query. Default: 30D. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses the authentication requirement (MERX_API_KEY) but omits other critical behavioral traits such as pagination behavior, default/maximum result limits, data freshness, or whether the operation is read-only and safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: first states purpose, second states auth requirement. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description covers the minimum (purpose + auth) but leaves gaps. For a transaction history tool likely returning variable-length datasets, omitting pagination details, result limits, or output payload expectations makes this incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage ('Time period to query. Default: 30D.'), so the baseline score is 3. The description adds no parameter-specific semantics (e.g., it does not mention the 'period' parameter, valid formats, or the default), but it does not need to compensate given complete schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('Get...transaction history') and scope ('Merx account'). Deducted one point because it fails to distinguish from sibling 'search_transaction_history'—it is unclear when to use this time-bounded list versus the search variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions the prerequisite 'Requires MERX_API_KEY', which is relevant to usage. However, provides no guidance on when to use this tool versus 'search_transaction_history' or 'get_transaction' (singular), or any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trc20_balanceAInspect
Get TRC-20 token balance for an address. Supports symbol (USDT, USDC) or contract address. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | TRON address to query. | |
| token | Yes | Token symbol (USDT, USDC) or contract address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description carries the burden. It discloses the public/unauthenticated nature ('No auth required') but omits other behavioral traits like rate limits, error handling for invalid addresses, or return value format. Adequate but minimal for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste. Front-loaded with purpose ('Get TRC-20...'), followed by input flexibility, then authentication status. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple 2-parameter tool with no output schema. Description lacks return value specification (e.g., whether it returns raw or formatted amounts, decimals), which is a notable gap given the absence of an output schema. Otherwise covers the essential invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline applies. Description repeats the schema's content about supporting symbols (USDT, USDC) or contract addresses, adding no new semantic meaning or format guidance beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' with specific resource 'TRC-20 token balance' and scope 'for an address'. Explicitly names the token standard, distinguishing it from siblings like get_trx_balance (native TRX) and get_balance (likely general/native).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'No auth required', which is a critical usage constraint distinguishing it from mutation tools (transfer_trc20, approve_trc20) that likely require authentication. Lacks explicit 'when to use vs get_token_info' comparison, but resource specificity makes this clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trx_balanceAInspect
Quick TRX balance for a TRON address. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | TRON address (T...). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It successfully communicates the auth-less nature of the call and implies speed ('Quick'), but fails to disclose error behaviors, rate limits, or what happens with invalid addresses. Missing return value description given no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient two-sentence structure. Front-loads the core purpose ('Quick TRX balance') and follows with the critical behavioral note ('No auth required'). Zero redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter tool with complete schema coverage, but falls short of full completeness due to missing description of return values (critical for a balance query) and lack of error handling context. The 'No auth required' partially compensates for missing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% ('TRON address (T...)'), establishing a baseline of 3. The description mentions 'TRON address' but adds no semantic detail beyond the schema regarding format, validation rules, or example values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly identifies the resource (TRX balance) and target (TRON address). Specifies 'TRX' which distinguishes it from sibling get_trc20_balance, though it could explicitly mention this retrieves native TRX (not tokens) to strengthen differentiation from get_trc20_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one explicit usage constraint ('No auth required'), which is valuable for a blockchain tool. However, lacks explicit when-to-use guidance versus siblings like get_balance or get_account_info, and doesn't mention what format the balance is returned in.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trx_priceAInspect
Get current TRX price from CoinGecko. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Fiat currency code (default: usd). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully identifies the external data source (CoinGecko) and authentication requirements (none), but omits operational details like rate limiting, caching behavior, error modes, or whether the operation is idempotent/read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient two-sentence structure. Information is front-loaded with the core action, followed by critical operational metadata (auth). Zero extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read operation without an output schema, the description adequately covers the essential context: what it returns (TRX price), from where (CoinGecko), and access requirements. Slight gap in not describing the return value format or numeric precision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'currency' parameter is fully documented in the schema with default value noted). The description adds no additional parameter semantics, meeting the baseline score for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description provides specific verb ('Get'), resource ('current TRX price'), and data source ('from CoinGecko'). The specificity of 'TRX' distinguishes it from generic sibling 'get_token_price', while 'current' distinguishes it from 'get_price_history'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes 'No auth required', which provides one usage constraint, but fails to explicitly state when to use this tool versus siblings like 'get_token_price' (which could also fetch TRX) or 'get_prices'. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monitorsCInspect
List all monitors with optional status filter. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by monitor status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully notes authentication requirements but fails to indicate read-only safety, return value structure, pagination behavior, or what constitutes a 'monitor' in this domain (e.g., price monitors, transaction monitors).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at two sentences. Information is front-loaded with the core action first, followed by the auth constraint. No redundant or wasted language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low parameter complexity, the absence of both annotations and an output schema creates significant gaps. The description fails to explain what data structure is returned, what 'monitors' represent in this TRON/crypto toolset context, or behavioral constraints beyond authentication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description confirms the status filter is 'optional' (aligning with zero required parameters) but adds no semantic detail about the enum values (ACTIVE/CANCELLED) or query syntax beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb (List) and resource (monitors) with explicit mention of the optional status filter. Distinguishes from sibling 'create_monitor' through the action verb, though it could explicitly reference the creation tool to strengthen differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Auth required' which is a necessary constraint, but provides no guidance on when to use this versus alternatives (e.g., when to filter by ACTIVE vs CANCELLED) or its relationship to 'create_monitor'. Lacks explicit prerequisites beyond authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersCInspect
List recent orders with optional status filter. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by order status. | |
| limit | No | Max number of orders to return (default: 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only discloses that authentication is required ('Auth required'), but omits critical behavioral traits: whether the operation is read-only (implied but not confirmed), pagination behavior, the time window defining 'recent', rate limits, or the structure of returned order objects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two short sentences and no redundant content. It is front-loaded with the primary action. However, 'Auth required' is telegraphic rather than smoothly integrated (e.g., 'Requires authentication'), slightly detracting from the flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (two primitive parameters, no output schema), the description provides minimum viable coverage by stating the core operation and authentication requirement. However, it lacks completeness regarding return value structure, the definition of 'recent', and the presence of the 'limit' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description mentions the 'optional status filter' which adds context about the 'status' parameter's purpose and optionality, but completely omits any reference to the 'limit' parameter, relying entirely on the schema for that parameter's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a specific verb ('List') and resource ('orders') plus a scope constraint ('recent'). However, it does not explicitly differentiate from the sibling tool 'get_order' (singular), though 'recent' and plural 'orders' imply a multiple-record retrieval pattern versus single-record retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description fails to provide explicit usage guidelines, when-not-to-use conditions, or alternative tool recommendations. It does not clarify when to use 'list_orders' versus 'get_order' for specific order lookups, nor does it mention prerequisites beyond the terse 'Auth required'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_providersAInspect
List all Merx providers with types, durations, and availability. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully communicates authentication requirements and return data structure (types, durations, availability). However, it omits other behavioral traits like pagination behavior, rate limiting, or whether the data is cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two highly efficient sentences. The first covers purpose and return value; the second covers authentication requirements. There is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool without an output schema, the description adequately covers the essential context: what the tool does, what data it returns, and its security requirements. It could be improved by mentioning pagination behavior or explicit differentiation from the compare_providers sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters, establishing a baseline score of 4 per the rubric. The description appropriately does not invent parameter semantics where none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (List), resource (Merx providers), scope (all), and the specific data returned (types, durations, availability). This distinguishes it from siblings like compare_providers which would focus on analysis rather than enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes 'No authentication required,' which provides prerequisite guidance. However, it lacks explicit guidance on when to use this versus siblings like compare_providers or get_best_price, and does not specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_standing_ordersBInspect
List all standing orders with optional status filter. Auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses 'Auth required' which is critical behavioral context, but omits other key traits like read-only status, pagination behavior, or what the response structure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two crisp sentences with no waste: the first establishes purpose and scope, the second states the auth constraint. Information is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one simple parameter with complete schema coverage and no output schema, the description is minimally adequate. However, it should ideally clarify the relationship to 'list_orders' and confirm the read-only nature given the lack of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'status' param is documented as 'Filter by status.'). The description adds that the filter is 'optional', confirming the zero required parameters, but this is largely redundant with the structured schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (List) and resource (standing orders), distinguishing the scope from 'list_orders' by specifying 'standing orders'. However, it does not explicitly differentiate when to use this versus its sibling 'list_orders' or 'get_order'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the 'optional status filter' which implies usage, but provides no explicit guidance on when to use this tool versus alternatives like 'list_orders' or 'get_order', nor any prerequisites beyond the auth note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginBInspect
Log in to an existing Merx account. No MERX_API_KEY needed.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address | ||
| password | Yes | Password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Adds valuable auth context ('No MERX_API_KEY needed'). However, fails to disclose what successful login returns (session token, cookie, temporary access?), side effects, or security considerations (rate limits, lockout behavior) critical for authentication tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact two-sentence structure with no filler. Front-loaded with action. Secondary sentence provides useful authentication context. However, brevity comes at cost of missing behavioral details (output format) that would require third sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for basic invocation but incomplete for an authentication tool with no output schema. Missing critical information about return values (auth tokens, session identifiers) and state changes resulting from login.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for both email and password parameters. Description adds minimal semantic value beyond schema, only clarifying these are for a 'Merx account'. Baseline 3 appropriate when schema does heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Log in' and resource 'existing Merx account'. The phrase 'existing' effectively distinguishes from sibling 'create_account', and 'No MERX_API_KEY needed' distinguishes from 'set_api_key' and other authenticated tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implicit guidance via 'existing' (requires pre-registered account) and 'No MERX_API_KEY needed' (credential-based vs token-based). However, lacks explicit when-to-use (e.g., 'use when you have email/password but no API key configured') and mentions no prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pay_invoiceBInspect
Pay an x402 invoice by sending TRX and verifying payment.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | Invoice ID to pay |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Reveals executes on-chain TRX transfer and includes verification logic, hinting at async/blockchain behavior. However, missing critical mutation details: transaction fees, irreversibility, required confirmations, failure modes, or idempotency—especially important given zero annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, nine words, zero redundancy. Action verb front-loaded. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal parameter complexity (1 param) and no output schema reduce burden, but as a financial mutation tool, the description omits essential operational context like cost implications, authorization scope, or balance requirements that would aid agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage (invoice_id described as 'Invoice ID to pay'), establishing baseline 3. Description adds no additional semantic context about ID format, source, or constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific action (Pay), resource type (x402 invoice), and mechanism (sending TRX and verifying payment). Distinguishes from generic transfer tools via 'x402' specificity and verification step. Minor gap: assumes familiarity with 'x402' protocol without brief context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to select this versus sibling tools like 'create_order', 'deposit_trx', or 'transfer_trx'. Does not indicate prerequisites (e.g., TRX balance requirements) or when payment workflows should use this specific endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_contractAInspect
Call a view/pure function on a TRON smart contract. No auth or private key required.
| Name | Required | Description | Default |
|---|---|---|---|
| contract_address | Yes | Contract TRON address. | |
| function_selector | Yes | Function signature, e.g. "balanceOf(address)". | |
| parameter | No | ABI-encoded parameter hex (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully discloses the critical behavioral trait that no authentication is required. It implies read-only behavior via 'view/pure', though it could add context about return formats or node query behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Front-loaded with the action ('Call a view/pure function'), followed by scope ('on a TRON smart contract'), then critical behavioral constraint ('No auth or private key required'). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema exists, the description should ideally specify what gets returned (raw hex vs decoded values). While 'view/pure' implies a return value, the format remains ambiguous. The auth clarification compensates partially for missing annotations, but return value documentation is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions including examples (e.g., 'balanceOf(address)'). The description adds no parameter-specific semantics beyond the schema, which is appropriate when schema coverage is complete. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description specifies 'Call a view/pure function on a TRON smart contract' - clear verb, specific resource, and distinguishes from sibling 'call_contract' by specifying 'view/pure' functions only. The 'No auth' clause further clarifies this is read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'No auth or private key required' provides implicit guidance to use this for read-only operations versus state-changing alternatives. However, it doesn't explicitly reference sibling 'call_contract' or state when to prefer this over other query tools like 'get_balance'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_transaction_historyAInspect
Get on-chain transaction history for a TRON address. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | TRON address. | |
| type | No | Transaction type filter (default: all). | |
| limit | No | Max results (default: 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully communicates the authentication model (no auth required) but omits other behavioral traits like rate limits, return format, error handling for invalid addresses, or pagination behavior beyond the limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two efficient sentences with zero waste: the first establishes purpose and scope, the second provides the authentication note. It is appropriately front-loaded and compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter query tool without output schema, the description covers the essentials (purpose, auth). However, given the critical sibling naming collision with 'get_transaction_history', the description is incomplete without clarifying the distinction between these tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage (address, type, limit all documented), establishing a baseline score of 3. The description mentions 'TRON address' aligning with the required parameter but does not add semantic context beyond what the schema already provides for the type filter or limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'on-chain transaction history for a TRON address' with a specific verb and resource. However, it fails to distinguish from the sibling tool 'get_transaction_history', leaving ambiguity about when to choose this variant over the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes 'No auth required,' providing a usage constraint. However, it lacks explicit guidance on when to use this tool versus the similar 'get_transaction_history' sibling, or any prerequisites beyond authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_api_keyAInspect
Set your Merx API key for this session. Unlocks all authenticated tools (trading, balance, orders). Use this if you already have an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Your Merx API key (starts with sk_live_) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses critical behavioral traits: session-scoped storage ('for this session') and side effects ('Unlocks all authenticated tools'). Missing details on whether this overwrites existing keys or security/storage guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: action (sentence 1), effect (sentence 2), prerequisite (sentence 3). Front-loaded with purpose. No redundancy with structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for an authentication setup tool with many dependent siblings. Explains unlocking capability sufficiently. No output schema present but unnecessary for a setter; however, lacks mention of validation errors or overwrite behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage ('Your Merx API key (starts with sk_live_)'). Description adds prerequisite context ('if you already have an API key') but doesn't add format guidance beyond schema's sk_live_ prefix. Baseline 3 appropriate when schema does heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specificity with 'Set your Merx API key' (verb + resource) plus session scope 'for this session'. Clearly distinguishes from sibling 'set_private_key' by specifying 'Merx API key' and listing unlocked categories (trading, balance, orders).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisite 'Use this if you already have an API key' implying when to use. Lacks explicit contrast with sibling 'set_private_key' (wallet key vs API key) which would prevent confusion given both set credentials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_private_keyAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| private_key | Yes | Your TRON private key (64 hex characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and discloses critical behaviors: session-scoped storage, automatic address derivation, and the security guarantee that the key stays local and is never sent to Merx servers. It could improve by mentioning validation behavior or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences covering purpose, side effects (address derivation), enabled capabilities, and security guarantees. Every sentence earns its place with zero redundancy. Information is front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (cryptographic key handling) and lack of annotations/output schema, the description provides adequate behavioral context and security disclosures. Minor gap: does not describe return values or confirmation behavior, though the side effects are well-documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage ('Your TRON private key (64 hex characters)'). The description adds no additional parameter-specific guidance beyond what the schema already provides, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (Set), resource (TRON private key), and scope (for this session). It distinguishes from sibling 'set_api_key' by specifying 'TRON private key' and distinguishes from read operations by listing specific write tools it enables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly lists the write tools this enables (transfer_trx, transfer_trc20, etc.), providing clear context for when to use it. However, it lacks explicit 'when not to use' guidance or comparison to alternatives like set_api_key for authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulateAInspect
Simulate a multi-step operation without executing. Returns resource estimates and costs.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Array of { action, params } steps to simulate. | |
| resource_strategy | No | Resource acquisition strategy (default: batch_cheapest). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It successfully communicates the non-mutative nature ('without executing') and output type ('resource estimates and costs'), but lacks details on validation depth (does it check step syntax?), error handling for invalid steps, or whether simulation consumes rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of exactly two high-value sentences with zero redundancy. The first sentence front-loads the core mechanism (simulation without execution), and the second specifies the return value. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage and lack of output schema, the description adequately covers the tool's purpose and return type ('resource estimates and costs'). It appropriately omits low-level parameter details already covered by the schema. A minor gap is the lack of detail on output structure or validation behavior, but this is sufficient for a 2-parameter preview tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage ('Array of { action, params }', 'Resource acquisition strategy'), establishing a baseline of 3. The description mentions 'multi-step operation' and 'resource estimates' which loosely map to the 'steps' and 'resource_strategy' parameters but adds no syntax details, format examples, or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Simulate') with a clear resource ('multi-step operation') and explicitly distinguishes itself from execution-focused siblings like 'execute_swap' and 'execute_intent' via 'without executing.' It also previews the return value ('resource estimates and costs'), clearly positioning the tool in the validation/dry-run category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without executing' provides clear context for when to use this tool (dry-run/pre-validation) versus the many execution-oriented siblings (create_order, transfer_trx, execute_intent). However, it does not explicitly map to specific alternatives or state prerequisites (e.g., 'use this before execute_swap').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_durationAInspect
Recommend a rental duration based on your use case. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| use_case | Yes | Your intended use case. | |
| transaction_count | No | Expected number of transactions (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully conveys the authentication requirements (none), but omits other behavioral details such as whether this performs external API calls, has rate limits, or what format the recommendation takes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of exactly two sentences with no redundancy. The primary purpose appears in the first sentence, while the second sentence provides critical operational context (authentication), making it appropriately front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two parameters, one optional, no output schema), the description adequately covers the essential information needed for invocation. It successfully identifies the tool's advisory nature and security requirements, though specifying the return format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, establishing a baseline of 3. The description adds minimal semantic context beyond the schema, merely referencing 'your use case' which aligns with the use_case parameter but doesn't explain the optional transaction_count parameter's role in the calculation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (recommend) and resource (rental duration), and the context of sibling tools (ensure_resources, calculate_savings) clarifies this relates to blockchain resource rental. However, it could explicitly specify 'energy/bandwidth rental duration' to remove any ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes 'No authentication required,' which provides useful context about when the tool can be called. However, it lacks explicit guidance on when to use this advisory tool versus execution alternatives like ensure_resources or create_order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_trc20AInspect
Transfer TRC-20 tokens with automatic energy optimization. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| to_address | Yes | Recipient TRON address. | |
| token | Yes | Token symbol (USDT, USDC) or contract address. | |
| amount | Yes | Amount to transfer (human-readable). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses critical behaviors: on-chain commitment ('broadcasts on-chain'), authorization requirement ('Requires TRON_PRIVATE_KEY'), and implementation detail ('automatic energy optimization'). Missing failure modes, idempotency, or return value description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste. Front-loaded with primary action, followed by behavioral disclosure, then authorization requirement. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and description omits return value format (transaction hash, receipt status). While authorization and on-chain effects are disclosed, a blockchain transaction tool should ideally indicate successful completion indicators or returned identifiers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage (all 3 parameters documented). Description adds no additional parameter semantics beyond schema (e.g., no format examples for 'human-readable' amounts or address validation rules), meeting baseline expectations for well-documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Transfer' + resource 'TRC-20 tokens' clearly identifies the operation. Distinguishes from sibling 'transfer_trx' by explicitly naming the TRC-20 token standard, and from 'approve_trc20' by specifying the transfer action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States prerequisite 'Requires TRON_PRIVATE_KEY' but lacks explicit when-to-use guidance versus alternatives (e.g., distinguishing when to use this vs 'transfer_trx' for native currency or vs 'approve_trc20' for allowances). Usage constraints are implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_trxAInspect
Send TRX to an address. Checks bandwidth, buys via Merx if needed. Signs and broadcasts on-chain. Requires TRON_PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| to_address | Yes | Recipient TRON address. | |
| amount_trx | Yes | Amount of TRX to send. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden and effectively reveals the on-chain nature ('Signs and broadcasts on-chain'), side effects (bandwidth checks, potential Merx purchases), and authentication requirements. Missing only failure modes and rate limit disclosures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four declarative sentences, front-loaded with the primary action. Every clause adds unique behavioral or prerequisite information without repetition, making it information-dense yet readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema and annotations, the description adequately covers the execution flow, preconditions, and on-chain effects for a blockchain transfer operation. Would benefit from mentioning the return value (e.g., transaction hash) but sufficiently complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for both parameters (to_address, amount_trx), meeting the baseline expectation. However, the description fails to clarify critical semantics like whether amount_trx expects TRX units or smallest decimal units (sun), which is vital for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description immediately specifies the exact action (Send), resource (TRX), and target (address), distinguishing it clearly from sibling tools like transfer_trc20 (which handles TRC20 tokens) and deposit_trx (which implies receiving funds).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the critical prerequisite 'Requires TRON_PRIVATE_KEY' and describes the automatic resource management behavior ('Checks bandwidth, buys via Merx if needed'). However, it lacks explicit differentiation from transfer_trc20 for users deciding between native TRX and token transfers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_addressAInspect
Validate a TRON address format and check on-chain status. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | TRON address to validate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description carries disclosure burden. Adds 'No auth required' (access constraint) and 'check on-chain status' (indicates blockchain query), though could clarify what specific on-chain status means (exists, activated, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero redundant content; first establishes purpose, second provides auth context. Efficiently structured with critical information front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter validation tool without output schema, description adequately covers primary function and operational constraints. Mention of 'on-chain status' hints at return value meaning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for the single 'address' parameter. Description does not add semantic details, syntax examples, or format specifications beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Validate a TRON address format' provides specific verb and resource, while 'check on-chain status' distinguishes from simple format validation or conversion tools like convert_address. The scope is clearly defined against sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'No auth required' indicating it can be used without credentials, but lacks explicit comparison to siblings like check_address_resources or convert_address. No 'when-not-to-use' or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
withdrawAInspect
Withdraw TRX or USDT from your Merx account to an external TRON address. Requires MERX_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Destination TRON address (starts with T). | |
| amount_trx | Yes | Amount to withdraw in TRX (e.g. "100"). Converted to SUN internally. | |
| currency | No | Currency to withdraw. Default: TRX. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It mentions the 'MERX_API_KEY' requirement, but critically omits that this is a destructive, irreversible financial operation with potential for permanent loss if the address is incorrect, lacks fee disclosure, and does not mention confirmation times or async behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two efficient sentences with zero waste. The first sentence front-loads the core action and entities, while the second states the critical auth requirement. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a high-stakes financial mutation tool with no annotations or output schema, the description covers the essential what, where, and auth requirements. However, it exhibits clear gaps regarding operational risks, failure modes, and financial safety considerations that would be necessary for an agent to invoke this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The main description mentions both currency options ('TRX or USDT'), which helps clarify the intent despite the parameter being named amount_trx, but does not add syntax details, validation rules, or format examples beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Withdraw'), resources ('TRX or USDT'), and scope ('from your Merx account to an external TRON address'). This effectively distinguishes the tool from siblings like deposit_trx (incoming) and transfer_trx (likely on-chain or internal transfers).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit context by specifying the direction (Merx account to external address), which helps identify when to use it. However, it lacks explicit guidance on when to choose this over transfer_trc20/transfer_trx, prerequisites beyond the API key, or warnings about irreversible operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
While descriptions clarify specific behaviors, multiple tools overlap in purpose: four distinct price-discovery functions (analyze_prices, get_prices, get_best_price, compare_providers) and two transaction history lookups (get_transaction_history for Merx vs search_transaction_history for on-chain) create ambiguity that requires careful reading to distinguish.
Nearly all tools follow a consistent verb_noun snake_case pattern. Minor deviations like 'withdraw' (lacks resource suffix), 'simulate' (incomplete object), and 'login' (noun rather than verb form) break the otherwise predictable convention.
At 53 tools, the surface significantly exceeds the 25+ threshold for 'too many', even given the broad scope spanning TRON blockchain operations, Merx exchange, and swaps. The granularity fragments simple workflows (e.g., price checking into four separate tools) making agent navigation cumbersome.
Core creation and retrieval operations are present, but notable lifecycle gaps exist: no cancel_order, delete_monitor, or delete_standing_order despite having creation tools for these resources. Deposit functionality also appears limited to TRX despite the platform handling TRC-20 tokens.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
TRON Energy marketplace + DEX swap aggregator for AI agents. 27 MCP tools.
Buy, sell & extend TRON ENERGY/BANDWIDTH on the TronSave market via typed MCP tools.
Self-hosted AI prompt library: prompts, collections, tags, teams, chains. 29 MCP tools for agents.
113 MCP tools: oracle, escrow, compliance, remittance, AI. 12 free tools, PAYG $0.001/call.
Related MCP Servers
- AlicenseAqualityDmaintenanceTRON Energy & Bandwidth marketplace for AI agents — 27 MCP tools for buying/selling resources, DEX swaps, and automated energy management via Streamable HTTP.272MIT
- AlicenseNot gradedqualityCmaintenance250+ AI-powered MCP tools: research, write, code, translate, scrape, sentiment, vision, RAG, agent memory, marketplace, trading signals, and more. 15 models across 7 providers. Pay-per-use via API key or x402 USDC micropayments.2MIT
- AlicenseNot gradedqualityCmaintenanceAI-to-AI marketplace MCP server with 46 tools — swap 65+ crypto tokens on 7 chains, rent GPUs, trade 25 tokenized stocks, on-chain escrow (Solana + Base), DeFi yields, sentiment analysis, wallet monitoring, and image generation. Supports USDC payments across 14 blockchains.MIT
- AlicenseBqualityBmaintenanceA comprehensive MCP server that enables AI agents to interact with the TRON blockchain, including tools for blockchain data, token transfers, smart contracts, staking, and wallet management.972315MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Hovsteder/merx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server