
Monad Mcp
Connects AI agents to the Monad blockchain for balance checks, token transfers, swaps, and DeFi operations across Uniswap, Kintsu/FastLane liquid staking, Morpho lending, and the Kuru CLOB. Transaction signing is handled by Privy embedded wallets, keeping private keys out of agent control. Ships with session key grants for auto-executing small transactions under preset limits, otherwise returns approval URLs for human review. Supports both mainnet and testnet, includes .nad name resolution, portfolio queries via DexScreener, and LiFi bridge quotes. Read operations work immediately via the hosted endpoint; write operations require Privy authentication. Useful when you need an LLM to execute on-chain actions with proper transaction custody boundaries.
- GitHub stars
- 1
- tools
- 25
- auth
- Secret needed
- transport
- STDIO
- env vars
- 3
- last updated
- Jun 4, 2026
Tools
25 toolsPublic tool metadata for what this MCP can expose to an agent.
create_userProvision a Privy user + Monad-ready embedded wallet. Self-serve onboarding.
Provision a Privy user + Monad-ready embedded wallet. Self-serve onboarding.
No parameter schema in public metadata yet.
whoamiUser id, wallet address, and active session-key grants.
User id, wallet address, and active session-key grants.
No parameter schema in public metadata yet.
get_addressReturns the connected wallet's address.
Returns the connected wallet's address.
No parameter schema in public metadata yet.
get_balanceNative MON balance. Accepts a 0x address or a .nad name.
Native MON balance. Accepts a 0x address or a .nad name.
No parameter schema in public metadata yet.
get_token_balanceERC-20 balance with decimals + symbol. Accepts a .nad name.
ERC-20 balance with decimals + symbol. Accepts a .nad name.
No parameter schema in public metadata yet.
get_portfolioAll canonical token balances × USD prices via DexScreener. Accepts a .nad name.
All canonical token balances × USD prices via DexScreener. Accepts a .nad name.
No parameter schema in public metadata yet.
get_transaction_historyRecent ERC-20 transfers via RPC log scan + explorer URL. Accepts a .nad name.
Recent ERC-20 transfers via RPC log scan + explorer URL. Accepts a .nad name.
No parameter schema in public metadata yet.
get_tx_receiptReceipt for a tx hash.
Receipt for a tx hash.
No parameter schema in public metadata yet.
simulate_transactionDry-run a call (eth_call), returns return data or revert reason.
Dry-run a call (eth_call), returns return data or revert reason.
No parameter schema in public metadata yet.
check_tokenRisk heuristics: canonical-list membership, bytecode, DEX liquidity, pair age.
Risk heuristics: canonical-list membership, bytecode, DEX liquidity, pair age.
No parameter schema in public metadata yet.
resolve_tokenSymbol/name/alias → token address (canonical list + DexScreener fallback).
Symbol/name/alias → token address (canonical list + DexScreener fallback).
No parameter schema in public metadata yet.
get_token_priceUSD price from the deepest-liquidity DexScreener pair on Monad.
USD price from the deepest-liquidity DexScreener pair on Monad.
No parameter schema in public metadata yet.
list_canonical_tokensBuilt-in list of well-known Monad tokens.
Built-in list of well-known Monad tokens.
No parameter schema in public metadata yet.
resolve_nameNad Name Service (nad.domains): .nad name → address, and address → primary .nad name.
Nad Name Service (nad.domains): .nad name → address, and address → primary .nad name.
No parameter schema in public metadata yet.
read_contractCall any view/pure function on any Monad contract (ABI provided inline).
Call any view/pure function on any Monad contract (ABI provided inline).
No parameter schema in public metadata yet.
decode_return_dataDecode hex return data against an ABI.
Decode hex return data against an ABI.
No parameter schema in public metadata yet.
bridge_quoteLiFi aggregator quote from any chain into Monad.
LiFi aggregator quote from any chain into Monad.
No parameter schema in public metadata yet.
poll_requestStatus of a pending approval request.
Status of a pending approval request.
No parameter schema in public metadata yet.
transferNative MON or ERC-20 transfer. Recipient may be a 0x address or a .nad name. Auto-executes under a session grant, else → approval URL.
Native MON or ERC-20 transfer. Recipient may be a 0x address or a .nad name. Auto-executes under a session grant, else → approval URL.
No parameter schema in public metadata yet.
write_contractSend a tx to any contract (any non-view function).
Send a tx to any contract (any non-view function).
No parameter schema in public metadata yet.
pay_for_servicex402 (HTTP 402) — signs an EIP-3009 USDC authorization via Privy and retries with X-PAYMENT.
x402 (HTTP 402) — signs an EIP-3009 USDC authorization via Privy and retries with X-PAYMENT.
No parameter schema in public metadata yet.
bridge_executeSubmit the source-chain tx returned by bridge_quote (Monad sources only).
Submit the source-chain tx returned by bridge_quote (Monad sources only).
No parameter schema in public metadata yet.
grant_session_keyAuthorize the agent to spend up to N MON without per-tx approvals.
Authorize the agent to spend up to N MON without per-tx approvals.
No parameter schema in public metadata yet.
list_session_keysShow active + recent grants.
Show active + recent grants.
No parameter schema in public metadata yet.
revoke_session_keyCancel a grant immediately.
Cancel a grant immediately.
No parameter schema in public metadata yet.
Sponsors
Configuration
PRIVY_APP_IDPrivy app ID (dashboard.privy.io). Required for write tools.
PRIVY_APP_SECRETsecretPrivy app secret. Required for write tools.
MONAD_DEFAULT_NETWORKdefault: testnetDefault Monad network: 'mainnet' or 'testnet'.
Readme
monad-mcp
MCP server for the Monad blockchain. Your agent's gateway to balances, transfers, swaps, and DeFi on Monad — with signing handled by a Privy embedded wallet, never by the agent.
Built around a simple shape — stored requests + approval URLs + skill plugins — on Monad mainnet 143 / testnet 10143, with Privy as the wallet provider.
🌐 Landing page + live read-only demo: pareen.github.io/monad-mcp — query real Monad balances in your browser, exactly what the agent sees.
🔌 Connect it — no install, no terminal. In Claude Desktop or ChatGPT, add a custom connector and paste this URL:
https://monad-mcp.fly.dev/mcp
That's the whole setup — read tools (balances, prices, portfolios, token checks) work immediately. Step-by-step for each app: docs/connect-claude.md.
Prefer the terminal? One line in Claude Code:
claude mcp add --transport http monad https://monad-mcp.fly.dev/mcp # hosted
claude mcp add monad -- npx -y monad-mcp # or run it locally
Details
- Repository
- github.com/pareen/monad-mcp
- Website
- pareen.github.io/monad-mcp
- Category
- Finance & Commerce
- Package
monad-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active