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.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
faucet-mcp
MCP server that lets a coding agent request small dev funds (ETH/WETH/USDC/USDT on EVM, SOL/USDC on Solana) 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.
Related MCP server: Mandate Desk
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 (EVM and Solana); ETH + WETH shareETHWETH; SOL has its ownSOLwindow.JIT WETH wrap on native-ETH chains — sends WETH even when the funder only holds ETH.
Rolling 24h windows, pruned on each read.
Solana USDC sends create the recipient's associated token account when missing.
Chains:
ethereum,base,arbitrum,optimism,polygon,plasma,solana-mainnet+ their sepolia testnets,plasma-testnet, andsolana-devnet.
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 |
mainnet | sol | 0.002 | 0.02 | 0.02 | 0.2 |
testnet | stable | 2 | 20 | 20 | 200 |
testnet | eth | 0.001 | 0.01 | 0.01 | 0.1 |
testnet | sol | 0.1 | 1 | 1 | 10 |
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_SECRET
bun run solana-keygen # optional: writes SOLANA_FUNDING_PRIVATE_KEY to .env, prints the addressAdd 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. |
| no | — | Base58 64-byte secret key (or |
| yes | — | Base32 TOTP secret (generated by |
| no |
| Path for the rolling 24h send log + OTP replay cache. |
| no | viem's / Solana'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.recipientis a 0x address on EVM, a base58 wallet address on Solana.codeis required only when the request exceeds the soft cap.status(chain?, token?)— funder addresses (EVM + Solana), 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.
Related MCP Connectors
Give AI agents a wallet with a spending limit. Non-custodial USDC on Base, server-enforced limits.
Testnet wallet for AI agents on Aether: pay, get paid and buy from paid APIs, with spending caps.
Shared USDC wallets for agents and teams, with optional write access and human-signed payments.
Self-custodial USDC wallet on Base for AI agents: on-chain caps, Face ID, one-tap pause.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to manage USDC wallets on Solana, allowing them to send payments, create invoices, and access paid APIs within human-defined spending limits. It uses threshold signatures to provide agents with financial autonomy while ensuring secure oversight and transaction approval.3629 npm4Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables owner-approved agent transfers: an owner sets limits, reviews requests, and approves exact contents while agents prepare and execute approved plans, including local simulation and unsigned Sepolia preview.MIT

taap-mcpofficial
AlicenseAqualityCmaintenanceEnables an agent to provision and manage a trading wallet, claim it via passkey, fund it, and trade tokens by prompting while defaulting to simulated paper mode and enforcing owner-only withdrawals and approved routers.1741 npmMIT- AlicenseNot gradedqualityCmaintenanceEnables an AI agent to manage a Bitcoin wallet and request payments through MCP, while every spend requires a per-payment human approval code and defaults to signet.MIT