MCP Blockchain Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Handles environment variable configuration for the MCP Blockchain Server

  • Provides containerization support for running the PostgreSQL database, Redis cache, MCP Server, and Web DApp as a complete system

  • Enables reading balances, contract state, and other on-chain data from the Ethereum blockchain, as well as preparing unsigned transactions for user approval and signing

Servidor blockchain y DApp MCP

Un sistema seguro que permite a los asistentes de IA interactuar con contratos inteligentes de blockchain y al mismo tiempo garantizar que los usuarios mantengan un control total sobre sus claves privadas y la firma de transacciones.

Descripción general

Este proyecto aborda un desafío clave en la integración de IA y blockchain: permitir que los asistentes de IA lean datos de blockchain y preparen transacciones mientras se garantiza que los usuarios mantengan control exclusivo sobre la firma de transacciones y las claves privadas.

El sistema consta de:

  1. Servidor MCP : un servidor de protocolo de contexto de modelo que expone las operaciones de blockchain como herramientas que pueden ser utilizadas por asistentes de IA
  2. Web DApp : una aplicación React que proporciona una interfaz de usuario para la conexión de billetera y la firma de transacciones.
  3. Base de datos : base de datos PostgreSQL para almacenar usuarios, claves API y registros de transacciones
  4. Almacenamiento en caché : Redis para almacenar en caché datos a los que se accede con frecuencia

Características

Características del servidor MCP

  • Acceso a datos de blockchain : lectura de saldos, estado de contratos y otros datos en cadena
  • Preparación de transacciones : crear transacciones sin firmar para la aprobación del usuario
  • Compatibilidad con múltiples cadenas : funciona con Ethereum, Polygon y otras cadenas compatibles con EVM
  • Interacción de contratos inteligentes : lea contratos inteligentes verificados en redes compatibles
  • Diseño que prioriza la seguridad : las claves privadas nunca salen de la billetera del usuario

Características de la aplicación web DApp

  • Integración de billetera : conéctese con MetaMask y otras billeteras Web3
  • Revisión de transacciones : interfaz de usuario clara para revisar los detalles de la transacción antes de firmar
  • Firma de transacciones : Firme transacciones con la billetera conectada
  • Seguimiento de transacciones : supervise el estado de las transacciones enviadas
  • Compatibilidad móvil : el diseño adaptable funciona en todos los dispositivos.

Principios de seguridad

  1. Aislamiento de clave privada : las claves nunca salen de la billetera del usuario
  2. Verificación de transacciones : interfaz de usuario clara para revisar los detalles de la transacción
  3. Autenticación de API : gestión segura de claves API
  4. Limitación de velocidad : evitar el abuso
  5. Validación de entrada : desinfectar todas las entradas
  6. Registro de auditoría : seguimiento de todas las operaciones
  7. Sólo HTTPS : Comunicaciones seguras
  8. Política de seguridad de contenido : Prevenir XSS

Flujo de transacciones

  1. El asistente de IA solicita transacciones a través del servidor MCP
  2. El servidor MCP prepara una transacción sin firmar con UUID
  3. El servidor MCP devuelve la URL de la transacción al asistente de IA
  4. El asistente de IA proporciona la URL al usuario
  5. El usuario abre la URL en el navegador
  6. El usuario conecta la billetera y revisa los detalles de la transacción.
  7. El usuario aprueba y firma la transacción con su billetera
  8. La aplicación web DApp envía la transacción firmada a la cadena de bloques
  9. El estado de la transacción se actualiza y se rastrea.

Empezando

Prerrequisitos

  • Node.js (v18 o superior)
  • npm o hilo
  • PostgreSQL
  • Redis (opcional, para almacenamiento en caché)
  • Clave API de Infura (para acceso a blockchain)
  • Clave API de Etherscan (para ABI de contrato)

Instalación

  1. Clonar el repositorio:
git clone https://github.com/zhangzhongnan928/mcp-blockchain-server.git cd mcp-blockchain-server
  1. Instalar dependencias:
npm install # or yarn install
  1. Configurar variables de entorno: Cree un archivo .env en el directorio raíz (o cópielo desde .env.example ):
cp .env.example .env # Edit .env with your configurations
  1. Configurar la base de datos:
# For detailed instructions, see the Database Setup Guide # docs/database-setup.md # Create the PostgreSQL database createdb mcp_blockchain # Run database migrations npm run db:migrate # or yarn db:migrate

Consulte la Guía de configuración de la base de datos para obtener instrucciones detalladas sobre la instalación y configuración de PostgreSQL.

  1. Iniciar el servidor:
npm run dev # or yarn dev

Uso de Docker Compose

Para comenzar rápidamente a utilizar Docker:

# Create .env file with required environment variables cp .env.example .env # Edit .env with your configurations # Start the services docker-compose up -d

Esto comenzará:

  • Base de datos PostgreSQL
  • Caché de Redis
  • Servidor MCP
  • Aplicación web descentralizada

Desarrollo

Estructura del servidor

  • src/mcp : Implementación del servidor MCP
  • src/services : Servicios de lógica empresarial básica
  • src/utils : Funciones de utilidad
  • src/index.ts : Punto de entrada principal

Estructura de la aplicación web DApp

  • web/src/components : Componentes de React
  • web/src/hooks : Ganchos de React personalizados
  • web/src/services : Servicios API
  • web/src/pages : Componentes de la página

Uso del servidor MCP

El servidor MCP expone varias herramientas que pueden utilizar los asistentes de IA:

  • get-chains : Obtener la lista de redes blockchain compatibles
  • get-balance : Obtener el saldo de la cuenta de una dirección
  • read-contract : Leer datos de un contrato inteligente
  • prepare-transaction : prepara una transacción sin firmar para la aprobación del usuario
  • get-transaction-status : obtener el estado actual de una transacción

Ejemplo de uso de la herramienta

// Example of using the get-balance tool const result = await callTool("get-balance", { chainId: "1", address: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" });

Solución de problemas

Si encuentra problemas con las dependencias:

# MCP SDK issue - install directly from GitHub npm uninstall @modelcontextprotocol/sdk npm install modelcontextprotocol/typescript-sdk

Para problemas de conexión a la base de datos, consulte la Guía de configuración de la base de datos .

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
security - not tested
A
license - permissive license
-
quality - not tested

Un sistema seguro que permite a los asistentes de IA interactuar con datos de blockchain y preparar transacciones, garantizando al mismo tiempo que los usuarios mantengan control exclusivo sobre sus claves privadas y la firma de transacciones.

  1. Overview
    1. Features
      1. MCP Server Features
      2. Web DApp Features
    2. Security Principles
      1. Transaction Flow
        1. Getting Started
          1. Prerequisites
          2. Installation
          3. Using Docker Compose
        2. Development
          1. Server Structure
          2. Web DApp Structure
        3. Using the MCP Server
          1. Example Tool Usage
        4. Troubleshooting
          1. License
            ID: 1hfkunwb7p