zerodust
Server Details
Recover stranded native gas: empty a chain's balance to exactly zero on 25 EVM chains.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- andresdefi/zerodust
- GitHub Stars
- 2
- Server Listing
- zerodust
Available Tools
7 toolszerodust_get_balancesARead-onlyInspect
Find leftover native gas token (ETH, BNB, POL, ...) stranded across every supported EVM chain for one address, and report which of it can be recovered. Normally these balances are unrecoverable: you cannot transfer 100% of a gas token, because paying for the transfer consumes the thing you are transferring, so a remainder is always left behind. This reports what is stuck and what could be moved out. Useful when a wallet has small amounts scattered over many chains, when someone cannot send their full balance, or before closing out, winding down or decommissioning a wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true (non-destructive) and openWorldHint=true (external state dependent). The description adds behavioral context beyond annotations by explaining the inherent limitation of gas token transfers (consuming the token to transfer it) and clarifying that it reports both what is stuck and what could be moved out. 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 concise yet informative: first sentence states the main purpose, then explains the problem, then states what the tool reports, and finally provides use cases. Every sentence adds value with no redundancy or 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?
The tool has one parameter and no output schema, but the description conceptually explains the output (reports what is stuck and what could be moved). For a tool of this complexity (scanning many chains for stranded gas), the description provides sufficient context for an agent to understand its function and expected results. A small deduction for not explicitly mentioning the output format (e.g., list of chains with balances).
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 has one parameter 'address' with a description 'Ethereum address (0x...)', and schema coverage is 100%. The description does not add parameter-specific details beyond the schema, but it does contextualize the parameter within the tool's overall purpose. Baseline 3 is appropriate as the description adds no extra semantics for the parameter itself.
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 finds leftover native gas tokens stranded across EVM chains and reports recoverable amounts. It uses a specific verb ('find') and resource ('stranded gas'), and distinguishes from sibling tools like zerodust_get_chains or zerodust_get_quote by its unique function.
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 use cases: 'when a wallet has small amounts scattered over many chains, when someone cannot send their full balance, or before closing out, winding down or decommissioning a wallet.' It also explains why these balances are normally unrecoverable, giving clear context for when to invoke. However, it does not explicitly list alternatives or when not to use, slightly reducing the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zerodust_get_chainsARead-onlyInspect
List the EVM chains a native gas balance can be emptied to exactly zero on. Returns chain IDs, names, and native tokens. Call this to check whether a specific chain is supported before quoting.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds return fields (chain IDs, names, native tokens) beyond annotations. Annotations already indicate readOnlyHint and openWorldHint. 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, front-loaded with purpose. Efficient and 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?
Complete for a parameterless listing tool. Describes what is returned and how to use it. No output schema needed.
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 no need for parameter details. Baseline set to 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and specific resource 'EVM chains a native gas balance can be emptied to exactly zero on'. Differentiates from sibling tools like zerodust_get_balances and zerodust_get_quote.
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 call: 'Call this to check whether a specific chain is supported before quoting.' Provides clear context for use. No explicit when-not, but purpose is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zerodust_get_quoteARead-onlyInspect
Price out emptying a chain's native gas balance to exactly zero: how much actually arrives, the full fee breakdown, and whether the balance is even large enough to be worth recovering. Returns a quote ID; quotes expire after about 60 seconds. Executing the sweep needs the wallet's signing key, which this hosted server does not hold - use the @zerodust/mcp-server package or the SDK for that.
| Name | Required | Description | Default |
|---|---|---|---|
| toChainId | Yes | Destination chain ID to receive funds | |
| destination | Yes | Destination address to receive swept funds | |
| fromChainId | Yes | Source chain ID to sweep from | |
| userAddress | Yes | User's wallet address to sweep from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses quote expiration (not in annotations) and that execution requires a signing key. Annotations already indicate readOnlyHint=true and openWorldHint=true; description adds valuable 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?
Three sentences with no waste. Front-loaded with the core purpose and immediately useful details (expiration, security). 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?
Covers what the quote provides (arrival amount, fee breakdown, balance check) and expiration. No output schema exists, but description gives sufficient context for agent decision. Could be more explicit about return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage; description does not add meaning beyond schema. It contextualizes parameters within the overall purpose but doesn't explain format or constraints.
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: 'Price out emptying a chain's native gas balance to exactly zero,' specifying the action (price out), resource (native gas balance), and outcome (quote ID). It distinguishes from siblings like zerodust_get_balances by focusing on sweep 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?
Explicitly tells when to use this tool (to get a quote) and when to use something else (the SDK for execution). Also mentions quote expiration (60 seconds) and security constraint (hosted server doesn't hold signing key).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zerodust_get_sweep_statusARead-onlyInspect
Check how a previously submitted sweep is progressing. Returns the current status (pending, simulating, executing, bridging, completed, failed), the transaction hash once there is one, and the error message if it failed.
| Name | Required | Description | Default |
|---|---|---|---|
| sweepId | Yes | The sweep ID returned from submitting a sweep |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only; the description adds context by listing possible statuses (pending, simulating, etc.) and mentioning return fields (tx hash, error), complementing 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 sentence with a list of return values, concise and front-loaded, though it could be more structured with bullet points for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with one parameter and no output schema, the description fully covers what the tool does, what it returns (status, tx hash, error), and is sufficient for 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?
Schema coverage is 100% for the single parameter sweepId, which is already well-described in the schema. The description adds no extra semantic detail beyond its purpose.
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 checks sweep status, with a specific verb ('check') and resource ('sweep'), and distinguishes from siblings like list_sweeps by focusing on a single sweep's progression.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use after submitting a sweep, but does not explicitly state when to use or not use this tool versus alternatives like list_sweeps, nor does it mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zerodust_infoARead-onlyInspect
Explain how a native gas balance can be emptied to exactly zero, what it costs, and how to integrate. Call this when asked how ZeroDust works, why a full balance normally cannot be sent, or what sweeping will cost.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows it's safe. The description adds that it explains costs and integration, which is beneficial context beyond the annotation.
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, front-loaded with purpose and usage. Every word earns its place; no redundancy or unnecessary detail.
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 input parameters and no output schema, the description fully covers what the tool does and when to use it. It is complete for an informational 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, and schema coverage is 100%. The description does not need to add parameter details, so baseline 4 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 it explains how to empty a native gas balance to zero, including costs and integration. It distinguishes itself from sibling tools that perform specific actions (e.g., get balances, get quotes) by being purely informational.
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 specifies when to call: when asked how ZeroDust works, why a full balance cannot be sent, or what sweeping will cost. Provides clear context for use without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zerodust_list_sweepsARead-onlyInspect
List past sweeps for a wallet address, with status and amounts. Useful for confirming a chain was already emptied before trying again.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default: 10) | |
| address | Yes | Wallet address to list sweeps for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint, so safety and read-only nature are covered. The description adds that it returns status and amounts, and the purpose of confirming emptiness. This provides helpful context 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?
The description is two sentences: first explains what the tool does and returns, second gives a usage scenario. No extraneous words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with 2 parameters and no output schema, the description is mostly complete. It explains what is returned (status and amounts) and when to use it. Minor omission: default limit behavior (10) could be noted, but not critical.
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?
Both parameters have full descriptions in the schema (100% coverage). The description reiterates the address parameter but adds no new semantic detail beyond what the schema provides. 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 it lists past sweeps for a wallet address, returning status and amounts. This directly conveys the action and result. It distinguishes from siblings like get_sweep_status (focused on a single sweep) and get_balances by specifying the resource (sweeps) and the filtering scope (by address).
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 a specific use case: confirming a chain was already emptied before trying again. This helps decide when to use the tool. However, it does not explicitly compare with siblings or state when not to use, though the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zerodust_register_api_keyAInspect
Issue this agent its own ZeroDust API key for higher rate limits, with no human signup step. The other tools work without a key, so only call this when rate limits are being hit, or when setting up an unattended agent that will run repeatedly. The key is returned once and cannot be retrieved later - report it to the operator.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name for this agent, e.g. 'arbitrage-bot-prod' | |
| agentId | No | Stable unique identifier for this agent, if it has one | |
| contactEmail | No | Contact email for support and abuse notices |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns 'The key is returned once and cannot be retrieved later - report it to the operator.', which is a critical behavioral trait not captured by annotations (readOnlyHint=false, destructiveHint=false). This adds significant value 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?
Three sentences: first states purpose, second gives usage context, third warns about key non-retrievability. Extremely efficient with no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, 1 required, no output schema), the description covers purpose, when to use, behavioral warning, and return behavior. It is fully 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 description coverage is 100%, so the baseline is 3. The description does not add additional parameter semantics beyond what the schema already provides. The parameters (name, agentId, contactEmail) are adequately described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Issue this agent its own ZeroDust API key for higher rate limits, with no human signup step.', which clearly identifies the action (Issue) and resource (API key). It distinguishes itself from sibling tools that use the API without needing a key.
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 says when to use: 'only call this when rate limits are being hit, or when setting up an unattended agent that will run repeatedly.' Also clarifies that other tools work without a key, providing clear 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
- First observed
zerodust_get_balances - First observed
zerodust_get_chains - First observed
zerodust_get_quote - First observed
zerodust_get_sweep_status - First observed
zerodust_info - First observed
zerodust_list_sweeps - First observed
zerodust_register_api_key
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
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
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
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!
Related MCP Connectors
Gasless cross-chain for AI agents: 25 nodes incl. Solana & native Bitcoin. One signature, no gas.
EVM gas, Chainlink prices, token-safety, swap quotes, ENS, OFAC & NFT via x402.
Safety-first EVM and Bitcoin RPC tools for balances, contracts, blocks, and transactions
Cross-chain token swaps for autonomous agents on Base L2 and partner rails
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceLets AI agents fetch live gas prices across multiple EVM chains, compare USD transfer costs, and find the cheapest chain in a single call, with pay-per-call billing via x402.MIT
- AlicenseAqualityCmaintenanceCompare real-time gas prices across up to 9 EVM chains and get the cheapest-chain recommendation. Pay-per-call via x402 (USDC on Base). No API key.4MIT
- AlicenseBqualityDmaintenanceEnables AI agents to perform gasless cross-chain transactions by paying with supported tokens on one chain and executing on another, all without exposing private keys.19351Apache 2.0
- FlicenseNot gradedqualityCmaintenanceForensic MCP + hardened delegate for recovering assets from EIP-7702-compromised wallets.-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a clear, distinct purpose: finding balances, listing chains, quoting sweeps, checking status, explaining concepts, listing history, and registering API keys. No overlap or ambiguity.
Most tools follow a consistent 'zerodust_verb_noun' pattern (e.g., get_balances, list_sweeps). 'info' is a slight deviation (single verb instead of verb_noun), but it's minor and still clear.
7 tools are well-scoped for the focused domain of recovering stranded gas tokens. Each tool serves a necessary function without redundancy.
Covers core workflows: discovery, pricing, status tracking, history, and explanation. The actual sweep execution requires a signing key, which is intentionally excluded from the hosted server (handled via SDK). Minor gap: no cancel/abort tool.