Base MCP Server

Official
by base

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Allows interaction with Coinbase API for retrieving wallet addresses, listing balances, transferring funds, onramping funds, and managing ERC20 tokens

  • Enables deployment of smart contracts written in Solidity to the Base Network blockchain

Servidor MCP base 🔵

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas en cadena para aplicaciones de IA como Claude Desktop y Cursor, lo que les permite interactuar con la Red Base y la API de Coinbase.

Descripción general

Este servidor MCP amplía las capacidades de cualquier cliente MCP al proporcionar herramientas para hacer cualquier cosa en Base:

  • Recuperar direcciones de billetera
  • Lista de saldos de billetera
  • Transferir fondos entre billeteras
  • Implementar contratos inteligentes
  • Interactúa con las bóvedas Morpho para préstamos en cadena
  • Llamar a funciones de contrato
  • Fondos de Onramp a través de Coinbase
  • Administrar tokens ERC20
  • Listado y transferencia de NFT (ERC721 y ERC1155)
  • Comprar créditos OpenRouter con USDC

El servidor interactúa con Base, impulsado por Base Developer Tools y AgentKit .

Ampliación de Base MCP con protocolos 3P, herramientas y fuentes de datos

Base MCP está diseñado para ser extensible, lo que le permite agregar sus propios protocolos, herramientas y fuentes de datos de terceros. Esta sección ofrece una descripción general de cómo ampliar el servidor Base MCP con nuevas funciones.

Agregar nuevas herramientas

Si desea agregar una nueva herramienta al servidor Base MCP, siga estos pasos:

  1. Cree un nuevo directorio en el directorio src/tools para su herramienta
  2. Implementar la herramienta siguiendo los patrones existentes:
    • index.ts : Define y exporta tus herramientas
    • schemas.ts : Define esquemas de entrada para tus herramientas
    • handlers.ts : Implementa la funcionalidad de tus herramientas
  3. Agregue su herramienta a la lista de herramientas disponibles en src/tools/index.ts
  4. Agregue documentación para su herramienta en el README.md
  5. Agregue ejemplos de cómo usar su herramienta en examples.md
  6. Escribe pruebas para tu herramienta

Estructura del proyecto

El servidor Base MCP sigue esta estructura para las herramientas:

src/ ├── tools/ │ ├── index.ts (exports toolsets) │ ├── [TOOL_NAME]/ <-------------------------- ADD DIR HERE │ │ ├── index.ts (defines and exports tools) │ │ ├── schemas.ts (defines input schema) │ │ └── handlers.ts (implements tool functionality) │ └── utils/ (shared tool utilities)

Mejores prácticas para el desarrollo de herramientas

Al desarrollar nuevas herramientas para Base MCP:

  • Siga el estilo y los patrones de código existentes
  • Asegúrese de que su herramienta tenga un propósito claro y específico
  • Proporcionar una validación de entrada integral
  • Incluir manejo detallado de errores
  • Redactar documentación exhaustiva
  • Agregue ejemplos que demuestren cómo utilizar su herramienta
  • Incluya pruebas para su herramienta

Para obtener información más detallada sobre cómo contribuir a Base MCP, incluida la adición de nuevas herramientas y protocolos, consulte el archivo CONTRIBUTING.md .

Prerrequisitos

  • Node.js (v16 o superior)
  • npm o hilo
  • Credenciales de la API de Coinbase (nombre de la clave API y clave privada)
  • Una frase semilla de billetera
  • ID del proyecto de Coinbase (para la funcionalidad de rampa de acceso)
  • Clave API de Alchemy (necesaria para la funcionalidad NFT)
  • Opcional: Clave API de OpenRouter (para comprar créditos de OpenRouter)

Instalación

Opción 1: Instalar desde npm (recomendado)

# Install globally npm install -g base-mcp # Or install locally in your project npm install base-mcp

Una vez instalado el paquete, puedes configurar los clientes con el siguiente comando:

base-mcp --init

Opción 2: Instalar desde la fuente

  1. Clonar este repositorio:
    git clone https://github.com/base/base-mcp.git cd base-mcp
  2. Instalar dependencias:
    npm install
  3. Construir el proyecto:
    npm run build
  4. Opcionalmente, vincúlelo globalmente:
    npm link

Configuración

Crea un archivo .env con tus credenciales:

