Skip to main content
Glama
gasrescue

gasrescue MCP server

Official

gasrescue MCP server

Gasless USDC, USDT and USDG transfers and swaps from existing wallets, for AI agents, through gasrescue.io.

The wallet holds stablecoins but no ETH, SOL, TRX or HYPE, so every transfer fails with "insufficient funds for gas". With this server an agent can still send the stablecoins, or swap a few dollars into the gas coin: the wallet signs, gasrescue sends the transaction and pays the network fee, and its fees come out of the amount.

Chains: Base, Arbitrum, Ethereum, HyperEVM, Robinhood Chain, Solana, Tron. Tokens: USDC, USDT (USDT0), USDG, depending on the chain.

Listed in the official MCP Registry as io.github.gasrescue/gasrescue.

Tools

Tool

What it does

gasrescue_info

Chains, tokens, fees and limits

check_wallet

Read-only: stablecoins and gas of an address on every chain, issuer freezes included

quote_send

Quote a send without gas; returns fees, what the recipient gets and a transfer id

quote_swap

Quote a swap into the gas coin (ETH, SOL, HYPE) without gas

get_signing_request

What the wallet has to sign for a quote

submit_signatures

Submit the signatures; gasrescue sends and pays the gas

get_transfer

Status and explorer link

sign_and_submit

Only with GASRESCUE_EVM_PRIVATE_KEY: checks and signs an EVM quote with that wallet

Related MCP server: Arbitrum Bridge MCP Server

Setup

Claude Desktop, Cursor and other MCP clients:

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

Without a key the server never signs anything. The agent hands the signing request to the user's wallet, or to its own wallet tool, and submits the signatures.

Letting the agent sign (EVM only)

"env": {
  "GASRESCUE_EVM_PRIVATE_KEY": "0x…",
  "GASRESCUE_ALLOWED_RECIPIENTS": "0xYourExchangeDeposit,0xYourOtherWallet"
}

Before it signs, sign_and_submit checks every signed field against the quote: the wallet, the chain, the gasrescue contract, the amount, the fee and the recipient. Against gasrescue.io it signs only for the published gasrescue contracts. With GASRESCUE_ALLOWED_RECIPIENTS set, sends go only to those addresses. The key stays in this process; only signatures are sent.

Use a wallet that holds only what the agent should be able to move. Transfers on a blockchain are final.

Limits

$2 to $1,000 per transfer, 10 transfers per wallet in 24 hours, Tron at least $10. Service fee 0.5%, at least $0.25, at most $2 per send and $5 per swap, plus the network fee. Every quote shows the exact figures.

More: https://gasrescue.io/agents

License

MIT

Available Tools

7 tools
check_walletCheck a wallet for stuck stablecoinsA
Read-onlyIdempotent

Checks one address on every supported chain where it is valid: which stablecoins it holds, its gas balance, whether the stablecoins are stuck (not enough gas to move them) and whether a token is frozen by its issuer. Use it before quote_send or quote_swap to find the chain and token to rescue. A frozen token cannot be moved by any tool here; only the issuer can lift that. Read-only: nothing is signed, sent or stored. Returns { address, chains: [{ key, label, native, tokens: [{ symbol, balance, frozen }], gas, stuck, frozen, canSwap }] }; a chain that did not answer has error: true.

NameRequiredDescriptionDefault
addressYesWallet address: 0x… for EVM chains, base58 for Solana, T… for Tron.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, but the description adds material behavior beyond them: the definition of 'stuck' (not enough gas to move the tokens), the per-chain partial-failure signal ('a chain that did not answer has error: true'), and the hard blocker that frozen tokens are unfixable by any available tool. That is exactly the mutation/failure context an agent needs before chaining into a rescue flow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then usage, then the safety note, then the return shape — a sensible order with no filler. The single long paragraph is dense and the inline return signature is syntactically heavy, but no sentence is disposable given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by spelling out the return object and the per-chain error flag. Combined with the stuck/frozen semantics and the pointer to quote_send/quote_swap, an agent has everything needed to call it and act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the address-format guidance (0x…, base58, T…) is already in the schema, so the description gets no credit there. It does add one thing the schema does not say: the address is checked on every chain 'where it is valid', implying per-chain applicability filtering rather than a uniform sweep.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Checks one address on every supported chain') and enumerates exactly what it reports: stablecoin holdings, gas balance, stuck status and issuer freeze. An agent can distinguish it from quote_send/quote_swap/get_transfer without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes usage: 'Use it before quote_send or quote_swap to find the chain and token to rescue', naming the downstream siblings and the condition that selects them. It also states the exclusion case — a frozen token cannot be moved by any tool here, only the issuer can lift it — so the agent knows when to stop rather than trying further tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gasrescue_infoSupported chains, tokens and feesA
Read-onlyIdempotent

