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
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ón | Descripción | Comando de Ejemplo |
|---|---|---|
| get-mon-balance | Consulta el saldo de MON para una dirección de la testnet de Monad. | check MON 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 |
| get-token-balance | Consulta el saldo de un token ERC-20 específico para una dirección. | check token balance for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contract 0x1234...5678 |
| get-transaction-details | Recupera información detallada sobre una transacción por su hash. | get details for transaction 0xabcdef1234567890... |
| get-gas-price | Obtiene el precio actual del gas en la testnet de Monad. | what is the current gas price |
| get-latest-block | Obtiene información sobre el bloque más reciente en la testnet de Monad. | show latest block info |
| get-multiple-balances | Consulta saldos de múltiples tokens para una dirección. | check multiple balances for 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 on contracts 0x1234...5678, 0x5678...1234 |
| send-mon | Envía tokens MON a una dirección especificada en la testnet de Monad. | send 0.1 MON to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765 |
| send-token | Envía tokens ERC-20 a una dirección especificada desde un contrato de token. | send 100 USDT to 0xb3f57a3A7744eA20B5E2848817e9D66C6cb9f765 from contract 0x1234...5678 |
| play-coinflip | Juega 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-history | Consulta el historial de juegos de cara o cruz para una dirección, incluyendo victorias, derrotas y ganancias. | history flip o history flip 0xa2e57a3A7744eA20B5E2848817e9D66C6cb9f765 |
| stake-aprmon | Apuesta tus tokens MON en la plataforma de staking Apriori. | stake 0.1 mon para apostar tokens MON. |
| unstake-aprmon | Retira 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-aprmon | Reclama 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. |
| swap | Función de intercambio integrada de Uniswap V2 para la red de la testnet de Monad | Para 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
.envconfigurado con:PRIVATE_KEYpara la billetera de la testnet de MonadUniswap V2direcciones de contratos (UNISWAP_ROUTER_ADDRESS,UNISWAP_FACTORY_ADDRESS) yWMONdirecció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
- Abre Claude Desktop.
- Ve a
Settings > Developer. - 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).
- Reinicia Claude Desktop.
- Cuando se te solicite, permite el acceso MCP para la sesión de chat (
Allow for This Chat).
Contribuciones
- Haz un fork del Proyecto
- Crea tu Rama de Funciones (
git checkout -b feature/AmazingFeature) - Realiza tus Cambios (
git commit -m 'Add some AmazingFeature') - Envía a la Rama (
git push origin feature/AmazingFeature) - 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 paraplay-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.jsonen 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.envno existe." Asegúrate de que.envesté en la raíz del proyecto con unPRIVATE_KEYvá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.jsontenga la ruta correcta del proyecto y reinicia Claude Desktop. - Errores de TypeScript: Ejecuta
npx tscpara 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