Monad MCP Server

Interaja com a testnet Monad, consulte dados da blockchain e interaja com o smart contract CoinflipGame.

Documentação

Monad MCP Server

License: MIT Node.js Version

Este projeto fornece um servidor MCP para interação perfeita com a testnet Monad. Ele suporta consulta de dados de blockchain (saldos, transações, preços de gás, blocos) e interação com o contrato inteligente CoinflipGame para jogar um jogo de cara ou coroa. O servidor integra-se ao Claude Desktop, permitindo que os usuários executem comandos em linguagem natural.

Recursos Suportados e Como Usar

RecursoDescriçãoExemplo de Comando
get-mon-balanceVerifica o saldo de MON para um endereço da testnet Monad.check MON 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765
get-token-balanceVerifica o saldo de um token ERC-20 específico para um endereço.check token balance for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contract 0x1234...5678
get-transaction-detailsRecupera informações detalhadas sobre uma transação pelo seu hash.get details for transaction 0xabcdef1234567890...
get-gas-priceObtém o preço atual do gás na testnet Monad.what is the current gas price
get-latest-blockBusca informações sobre o bloco mais recente na testnet Monad.show latest block info
get-multiple-balancesVerifica saldos de múltiplos tokens para um endereço.check multiple balances for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contracts 0x1234...5678, 0x5678...1234
send-monEnvia tokens MON para um endereço especificado na testnet Monad.send 0.1 MON to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765
send-tokenEnvia tokens ERC-20 para um endereço especificado a partir de um contrato de token.send 100 USDT to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765 from contract 0x1234...5678
play-coinflipJoga um jogo de cara ou coroa apostando MON em Cara ou Coroa (aposta mínima: 0,01 MON).flip 0.1 mon head
get-coinflip-historyVisualiza o histórico de jogos de cara ou coroa para um endereço, incluindo vitórias, derrotas e lucro.history flip ou history flip 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765
stake-aprmonAposta seus tokens MON na plataforma de staking Apriori.stake 0.1 mon para apostar tokens MON.
unstake-aprmonRetira todos os seus tokens MON da plataforma Apriori.unstake aprmon para retirar todos os seus tokens MON apostados. Anote o ID da solicitação, que será usado posteriormente para o resgate.
claim-aprmonResgata tokens MON pendentes de retirada.Após 10 minutos da retirada, use claim aprmon requestID. Substitua requestID pelo ID obtido durante o processo de retirada.
swapRecurso integrado de swap Uniswap V2 para a rede Monad TestnetPara tokens listados: swap 0.1 MON to USDT. Para tokens não listados: swap 0.1 MON to 0xxxxxxxxxxx (usando endereço do contrato)

Início Rápido

  • Clone o repositório
git clone https://github.com/Semutireng22/mcp-monad.git
cd mcp-monad
npm install
  • Copie .env.example para .env e configure-o
cp .env.example .env
  • Edite .env com sua chave privada
nano .env
  • Compile e execute
npm run build
node build/index.js

Pré-requisitos

  • Node.js (v16 ou mais recente)
  • npm ou yarn
  • Claude Desktop (para integração com cliente MCP)
  • Uma carteira da testnet Monad com MON suficiente para transações e taxas de gás (necessário para play-coinflip, send-mon e send-token)
  • Um arquivo .env configurado com: PRIVATE_KEY para a carteira da testnet Monad Uniswap V2 endereços de contratos (UNISWAP_ROUTER_ADDRESS, UNISWAP_FACTORY_ADDRESS) e WMON endereço do contrato (WMON_ADDRESS)

Configuração e Uso

Inicialização do Servidor MCP

No arquivo src/index.ts, o servidor é inicializado com a lista de recursos suportados:

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

Configurando o Ambiente

Para configurar o servidor, copie o arquivo de ambiente de exemplo e edite-o:

cp .env.example .env

Edite o arquivo .env com um editor de texto (por exemplo, nano, vim ou VS Code) para incluir o seguinte:

PRIVATE_KEY=0xyourprivatekeyhere
UNISWAP_ROUTER_ADDRESS=0xfb8e1c3b833f9e67a71c859a132cf783b645e436
UNISWAP_FACTORY_ADDRESS=0x733e88f248b742db6c14c0b1713af5ad7fdd59d0
WMON_ADDRESS=0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701

Substitua 0xyourprivatekeyhere pela chave privada da sua carteira da testnet Monad (64 caracteres hexadecimais começando com 0x).

Garanta que o arquivo .env seja seguro e não seja commitado no controle de versão. Adicione-o ao .gitignore:

echo .env >> .gitignore

Compilando e Executando o Servidor

Compile o projeto:

npm run build

Execute o servidor MCP:

node build/index.js

Integração com Claude Desktop

  1. Abra o Claude Desktop.
  2. Vá para Settings > Developer.
  3. Edite claude_desktop_config.json (normalmente localizado em ~/.config/Claude/ ou %APPDATA%\Claude\) e adicione a seguinte configuração:
{
  "mcpServers": {
    "monad-mcp": {
      "command": "node",
      "args": [
        "/path/to/mcp-monad/build/index.js"
      ],
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

Substitua /path/to/mcp-monad/ pelo caminho real do seu diretório de projeto (por exemplo, E:\proyek\mcp-monad no Windows ou /home/user/mcp-monad no Linux).

  1. Reinicie o Claude Desktop.
  2. Quando solicitado, permita o acesso MCP para a sessão de chat (Allow for This Chat).

Contribuindo

  1. Faça um fork do Projeto
  2. Crie sua Branch de Recurso (git checkout -b feature/AmazingFeature)
  3. Faça commit das suas Alterações (git commit -m 'Add some AmazingFeature')
  4. Envie para a Branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

Licença

Distribuído sob a Licença MIT. Consulte LICENSE para mais informações.

Contato

Slamettttt - @caridipesbuk

Link do Projeto: https://github.com/Semutireng22/mcp-monad

Notas

  • Garanta que o contrato CoinflipGame (0x664e248c39cd70Fa333E9b2544beEd6A7a2De09b) tenha fundos suficientes em seu pool para cobrir possíveis ganhos para play-coinflip. Você pode verificar isso usando um explorador de blocos da testnet Monad.
  • Para usuários em sistemas diferentes, ajuste o caminho do projeto em claude_desktop_config.json de acordo.

Solução de Problemas

  • Falha ao iniciar o servidor: Verifique os logs no Claude Desktop (Settings > Developer) ou no terminal para erros como "Arquivo .env não existe." Garanta que .env esteja na raiz do projeto com um PRIVATE_KEY válido.
  • Fundos insuficientes no contrato: Verifique o saldo do contrato CoinflipGame usando um explorador de blocos. O proprietário do contrato pode financiá-lo através da função fundGamePool.
  • Comandos do Claude não funcionando: Garanta que claude_desktop_config.json tenha o caminho correto do projeto e reinicie o Claude Desktop.
  • Erros de TypeScript: Execute npx tsc para verificar erros. Atualize as dependências com:
npm install
  • Use o MCP Inspector para depuração:
git clone https://github.com/modelcontextprotocol/inspector
cd inspector
npm install
npm start