# Coinbase API credentials # You can obtain these from the Coinbase Developer Portal: https://cdp.coinbase.com/ COINBASE_API_KEY_NAME=your_api_key_name COINBASE_API_PRIVATE_KEY=your_private_key # Wallet seed phrase (12 or 24 words) # This is the mnemonic phrase for your wallet SEED_PHRASE=your seed phrase here # Coinbase Project ID (for onramp functionality) # You can obtain this from the Coinbase Developer Portal COINBASE_PROJECT_ID=your_project_id # Alchemy API Key (required for NFT functionality) # You can obtain this from https://alchemy.com ALCHEMY_API_KEY=your_alchemy_api_key # OpenRouter API Key (optional for buying OpenRouter credits) # You can obtain this from https://openrouter.ai/keys OPENROUTER_API_KEY=your_openrouter_api_key # Chain ID (optional for Base Sepolia testnet) # Use 84532 for Base Sepolia testnet # You do not have to include this if you want to use Base Mainnet CHAIN_ID=your_chain_id

Pruebas

Pruebe el servidor MCP para verificar que funciona correctamente:

npm test

Este script verificará que su servidor MCP esté funcionando correctamente probando la conexión y las herramientas disponibles.

Ejemplos

Consulte el archivo examples.md para obtener ejemplos detallados de cómo interactuar con las herramientas Base MCP a través de Claude.

Integración con Claude Desktop

Para agregar este servidor MCP a Claude Desktop:

  1. Cree o edite el archivo de configuración de Claude Desktop en:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json

Puede acceder fácilmente a este archivo a través de la aplicación Claude Desktop navegando a Claude > Configuración > Desarrollador > Editar configuración.

  1. Agregue la siguiente configuración:
    { "mcpServers": { "base-mcp": { "command": "npx", "args": ["-y", "base-mcp@latest"], "env": { "COINBASE_API_KEY_NAME": "your_api_key_name", "COINBASE_API_PRIVATE_KEY": "your_private_key", "SEED_PHRASE": "your seed phrase here", "COINBASE_PROJECT_ID": "your_project_id", "ALCHEMY_API_KEY": "your_alchemy_api_key", "PINATA_JWT": "your_pinata_jwt", "OPENROUTER_API_KEY": "your_openrouter_api_key", "CHAIN_ID": "optional_for_base_sepolia_testnet" }, "disabled": false, "autoApprove": [] } } }
  2. Reinicie Claude Desktop para que los cambios surtan efecto.

Herramientas disponibles

obtener dirección

Recupera la dirección de tu billetera.

Ejemplo de consulta a Claude:

"¿Cuál es la dirección de mi billetera?"

saldos de lista

Enumera todos los saldos de su billetera.

Ejemplo de consulta a Claude:

"Muéstrame los saldos de mi billetera".

transferencia de fondos

Transfiere fondos de su billetera a otra dirección.

Parámetros:

  • destination : La dirección a la que se transferirán los fondos
  • assetId : El ID del activo a transferir
  • amount : La cantidad de fondos a transferir

Ejemplo de consulta a Claude:

"Transfiera 0,01 ETH a 0x1234567890abcdef1234567890abcdef12345678."

contrato de implementación

Implementa un contrato inteligente en la cadena de bloques.

Parámetros:

  • constructorArgs : Los argumentos para el constructor del contrato
  • contractName : El nombre del contrato a implementar
  • solidityInputJson : La entrada JSON para el compilador de Solidity que contiene la fuente y la configuración del contrato
  • solidityVersion : La versión del compilador de solidity

Ejemplo de consulta a Claude:

"Implemente un contrato de token ERC20 simple para mí".

comprobar-reputación-de-dirección

Comprueba la reputación de una dirección.

Parámetros:

  • address : La dirección de Ethereum para verificar

Ejemplo de consulta a Claude:

"¿Cuál es la reputación de 0x1234567890abcdef1234567890abcdef12345678?"

obtener_bóvedas_morfo

Obtiene las bóvedas de un activo determinado en Morpho.

Parámetros:

  • assetSymbol : Símbolo del activo por el cual filtrar las bóvedas (opcional)

Ejemplo de consulta a Claude:

"Muéstrame las bóvedas Morpho disponibles para USDC".

contrato de llamada

Llama a una función de contrato en la cadena de bloques.

Parámetros:

  • contractAddress : La dirección del contrato a llamar
  • functionName : El nombre de la función a llamar
  • functionArgs : Los argumentos que se pasarán a la función
  • abi : El ABI del contrato
  • value : El valor de ETH a enviar con la transacción (opcional)

Ejemplo de consulta a Claude:

"Llame a la función balanceOf en el contrato en 0x1234567890abcdef1234567890abcdef12345678."

obtener_activos_de_la_rampa

