Monad MCP Server

by Semutireng22
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • 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

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

FeatureDescriptionExample Command
get-mon-balanceCheck the MON balance for a Monad testnet address.check MON 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765
get-token-balanceCheck the balance of a specific ERC-20 token for an address.check token balance for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contract 0x1234...5678
get-transaction-detailsRetrieve detailed information about a transaction by its hash.get details for transaction 0xabcdef1234567890...
get-gas-priceGet the current gas price on the Monad testnet.what is the current gas price
get-latest-blockFetch information about the latest block on the Monad testnet.show latest block info
get-multiple-balancesCheck balances for multiple tokens for an address.check multiple balances for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contracts 0x1234...5678, 0x5678...1234
send-monSend MON tokens to a specified address on the Monad testnet.send 0.1 MON to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765
send-tokenSend ERC-20 tokens to a specified address from a token contract.send 100 USDT to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765 from contract 0x1234...5678
play-coinflipPlay a coinflip game by betting MON on Heads or Tails (minimum bet: 0.01 MON).flip 0.1 mon head
get-coinflip-historyView the history of coinflip games for an address, including wins, losses, and profit.history flip or history flip 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765
stake-aprmonStake your MON tokens in the Apriori staking platform.stake 0.1 mon to stake MON tokens.
unstake-aprmonUnstake all your MON tokens from the Apriori platform.unstake aprmon to unstake all your staked MON tokens. Note down the request ID, which will be used later for claiming.
claim-aprmonClaim pending unstaked MON tokens.After 10 minutes of unstaking, use claim aprmon requestID. Replace requestID with the ID obtained during the unstaking process.
swapIntegrated Uniswap V2 swap feature for Monad Testnet networkFor listed tokens: swap 0.1 MON to USDT. For unlisted tokens: swap 0.1 MON to 0xxxxxxxxxxx (using contract address)

Quick Start

# Clone the repository git clone https://github.com/Semutireng22/mcp-monad.git cd mcp-monad # Install dependencies npm install # Create .env file (replace with your private key) echo "PRIVATE_KEY=0xyourprivatekeyhere" > .env # Build and run npm run build node build/index.js

Prerequisites

  • 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 .env file with a valid PRIVATE_KEY for the Monad testnet wallet

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" ] });

Setting Up the Environment

Create a .env file in the project root directory (e.g., /path/to/mcp-monad/.env) with the following content:

PRIVATE_KEY=0xyourprivatekeyhere

Replace 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 >> .gitignore

Building and Running the Server

Build the project:

npm run build

Run the MCP server:

node build/index.js

Integration with Claude Desktop

  1. Open Claude Desktop.
  2. Go to Settings > Developer.
  3. 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).

  1. Restart Claude Desktop.
  2. When prompted, allow MCP access for the chat session (Allow for This Chat).

Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. 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 for play-coinflip. You can check this using a Monad testnet block explorer.
  • For users on different systems, adjust the project path in claude_desktop_config.json accordingly.

Troubleshooting

  • Server fails to start: Check logs in Claude Desktop (Settings > Developer) or terminal for errors like "File .env does not exist." Ensure .env is in the project root with a valid PRIVATE_KEY.
  • Insufficient contract funds: Verify the CoinflipGame contract balance using a block explorer. The contract owner can fund it via the fundGamePool function.
  • Claude commands not working: Ensure claude_desktop_config.json has the correct project path and restart Claude Desktop.
  • TypeScript errors: Run npx tsc to check for errors. Update dependencies with:
npm install
  • Use MCP Inspector for debugging:
git clone https://github.com/modelcontextprotocol/inspector cd inspector npm install npm start
-
security - not tested
A
license - permissive license
-
quality - not tested

Enables interaction with the Monad testnet to check balances, examine transaction details, get gas prices, and retrieve block information.

  1. Supported Features and How To Use
    1. Quick Start
      1. Prerequisites
        1. Configuration and Usage
          1. MCP Server Initialization
          2. Setting Up the Environment
          3. Building and Running the Server
          4. Integration with Claude Desktop
        2. Contributing
          1. License
            1. Contact
              1. Notes
                1. Troubleshooting
                  ID: jt8zgcwznc