Lists what gasrescue supports: the chains, the stablecoins on each, which chains can swap into their gas coin, the fees and the limits. Use gasrescue when a wallet holds USDC, USDT or USDG but no ETH, SOL, TRX or HYPE for the network fee ("insufficient funds for gas"). Call this first to get the chain keys and token symbols the other tools expect. Read-only, takes no input. Returns network, fees (service percent, minimum, maximum), limits (USD per transfer, transfers per wallet per day, quote validity) and the chains with their tokens and gas coin.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds meaningful context beyond that: it takes no input, it is a prerequisite bootstrap call for other tools, and it enumerates the return surface (fees, limits, quote validity). It does not mention rate limits, caching, or whether the supported set changes over time, which keeps it just short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded: the resource listing comes first, then the usage trigger, then the return shape. 'Read-only' partially restates readOnlyHint and 'takes no input' restates the empty schema, but these are minor and the rest of the text is dense with actionable detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the burden of describing returns, and it does so concretely: network, fees (service percent, minimum, maximum), limits (USD per transfer, transfers per wallet per day, quote validity), and chains with tokens and gas coin. For a zero-parameter metadata tool this is complete enough that an agent knows both why and what it will get.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters the baseline is 4, and the description correctly reinforces this with 'takes no input.' There is no parameter meaning to add, and the description does not waste space inventing any.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Lists what gasrescue supports') and enumerates the exact content: chains, stablecoins, gas-coin swap support, fees and limits. Nothing here could be confused with check_wallet or quote_send, since it describes a static capability/metadata listing rather than a per-wallet or per-transfer operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger scenario ('when a wallet holds USDC, USDT or USDG but no ETH, SOL, TRX or HYPE for the network fee') plus the exact error string an agent would encounter. It also states ordering relative to siblings: 'Call this first to get the chain keys and token symbols the other tools expect.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signing_requestGet what the wallet must signA
Read-onlyIdempotent

Returns what the sender's wallet has to sign for a quote from quote_send or quote_swap. kind "evm-typed-data": sign every steps[].typedData with eth_signTypedData_v4, in order; binding is the order the authorization commits to, so recipient, fee and minimum can be checked first. kind "tron-transactions": sign every steps[].transaction (first the fee, then the transfer). kind "solana-transaction" or "solana-versioned-transaction": sign the base64 transaction. Read-only. Pass the result to submit_signatures. Fails when the quote expired; then request a new quote.

NameRequiredDescriptionDefault
transferIdYesThe id gasrescue returned as transfer.id from quote_send or quote_swap: 24 lowercase hex characters, e.g. "b39f46001a5680455091152d". Not a transaction hash and not an id of another service.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive behavior beyond them: per-kind signing semantics, the required ordering of signatures, what "binding" means (order committed fields — recipient, fee, minimum — can be verified first), and the expired-quote failure mode. That is meaningful operational context not present in structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause and every sentence carries information (kinds, ordering, next step, failure path). It is dense and slightly run-on in the middle where the three kind variants are enumerated, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must describe the return shape and does so per kind (steps[].typedData, steps[].transaction with fee-then-transfer ordering, base64 solana transaction), which is the critical information. It omits the response envelope details (whether transferId, expiry, or binding metadata appear as siblings of steps), leaving a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter has 100% schema description coverage, including the regex pattern and an explicit warning that it is not a transaction hash. The description adds only the linkage to quote_send/quote_swap, which the schema already states, so the baseline of 3 applies — the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Returns what the sender's wallet has to sign") and anchors it to the producing siblings ("a quote from quote_send or quote_swap"), so an agent can distinguish it from submit_signatures, get_transfer, and the quote tools without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent forward ("Pass the result to submit_signatures") and backward on failure ("Fails when the quote expired; then request a new quote"). It also gives per-kind handling instructions, so the caller knows exactly what to do with each response shape rather than inferring it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transferTransfer statusA
Read-onlyIdempotent

