Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Recover stranded native gas: empty a chain's balance to exactly zero on 25 EVM chains.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
ZERODUST_API_URL, ZERODUST_API_KEY, ZERODUST_ALLOW_EXECUTE, ZERODUST_SIGNER_MODULE, ZERODUST_KEYSTORE_FILE, ZERODUST_KEYSTORE_PASSWORD_FILE, ZERODUST_KEYSTORE_PASSWORD, ZERODUST_PRIVATE_KEY_FILE, ZERODUST_PRIVATE_KEY, ZERODUST_ALLOWED_DESTINATIONSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://api.zerodust.xyz/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"zerodust": {
"command": "npx",
"args": [
"-y",
"@zerodust/mcp-server"
],
"env": {
"ZERODUST_API_URL": "your-value",
"ZERODUST_API_KEY": "your-value",
"ZERODUST_ALLOW_EXECUTE": "your-value",
"ZERODUST_SIGNER_MODULE": "your-value",
"ZERODUST_KEYSTORE_FILE": "your-value",
"ZERODUST_KEYSTORE_PASSWORD_FILE": "your-value",
"ZERODUST_KEYSTORE_PASSWORD": "your-value",
"ZERODUST_PRIVATE_KEY_FILE": "your-value",
"ZERODUST_PRIVATE_KEY": "your-value",
"ZERODUST_ALLOWED_DESTINATIONS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http zerodust https://api.zerodust.xyz/mcpclaude mcp add zerodust --env ZERODUST_API_URL=your-value --env ZERODUST_API_KEY=your-value --env ZERODUST_ALLOW_EXECUTE=your-value --env ZERODUST_SIGNER_MODULE=your-value --env ZERODUST_KEYSTORE_FILE=your-value --env ZERODUST_KEYSTORE_PASSWORD_FILE=your-value --env ZERODUST_KEYSTORE_PASSWORD=your-value --env ZERODUST_PRIVATE_KEY_FILE=your-value --env ZERODUST_PRIVATE_KEY=your-value --env ZERODUST_ALLOWED_DESTINATIONS=your-value -- npx -y @zerodust/mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"zerodust": {
"url": "https://api.zerodust.xyz/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"zerodust": {
"command": "npx",
"args": [
"-y",
"@zerodust/mcp-server"
],
"env": {
"ZERODUST_API_URL": "your-value",
"ZERODUST_API_KEY": "your-value",
"ZERODUST_ALLOW_EXECUTE": "your-value",
"ZERODUST_SIGNER_MODULE": "your-value",
"ZERODUST_KEYSTORE_FILE": "your-value",
"ZERODUST_KEYSTORE_PASSWORD_FILE": "your-value",
"ZERODUST_KEYSTORE_PASSWORD": "your-value",
"ZERODUST_PRIVATE_KEY_FILE": "your-value",
"ZERODUST_PRIVATE_KEY": "your-value",
"ZERODUST_ALLOWED_DESTINATIONS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"zerodust": {
"type": "http",
"url": "https://api.zerodust.xyz/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"zerodust": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@zerodust/mcp-server"
],
"env": {
"ZERODUST_API_URL": "your-value",
"ZERODUST_API_KEY": "your-value",
"ZERODUST_ALLOW_EXECUTE": "your-value",
"ZERODUST_SIGNER_MODULE": "your-value",
"ZERODUST_KEYSTORE_FILE": "your-value",
"ZERODUST_KEYSTORE_PASSWORD_FILE": "your-value",
"ZERODUST_KEYSTORE_PASSWORD": "your-value",
"ZERODUST_PRIVATE_KEY_FILE": "your-value",
"ZERODUST_PRIVATE_KEY": "your-value",
"ZERODUST_ALLOWED_DESTINATIONS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://api.zerodust.xyz/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
ZERODUST_API_URL envZERODUST_ALLOW_EXECUTE envZERODUST_SIGNER_MODULE envZERODUST_KEYSTORE_FILE envZERODUST_KEYSTORE_PASSWORD_FILE envZERODUST_PRIVATE_KEY_FILE envZERODUST_ALLOWED_DESTINATIONS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account andresdefi, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: ZERODUST_API_KEY, ZERODUST_KEYSTORE_PASSWORD, ZERODUST_PRIVATE_KEY
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.5.1) reached the registry 36 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, MCP Server Autocad Lisp Helper
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
High-precision static analysis and debug server for AutoCAD AutoLISP (.lsp) files.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Empty a wallet's native gas balance on an EVM chain to exactly 0.
A normal transfer cannot send a whole native balance, because paying for the transfer uses the token being sent. ZeroDust sends all of it, to any address on the same chain or bridged to another chain, and the wallet ends at exactly 0 wei. Live at zerodust.xyz, with an API at https://api.zerodust.xyz and developer docs at zerodust.xyz/docs.
This repository holds the contracts, the TypeScript SDK and the agent packages.
SweepIntent and two EIP-7702 authorizations (one delegating to the ZeroDust contract, one removing it afterwards). A ZeroDust sponsor executes the sweep and pays the gas, reimbursed from the swept balance. The contract runs as the wallet and reverts unless the balance ends at exactly 0.ZeroDustPermissionRouter a one-time allowance per chain; one EIP-712 signature covers every chain. The router redeems it, requires exactly 0, and settles like the contract. 16 chains.ZeroDustGuard; on ZK-stack chains a ZeroDust paymaster pays the gas.The agent packages (@zerodust/mcp-server, @zerodust/ai-sdk, @zerodust/langchain) are paused and deprecated on npm, and the hosted MCP endpoint and agent key signup are switched off. The local MCP server and the SDK still sweep through the public API with your own key; keys issued before keep their rate limits. To sweep, use zerodust.xyz.
| Package | Use |
|---|---|
@zerodust/sdk | TypeScript client and agent (createAgentFromPrivateKey); the website uses it |
@zerodust/mcp-server | MCP server, run locally (paused) |
@zerodust/langchain | LangChain tools (paused) |
@zerodust/ai-sdk | Vercel AI SDK tools (paused) |
| Contract | Address (same on every chain, CREATE2) | Where |
|---|---|---|
ZeroDustSweep (contracts/src/ZeroDustSweepMainnet.sol) | 0x3732398281d0606aCB7EC1D490dFB0591BE4c4f2 | the 55 sponsored chains below |
ZeroDustPermissionRouter v2 (contracts/src/ZeroDustPermissionRouter.sol) | 0x369A97dd256F7eb37fF7116C4EcBd50318eBb286 | 16 chains with MetaMask Advanced Permissions |
ZeroDustGuard (contracts/src/ZeroDustGuard.yul) | 0x2f95e6ED90a7dD67fc3Fae5c5628647E6A83e48e | Blast, Boba |
ZeroDustPaymaster (contracts-zk/) | 0x986e4Bb55AEEE6a8c80c28Ca787b13E216fD25B8 | zkSync Era, Abstract, Lens |
All are immutable: no admin functions, no upgrades, no pause (the paymaster's owner can only change its approver and withdraw its float). The sweep contract's sponsor address is fixed in its bytecode.
55 sponsored chains, generated from the live API (GET https://api.zerodust.xyz/chains):
| Chain | ID | Token | Chain | ID | Token |
|---|---|---|---|---|---|
| Ethereum | 1 | ETH | Arc | 5042 | USDC |
| Optimism | 10 | ETH | Kaia | 8217 | KAIA |
| BNB Chain | 56 | BNB | Base | 8453 | ETH |
| Gnosis | 100 | xDAI | Plasma | 9745 | XPL |
| Unichain | 130 | ETH | 0G | 16661 | 0G |
| Polygon | 137 | POL | Apechain | 33139 | APE |
| Sonic | 146 | S | Mode | 34443 | ETH |
| Manta Pacific | 169 | ETH | Mythos | 42018 | ETH |
| X Layer | 196 | OKB | Arbitrum | 42161 | ETH |
| Fraxtal | 252 | FRAX | Arbitrum Nova | 42170 | ETH |
| Shape | 360 | ETH | Celo | 42220 | CELO |
| World Chain | 480 | ETH | Hemi | 43111 | ETH |
| Endurance | 648 | ACE | Zircuit | 48900 | ETH |
| Stable | 988 | gUSDT | Ink | 57073 | ETH |
| Intuition | 1155 | TRUST | Linea | 59144 | ETH |
| Sei | 1329 | SEI | BOB | 60808 | ETH |
| DATA Network | 1514 | DATA | Berachain | 80094 | BERA |
| Pharos | 1672 | PROS | Codex | 81224 | ETH |
| Reya | 1729 | ETH | Doma | 97477 | ETH |
| Metal L2 | 1750 | ETH | Plume | 98866 | PLUME |
| Soneium | 1868 | ETH | Mitosis | 124816 | MITO |
| Ronin | 2020 | RON | Taiko | 167000 | ETH |
| Morph | 2818 | ETH | HPP | 190415 | ETH |
| RISE | 4153 | ETH | Scroll | 534352 | ETH |
| MegaETH | 4326 | ETH | Gensyn | 685689 | ETH |
| Robinhood Chain | 4663 | ETH | Katana | 747474 | ETH |
| Mantle | 5000 | MNT | Zora | 7777777 | ETH |
| Somnia | 5031 | SOMI |
Regenerate or check this table with node scripts/generate-chain-docs.mjs (--check runs in CI); do not hand-edit it. The 19 direct chains are listed by GET https://api.zerodust.xyz/direct/chains: Flare, Cronos, Rootstock, Telos, XDC, Fuse, Monad, opBNB, Lens, Boba, zkSync Era, Flow EVM, HyperEVM, Metis, Vana, Abstract, Immutable zkEVM, Etherlink and Avalanche. Destinations are any EVM chain a bridge delivers native gas to (GET /destinations?fromChainId=), over 100 from Base.
1% of the swept value, at least $0.05 and at most $0.50; balances under $1 pay 5%, with no minimum. On top: the sweep's gas (and the L1 data fee on rollups) and, cross-chain, the bridge's fee. The signed maxTotalFeeWei caps what can be taken, so a gas spike cannot exceed what you agreed to.
routeHash (keccak256(callData)) binds the signature to that exact call.contracts/ Foundry: ZeroDustSweepMainnet.sol, ZeroDustPermissionRouter.sol, ZeroDustGuard.yul,
tests, deploy scripts and broadcasts (README, SPECIFICATION, DEPLOYMENT, SECURITY) contracts-zk/ ZeroDustPaymaster for ZK-stack chains (Hardhat + zksolc) sdk/ @zerodust/sdk packages/ @zerodust/mcp-server, @zerodust/ai-sdk, @zerodust/langchain skills/ an agent skill for ZeroDust scripts/ generate-chain-docs.mjs
MIT, see LICENSE.