Obtiene los activos disponibles para la incorporación en un país o subdivisión determinados.

Parámetros:

  • country : cadena de código de país de dos dígitos ISO 3166-1 que representa el país de residencia del usuario que realiza la compra
  • subdivision : código de subdivisión de país de dos dígitos ISO 3166-2 (obligatorio para EE. UU.)

Ejemplo de consulta a Claude:

"¿Qué activos puedo transferir a Estados Unidos, específicamente a Nueva York?"

rampa de entrada

Obtiene una URL para ingresar fondos a través de Coinbase.

Parámetros:

  • amountUsd : La cantidad de fondos a transferir
  • assetId : El ID del activo a la rampa de entrada

Ejemplo de consulta a Claude:

"Quiero aumentar mi inversión en ETH por un valor de $100."

equilibrio erc20

Obtiene el saldo de un token ERC20.

Parámetros:

  • contractAddress : La dirección del contrato ERC20

Ejemplo de consulta a Claude:

"¿Cuál es mi saldo del token en 0x1234567890abcdef1234567890abcdef12345678?"

transferencia erc20

Transfiere un token ERC20 a otra dirección.

Parámetros:

  • contractAddress : La dirección del contrato ERC20
  • toAddress : La dirección del destinatario
  • amount : La cantidad de tokens a transferir

Ejemplo de consulta a Claude:

"Transfiera 10 USDC a 0x1234567890abcdef1234567890abcdef12345678."

lista_nfts

Enumera los NFT propiedad de una dirección específica.

Parámetros:

  • ownerAddress : La dirección del propietario cuyos NFT se listarán
  • limit : Número máximo de NFT a devolver (predeterminado: 50)

Ejemplo de consulta a Claude:

"Muéstrame los NFT propiedad de 0x89A93a48C6Ef8085B9d07e46AaA96DFDeC717040".

transferencia_nft

Transfiere un NFT a otra dirección. Compatible con los estándares ERC721 y ERC1155.

Parámetros:

  • contractAddress : La dirección del contrato NFT
  • tokenId : El ID del token del NFT a transferir
  • toAddress : La dirección del destinatario
  • amount : El monto a transferir (solo se usa para ERC1155, predeterminado: 1)

Ejemplo de consulta a Claude:

"Transfiere mi NFT con contrato 0x3F06FcF75f45F1bb61D56D68fA7b3F32763AA15c e ID de token 56090175025510453004781233574040052668718235229192064098345825090519343038548 a 0x1234567890abcdef1234567890abcdef12345678."

comprar créditos de openrouter

Compra créditos OpenRouter con USDC.

Parámetros:

  • amountUsd : La cantidad de créditos a comprar, en USD

Ejemplo de consulta a Claude:

"Compra $20 en créditos OpenRouter".

Consideraciones de seguridad

  • El archivo de configuración contiene información confidencial (claves API y frases semilla). Asegúrese de que esté protegido y no se comparta.
  • Considere utilizar variables de entorno o un administrador de credenciales seguro en lugar de codificar información confidencial.
  • Tenga cuidado al transferir fondos o implementar contratos, ya que estas operaciones son irreversibles en la cadena de bloques.
  • Al utilizar la funcionalidad de rampa de acceso, asegúrese de estar en una conexión segura.
  • Verifique todos los detalles de la transacción antes de confirmar, especialmente al transferir fondos o comprar créditos.

Solución de problemas

Si encuentra problemas:

  1. Comprueba que tus credenciales de API de Coinbase sean correctas
  2. Verifique que su frase semilla sea válida
  3. Asegúrese de estar en la red correcta (Base Mainnet)
  4. Consulte los registros de Claude Desktop para ver si hay mensajes de error

Licencia

Licencia MIT

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Para obtener pautas detalladas sobre cómo contribuir al MCP base, que incluyen:

  • Informar de errores
  • Sugerir mejoras
  • Configuración de desarrollo
  • Estándares de codificación
  • Agregar nuevas herramientas, protocolos y fuentes de datos (consulte también la sección Ampliación de Base MCP más arriba)
  • Requisitos de prueba
  • Normas de documentación

Consulte nuestra guía completa CONTRIBUTING.md .

Pasos básicos de contribución:

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones ( git checkout -b feature/amazing-feature )
  3. Confirme sus cambios ( git commit -m 'Add some amazing feature' )
  4. Empujar a la rama ( git push origin feature/amazing-feature )
  5. Abrir una solicitud de extracción

Asegúrese de que su código siga el estilo existente e incluya pruebas adecuadas.

ID: s37x9aoxum