Returns the current state of a quote or transfer by its id, with the fees, the transaction hash and the explorer link once sent. States: quoted (waiting for the signature), submitting and sent (on its way; ask again after a few seconds), confirmed (done), failed (error says why) and expired (not signed in time; request a new quote). Use it to follow up after submit_signatures or to see whether a quote is still open. It cannot start, change or cancel anything; use quote_send or quote_swap to start. Read-only. Returns { summary, transfer }. An unknown or malformed id, or one older than 30 days, fails with "Transfer not found".

NameRequiredDescriptionDefault
transferIdYesThe id gasrescue returned as transfer.id from quote_send or quote_swap: 24 lowercase hex characters, e.g. "b39f46001a5680455091152d". Not a transaction hash and not an id of another service.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive), but the description adds the full lifecycle state machine, tells the agent to poll again after a few seconds for submitting/sent, and explains what expired means and what to do about it. It also documents error behavior for unknown, malformed, or 30-day-old ids returning 'Transfer not found', which nothing in the structured fields conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core operation, then states, then usage routing, then constraints — a sensible order with no filler sentences. The state enumeration is dense but each state carries an actionable parenthetical, so it earns its space; only the explicit returns shape slightly duplicates what a caller would learn from the response.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description supplies everything an agent needs: scope, state semantics with polling advice, sibling routing, mutation limits, the top-level response shape, and the exact error condition. There is no ambiguity left that would cause an incorrect call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the transferId property already explains the 24-hex-character format and that it is not a transaction hash, so the baseline is 3. The description adds meaning beyond the schema by clarifying that the same id space covers both quotes and transfers and by documenting the failure mode ('Transfer not found') for an id that is well-formed but unknown or older than 30 days.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — returns the current state of a quote or transfer by id — and enumerates exactly what comes back (fees, transaction hash, explorer link once sent). An agent can distinguish it from quote_send, quote_swap, and submit_signatures purely from the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it to follow up after submit_signatures or to see whether a quote is still open, and names the alternatives for starting a flow (quote_send or quote_swap). It also closes off misuse by stating it cannot start, change, or cancel anything, so when-not-to-use is covered alongside when-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quote_sendQuote a send without gasA

Prices sending USDC, USDT or USDG from a wallet without gas (no ETH, SOL or TRX) to another address, e.g. an exchange deposit or another wallet. Use quote_swap instead when the user wants gas in the same wallet. Creates a free quote, valid for 10 minutes; nothing moves on chain until the wallet signs it. Returns { summary, transfer }: the transfer id, network and service fee, what the recipient gets (net) and status "quoted". Show the summary to the user and get approval before signing. Fails with a readable error when the amount is outside $2 to $1,000 (Tron: from $10), the wallet holds too little, the token is frozen, or the wallet sent 10 transfers in 24 hours.

NameRequiredDescriptionDefault
chainYesChain key from gasrescue_info, e.g. "base", "arbitrum", "ethereum", "hyperevm", "robinhood", "solana", "tron".
tokenYesStablecoin symbol, e.g. "USDC", "USDT", "USDT0" or "USDG". gasrescue_info lists what each chain supports.
amountYesAmount of the token, as a decimal string, e.g. "25" or "12.5". Fees come out of it.
senderYesWallet address: 0x… for EVM chains, base58 for Solana, T… for Tron.
recipientYesWallet address: 0x… for EVM chains, base58 for Solana, T… for Tron.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past annotations by disclosing that the quote is free, valid 10 minutes, and nothing moves on chain until signing, plus a concrete list of failure conditions ($2–$1,000 range, Tron $10 minimum, insufficient balance, frozen token, 10 transfers per 24h rate limit). None of that is inferable from the schema or the readOnly/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool does and the sibling disambiguation, then packs contract terms, return shape, and failure modes into tight clauses. Slightly dense as a single block, but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description describes the return shape ({ summary, transfer }, net amount, 'quoted' status) and the error surface. For a 5-parameter quote tool an agent has everything needed to call it and act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning beyond it: accepted token symbols, fee deductions from the amount, and per-chain amount limits (Tron minimum $10) that the schema does not state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Prices sending USDC, USDT or USDG from a wallet without gas') and explicitly contrasts with its sibling quote_swap. An agent can distinguish intent without reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit alternative with the condition that selects it ('Use quote_swap instead when the user wants gas in the same wallet') plus a directive to show the summary and get approval before signing. When-to-use and next-step routing are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quote_swapQuote a swap into gas without gasA

