Uses .env for secure configuration storage of private keys required for blockchain transactions
Provides repository access for cloning, contributing, and version management of the MCP server code
Runs on Node.js environment (v16 or newer) for executing blockchain operations and smart contract interactions
Handles dependency management and provides build scripts for the MCP server
Implements server functionality using TypeScript for type-safe blockchain and smart contract interactions
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., "@Monad MCP Servercheck MON balance for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765"
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.
Monad MCP Server
This project provides an MCP server for seamless interaction with the Monad testnet. It supports querying blockchain data (balances, transactions, gas prices, blocks) and interacting with the CoinflipGame smart contract for playing a coinflip game. The server integrates with Claude Desktop, allowing users to execute commands in natural language.
Supported Features and How To Use
Feature | Description | Example Command |
get-mon-balance | Check the MON balance for a Monad testnet address. |
|
get-token-balance | Check the balance of a specific ERC-20 token for an address. |
|
get-transaction-details | Retrieve detailed information about a transaction by its hash. |
|
get-gas-price | Get the current gas price on the Monad testnet. |
|
get-latest-block | Fetch information about the latest block on the Monad testnet. |
|
get-multiple-balances | Check balances for multiple tokens for an address. |
|
send-mon | Send MON tokens to a specified address on the Monad testnet. |
|
send-token | Send ERC-20 tokens to a specified address from a token contract. |
|
play-coinflip | Play a coinflip game by betting MON on Heads or Tails (minimum bet: 0.01 MON). |
|
get-coinflip-history | View the history of coinflip games for an address, including wins, losses, and profit. |
|
stake-aprmon | Stake your MON tokens in the Apriori staking platform. |
|
unstake-aprmon | Unstake all your MON tokens from the Apriori platform. |
|
claim-aprmon | Claim pending unstaked MON tokens. | After 10 minutes of unstaking, use |
swap | Integrated Uniswap V2 swap feature for Monad Testnet network | For listed tokens: |
Related MCP server: MCP Etherscan Server
Quick Start
Clone the repository
git clone https://github.com/Semutireng22/mcp-monad.git
cd mcp-monad
npm installCopy .env.example to .env and configure it
cp .env.example .envEdit .env with your private key
nano .envBuild and run
npm run build
node build/index.jsPrerequisites
Node.js (v16 or newer)
npm or yarn
Claude Desktop (for MCP Client integration)
A Monad testnet wallet with sufficient MON for transactions and gas fees (required for play-coinflip, send-mon, and send-token)
A
.envfile configured with:PRIVATE_KEYfor the Monad testnet walletUniswap V2contract addresses (UNISWAP_ROUTER_ADDRESS,UNISWAP_FACTORY_ADDRESS) andWMONcontract address(WMON_ADDRESS)
Configuration and Usage
MCP Server Initialization
In the src/index.ts file, the server is initialized with the list of supported features:
const server = new McpServer({
name: "monad-testnet",
version: "0.0.1",
capabilities: [
"get-mon-balance",
"get-token-balance",
"get-transaction-details",
"get-gas-price",
"get-latest-block",
"get-multiple-balances",
"send-mon",
"send-token",
"play-coinflip",
"get-coinflip-history",
"stake-aprmon",
"unstake-aprmon",
"claim-aprmon",
"get-aprmon-balance",
"get-aprmon-rate",
"get-aprmon-requests",
"swap"
]
});Setting Up the Environment
To configure the server, copy the example environment file and edit it:
cp .env.example .envEdit the .env file with a text editor (e.g., nano, vim, or VS Code) to include the following:
PRIVATE_KEY=0xyourprivatekeyhere
UNISWAP_ROUTER_ADDRESS=0xfb8e1c3b833f9e67a71c859a132cf783b645e436
UNISWAP_FACTORY_ADDRESS=0x733e88f248b742db6c14c0b1713af5ad7fdd59d0
WMON_ADDRESS=0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701Replace 0xyourprivatekeyhere with your Monad testnet wallet's private key (64 hexadecimal characters starting with 0x).
Ensure the .env file is secure and not committed to version control. Add it to .gitignore:
echo .env >> .gitignoreBuilding and Running the Server
Build the project:
npm run buildRun the MCP server:
node build/index.jsIntegration with Claude Desktop
Open Claude Desktop.
Go to
Settings > Developer.Edit
claude_desktop_config.json(typically located in~/.config/Claude/or%APPDATA%\Claude\) and add the following configuration:
{
"mcpServers": {
"monad-mcp": {
"command": "node",
"args": [
"/path/to/mcp-monad/build/index.js"
],
"env": {
"NODE_ENV": "production"
}
}
}
}Replace /path/to/mcp-monad/ with the actual path to your project directory (e.g., E:\proyek\mcp-monad on Windows or /home/user/mcp-monad on Linux).
Restart Claude Desktop.
When prompted, allow MCP access for the chat session (
Allow for This Chat).
Contributing
Fork the Project
Create your Feature Branch (
git checkout -b feature/AmazingFeature)Commit your Changes (
git commit -m 'Add some AmazingFeature')Push to the Branch (
git push origin feature/AmazingFeature)Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.
Contact
Slamettttt - @caridipesbuk
Project Link: https://github.com/Semutireng22/mcp-monad
Notes
Ensure the CoinflipGame contract (
0x664e248c39cd70Fa333E9b2544beEd6A7a2De09b) has sufficient funds in its pool to cover potential winnings forplay-coinflip. You can check this using a Monad testnet block explorer.For users on different systems, adjust the project path in
claude_desktop_config.jsonaccordingly.
Troubleshooting
Server fails to start: Check logs in Claude Desktop (
Settings > Developer) or terminal for errors like "File.envdoes not exist." Ensure.envis in the project root with a validPRIVATE_KEY.Insufficient contract funds: Verify the CoinflipGame contract balance using a block explorer. The contract owner can fund it via the
fundGamePoolfunction.Claude commands not working: Ensure
claude_desktop_config.jsonhas the correct project path and restart Claude Desktop.TypeScript errors: Run
npx tscto check for errors. Update dependencies with:
npm installUse MCP Inspector for debugging:
git clone https://github.com/modelcontextprotocol/inspector
cd inspector
npm install
npm start
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.