faucet-mcp
Allows requesting small dev funds (ETH/WETH/USDC/USDT) from a personal hot wallet on Ethereum mainnet and Sepolia testnet, with per-call and 24h caps and TOTP approval.
Allows requesting small dev funds (ETH/WETH/USDC/USDT) from a personal hot wallet on Optimism mainnet and Sepolia testnet, with per-call and 24h caps and TOTP approval.
Allows requesting small dev funds (ETH/WETH/USDC/USDT) from a personal hot wallet on Polygon mainnet and testnet, with per-call and 24h caps and TOTP approval.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@faucet-mcpsend 0.05 ETH to 0x123... on base"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
faucet-mcp
MCP server that lets a coding agent request small dev funds (ETH/WETH/USDC/USDT) from a personal hot wallet, with caps and TOTP approval so a misbehaving agent can't drain it.
Why
Agent work on smart wallets constantly needs small dev top-ups: fund a fresh smart account, seed a session key, test on a new chain. Public faucets are unreliable and rate-limited; topping up by hand is friction. This is a self-hosted faucet over MCP behind tight per-call and 24h budgets.
Features
Two MCP tools:
send(transfer) andstatus(balances + remaining budget).Two-layer caps scoped per
(chain class, token pool):Soft caps — enforced unconditionally.
Hard caps (10× soft) — also unconditional and not bypassable with a code.
TOTP approval required for amounts above the soft cap; codes are single-use within a 90s replay window.
Token pools: USDC + USDT share a
STABLEwindow; ETH + WETH shareETHWETH.JIT WETH wrap on native-ETH chains — sends WETH even when the funder only holds ETH.
Rolling 24h windows, pruned on each read.
Chains:
ethereum,base,arbitrum,optimism,polygon,plasma+ their sepolia testnets andplasma-testnet.
Caps (defaults)
Chain class | Pool | Soft/call | Soft 24h | Hard/call | Hard 24h |
mainnet | stable | 0.10 | 1.0 | 1.0 | 10.0 |
mainnet | eth | 0.00002 | 0.0005 | 0.0002 | 0.005 |
testnet | stable | 2 | 20 | 20 | 200 |
testnet | eth | 0.001 | 0.01 | 0.01 | 0.1 |
Setup
bun install
bun run setup # generates a FAUCET_TOTP_SECRET + otpauth URI
cp .env.example .env # then fill FUNDING_PRIVATE_KEY and FAUCET_TOTP_SECRETAdd the printed otpauth:// URI (or scan the QR) into Apple Passwords / 1Password as a verification-code entry. Fund the hot wallet with small dev amounts on the chains/tokens you expect to use.
Smoke-test the TOTP loop:
bun run bin/verify.ts <6-digit code from your authenticator>Configuration
Variable | Required | Default | Description |
| yes | — | 0x-prefixed hot wallet private key. |
| yes | — | Base32 TOTP secret (generated by |
| no |
| Path for the rolling 24h send log + OTP replay cache. |
| no | viem's public RPC | Override the RPC for a specific chain (e.g. |
Wire into Claude Code
~/.claude.json or project .claude/settings.json:
{
"mcpServers": {
"faucet": {
"command": "bun",
"args": ["run", "--cwd", "/absolute/path/to/faucet-mcp", "src/server.ts"]
}
}
}bun run --cwd <dir> makes Bun auto-load .env from the faucet directory, so the MCP can be invoked from any cwd.
Tools
send(amount, token, chain, recipient, code?)— execute a transfer.amountis a decimal string in human units (e.g."0.5"), never wei.codeis required only when the request exceeds the soft cap.status(chain?, token?)— funder balances, configured caps, used budget, remaining window. Use this to plan before callingsend.
License
MIT — see LICENSE.
For the full design notes, threat model, and limitations: see AGENTS.md.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Destiner/faucet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server