Prices swapping a stablecoin into the chain's gas coin (ETH, SOL, HYPE) or another stablecoin, for a wallet without gas, so it can pay its own fees again. The result always goes back to the same wallet; use quote_send to pay someone else. Not available on Tron. Creates a free quote, valid for 2 minutes because prices move; nothing moves on chain until the wallet signs it. Returns { summary, transfer } with the transfer id, fees, the expected output and the minimum output (below it the swap reverts and nothing moves). Show the summary to the user and get approval before signing.

NameRequiredDescriptionDefault
chainYesChain key from gasrescue_info, e.g. "base", "arbitrum", "ethereum", "hyperevm", "robinhood", "solana", "tron".
tokenYesStablecoin symbol, e.g. "USDC", "USDT", "USDT0" or "USDG". gasrescue_info lists what each chain supports.
amountYesAmount of the token, as a decimal string, e.g. "25" or "12.5". Fees come out of it.
senderYesWallet address: 0x… for EVM chains, base58 for Solana, T… for Tron.
tokenOutYesWhat to get: the gas coin ("ETH", "SOL", "HYPE") or another stablecoin. gasrescue_info lists what each chain can buy.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, which leaves the actual mechanics unstated. The description fills that gap with the quote's 2-minute validity, the fact that nothing moves on chain until the wallet signs, the revert-below-minimum-output behavior, and the required user-approval step — all behavior an agent could not infer from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose, then the sibling distinction, then the availability caveat, then the mechanics and return shape. It is dense but nearly every clause carries information; the return-shape enumeration is slightly list-like but earns its place given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies the return shape ({ summary, transfer }) including transfer id, fees, expected output and minimum output. Combined with the quote validity window and the signing/approval requirement, an agent has everything needed to call this and act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented with examples and format guidance. The description adds only marginal semantic context, such as the result returning to the same wallet and fees coming out of the amount, both of which are already implied or stated in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (prices/quotes a swap) and a precise resource (stablecoin into the chain's gas coin or another stablecoin) and names the exact scenario (a wallet without gas paying its own fees). It also explicitly distinguishes itself from the sibling quote_send by noting the result always returns to the same wallet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the selecting condition (wallet has no gas and must pay its own fees), an explicit alternative with its own condition ("use quote_send to pay someone else"), and an exclusion ("Not available on Tron"). It also states the next step in the workflow: show the summary and get approval before signing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_signaturesSubmit signatures and sendA
Destructive

Submits the wallet's signatures for a quote; gasrescue broadcasts the transaction, pays the gas and waits up to 3 minutes for the result. This moves funds and cannot be undone: call it only after the user approved the quote summary. A transfer can be submitted once; a second call is refused. Give signatures for EVM and Tron, or signedTransaction for Solana. Returns { summary, transfer } with status confirmed or failed, the transaction hash and the explorer link.

