Skip to main content
Glama
README.md7.66 kB
# Servidor MCP para MIST.cash SDK Un servidor del Protocolo de Contexto de Modelo (MCP) que expone la funcionalidad de pagos privados de [MIST.cash](https://mist.cash) en Starknet. Este servidor permite a los agentes de IA interactuar con el protocolo de pagos preservadores de privacidad de MIST.cash a través de una interfaz estandarizada. ## 🌟 Características - **5 Herramientas MCP** para operaciones de transacción - **2 Recursos MCP** para información de contratos y transacciones - **Privacidad Primero**: Aprovecha el sistema de pruebas de conocimiento cero de MIST.cash - **Soporte Multi-Token**: ETH, USDC, USDT, DAI en Starknet - **Listo para Producción**: Lógica de reintento, tiempos de espera (timeouts) y manejo integral de errores ## 📋 Requisitos Previos - Node.js 20 o superior (si se ejecuta localmente) - Docker (recomendado para equipos) - Acceso a un proveedor RPC de Starknet (o Appchain compatible) ## 🚀 Instalación y Configuración ### Opción 1: Docker (Recomendado para el Equipo) Esta es la forma más sencilla de asegurar que todos en el equipo tengan el mismo entorno. 1. **Construir la imagen:** ```bash docker build -t mcp-mistcash . ``` 2. **Ejecutar con Docker:** Para usarlo con clientes MCP (como Claude Desktop), usarás el comando `docker run`. Nota la bandera `-i` que es requerida para la comunicación stdio. ```bash docker run -i --rm \ -e STARKNET_RPC_URL=https://ztarknet-madara.d.karnot.xyz \ -e STARKNET_NETWORK=mainnet \ -e CHAMBER_CONTRACT_ADDRESS=0xTuDireccionDeContrato \ mcp-mistcash ``` ### Opción 2: Desarrollo Local (Node.js) 1. **Clonar e instalar dependencias:** ```bash cd mcp-mistcash npm install ``` 2. **Configurar variables de entorno:** Crea un archivo `.env` basado en el ejemplo: ```bash cp .env.example .env ``` Edita `.env` con tu configuración (ejemplo para Madara Appchain): ```env STARKNET_RPC_URL=https://ztarknet-madara.d.karnot.xyz STARKNET_NETWORK=mainnet MCP_LOG_LEVEL=info # Opcional: Dirección del contrato Chamber (Requerido para Madara si no usas Mainnet) # CHAMBER_CONTRACT_ADDRESS=0x... ``` 3. **Construir el proyecto:** ```bash npm run build ``` ## 🔌 Integración con Clientes de IA Para que tu equipo pueda usar estas herramientas en su día a día, deben configurar su cliente de IA preferido. ### Claude Desktop Añade lo siguiente a tu archivo de configuración `claude_desktop_config.json`: **Ruta del archivo de configuración:** - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` - Windows: `%APPDATA%\Claude\claude_desktop_config.json` #### Configuración con Docker (Recomendada) ```json { "mcpServers": { "mist-cash": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "STARKNET_RPC_URL=https://ztarknet-madara.d.karnot.xyz", "-e", "STARKNET_NETWORK=mainnet", "mcp-mistcash" ] } } } ``` #### Configuración Local (Alternativa) ```json { "mcpServers": { "mist-cash": { "command": "node", "args": ["/ruta/absoluta/a/mcp-mistcash/dist/index.js"], "env": { "STARKNET_RPC_URL": "https://ztarknet-madara.d.karnot.xyz", "STARKNET_NETWORK": "mainnet" } } } } ``` ### Cursor IDE Añade esto a tus configuraciones de MCP en Cursor: ```json { "mist-cash": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "STARKNET_RPC_URL=https://ztarknet-madara.d.karnot.xyz", "-e", "STARKNET_NETWORK=mainnet", "mcp-mistcash" ] } } ``` ## 🛠️ Herramientas Disponibles ### 1. `generar_secreto_transaccion` Genera un secreto criptográfico para una transacción privada. **Parámetros:** - `claiming_key` (string, requerido): Clave de reclamación para la transacción - `recipient_address` (string, requerido): Dirección Starknet (0x...) ### 2. `obtener_assets_transaccion` Obtiene los activos de una transacción. ⚠️ **ADVERTENCIA**: Esta función muestra activos incluso si ya han sido gastados. Usa `verificar_existencia_transaccion` para una verificación precisa. **Parámetros:** - `transaction_key` (string, requerido): Clave de la transacción a consultar - `recipient_address` (string, requerido): Dirección Starknet del receptor - `provider_rpc_url` (string, opcional): URL RPC personalizada ### 3. `verificar_existencia_transaccion` Verifica si existe una transacción con activos específicos. Ideal para transacciones completamente privadas. **Parámetros:** - `claiming_key` (string, requerido): Clave de reclamación - `recipient` (string, requerido): Dirección del receptor - `token_address` (string, requerido): Dirección del contrato del token - `amount` (string, requerido): Cantidad en unidades base (wei) ### 4. `calcular_hash_transaccion` Calcula el hash único de una transacción. **Parámetros:** - `transaction_key` (string, requerido): Clave de la transacción - `recipient_address` (string, requerido): Dirección del receptor - `token_address` (string, requerido): Dirección del token - `amount` (string, requerido): Cantidad en unidades base ### 5. `obtener_configuracion_chamber` Obtiene la configuración del contrato Chamber y los tokens soportados. **Parámetros:** - `network` (enum, opcional): `"mainnet"` o `"sepolia"` (por defecto: `"mainnet"`) ## 📚 Recursos Disponibles ### `chamber://contract-info` Información estática sobre el contrato Chamber de MIST.cash, incluyendo ABI, direcciones y características. ### `chamber://tx/{txHash}` Detalles para una transacción específica por hash. ## 🔒 Consideraciones de Seguridad ### ✅ Prácticas Seguras - **Sin Claves Privadas**: Solo se manejan claves de reclamación (públicas) - **Validación de Direcciones**: Todas las direcciones Starknet son validadas - **Logging Seguro**: Los secretos de las transacciones nunca se registran en los logs - **Validación de Entrada**: Esquemas Zod validan todas las entradas ### ⚠️ Advertencias Importantes 1. **Transacciones Gastadas**: `obtener_assets_transaccion` no detecta activos gastados 2. **Costos RPC**: Monitorea el uso del RPC para evitar costos inesperados 3. **Retrasos de Red**: Timeout de 30 segundos en todas las llamadas al contrato ## 🏗️ Estructura del Proyecto ``` mcp-mistcash/ ├── src/ │ ├── index.ts # Servidor MCP principal │ ├── types.ts # Definiciones de tipos TypeScript │ ├── tools/ # Implementación de herramientas │ ├── resources/ # Recursos MCP │ └── utils/ # Utilidades (provider, validación) ├── Dockerfile # Configuración para construir la imagen Docker ├── package.json ├── tsconfig.json ├── .env.example └── README.md ``` ## 🤝 Contribuciones Las contribuciones son bienvenidas. Por favor asegúrate de: 1. Que todas las herramientas tengan manejo de errores adecuado 2. Los esquemas Zod validen las entradas 3. El código siga las mejores prácticas de TypeScript 4. La documentación esté actualizada ## 📄 Licencia MIT --- **Construido con ❤️ para las comunidades de Starknet y MCP**

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/joadataarg/Mcp-mistcash'

If you have feedback or need assistance with the MCP directory API, please join our Discord server