Monad MCP Server
Interaja com a testnet Monad, consulte dados da blockchain e interaja com o smart contract CoinflipGame.
Documentação
Monad MCP Server
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
| Recurso | Descrição | Exemplo de Comando |
|---|---|---|
| get-mon-balance | Verifica o saldo de MON para um endereço da testnet Monad. | check MON 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 |
| get-token-balance | Verifica o saldo de um token ERC-20 específico para um endereço. | check token balance for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contract 0x1234...5678 |
| get-transaction-details | Recupera informações detalhadas sobre uma transação pelo seu hash. | get details for transaction 0xabcdef1234567890... |
| get-gas-price | Obtém o preço atual do gás na testnet Monad. | what is the current gas price |
| get-latest-block | Busca informações sobre o bloco mais recente na testnet Monad. | show latest block info |
| get-multiple-balances | Verifica saldos de múltiplos tokens para um endereço. | check multiple balances for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contracts 0x1234...5678, 0x5678...1234 |
| send-mon | Envia tokens MON para um endereço especificado na testnet Monad. | send 0.1 MON to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765 |
| send-token | Envia 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-coinflip | Joga 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-history | Visualiza 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-aprmon | Aposta seus tokens MON na plataforma de staking Apriori. | stake 0.1 mon para apostar tokens MON. |
| unstake-aprmon | Retira 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-aprmon | Resgata 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. |
| swap | Recurso integrado de swap Uniswap V2 para a rede Monad Testnet | Para 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
.envconfigurado com:PRIVATE_KEYpara a carteira da testnet MonadUniswap V2endereços de contratos (UNISWAP_ROUTER_ADDRESS,UNISWAP_FACTORY_ADDRESS) eWMONendereç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
- Abra o Claude Desktop.
- Vá para
Settings > Developer. - 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).
- Reinicie o Claude Desktop.
- Quando solicitado, permita o acesso MCP para a sessão de chat (
Allow for This Chat).
Contribuindo
- Faça um fork do Projeto
- Crie sua Branch de Recurso (
git checkout -b feature/AmazingFeature) - Faça commit das suas Alterações (
git commit -m 'Add some AmazingFeature') - Envie para a Branch (
git push origin feature/AmazingFeature) - 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 paraplay-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.jsonde 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.envnão existe." Garanta que.envesteja na raiz do projeto com umPRIVATE_KEYvá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.jsontenha o caminho correto do projeto e reinicie o Claude Desktop. - Erros de TypeScript: Execute
npx tscpara 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