NameRequiredDescriptionDefault
signaturesNoEVM and Tron: one signature per step of get_signing_request, in the same order, as hex strings.
transferIdYesThe id gasrescue returned as transfer.id from quote_send or quote_swap: 24 lowercase hex characters, e.g. "b39f46001a5680455091152d". Not a transaction hash and not an id of another service.
signedTransactionNoSolana only: the transaction from get_signing_request, signed by the sender, base64.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint and non-idempotent, but the description adds substantive context on top: funds move irreversibly, a third party pays gas, there is a ~3 minute wait, and duplicate submission is rejected. It also discloses the return shape (summary/transfer with confirmed or failed, hash, explorer link) absent an output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and its cost, then the precondition and the chain-specific input rule. The third sentence is dense and packs several ideas, but every clause carries information an agent needs before committing funds.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-risk, no-output-schema mutation tool, the description covers cost, irreversibility, timing, retry limits, per-chain input requirements, and return contents. Nothing an agent needs in order to invoke it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes further by explaining the mutual exclusivity between signatures and signedTransaction per chain and tying signatures to the ordering of get_signing_request steps. It stops short of restating the transferId format, which the schema already handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (submits signatures) and the downstream consequence (gasrescue broadcasts, pays gas, waits up to 3 minutes), which is far more than a restatement of the name. It is clearly distinguishable from get_signing_request (which produces signatures) and get_transfer (which only reads state).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit preconditions: call only after the user approved the quote summary, and only once per transfer since a second call is refused. It also routes by chain (signatures for EVM/Tron vs signedTransaction for Solana), leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.6
    • Changedget_signing_request1 field changed
      • changedInput schema / properties / transferId / description
        Previous value: -"The transfer id returned by quote_send or quote_swap (24 hex characters)."New value: +"The id gasrescue returned as transfer.id from quote_send or quote_swap: 24 lowercase hex characters, e.g. \"b39f46001a5680455091152d\". Not a transaction hash and not an id of another service."
    • Changedget_transfer1 field changed
      • changedInput schema / properties / transferId / description
        Previous value: -"The transfer id returned by quote_send or quote_swap (24 hex characters)."New value: +"The id gasrescue returned as transfer.id from quote_send or quote_swap: 24 lowercase hex characters, e.g. \"b39f46001a5680455091152d\". Not a transaction hash and not an id of another service."
    • Changedsubmit_signatures1 field changed
      • changedInput schema / properties / transferId / description
        Previous value: -"The transfer id returned by quote_send or quote_swap (24 hex characters)."New value: +"The id gasrescue returned as transfer.id from quote_send or quote_swap: 24 lowercase hex characters, e.g. \"b39f46001a5680455091152d\". Not a transaction hash and not an id of another service."
  2. 4 tool updatesv0.1.5
    • Changedget_signing_request2 fields changed
      • changedInput schema / properties / transferId / description
        Previous value: -"The transfer id from a quote."New value: +"The transfer id returned by quote_send or quote_swap (24 hex characters)."
      • addedInput schema / properties / transferId / pattern
        Added value: +"^[0-9a-f]{24}$"
    • Changedget_transfer2 fields changed
      • changedInput schema / properties / transferId / description
        Previous value: -"The transfer id from a quote."New value: +"The transfer id returned by quote_send or quote_swap (24 hex characters)."
      • addedInput schema / properties / transferId / pattern
        Added value: +"^[0-9a-f]{24}$"
    • Changedquote_swap1 field changed
      • changedInput schema / properties / tokenOut / description
        Previous value: -"What to get, e.g. \"ETH\", \"SOL\", \"HYPE\" or another stablecoin."New value: +"What to get: the gas coin (\"ETH\", \"SOL\", \"HYPE\") or another stablecoin. gasrescue_info lists what each chain can buy."
    • Changedsubmit_signatures4 fields changed
      • addedInput schema / properties / signatures / description
        Added value: +"EVM and Tron: one signature per step of get_signing_request, in the same order, as hex strings."
      • addedInput schema / properties / signedTransaction / description
        Added value: +"Solana only: the transaction from get_signing_request, signed by the sender, base64."
      • changedInput schema / properties / transferId / description
        Previous value: -"The transfer id from a quote."New value: +"The transfer id returned by quote_send or quote_swap (24 hex characters)."
      • addedInput schema / properties / transferId / pattern
        Added value: +"^[0-9a-f]{24}$"
  3. 7 tool updatesv0.1.0
    • First observedcheck_wallet
    • First observedgasrescue_info
    • First observedget_signing_request
    • First observedget_transfer
    • First observedquote_send
    • First observedquote_swap
    • First observedsubmit_signatures

TDQS

A4.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct step in the flow: discovery (gasrescue_info, check_wallet), quoting (quote_send vs quote_swap, explicitly contrasted as 'another address' vs 'same wallet'), signing payload retrieval (get_signing_request), submission (submit_signatures), and tracking (get_transfer). The descriptions proactively disambiguate the closest pairs (send/swap, signing request/submit).

Naming Consistency3/5

Most tools use a verb_noun pattern (submit_signatures, get_transfer, get_signing_request, check_wallet), but quote_send and quote_swap invert to noun_verb, and gasrescue_info is a verbless noun_noun outlier. Still readable, but the convention is mixed.

Tool Count5/5

Seven tools map cleanly onto one coherent workflow (inspect, quote, sign, submit, track) with no padding or redundancy. Each tool earns its place.

Completeness4/5

The core lifecycle is fully covered, including a read-only signing payload step and status tracking, with quotes expiring rather than needing explicit cancel. Minor gaps: no transfer/quote history listing and no explicit cancel operation.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to perform cross-chain bridging operations using natural language intents, with support for multiple protocols (Across, Stargate) and advanced security features like oracle validation and slippage protection. Provides comprehensive bridging tools including quote estimation, transaction building, and approval management across Arbitrum and Ethereum networks.
    MIT
  • F
    license
    C
    quality
    C
    maintenance
    Enables AI agents to interact with any EVM-compatible blockchain through natural language, supporting token swaps, cross-chain bridges, staking, lending, governance, gas optimization, and portfolio tracking across networks like Ethereum, BSC, Polygon, Arbitrum, and more.
    100
    21 npm
    44
    -