Monad MCP Server

Interactúa con la testnet de Monad, consulta datos de la blockchain e interactúa con el smart contract CoinflipGame.

Documentación

Monad MCP Server

License: MIT Node.js Version

Este proyecto proporciona un servidor MCP para la interacción fluida con la testnet de Monad. Admite consultas de datos de blockchain (saldos, transacciones, precios de gas, bloques) e interacción con el contrato inteligente CoinflipGame para jugar un juego de cara o cruz. El servidor se integra con Claude Desktop, lo que permite a los usuarios ejecutar comandos en lenguaje natural.

Funciones Compatibles y Cómo Usarlas

FunciónDescripciónComando de Ejemplo
get-mon-balanceConsulta el saldo de MON para una dirección de la testnet de Monad.check MON 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765
get-token-balanceConsulta el saldo de un token ERC-20 específico para una dirección.check token balance for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contract 0x1234...5678
get-transaction-detailsRecupera información detallada sobre una transacción por su hash.get details for transaction 0xabcdef1234567890...
get-gas-priceObtiene el precio actual del gas en la testnet de Monad.what is the current gas price
get-latest-blockObtiene información sobre el bloque más reciente en la testnet de Monad.show latest block info
get-multiple-balancesConsulta saldos de múltiples tokens para una dirección.check multiple balances for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contracts 0x1234...5678, 0x5678...1234
send-monEnvía tokens MON a una dirección especificada en la testnet de Monad.send 0.1 MON to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765
send-tokenEnvía tokens ERC-20 a una dirección especificada desde un contrato de token.send 100 USDT to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765 from contract 0x1234...5678
play-coinflipJuega un juego de cara o cruz apostando MON a Cara o Cruz (apuesta mínima: 0.01 MON).flip 0.1 mon head
get-coinflip-historyConsulta el historial de juegos de cara o cruz para una dirección, incluyendo victorias, derrotas y ganancias.history flip o history flip 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765
stake-aprmonApuesta tus tokens MON en la plataforma de staking Apriori.stake 0.1 mon para apostar tokens MON.
unstake-aprmonRetira todos tus tokens MON apostados de la plataforma Apriori.unstake aprmon para retirar todos tus tokens MON apostados. Anota el ID de solicitud, que se usará más adelante para el reclamo.
claim-aprmonReclama tokens MON retirados pendientes.Después de 10 minutos de retiro, usa claim aprmon requestID. Reemplaza requestID con el ID obtenido durante el proceso de retiro.
swapFunción de intercambio integrada de Uniswap V2 para la red de la testnet de MonadPara tokens listados: swap 0.1 MON to USDT. Para tokens no listados: swap 0.1 MON to 0xxxxxxxxxxx (usando la dirección del contrato)

Inicio Rápido

  • Clona el repositorio
git clone https://github.com/Semutireng22/mcp-monad.git
cd mcp-monad
npm install
  • Copia .env.example a .env y configúralo
cp .env.example .env
  • Edita .env con tu clave privada
nano .env
  • Compila y ejecuta
npm run build
node build/index.js

Requisitos Previos

  • Node.js (v16 o más reciente)
  • npm o yarn
  • Claude Desktop (para la integración con el cliente MCP)
  • Una billetera de la testnet de Monad con suficiente MON para transacciones y tarifas de gas (requerido para play-coinflip, send-mon y send-token)
  • Un archivo .env configurado con: PRIVATE_KEY para la billetera de la testnet de Monad Uniswap V2 direcciones de contratos (UNISWAP_ROUTER_ADDRESS, UNISWAP_FACTORY_ADDRESS) y WMON dirección del contrato (WMON_ADDRESS)

Configuración y Uso

Inicialización del Servidor MCP

En el archivo src/index.ts, el servidor se inicializa con la lista de funciones compatibles:

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

Configuración del Entorno

Para configurar el servidor, copia el archivo de entorno de ejemplo y edítalo:

cp .env.example .env

Edita el archivo .env con un editor de texto (por ejemplo, nano, vim o VS Code) para incluir lo siguiente:

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

Reemplaza 0xyourprivatekeyhere con la clave privada de tu billetera de la testnet de Monad (64 caracteres hexadecimales que comienzan con 0x).

Asegúrate de que el archivo .env sea seguro y no se comprometa en el control de versiones. Agrégalo a .gitignore:

echo .env >> .gitignore

Compilación y Ejecución del Servidor

Compila el proyecto:

npm run build

Ejecuta el servidor MCP:

node build/index.js

Integración con Claude Desktop

  1. Abre Claude Desktop.
  2. Ve a Settings > Developer.
  3. Edita claude_desktop_config.json (normalmente ubicado en ~/.config/Claude/ o %APPDATA%\Claude\) y agrega la siguiente configuración:
{
  "mcpServers": {
    "monad-mcp": {
      "command": "node",
      "args": [
        "/path/to/mcp-monad/build/index.js"
      ],
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

Reemplaza /path/to/mcp-monad/ con la ruta real a tu directorio del proyecto (por ejemplo, E:\proyek\mcp-monad en Windows o /home/user/mcp-monad en Linux).

  1. Reinicia Claude Desktop.
  2. Cuando se te solicite, permite el acceso MCP para la sesión de chat (Allow for This Chat).

Contribuciones

  1. Haz un fork del Proyecto
  2. Crea tu Rama de Funciones (git checkout -b feature/AmazingFeature)
  3. Realiza tus Cambios (git commit -m 'Add some AmazingFeature')
  4. Envía a la Rama (git push origin feature/AmazingFeature)
  5. Abre una Solicitud de Extracción

Licencia

Distribuido bajo la Licencia MIT. Consulta LICENSE para más información.

Contacto

Slamettttt - @caridipesbuk

Enlace del Proyecto: https://github.com/Semutireng22/mcp-monad

Notas

  • Asegúrate de que el contrato CoinflipGame (0x664e248c39cd70Fa333E9b2544beEd6A7a2De09b) tenga fondos suficientes en su pool para cubrir posibles ganancias para play-coinflip. Puedes verificar esto usando un explorador de bloques de la testnet de Monad.
  • Para usuarios en diferentes sistemas, ajusta la ruta del proyecto en claude_desktop_config.json en consecuencia.

Solución de Problemas

  • El servidor no se inicia: Revisa los registros en Claude Desktop (Settings > Developer) o la terminal para ver errores como "El archivo .env no existe." Asegúrate de que .env esté en la raíz del proyecto con un PRIVATE_KEY válido.
  • Fondos insuficientes del contrato: Verifica el saldo del contrato CoinflipGame usando un explorador de bloques. El propietario del contrato puede financiarlo mediante la función fundGamePool.
  • Los comandos de Claude no funcionan: Asegúrate de que claude_desktop_config.json tenga la ruta correcta del proyecto y reinicia Claude Desktop.
  • Errores de TypeScript: Ejecuta npx tsc para verificar errores. Actualiza las dependencias con:
npm install
  • Usa MCP Inspector para depuración:
git clone https://github.com/modelcontextprotocol/inspector
cd inspector
npm install
npm start