get-mon-balanceLABSCO SUMMARY
An agent can use the Monad testnet without a wallet UI.
Reads and writes sit in the same conversation: check a balance, send MON, stake it, or read a transaction back from its hash. Unstaking is the one two-step — it returns a request id, and the claim only goes through about ten minutes later.
What it is
A server for the Monad testnet. Read calls cover balances, transaction detail, gas price and the latest block; write calls send MON and ERC-20 tokens, stake through the Apriori platform, and play the CoinflipGame contract.
What you get
- The MON balance for an address, an ERC-20 balance on a named contract, or several token balances at once
- A transaction's full detail from its hash
- The current gas price and the latest block
- MON sent to an address, and ERC-20 tokens sent from their contract
- MON staked with Apriori, unstaked, and claimed once the request matures
- A coinflip played against the contract at its minimum bet, with the wins, losses and profit history for an address
Requirements
Node.js 16 or newer, and a key in the config for anything that signs — the read calls work from an address alone. This is the Monad testnet, not mainnet.
Setup effort
Build from source — git clone https://github.com/Semutireng22/mcp-monad.git
USE CASES
Checking what an address is holding
Read the native balance, a specific token balance, or several token contracts in one call.
Working out why a transaction did what it did
Pull the transaction detail from its hash and set it against the latest block, without opening an explorer.
Timing a send against the current gas price
Read the gas price first, then send the MON, so the cost is known before the transaction goes out.
Paying out an ERC-20 token
Confirm the token balance on its contract, then send the amount to the destination address.
Putting testnet MON to work and getting it back
Stake with Apriori, unstake when you want it back — note the request id it returns — and claim once the ten minutes are up.
Exercising a contract end to end
Play the coinflip at a stake you name and read the history back, so the contract's behaviour is observed rather than assumed.
17 tools
Listed in project docs. Your client may show a different list.
get-token-balanceget-transaction-detailsget-gas-priceget-latest-blockget-multiple-balancessend-monsend-tokenplay-coinflipget-coinflip-historystake-aprmonunstake-aprmonclaim-aprmonget-aprmon-balanceget-aprmon-rateget-aprmon-requestsswapBEFORE YOU INSTALL
What to know first
Tools you get
17 tools named in the project's documentation.
Requires
- Node.js
- PRIVATE_KEY in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/Semutireng22/mcp-monad.git
cd mcp-monad
npm install
cp .env.example .envEdit .env and set PRIVATE_KEY to your Monad testnet wallet's private key (0x followed by 64 hexadecimal characters)
npm run buildMCP Clients
Claude Desktop
{
"mcpServers": {
"monad-mcp": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MCP_MONAD>/build/index.js"
],
"env": {
"NODE_ENV": "production"
}
}
}
}The configuration on this page does not set PRIVATE_KEY; the project's instructions put it in a .env file. To supply PRIVATE_KEY without depending on where the server looks for that file, use the block's "env" section.