Tronsave MCP Testnet
Server Details
Testnet TronSave MCP server focused on helping agents and clients buy and sell TRON resource quickly through one unified interface, with fast order execution, pricing/estimation tools, and secure session-based workflows.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.7/5 across 29 of 29 tools scored.
Several tools have overlapping purposes, such as multiple estimate and order creation pairs (on-chain vs internal), and multiple order book listing tools. While they serve different auth paths, the boundaries are unclear for an agent, causing potential misselection.
Most tools follow a consistent `tronsave_verb_noun` or `tronsave_internal_verb_noun` pattern. However, exceptions like `tronsave_sell_order_manual` (verb placement) and `tronsave_internal_create_extend_request` (different verb order) create minor deviations.
29 tools is on the high side for a resource market platform. While each tool has a specific purpose, the count suggests potential for consolidation (e.g., merging internal and on-chain paths). The scope is broad but still manageable.
The tool set covers major lifecycle operations (create, update, cancel, sell), estimation, listing, auto-settings, account management, and authentication. Missing features like withdrawal or on-chain wallet balance are minor gaps, but core workflows are supported.
Available Tools
29 toolstronsave_cancel_orderCancel OrderADestructiveIdempotentInspect
Cancel an open order by orderId. Returns the cancelled order payload after the status flip. Side effect: marks the order non-matchable and refunds locked balance per backend rules; effectively destructive on the live order. Idempotent — cancelling an already-cancelled order is a no-op success. Fails for fulfilled orders or unauthorized callers. Requires a signature session and mcp-session-id. Verify state with tronsave_get_order first; prefer tronsave_update_order when only price/receiver should change.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | Target order id (`MObjectId`) to cancel. Must be an active order owned/authorized by the current session; already-fulfilled or already-cancelled orders are expected to fail. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects beyond annotations: marks order non-matchable, refunds locked balance, effectively destructive. Also confirms idempotency stated in annotations by noting cancelling an already-cancelled order is a no-op. No contradiction with 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?
Description is concise (4 sentences) and front-loaded with the core action. Every sentence adds essential information without 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 tool's complexity (side effects, idempotency, failure conditions, prerequisites), the description covers all necessary context. The output schema exists, and the description adequately indicates the return value.
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%, but the description adds meaning: orderId must be an active order owned/authorized by the session, and mentions expected failure scenarios. This adds value beyond the schema description.
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 cancels an open order by orderId and returns the cancelled order payload. It explicitly distinguishes from sibling tronsave_update_order by advising to use that tool for price/receiver changes.
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 when to use (open order, authorized session), when not (fulfilled orders, unauthorized callers), and provides alternatives (tronsave_update_order). Also mentions prerequisites (signature session, mcp-session-id) and a verification step (use tronsave_get_order first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_create_orderCreate OrderAInspect
Create a new buy order on the TronSave market. Key inputs: orderResourceType (ENERGY|BANDWIDTH), orderReceiver (TRON base58), orderUnitPrice in SUN (NOT TRX), orderDurationSec, orderResourceAmount, and paymentMethod: (1) onchain — requires a signed payment tx in paymentSignedTx; (2) internal — deducts from internal balance. Side effect: creates a live order matchable by the market. Requires a signature session and mcp-session-id. Always derive orderUnitPrice and paymentPaymentAmount from the latest tronsave_estimate_buy_resource for the same receiver, amount, and duration to avoid reverts. FRESHNESS: re-quote immediately before submitting — estimates older than a few seconds (one TRON block ≈ 3s) may be stale and cause the order to revert or fill at the wrong price.
| Name | Required | Description | Default |
|---|---|---|---|
| orderReceiver | Yes | TRON base58 address (starts with T) that receives delegated resource. Same as `receiver` passed to `tronsave_estimate_buy_resource`. | |
| paymentMethod | Yes | Payment method for this order: `onchain` (wallet signed tx) or `internal` (internal balance). | |
| orderUnitPrice | Yes | Unit price in SUN. Prefer aligning with `minResourcePrice` or `buyResourcePrice` from the latest `tronsave_estimate_buy_resource` for the same receiver, amount, and duration. | |
| paymentSignedTx | No | Required when `paymentMethod=onchain`. TronWeb-shaped signed TRON transaction (`{ txID, raw_data, raw_data_hex, signature[] }`). Must be produced client-side by the user's wallet; never fabricate or hand-edit. | |
| orderDurationSec | Yes | Delegation duration in seconds. Must match the `durationSec` used in `tronsave_estimate_buy_resource`. | |
| orderResourceType | Yes | Resource to buy: ENERGY (smart contracts) or BANDWIDTH (transactions). Must match `tronsave_estimate_buy_resource`. | |
| orderResourceAmount | Yes | Amount of ENERGY or BANDWIDTH units to purchase. Same as `buyResourceAmount` in estimate when applicable. | |
| paymentPaymentAmount | Yes | Payment amount in SUN. Prefer deriving from `tronsave_estimate_buy_resource`; if converting to TRX, divide SUN by `1e6`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| data | No | |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation and non-idempotency. The description adds the side effect 'creates a live order matchable by the market' and critically warns that stale estimates may cause revert or wrong price. No contradictions with 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?
Description is several sentences but each adds value. Starts with purpose, lists key inputs, then side effect, prerequisites, derivation, and freshness. Well structured, not overly verbose.
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 complexity (8 params, nested objects, output schema exists), the description covers purpose, key inputs, side effect, prerequisites, derivation steps, and freshness. Does not explain output schema (okay, it exists) or error conditions, but sufficient for a well-documented 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 detailed descriptions. The tool description adds extra semantic value by explaining the relationship between parameters (e.g., derive orderUnitPrice from estimate) and providing derivation rules beyond what schema offers. Baseline 3 improved to 4.
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 'Create a new buy order on the TronSave market,' with a specific verb and resource. It distinguishes from sibling tools like tronsave_update_order and tronsave_cancel_order by explicitly being the create variant and listing payment method options.
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 usage prerequisites (requires signature session, mcp-session-id) and derivation guidance (always derive prices from latest estimate). It implies when to use by explaining payment methods but does not explicitly compare with the internal create tool (tronsave_internal_order_create). Offers freshness warning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_delete_auto_buy_settingDelete Auto Buy SettingADestructiveIdempotentInspect
Permanently delete one auto-buy rule by id (MObjectId). Side effect: stops all future executions matching that rule; the rule cannot be restored. Idempotent — deleting a non-existent or already-removed id returns success. Requires a signature session and mcp-session-id. Use tronsave_get_user_auto_setting to list current rules first; prefer disabling/updating instead when reversibility is desired.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Auto-buy setting id (`MObjectId`) to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: it explains the side effect ('stops all future executions matching that rule; the rule cannot be restored'), affirms idempotency ('deleting a non-existent or already-removed id returns success'), and mentions the requirement for a session. These details are not captured by `destructiveHint` or `idempotentHint` alone.
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 concise yet comprehensive: a single sentence for the core action, followed by side effects, idempotency, prerequisites, and usage guidance. Every sentence adds value, and the information is 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's simplicity (one required parameter) and the presence of an output schema (as indicated by context signals), the description covers all necessary aspects: purpose, side effects, prerequisites, idempotency, and alternative approaches. It is complete and leaves no important 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 single parameter `id` is fully described in the schema (100% coverage) with type, minimum length, and description. The description does not add further semantic details beyond what the schema already provides. Thus a baseline score of 3 is appropriate.
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 ('Permanently delete one auto-buy rule by `id`') and the resource ('auto-buy rule'). It distinguishes from sibling tools by explicitly referencing `tronsave_get_user_auto_setting` for listing and suggesting disabling/updating as alternatives for reversibility.
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 explicit usage guidance: it notes required prerequisites ('Requires a signature session and `mcp-session-id`'), suggests listing rules first using a sibling tool, and advises preferring non-destructive actions ('prefer disabling/updating instead when reversibility is desired'). This clearly tells the agent when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_estimate_buy_resourceEstimate Buy ResourceARead-onlyIdempotentInspect
Quote price and availability for buying ENERGY or BANDWIDTH for a receiver address before placing an order. Returns estimated unitPrice (SUN per resource unit), paymentAmount, and availability fields used to populate tronsave_create_order inputs (orderUnitPrice, paymentPaymentAmount). Read-only and safe to call repeatedly; no session is required, but backend rate limits apply. FRESHNESS: this is live market data — unitPrice/availability can change roughly every 3 seconds (one TRON block). Re-run this estimate immediately before tronsave_create_order and never reuse a quote more than a few seconds old. For order-book depth use tronsave_list_order_books; for the minimum unit price only use tronsave_get_min_price.
| Name | Required | Description | Default |
|---|---|---|---|
| receiver | No | receiver address. | |
| unitPrice | No | Unit price in SUN. | |
| durationSec | No | Duration of the order in seconds. Default 15 minutes | |
| resourceType | No | Resource type to buy. Default ENERGY | ENERGY |
| allowPartialFill | No | Allow partial fill of the order. | |
| buyResourceAmount | No | Amount of resource to buy. Default 100000 for ENERGY and 1000 for BANDWIDTH | |
| minResourceDelegateRequiredAmount | No | Minimum amount of resource to delegate. |
Output Schema
| Name | Required | Description |
|---|---|---|
| unitPrice | Yes | Unit price in SUN |
| durationSec | Yes | Delegated duration in seconds |
| estimateTrx | Yes | Estimated TRX cost in SUN |
| availableResource | Yes | Available resource amount |
| systemDepositAddress | Yes | System deposit address for onchain payment |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral details beyond annotations: no session required, backend rate limits apply, data freshness (every ~3 seconds), and that it is read-only and safe to call repeatedly. All align with annotations (readOnlyHint, idempotentHint, openWorldHint).
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 well-structured and front-loaded with the core purpose. It is slightly lengthy but every sentence adds value. Could be marginally tighter, but overall effective.
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 7 parameters and existence of an output schema, the description is complete: it explains purpose, usage, freshness, alternatives, and output field usage. No gaps remain.
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 is 3. The description does not add specific parameter semantics beyond the schema, but it does mention the output fields used to populate create_order inputs, which provides context.
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 it quotes price and availability for buying ENERGY or BANDWIDTH before placing an order. It specifies the resource type and the action (estimate), and distinguishes from siblings like tronsave_list_order_books and tronsave_get_min_price.
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?
Explicit guidance is provided: use before placing an order, re-run immediately before tronsave_create_order, never reuse a quote more than a few seconds old. Also mentions alternatives for order-book depth and minimum unit price.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_generate_api_keyGenerate API KeyADestructiveInspect
Generate a new internal API key credential for the current user. Returns data containing the issued key — store it securely and pass it to tronsave_login (apiKey mode) for internal-tool access. Side effect: issues secret material; not idempotent — each call mints a fresh key. If a previous key existed, treat it as rotated and stop using the old key once the new one is wired up. Requires a signature session and mcp-session-id. Sensitive output — never log raw keys; unauthorized sessions or policy checks may reject issuance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| data | Yes | For `generateApiKey`: the freshly issued internal API key — treat as SECRET, store securely. For `revokeApiKey`: server-defined confirmation string (no key material). |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by explaining the side effect of issuing secret material, non-idempotency, key rotation implications, and security warnings (never log raw keys, rejection possible). No contradiction with 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?
The description is concise and front-loaded with clear purpose. Every sentence adds value: purpose, return value, side effects, usage guidance, and security notes. No wasted 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?
Given the tool has no parameters and an output schema exists, the description covers all necessary aspects: purpose, side effects, security handling, and usage context. It is complete for an effective agent 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?
The input schema has zero parameters, so the description does not need to add parameter details. Per the criteria, baseline is 4.
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 generates an API key credential for the current user, specifying the verb and resource. However, it does not explicitly differentiate from the sibling tronsave_revoke_api_key, missing an opportunity to distinguish when to generate vs revoke.
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 explicit context for use, including required prerequisites (signature session, mcp-session-id) and behavior on key rotation. It lacks explicit when-not-to-use guidance or direct comparison with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_get_deposit_addressGet Deposit AddressARead-onlyIdempotentInspect
Fetches the specific deposit address for the TronSave internal account. Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Trigger this tool if the user asks for a deposit address or needs to top up their TronSave TRX balance. Constraints: 1) TRX only; 2) Minimum deposit amount is 10 TRX; 3) Read-only operation.
| Name | Required | Description | Default |
|---|---|---|---|
| amountTrx | Yes | Amount of TRX to deposit |
Output Schema
| Name | Required | Description |
|---|---|---|
| amountTrx | Yes | Amount of TRX to deposit |
| depositAddress | Yes | TRON base58 deposit address, used for deposit TRX to TronSave internal account |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, open-world. Description adds session requirement, API key handling details, and operation constraints, enhancing transparency.
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?
Structured with purpose first, then prerequisites, usage triggers, and constraints. Slightly verbose about session types but still concise overall.
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 purpose, usage, session requirements, constraints. Output schema exists to define return values, so description is complete for 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?
Schema coverage is 100% for the single parameter. Description adds 'TRX only' context and reinforces minimum deposit, providing marginal added value 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?
The description clearly states the tool fetches a specific deposit address for the TronSave internal account, with constraints (TRX only, min 10 TRX). It is specific and distinguishable from siblings.
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 when to trigger (user asks for deposit address or top-up) and prerequisites (logged-in session with mcp-session-id). Lacks explicit alternatives but provides good context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_get_internal_accountInternal Account InformationARead-onlyIdempotentInspect
Retrieve the TronSave internal account profile for the current session: represent address, deposit address, and balance (SUN). Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Use when the user needs their linked address, deposit address, or internal balance. This is the api-key internal account, not the on-chain wallet. Read-only; does not submit orders or change chain state. FRESHNESS: balance reflects live state and can change within seconds after deposits/orders.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| balance | No | Account balance in SUN (string). |
| depositAddress | No | TRON base58 deposit address for funding the internal balance. |
| representAddress | No | TRON base58 represent address (used as order requester). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint, openWorldHint, and idempotentHint. The description reinforces that it's read-only and does not change chain state, and adds valuable context: freshness of balance updates within seconds, and that it never accepts API keys via arguments. No contradictions.
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 slightly lengthy but well-structured: purpose first, then prerequisites, usage, behavioral notes, and freshness. Every sentence contributes meaningful information, though some phrasings could be trimmed for brevity.
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 with output schema and annotations, the description covers all important aspects: what it returns, preconditions (session), behavioral traits, and data freshness. It is fully adequate for the agent to invoke 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?
The input schema has zero parameters with 100% coverage. Description adds no parameter-level detail, which is unnecessary. A baseline of 4 is appropriate for parameter-less tools.
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 it retrieves the TronSave internal account profile, including represent address, deposit address, and balance in SUN. It specifies 'for the current session,' distinguishing it from related tools like tronsave_get_deposit_address or tronsave_get_user_info.
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 explicitly requires a logged-in MCP session from tronsave_login and explains how to include the session ID. It advises using when the user needs linked address, deposit address, or internal balance, and clarifies it's the api-key internal account, not the on-chain wallet. While it doesn't list alternative tools for on-chain queries, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_get_min_priceGet Minimum Unit PriceARead-onlyIdempotentInspect
Quote the minimum unit price for a buy. Returns { minPrice } (SUN per resource unit) from GraphQL market.estimateMinPrice for the given resourceType, buyAmount, and durationSec. Optional address scopes context when the API supports it. No login required; an optional session forwards auth like tronsave_list_order_books. Read-only and idempotent. FRESHNESS: live market data — minPrice can change roughly every 3 seconds; re-fetch right before placing an order and do not reuse a stale value. Pair with tronsave_estimate_buy_resource for full buy quotes and tronsave_list_order_books for depth buckets.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Optional TRON base58 address (`TronAddress`). When omitted, the server uses anonymous/global market context. | |
| buyAmount | No | Resource amount to price (same units as order book / delegate amounts for that resource type). Default 100000 for ENERGY and 1000 for BANDWIDTH | |
| durationSec | No | Delegation window in seconds; must match the duration you plan to use on a real order for comparable quotes. Default 15 minutes | |
| resourceType | No | Market leg: `ENERGY` or `BANDWIDTH`. Default ENERGY | ENERGY |
Output Schema
| Name | Required | Description |
|---|---|---|
| minPrice | Yes | Estimated minimum unit price in SUN for the given `resourceType`, `buyAmount`, and `durationSec`; align with `tronsave_estimate_buy_resource` and order `unitPrice` conventions (same as GraphQL `market.estimateMinPrice`). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `readOnlyHint`, `openWorldHint`, and `idempotentHint`. The description adds significant behavioral context: it is read-only and idempotent, no login required, optional session auth, and crucially, data freshness (minPrice changes every ~3 seconds, requiring re-fetch). This information goes beyond annotations and is essential for correct agent 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 is well-structured: purpose first, followed by return type, parameters, auth, idempotency, freshness warning, and pairing suggestions. Every sentence is informative and non-redundant. It front-loads the essential information, making it easy for an AI to quickly parse and act.
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 4 parameters (1 enum), is read-only/idempotent, has an output schema (implied by return description), and has many siblings, the description is remarkably complete. It covers purpose, parameters, return, auth, idempotency, data freshness, and relationships to sibling tools. No critical gaps are evident.
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 defaults and descriptions. The description adds value by explaining the practical significance of parameters: `buyAmount` defaults vary by resource type (100000 for ENERGY, 1000 for BANDWIDTH), `durationSec` must match the real order for comparable quotes, and `address` scopes context when supported. This context helps the agent set parameters appropriately beyond what the schema provides, though it is not exhaustive.
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's purpose: 'Quote the minimum unit price for a buy.' It specifies the return format, source API (GraphQL `market.estimateMinPrice`), and parameters, effectively distinguishing it from sibling tools like `tronsave_estimate_buy_resource` and `tronsave_list_order_books` by noting they pair together for different aspects of quoting.
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 explicit when-to-use guidance by recommending pairing with `tronsave_estimate_buy_resource` for full quotes and `tronsave_list_order_books` for depth. It also includes a freshness directive to re-fetch right before ordering and not reuse stale values, and notes that optional session forwarding mirrors `tronsave_list_order_books`. This covers both when to use and how to combine with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_get_orderOrder DetailARead-onlyIdempotentInspect
Read one order by id and return its full snapshot for NORMAL, FAST, or EXTEND order types. Use this as the source of truth before tronsave_update_order, tronsave_sell_order_manual, or tronsave_cancel_order to avoid acting on stale state. FRESHNESS: order state can change within seconds as the market matches — re-read immediately before each mutation instead of reusing an earlier snapshot. Requires a signature session and mcp-session-id. Read-only and idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Target order id (`MObjectId`) to inspect. Use this to confirm current status/price before update, sell, or cancel actions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| order | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint. Description adds that it requires a signature session and mcp-session-id, and notes that order state changes quickly. Adds useful behavioral context beyond 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?
Description is brief and well-structured. Each sentence adds value: action, usage guidance, freshness warning, requirements. No wasted 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?
Given the tool's simplicity (1 parameter, no enums, output schema present), the description is fully complete. It covers purpose, timing, freshness, and prerequisites.
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 a detailed description for the only parameter (id). Description mentions the parameter but adds no new semantics beyond the schema. Baseline 3 is appropriate.
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 'Read' and resource 'order by id', and specifies order types (NORMAL, FAST, EXTEND). It clearly distinguishes from siblings like tronsave_update_order, tronsave_cancel_order which are mutations.
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 tells when to use (source of truth before mutations) and warns against reusing stale state. Provides actionable guidance: re-read immediately before mutation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_get_sign_messageGet Signature MessageARead-onlyIdempotentInspect
Issue a wallet-signable timestamp message helper for signature login. Returns { message, timestamp }: sign message exactly client-side, then submit <signature>_<timestamp> to tronsave_login (signature mode). Optional helper only — clients may also sign their own timestamp payload directly as long as it matches the signature_timestamp format expected by tronsave_login.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | Hex-encoded nonce message to sign client-side with the user's TRON wallet. The signature must be produced over THIS exact message (case-sensitive). |
| timestamp | Yes | Unix epoch seconds corresponding to `message`. Pair it with the wallet signature in `<signature>_<timestamp>` form when calling `tronsave_login` (signature mode). This endpoint is a convenience helper; clients may provide their own timestamp payload as well. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, and idempotentHint. The description adds context by detailing the exact return object and the required format for subsequent login, which goes beyond 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?
The description is concise with two sentences, front-loaded with the key action, and contains no unnecessary 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?
With no parameters and an output schema present, the description fully covers the tool's purpose, return value, and usage context, making it complete for an AI agent.
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 tool has no parameters, so the description does not need to add parameter information. The schema coverage is 100% and the description complements it by explaining the purpose and 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 clearly states the tool's purpose: 'Issue a wallet-signable timestamp message helper for signature login.' It specifies the return format and distinguishes itself from the login tool by describing the intended flow.
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 explicitly says 'Optional helper only' and provides an alternative: 'clients may also sign their own timestamp payload directly.' It also explains how to use the tool in conjunction with tronsave_login.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_get_user_auto_settingUser Auto SettingARead-onlyIdempotentInspect
Read the current user's auto-sell configuration (autoSettings). Returns the full autoSettings object — call this before tronsave_register_auto_sell or tronsave_update_auto_sell_setting to avoid overwriting fields you do not intend to change. Requires a signature session and mcp-session-id. Read-only and idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| vote | No | Whether vote-related automation is enabled for the wallet. |
| energy | No | Energy auto-sell pool snapshot; null when energy automation is disabled. |
| bandwidth | No | Bandwidth auto-sell pool snapshot; null when bandwidth automation is disabled. |
| suggestSell | No | Whether suggest-sell UX hints are enabled. |
| withdrawVote | No | Withdraw-vote configuration as a backend-defined string; semantics from TronSave docs. |
| permitOperations | No | Permission rows enabled for this user; null/empty when no automation has been configured. |
| reclaimOnlyTronSave | No | Reclaim flag — when `true`, only TronSave-managed delegations are reclaimed automatically. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `readOnlyHint`, `openWorldHint`, `idempotentHint`. Description adds value by requiring a signature session and `mcp-session-id`, and states the return is the full `autoSettings` object. Reinforces read-only and idempotent nature without contradiction.
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 concise sentences: first states what it returns, second advises when to use it (with specific sibling names), third states requirements and properties. No unnecessary words; 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?
Given the tool has an output schema and no parameters, the description covers usage context, return object, and prerequisites. Could mention potential errors or limits but is sufficient for an AI agent to use 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?
The tool has zero parameters, so schema coverage is 100%. Description doesn't need to add parameter details. It mentions required authentication context (signature session, mcp-session-id) which is not in schema, adding value.
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 starts with 'Read the current user's auto-sell configuration (`autoSettings`)', clearly stating the verb and resource. It also mentions specific sibling tools (`tronsave_register_auto_sell` and `tronsave_update_auto_sell_setting`) to distinguish purpose.
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 advises to call this tool before modifying auto-sell settings to avoid unintended overwrites. Provides clear context on when to use, though no explicit when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_get_user_infoUser InformationARead-onlyIdempotentInspect
Read the current authenticated user's profile and linked TronSave internal account. Returns { caller, address, balance (SUN string), info, internalAccount } — info carries referral/contact metadata and may be null; internalAccount is null when the wallet has not provisioned a TronSave internal balance yet. Requires a signature session from tronsave_login and mcp-session-id. Read-only and idempotent. Use tronsave_get_user_auto_setting for the auto-sell config or tronsave_get_user_permissions for permission flags when the full profile is unnecessary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| info | Yes | |
| caller | Yes | TRON base58 address of the caller |
| address | Yes | TRON base58 address |
| balance | Yes | Amount in SUN, onchain balance of the address |
| internalAccount | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description reinforces this with 'Read-only and idempotent' and adds useful detail about return values potentially being null (info, internalAccount). This adds value beyond the 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?
Three sentences: first states purpose and return format, second details potential null fields, third gives usage context. No wasted words, well-structured.
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 parameters and rich annotations, the description is complete. It covers return structure, nullability, prerequisites, and alternatives. Output schema is described inline, fulfilling the contextual needs.
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?
There are no parameters (0 params, 100% schema coverage). Baseline is 4 per guidelines. Description does not need to add parameter semantics, and it appropriately omits them.
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 reads the current authenticated user's profile and linked internal account, specifying the return fields. It distinguishes from siblings like tronsave_get_user_auto_setting and tronsave_get_user_permissions, 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?
Explicitly mentions prerequisites: requires a signature session from tronsave_login and mcp-session-id. Also provides guidance on when to use alternative tools, giving clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_get_user_permissionsUser PermissionsARead-onlyIdempotentInspect
Read the enabled permission operations (autoSettings.permitOperations) for the authenticated user. Returns { permitOperations: string[] } — use it before mutating auto-sell or auto-buy rules to confirm the action is allowed for the wallet. Requires a signature session and mcp-session-id. Read-only and idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| permitOperations | Yes | Permission rows enabled for this user; defaults to `[]` when nothing is configured. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint. The description adds the return format `{ permitOperations: string[] }` and confirms idempotence and read-only nature. No contradictions.
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: first states purpose and return, second gives usage guidance and prerequisites. Every sentence adds value, no waste.
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 no parameters, rich annotations, and output schema implied, the description covers purpose, return format, usage context, and prerequisites. Complete for 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?
No parameters exist, so baseline is 4. Description adds no param info, which is appropriate since schema covers all (0 params).
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 the verb 'Read' and the resource 'enabled permission operations (`autoSettings.permitOperations`) for the authenticated user', making the action and scope clear. It distinguishes from sibling tools that deal with orders, auto settings, etc.
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 when to use: 'before mutating auto-sell or auto-buy rules to confirm the action is allowed for the wallet'. Also mentions prerequisites: 'Requires a signature session and `mcp-session-id`.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_internal_create_extend_requestSubmit Delegation ExtensionAInspect
Submit an extension request for existing delegated resources on TronSave, paid from the internal account. Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Side effect: SPENDS internal TRX and creates an extension order; not idempotent. Use as STEP 2 after tronsave_internal_extend_delegates — pass its extendData rows unchanged. Returns { orderId } for the new extension order.
| Name | Required | Description | Default |
|---|---|---|---|
| receiver | Yes | TRON base58 address of the account that receives the delegated resource. | |
| extendData | Yes | Rows copied from `extendData` returned by `tronsave_internal_extend_delegates`. | |
| resourceType | No | Resource type. Default ENERGY when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orderId | No | TronSave order ID (hex string) of the created/extension order. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key side effects: 'SPENDS internal TRX and creates an extension order; not idempotent.' This adds meaningful context beyond annotations (readOnlyHint=false, idempotentHint=false). No contradiction with annotations is present.
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 a single dense paragraph with no wasted words. It is front-loaded with the main purpose, then covers prerequisites, side effects, usage instructions, and return value. 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?
Given the tool has 3 parameters (2 required), a nested array, an output schema, and annotations, the description fully covers session requirements, parameter sourcing, side effects, chaining order, and return format. No gaps remain for the agent.
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 is 3. The description adds value by explaining that `extendData` should be copied from `tronsave_internal_extend_delegates` output and that `resourceType` defaults to ENERGY when omitted. This enhances semantic understanding 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 ('Submit an extension request'), the resource ('existing delegated resources on TronSave'), and the payment source ('paid from the internal account'). It distinguishes itself from sibling tools by explicitly positioning it as 'STEP 2 after tronsave_internal_extend_delegates'.
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 chaining guidance: 'Use as STEP 2 after tronsave_internal_extend_delegates — pass its extendData rows unchanged.' Also details session requirements (login via tronsave_login, include mcp-session-id) and clarifies that internal tools do not accept API keys in arguments. This leaves no ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_internal_extend_delegatesList Extendable DelegationsARead-onlyIdempotentInspect
Return extendable delegations for a receiver plus an extendData payload for the extension flow. Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Use as STEP 1 before tronsave_internal_create_extend_request when the user wants to extend existing delegation time. Read-only; does not submit anything. FRESHNESS: pricing/availability change within seconds — run immediately before extending and pass the returned extendData unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| extendTo | Yes | Target end time as Unix epoch milliseconds (UTC) for the extended delegation. | |
| receiver | Yes | TRON base58 address of the account that receives the delegated resource. | |
| requester | No | TRON base58 requester; defaults to the API key account when omitted. | |
| resourceType | No | Resource type. Default ENERGY when omitted. | |
| maxPriceAccepted | No | Maximum unit price in SUN you are willing to pay for the extension. |
Output Schema
| Name | Required | Description |
|---|---|---|
| extendData | No | Delegations to extend; pass unchanged into internal_create_extend_request `extendData`. |
| yourBalance | No | Current account balance in SUN. |
| isAbleToExtend | No | Whether balance is sufficient to extend. |
| extendOrderBook | No | Order book for extend. |
| totalEstimateTrx | No | Total estimated TRX cost in SUN. |
| totalDelegateAmount | No | Total delegated resource amount. |
| totalAvailableExtendAmount | No | Total available amount to extend. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), the description adds critical behavioral details: session requirements, session ID header inclusion, and freshness sensitivity. All consistent with annotations; no contradiction.
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 slightly long but well-structured, front-loading the main purpose. Each sentence adds distinct value (purpose, flow, session requirements, read-only, freshness). Minor redundancy in session details could be tightened.
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 role in a multi-step flow, the description covers prerequisites, usage context, and freshness. Output schema exists so return values need not be detailed. Lacks error scenarios or edge cases but sufficient for 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?
Schema coverage is 100% with clear descriptions for all 5 parameters. The description adds no extra parameter-level meaning beyond what the schema provides, so baseline 3 is appropriate.
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 returns extendable delegations and an extendData payload, with a specific verb ('Return') and resource. It distinguishes itself from the sibling 'tronsave_internal_create_extend_request' by positioning it as Step 1 in the extension flow.
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 guidance: use as Step 1 before 'tronsave_internal_create_extend_request', requires a logged-in session from 'tronsave_login', and notes it is read-only. Also includes freshness warning to run immediately before extending.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_internal_order_bookInternal Market Order BookARead-onlyIdempotentInspect
Return the current TronSave market depth/price tiers for ENERGY or BANDWIDTH via the api-key REST endpoint. Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Use before tronsave_internal_order_create or tronsave_internal_order_estimate when the user needs live prices or liquidity. Read-only. FRESHNESS: live market depth can change roughly every 3 seconds (one TRON block) — re-read immediately before placing an order.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Optional TRON base58 address filter for the receiver. | |
| durationSec | No | Delegation duration window in seconds for the quote. | |
| resourceType | No | Resource type. Default ENERGY when omitted. | |
| minDelegateAmount | No | Minimum resource amount per offer level to include (resource units, not SUN). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Order book entries sorted by price. |
| fast | No | FAST price tier (SUN). |
| slow | No | SLOW price tier (SUN). |
| medium | No | MEDIUM price tier (SUN). |
| availableResource | No | Available resource at the quoted tiers. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already mark it readOnlyHint=true, the description adds critical behavioral context: internal tools bypass API key arguments and rely on session-based resolution; session types (signature vs. api-key) differ in key handling. It also discloses a 3-second freshness window, which is vital for correct agent invocation.
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 concise (4 sentences) and front-loaded with the core purpose, then session details, usage guidance, and freshness. Every sentence adds necessary context without 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 tool has a full output schema, annotation coverage, and 100% parameter schema coverage, the description provides all needed contextual completeness: purpose, session prerequisites, usage timing, and live data volatility. No gaps remain.
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?
All four parameters have full schema descriptions (100% coverage), so the description does not add extra parameter-level meaning. The description provides no additional semantics beyond what the schema already conveys, meeting the baseline for high 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?
The description clearly states the tool returns TronSave market depth/price tiers for ENERGY or BANDWIDTH via the REST endpoint. It uses a specific verb ('return') and resource ('market depth/price tiers'), and distinguishes from siblings by noting it is a read-only preview for order creation/estimation.
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 advises using this tool before `tronsave_internal_order_create` or `tronsave_internal_order_estimate` when live prices are needed. It also specifies the prerequisite of a logged-in session from `tronsave_login` and notes freshness, providing clear when-to-use and 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.
tronsave_internal_order_createCreate Energy or Bandwidth Order (Internal)AInspect
Place a new buy order for ENERGY or BANDWIDTH on TronSave, paid from the internal account balance. Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Side effect: SPENDS internal TRX balance and creates a live order; not idempotent — each call places a new order. This is the api-key/internal path; for the signature-session market path use tronsave_create_order. Always derive unitPrice from the latest tronsave_internal_order_estimate (re-estimate immediately before submitting — quotes older than a few seconds may be stale and revert). Returns { orderId }.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Optional execution guards and fill behavior. | |
| sponsor | No | Optional sponsor or referral code. | |
| receiver | Yes | TRON base58 address that will receive the resource. | |
| unitPrice | No | Pricing: FAST | MEDIUM | SLOW strategy, or exact unit price in SUN per resource unit. Default MEDIUM when omitted. | |
| durationSec | No | Delegation duration in seconds. Default 259200 (3 days) when omitted. | |
| resourceType | No | Resource type. Default ENERGY when omitted. | |
| resourceAmount | Yes | Amount of resource to purchase (resource units). |
Output Schema
| Name | Required | Description |
|---|---|---|
| orderId | No | TronSave order ID (hex string) of the created/extension order. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: spends internal TRX balance and creates a live order. Confirms non-idempotency ('not idempotent — each call places a new order'), matching annotations. Adds caveat about stale quotes older than a few seconds. No contradiction with 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?
The description is compact (5 sentences) and front-loaded with the main purpose. Every sentence adds essential information: action, prerequisites, authentication clarification, side effects, sibling differentiation, and pricing guidance. No fluff.
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 complexity (7 parameters, nested options, 2 required), the description covers prerequisites, authentication, side effects, non-idempotency, alternative paths, pricing strategy guidance, and return value. With an output schema existing, the description is thorough.
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 already covers each parameter with descriptions (100% coverage). The description adds critical guidance for unitPrice: derive from latest estimate and re-estimate immediately before submitting, which is not in the schema. This adds meaningful value 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 tool places a new buy order for ENERGY or BANDWIDTH on TronSave using internal account balance. It differentiates from the sibling tool tronsave_create_order by specifying this is the api-key/internal path.
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 mentions prerequisite: a logged-in MCP session from tronsave_login. Clearly states when not to use this tool (for signature-session market path, use tronsave_create_order instead). Provides actionable guidance to derive unitPrice from latest tronsave_internal_order_estimate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_internal_order_detailsInternal Order DetailsARead-onlyIdempotentInspect
Fetch full details for one internal-account order by order ID. Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Use when monitoring fulfillment after tronsave_internal_order_create, or when the user asks for status on a specific order id. Read-only. FRESHNESS: order state changes within seconds as the market matches — re-read immediately before acting.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | TronSave order ID (hex string), e.g. value returned in internal.order.create response data.orderId. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | TronSave order ID (hex string). |
| price | No | Unit price in SUN. |
| status | No | Order status. |
| receiver | No | TRON base58 receiver address. |
| createdAt | No | Order created time (Unix epoch ms or ISO-8601, endpoint-dependent). |
| delegates | No | Delegations fulfilling this order. |
| orderType | No | Order type (NORMAL | FAST | EXTEND). |
| requester | No | TRON base58 requester address. |
| durationSec | No | Delegated duration in seconds. |
| payoutAmount | No | Payout amount in SUN. |
| remainAmount | No | Remaining unfulfilled amount. |
| resourceType | No | Resource type. |
| resourceAmount | No | Resource amount of order. |
| allowPartialFill | No | Whether partial fill is allowed. |
| fulfilledPercent | No | 0 = pending, 1-99 = partial, 100 = fully matched. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosures include read-only nature, session handling, and volatility note: 'FRESHNESS: order state changes within seconds — re-read immediately before acting.' Annotations (readOnlyHint, openWorldHint, idempotentHint) are consistent and supplemented.
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 well-structured and front-loaded with purpose, then authentication, usage, and behavior. Each sentence adds value, though could be slightly more concise.
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 param, read-only, output schema present), the description covers purpose, authentication, usage scenarios, and data freshness. It is fully adequate for agent understanding and correct 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?
The only parameter orderId is fully described in the schema (hex string, example source). The tool description does not add additional semantic meaning beyond what the schema provides, so 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?
The description clearly states 'Fetch full details for one internal-account order by order ID.' It specifies the verb 'fetch' and the resource 'internal-account order', differentiating from sibling tools like tronsave_get_order which target regular 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?
Explicitly states requirement for a logged-in MCP session from tronsave_login, explains authentication modes, and provides concrete use cases: monitoring fulfillment after tronsave_internal_order_create or checking status on a specific order id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_internal_order_estimateEstimate TRX Cost Before OrderARead-onlyIdempotentInspect
Estimate the TRX cost and availability for a buy order before submitting it (api-key internal account). Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Use when the user wants a quote or price check; feed the result into tronsave_internal_order_create. Read-only. FRESHNESS: unitPrice/estimateTrx are live and can change roughly every 3 seconds — re-estimate immediately before creating the order.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Optional flags that affect matching behavior for the estimate. | |
| receiver | No | TRON base58 address that will receive the resource. | |
| requester | No | TRON base58 requester; defaults to the API key account when omitted. | |
| unitPrice | No | Pricing: FAST | MEDIUM | SLOW strategy, or exact unit price in SUN per resource unit. Default MEDIUM when omitted. | |
| durationSec | No | Delegation duration in seconds. Default 259200 (3 days) when omitted. | |
| resourceType | No | Resource type. Default ENERGY when omitted. | |
| resourceAmount | Yes | Amount of resource to purchase (resource units). |
Output Schema
| Name | Required | Description |
|---|---|---|
| unitPrice | No | Unit price in SUN. |
| durationSec | No | Delegated duration in seconds. |
| estimateTrx | No | Estimated TRX cost in SUN. |
| availableResource | No | Available resource amount. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral context beyond annotations: freshness warning with 3-second update interval, session requirement, internal tool behavior (no API keys in arguments), and re-estimation advice. No contradiction with 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?
Concise and well-structured: purpose stated first, then prerequisites, usage guidance, read-only declaration, and freshness warning. Each sentence adds value; no wasted 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?
Covers all necessary context: session requirement, internal tool behavior, usage scenario, freshness constraints, and linking to the next tool. Output schema exists, so return values need not be explained.
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% and already documents each parameter thoroughly. The tool description does not add additional meaning to the input parameters beyond mentioning freshness of output fields (unitPrice/estimateTrx). Baseline 3 is appropriate.
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 tool estimates TRX cost and availability for a buy order before submission. Uses specific verb 'estimate' and resource 'TRX cost and availability'. Distinguishes from siblings by mentioning it feeds into 'tronsave_internal_order_create' and is for internal accounts.
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 when to use: 'Use when the user wants a quote or price check'. Tells what to do with the result: 'feed the result into tronsave_internal_order_create'. Also provides prerequisite instructions for session handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_internal_order_historyInternal Account Order HistoryARead-onlyIdempotentInspect
List paginated order history for the internal account linked to the API key, newest first. Requires a logged-in MCP session created by the tronsave_login tool: include mcp-session-id: <sessionId> returned by tronsave_login on subsequent MCP requests. Internal tools never accept API keys via tool arguments; signature sessions resolve the latest internal API key on demand, while api-key sessions reuse the validated key from login. Use when the user asks about past purchases, fulfillment, payouts, or delegates on their internal account. Read-only. Pair with tronsave_internal_order_details for a single order's full snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page index, 0-based. Omit for first page (default 0). | |
| pageSize | No | Orders per page. Default 10 when omitted. Typical range 1–100. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Orders on this page, newest first. |
| total | No | Total orders matching the query (for pagination). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, openWorldHint. The description adds that the tool is paginated, returns newest first, and requires session authentication. No contradictions.
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 a single well-organized paragraph with purpose first, then authentication, usage, and pairing. Every sentence adds value; no fluff.
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 2 optional parameters, output schema exists, and rich annotations, the description covers authentication, use cases, pagination behavior, and complementary tools comprehensively.
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 each parameter described. The description adds context like 'newest first' and pagination behavior, but doesn't significantly extend beyond schema descriptions. 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?
The description clearly states 'List paginated order history for the internal account linked to the API key, newest first.' It uses specific verbs and resource, and distinguishes from siblings like tronsave_internal_order_details and tronsave_list_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?
It explicitly says 'Requires a logged-in MCP session created by the tronsave_login tool' and gives the session header format. It states when to use ('when the user asks about past purchases, fulfillment, payouts, or delegates on their internal account') and suggests pairing with tronsave_internal_order_details for a single order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_list_extendable_delegatesExtendable DelegatesARead-onlyIdempotentInspect
List extendable delegate candidates for a receiver and resourceType (ENERGY|BANDWIDTH). Optional suggestData scores an extend-and-buy scenario for planning purposes. Read-only; does NOT create orders or change on-chain state. Works without mcp-session-id; when a session is present, auth is forwarded so results can reflect the logged-in account where supported. NOTE: this is GraphQL market data for discovery only. To actually submit an extension, call the authenticated REST POST /v2/get-extendable-delegates with extendData (payload shape differs from this GraphQL response).
| Name | Required | Description | Default |
|---|---|---|---|
| receiver | Yes | TRON base58 address (typically starts with `T`) that currently receives or will receive the delegated resource. This is the primary filter: the response describes delegates relevant to extending that account's delegation. | |
| requester | No | Optional TRON base58 address of the viewing/requesting party. When an MCP session is active, the server may still derive identity from auth headers; use this when the API expects an explicit requester string distinct from the receiver. | |
| suggestData | No | Optional nested scenario for extend-and-buy suggestion scoring. If omitted, the query returns delegate rows without that hypothetical. If provided, supply all four fields together; partial objects are invalid for typical GraphQL input shapes. | |
| resourceType | Yes | Which resource market leg to query: `ENERGY` for contract execution headroom, `BANDWIDTH` for transaction bandwidth. Must match how you plan to extend or buy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| extendableDelegates | Yes | Null when the market has no payload or GraphQL returned no branch; check tool-level errors for hard failures. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description reinforces annotations (readOnlyHint, openWorldHint, idempotentHint) by stating 'Read-only; does NOT create orders or change on-chain state'. Adds context that it's GraphQL market data for discovery only and explains optional suggestData is for planning, not a live order. No contradictions with 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?
Description is fairly long but well-structured: main purpose first, then optional parameters, then read-only note, then session behavior, and finally a clear note about the alternative REST endpoint. Each sentence adds value, though some redundancy (e.g., 'Read-only' repeated in multiple sentences). Could be slightly more concise but appropriate for complexity.
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 output schema (so return values need not be explained), all aspects are covered: purpose, required parameters, optional parameters with nested structure, read-only guarantee, auth behavior, and explicit guidance on when to use this vs. the REST endpoint. No gaps remain.
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 descriptions already cover all parameters (100% coverage). Description adds valuable context: requester parameter explains when it's needed vs. session auth; suggestData emphasizes that partial objects are invalid and it's for hypothetical scoring; resourceType reinforces enum meaning. This goes beyond what schema provides, justifying a score above baseline 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 clearly states 'List extendable delegate candidates for a receiver and resourceType'. It distinguishes from sibling tools (e.g., tronsave_internal_extend_delegates) by explicitly saying it is read-only and for discovery only, and provides the alternative REST endpoint for actual submission.
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 when to use (listing extendable delegates) and when not (does not create orders). Provides specific alternative: 'To actually submit an extension, call the authenticated REST POST /v2/get-extendable-delegates'. Also clarifies that it works without session and auth forwarding behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_list_order_booksOrder BookARead-onlyIdempotentInspect
Read market depth buckets for ENERGY or BANDWIDTH. Returns price buckets { min, max, value } optionally scoped by viewer address, minimum delegate amount, and duration. No login required; read-only and idempotent. FRESHNESS: live market depth — buckets can shift roughly every 3 seconds; re-read immediately before acting on a price. Use this to estimate market ranges before create/update decisions; pair with tronsave_estimate_buy_resource for quote-style buy estimation and tronsave_get_order for one concrete order.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Optional viewer/requester wallet context. | |
| durationSec | No | Optional delegation duration filter in seconds. | |
| resourceType | Yes | Order-book side to query (`ENERGY` or `BANDWIDTH`). | |
| minDelegateAmount | No | Optional minimum delegate amount floor for bucket filtering. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orderBook | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, it adds freshness info: buckets shift every ~3 seconds, advising re-read before acting. No contradictions with 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 paragraph that is well-structured, front-loaded with purpose, and packs essential information without 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?
Covers all needed aspects: purpose, parameters, synchronization, usage context, and links to alternatives. Output schema exists, so return details are not required.
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 is 3. Description adds value by summarizing how parameters scope the query and mentioning the return structure, but does not add deep new semantics.
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 it reads market depth buckets for ENERGY or BANDWIDTH, and specifies the return format. It distinguishes itself from sibling tools by mentioning tronsave_estimate_buy_resource and tronsave_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?
Explicitly states when to use (before create/update decisions) and how to pair with other tools. Also notes no login required, read-only, and idempotent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_list_ordersList OrdersARead-onlyIdempotentInspect
Query the order list with paging. Returns { orders: [{ id, requester?.address, receiver.address, resourceType, resourceAmount, remainAmount, durationSec, unitPrice (SUN), isOwner, isMatching, apy, createdAt, typeOrder (NORMAL|FAST|EXTEND) }] }. Filter status maps to GraphQL isFulfilled: ACTIVE → UNFULFILLED, COMPLETED → FULFILLED. Set onlyMyOrder=true (requires signature login + mcp-session-id) to scope to the caller's wallet as requester. Paging uses offset/limit. Use tronsave_get_order with an id for one full snapshot before mutating an order.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return in one call. Prefer modest limits to avoid huge payloads; page with `offset`. | |
| offset | No | Zero-based row offset for page N (skip first `offset` matches). Omit when starting from the first page. | |
| status | No | Lifecycle filter mapped to GraphQL `isFulfilled`: `ACTIVE` → `UNFULFILLED` (not yet fulfilled), `COMPLETED` → `FULFILLED`. | |
| resourceType | No | Restrict to `ENERGY` or `BANDWIDTH` orders; omit for both. | |
| isOnlyMyOrder | No | When `true`, only orders whose `requester` is the wallet from the signature session; include `mcp-session-id`. Api-key-only sessions have no wallet address and cannot use this filter. When `false` or omitted, return all orders on the market (no requester filter). |
Output Schema
| Name | Required | Description |
|---|---|---|
| orders | Yes | Matching orders for this page; may be large—use pagination inputs to chunk. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, and idempotentHint, and the description does not contradict these. It adds transparency about paging behavior, filter mapping, authentication requirements for `onlyMyOrder`, and return shape, enhancing understanding beyond 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?
The description is highly concise, using a single paragraph with clear structure: action, return format, filter mapping, authentication note, and paging instructions. Every sentence adds value 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?
Given 5 parameters, an output schema, and many siblings, the description covers all essential aspects: paging, filtering, authentication, and cross-reference to `tronsave_get_order`. It is complete for an agent to select and invoke 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 coverage is 100%, so baseline is 3. The description adds value by explaining the status mapping, authentication context for `isOnlyMyOrder`, and paging semantics beyond schema descriptions. This justifies a score above 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?
The description explicitly states the tool queries the order list with paging and provides the return structure. It distinguishes itself from the sibling `tronsave_get_order` which retrieves a single full snapshot.
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 explains when to use paging, how filters like status map to GraphQL, and notes that `onlyMyOrder` requires signature login and session ID. It also advises using `tronsave_get_order` for a single full snapshot before mutating, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_loginLogin SessionAInspect
Authenticate with TronSave and create a server session. Returns { sessionId, walletAddress?, expiresAt } — pass sessionId as the mcp-session-id header on every subsequent MCP request. walletAddress is set only for signature-mode logins. Two modes: (1) wallet signature (preferred for platform tools) — call this tool with signature_timestamp formatted as <signature>_<timestamp>, where <signature> must be produced client-side by signing the timestamp message; you may optionally call tronsave_get_sign_message to obtain a helper message/timestamp pair; (2) API key (internal tools) — pass apiKey (raw key, no prefix). Side effect: creates a new session on the server. Wallet signing must happen client-side; never send private keys to the server.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Raw API key for internal-tools login. Provide EXACTLY ONE of `apiKey` or `signature`. | |
| signature | No | Signature token in `signature_timestamp` format (timestamp is the signed message). Provide EXACTLY ONE of `apiKey` or `signature`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| expiresAt | Yes | |
| sessionId | Yes | Session id to pass as mcp-session-id in subsequent calls. |
| walletAddress | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and idempotentHint=false, which align with the description's statement that the tool creates a new session. The description adds critical behavioral context: wallet signing must be client-side, private keys must never be sent, and the side effect of session creation. No contradictions.
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 informative and front-loaded with the essential purpose and return value. It explains modes and side effects efficiently, though slightly long. Every sentence is necessary, but minor trimming could improve conciseness.
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 complexity (two modes, client-side signing, session creation), the description covers all needed information: authentication flow, return value structure, header usage, and security caveats. The output schema exists and is explained, making the description 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?
The schema covers both parameters (apiKey, signature) with descriptions. The description adds significant value: the exact format for signature ('signature_timestamp'), that apiKey is raw without prefix, and that exactly one of the two must be provided. This goes beyond the schema's basic 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?
The description clearly states the tool authenticates and creates a server session, specifying the return value and how to use the session ID. It is distinct from sibling tools, which are all other operations, 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?
The description explicitly details two modes (wallet signature and API key), explains how to format the signature, and mentions the optional helper tool tronsave_get_sign_message. It does not explicitly state when not to use the tool (e.g., if already authenticated), but provides strong usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_register_auto_sellRegister Auto SellAInspect
Create the initial auto-sell configuration for the authenticated user. Returns the persisted autoSettings payload. Side effect: persists automation settings that affect future delegation/sell behavior; not idempotent — calling twice may reset fields. Requires a signature session and mcp-session-id. Use for FIRST-TIME setup only; for subsequent edits use tronsave_update_auto_sell_setting, and always read the current state with tronsave_get_user_auto_setting first to avoid overwriting unknown fields. Fails for invalid config combinations, unauthorized sessions, or backend policy restrictions.
| Name | Required | Description | Default |
|---|---|---|---|
| poolSetting | No | ||
| addOnFeature | No | ||
| paymentConfig | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| data | Yes | Opaque server-defined payload (tx id, setting id, or status text). Treat as identifier-or-message; rely on `message` for human routing. |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses side effects (persists automation settings affecting future behavior) and non-idempotence (calling twice may reset fields). It also states failure scenarios (invalid config, unauthorized session, backend policy). Annotations already indicate readOnlyHint=false and idempotentHint=false, but the description adds specific behavioral context without contradiction.
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 concise and well-structured. It front-loads the primary purpose, then addresses side effects, usage guidelines, and failure conditions in a logical order. Every sentence adds value without unnecessary verbiage.
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 complexity (three nested object parameters, 0% top-level schema coverage, and an output schema not detailed), the description adequately covers usage context and behavioral traits but omits parameter semantics and return value structure. It compensates somewhat by guiding correct usage but is incomplete regarding what the tool accepts and returns.
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 3 top-level parameters with 0% schema description coverage. The tool description does not provide any meaning or explanation for these parameters (poolSetting, addOnFeature, paymentConfig) beyond their names. This is a significant gap, as the description should compensate for the lack of schema descriptions but fails to do so.
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 creates the initial auto-sell configuration for the authenticated user. It distinguishes from siblings by explicitly mentioning it is for first-time setup only, contrasting with tronsave_update_auto_sell_setting for subsequent edits.
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 explicit when-to-use (first-time setup) and when-not-to-use (subsequent edits should use update tool). It also advises reading current state first with tronsave_get_user_auto_setting to avoid overwriting unknown fields. Additionally, it mentions prerequisites (signature session, mcp-session-id) and failure conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_revoke_api_keyRevoke API KeyADestructiveIdempotentInspect
Revoke the caller's current internal API key. Side effect: any future request using the previous key is rejected. Existing in-flight sessions cached by the server may continue serving until their TTL expires — treat the effect as 'best-effort immediate' rather than guaranteed instantaneous cutoff. Idempotent — revoking an already-revoked key returns success. Requires a signature session and mcp-session-id. Call tronsave_generate_api_key afterwards to mint a replacement when continued internal access is needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| data | Yes | For `generateApiKey`: the freshly issued internal API key — treat as SECRET, store securely. For `revokeApiKey`: server-defined confirmation string (no key material). |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint, idempotentHint), the description discloses important behavioral traits: TTL of in-flight sessions, best-effort immediate cutoff, and idempotency confirmation, adding significant value.
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 concise and well-structured, with each sentence adding clear value. Front-loaded with the primary action, followed by side effects, idempotency, requirements, and next steps.
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 empty schema, annotations, and existence of an output schema, the description is complete. It covers side effects, idempotency, requirements, and post-use action, leaving minimal 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 has no parameters, so there is nothing to describe. The description adds context about required session and header, which is beyond the schema but not parameter-specific.
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 'Revoke the caller's current internal API key' with a specific verb and resource. It distinguishes itself from the sibling tool 'tronsave_generate_api_key' by mentioning it as a follow-up 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?
Explicitly states prerequisites ('Requires a signature session and mcp-session-id'), provides context on the best-effort nature of the effect, and directs the user to call 'tronsave_generate_api_key' for continued access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_sell_order_manualSell Order ManualADestructiveInspect
Manually execute seller-side fulfillment of an existing order with a wallet signedTx. Returns the updated order payload after sell. Side effect: broadcasts a market/delegation transaction and may consume balances/resources; not idempotent — each call re-executes. Backend requires a signature session and mcp-session-id; the MCP gate is public to allow anonymous read-fallthrough, but the GraphQL helper rejects api-key-only sessions. Use only when explicit manual sell is intended; call tronsave_get_order first to verify order state before signing.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | Target order id (`MObjectId`) to manually fulfill. Should be an order eligible for seller-side manual execution. | |
| signedTx | Yes | Required wallet-signed transaction payload (TronWeb shape: `{ txID, raw_data, raw_data_hex, signature[] }`). Must come from client-side signing; never fabricate. | |
| paymentAddress | No | Optional payout/payment address override when settlement flow requires it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
| delegatedId | No | On-chain delegate id created by the manual sell when the underlying transaction is confirmed; null until confirmation lands. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, idempotentHint=false. The description elaborates significantly: 'Side effect: broadcasts a market/delegation transaction and may consume balances/resources; not idempotent — each call re-executes.' It also adds authorization nuance. No contradiction with annotations; description adds substantial context.
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 well-structured sentences, front-loaded with the key action and return value, followed by side effects and usage conditions. No wasted words; each 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?
Given the tool's complexity (3 params, nested objects, output schema exists), the description covers purpose, side effects, prerequisites, and usage order. It is complete for an agent to correctly invoke the 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 description coverage is 100%. The description adds value by contextualizing the signedTx parameter ('Must come from client-side signing; never fabricate') and noting the optional paymentAddress override. This goes beyond the schema, though the schema is already thorough.
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: 'Manually execute seller-side fulfillment of an existing order' with a specific resource ('order', 'signedTx'). It explicitly distinguishes from sibling tools by focusing on manual sell fulfillment, contrasting with other tools like 'tronsave_cancel_order' or 'tronsave_create_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?
Provides clear guidance: 'Use only when explicit manual sell is intended; call tronsave_get_order first to verify order state before signing.' Also details required session/auth conditions ('Backend requires a signature session and mcp-session-id'), effectively telling the agent when and how to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_update_auto_sell_settingUpdate Auto Sell SettingAInspect
Update the existing auto-sell configuration with partial fields. Returns the updated autoSettings payload. Side effect: overwrites stored automation settings for the current user; not idempotent across different field sets. Requires a signature session and mcp-session-id. Use for INCREMENTAL changes after registration; read the baseline via tronsave_get_user_auto_setting to avoid accidental resets, and use tronsave_register_auto_sell only for first-time setup. Fails for invalid field combinations, unauthorized sessions, or policy constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| poolSetting | No | ||
| addOnFeature | No | ||
| paymentConfig | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| data | Yes | Opaque server-defined payload (tx id, setting id, or status text). Treat as identifier-or-message; rely on `message` for human routing. |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and non-idempotence (idempotentHint=false). Description adds specifics: 'overwrites stored automation settings for the current user; not idempotent across different field sets' and lists failure modes, providing additional behavioral context beyond 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?
Highly concise and well-structured: first sentence states purpose and return, then side effects, requirements, usage guidance, and failure conditions. Every sentence adds value and the information is 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?
Covers purpose, return type, side effects, prerequisites, usage context, alternative tools, and failure cases. Output schema exists, so return values are documented. Minor missing detail on how partial updates merge with existing settings, but satisfactory for a complex 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 description coverage is low at top level (0%), but nested schema fields have detailed descriptions. The tool description adds the key concept of 'partial fields' (incremental updates). Baseline 3 is appropriate as schema covers subfields and description adds partial update hint.
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 'Update the existing auto-sell configuration with partial fields' and explicitly distinguishes from sibling tools `tronsave_register_auto_sell` (first-time setup) and `tronsave_get_user_auto_setting` (read baseline).
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 guidance: 'Use for INCREMENTAL changes after registration; read the baseline via... to avoid accidental resets, and use... only for first-time setup.' Also specifies prerequisites (signature session, mcp-session-id) and failure conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tronsave_update_orderUpdate OrderAInspect
Update an open order by orderId with partial fields (receiver, newPrice). Returns the updated order payload. Side effect: overwrites live order parameters; not idempotent — each call with a different newPrice produces a new state. Backend requires a signature session and mcp-session-id; the MCP gate is public to allow anonymous read-fallthrough, but the GraphQL helper rejects api-key-only sessions. Prefer this over cancel+recreate when only price/receiver should change. Verify state with tronsave_get_order first; fails for already-fulfilled, already-cancelled, or non-editable orders.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | Target order id (`MObjectId`) to update. Order must still be open and editable. | |
| newPrice | No | Optional replacement unit price in SUN. | |
| receiver | No | Optional replacement receiver TRON address. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | GraphQL mutation status code (HTTP-like; `0`/`200` indicates success). Always pair with `success` for routing. |
| message | Yes | Human-readable status text. Populated even on success; localized error messages may appear here on failure. |
| success | Yes | Whether the mutation succeeded at the backend level. Always check this before reading `data`. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (overwrites live order parameters), non-idempotency (each call with different newPrice produces new state), and authentication nuances. Annotations already indicate readOnlyHint=false and idempotentHint=false, and the description adds valuable context that exceeds annotations without contradiction.
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 a single, well-structured paragraph of about 80 words. It front-loads the primary action and return value, then covers side effects, prerequisites, alternatives, and failure conditions. 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?
Given the tool's complexity (3 parameters, annotations present, output schema exists), the description covers all necessary aspects: purpose, prerequisites, side effects, authentication requirements, failure modes, and return value. It is complete for an agent to decide when and how to invoke the 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%, so baseline is 3. The description adds context beyond schema by explaining that orderId must correspond to an open/editable order and that newPrice is in SUN, but the schema already includes these details. However, the description connects parameters to failure conditions and usage, providing slight added value.
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 it updates an open order by orderId with partial fields (receiver, newPrice). It distinguishes from sibling tools like tronsave_cancel_order and tronsave_create_order by recommending this over cancel+recreate when only price/receiver should change. It also specifies the return value.
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 when to use (prefer over cancel+recreate), prerequisites (verify state with tronsave_get_order first), failure conditions (fails for already-fulfilled, already-cancelled, or non-editable orders), and authentication requirements (signature session, mcp-session-id, public gate but GraphQL rejects api-key-only).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!