Algorand MCP

hybrid server

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

Integrations

  • Provides comprehensive Algorand blockchain interaction capabilities, including account management, asset operations, application interactions, transaction creation/submission, and blockchain state queries.

  • Provides a server package for Algorand blockchain interactions specifically built for Node.js environments.

  • Uses TypeScript for type-safe interaction with the Algorand blockchain across both client and server implementations.

Implementación de Algorand MCP

Descripción general

El Protocolo de Contexto de Modelo (MCP) es un protocolo abierto que estandariza cómo las aplicaciones proporcionan contexto a los LLM. MCP proporciona estándares de especificación para brindarles herramientas, recursos e instrucciones que les permitan ser más útiles y eficaces.

MCP Github contiene más información y diferentes herramientas y especificaciones además de documentación de MCP.

Este repositorio es una implementación del Protocolo de Contexto de Modelo (MCP) para las interacciones de la blockchain de Algorand. La implementación consta de:

  • (PRODUCCIÓN) Un paquete de servidor para interacciones blockchain (solo Node.js)
  • (WIP) Un paquete de cliente para la gestión de billeteras y la firma de transacciones (compatible con navegadores y Node.js)

📦 Paquetes en este repositorio:

  • Servidor Algorand MCP : implementación completa del servidor Algorand MCP.
  • Cliente Algorand MCP : Cliente Algorand MCP para la gestión de billeteras del lado del cliente y la firma de transacciones, así como la integración con otros hosts de agentes.

📦 NPM:

📦 Herrería:

Características

  • Integración completa de la documentación de Algorand
    • Taxonomía completa de conocimiento de Algorand
    • Documentación completa para desarrolladores
    • Documentación de ARCs, SDK y herramientas
    • Acceso directo a los documentos a través de la herramienta de conocimiento
  • Capacidades completas de interacción con la cadena de bloques de Algorand
  • Amplio sistema de gestión de billeteras
  • Manejo integral de transacciones
  • Consulta enriquecida del estado de la cadena de bloques
  • Funciones de seguridad integradas
  • Soporte para la integración de Claude Desktop y Cursor

Requisitos

  • Node.js v23.6.1 o posterior
  • npm v10.2.4 o posterior

Instalación

A través de NPM (para desarrolladores que desean ejecutar sus propias instancias)

# Install both client and server packages npm install algorand-mcp

Vía Smithery (Para todos los usuarios)

Vía Smithery (para Claude Desktop)

Simplemente ejecute este comando en la terminal:

npx -y @smithery/cli@latest install @GoPlausible/algorand-mcp --client claude --config "{\"NFD_API_KEY\":\"\",\"NFD_API_URL\":\"https://api.nf.domains\",\"ALGORAND_ALGOD\":\"https://testnet-api.algonode.cloud\",\"ALGORAND_TOKEN\":\"\",\"ITEMS_PER_PAGE\":\"10\",\"VESTIGE_API_KEY\":\"\",\"VESTIGE_API_URL\":\"https://api.vestigelabs.org\",\"ALGORAND_INDEXER\":\"https://testnet-idx.algonode.cloud\",\"ALGORAND_NETWORK\":\"testnet\",\"ALGORAND_ALGOD_API\":\"https://testnet-api.algonode.cloud/v2\",\"ALGORAND_ALGOD_PORT\":\"\",\"ALGORAND_INDEXER_API\":\"https://testnet-idx.algonode.cloud/v2\",\"ALGORAND_INDEXER_PORT\":\"\"}"

Vía Smithery (para Cursor)

Simplemente ejecute este comando en la terminal:

npx -y @smithery/cli@latest install @GoPlausible/algorand-mcp --client cursor --config "{\"NFD_API_KEY\":\"\",\"NFD_API_URL\":\"https://api.nf.domains\",\"ALGORAND_ALGOD\":\"https://testnet-api.algonode.cloud\",\"ALGORAND_TOKEN\":\"\",\"ITEMS_PER_PAGE\":\"10\",\"VESTIGE_API_KEY\":\"\",\"VESTIGE_API_URL\":\"https://api.vestigelabs.org\",\"ALGORAND_INDEXER\":\"https://testnet-idx.algonode.cloud\",\"ALGORAND_NETWORK\":\"testnet\",\"ALGORAND_ALGOD_API\":\"https://testnet-api.algonode.cloud/v2\",\"ALGORAND_ALGOD_PORT\":\"\",\"ALGORAND_INDEXER_API\":\"https://testnet-idx.algonode.cloud/v2\",\"ALGORAND_INDEXER_PORT\":\"\"}"

NOTA IMPORTANTE: Al usar Smithery UI para copiar el comando, asegúrese de configurar ITEMS_PER_PAGE antes de hacer clic en conectar para que todas las variables ENV se incorporen al comando; de lo contrario, su comando no contendrá las variables de entorno necesarias para que Algorand MCP se ejecute.

Arquitectura del proyecto

El proyecto sigue una arquitectura modular con dos paquetes principales:

  1. Paquete de servidor ( @algorand-mcp/server )
    • Proporciona herramientas y recursos de MCP
    • Gestiona las interacciones de blockchain
    • Maneja la creación y el envío de transacciones.
    • Ofrece consultas integrales de blockchain
  2. Paquete de cliente ( @algorand-mcp/client )
    • Maneja las conexiones de billetera y la firma de transacciones.
    • Admite billeteras locales y externas
    • Compatibilidad universal (navegador/Node.js)
    • Gestión segura de credenciales
    • Aún en progreso (el servidor funciona de manera irrelevante para el estado del cliente)

Estructura del proyecto

algorand-mcp/ ├── packages/ │ ├── client/ # Client Package │ │ ├── src/ │ │ │ ├── index.ts # Client entry point and wallet management │ │ │ └── LocalWallet.ts # Local wallet implementation │ │ ├── package.json │ │ └── tsconfig.json │ └── server/ # Server Package │ ├── src/ │ │ ├── resources/ # MCP Resources (User-invokable endpoints) │ │ │ ├── knowledge/ # Documentation and taxonomy │ │ │ │ ├── taxonomy/ # Markdown documentation │ │ │ │ └── index.ts # Knowledge resource handler │ │ │ ├── wallet/ # Wallet management │ │ │ │ └── index.ts # Wallet resource handler │ │ │ └── index.ts # Resource registration │ │ ├── tools/ # MCP Tools (Agent-invokable operations) │ │ │ ├── accountManager.ts # Account operations │ │ │ ├── algodManager.ts # Node interactions │ │ │ ├── utilityManager.ts # Utility functions │ │ │ ├── apiManager/ # API Tools │ │ │ │ ├── algod/ # Algod API tools │ │ │ │ ├── indexer/ # Indexer API tools │ │ │ │ ├── nfd/ # NFDomains tools │ │ │ │ ├── vestige/ # Vestige DeFi tools │ │ │ │ ├── tinyman/ # Tinyman AMM tools │ │ │ │ └── ultrade/ # Ultrade DEX tools │ │ │ └── transactionManager/ # Transaction handling │ │ ├── env.ts # Environment configuration │ │ └── index.ts # Server entry point │ ├── package.json │ └── tsconfig.json ├── package.json # Root package file └── tsconfig.json # Root TypeScript config

Funcionalidades principales

Características del servidor

  • Gestión de cuentas
  • Operaciones de activos
  • Interacciones de aplicaciones
  • Creación y envío de transacciones
  • Consultas de estado de blockchain
  • Funciones de utilidad integrales
  • Formato de respuesta estandarizado
  • Soporte de paginación integrado
  • Integración de NDFomains
  • Análisis de Vestige DeFi
  • Integración de Tinyman AMM
  • Integración de Ultrade DEX
  • Recursos de taxonomía del conocimiento:
    • Taxonomía de documentación completa (algorand://knowledge/taxonomy)
    • Documentación específica de la categoría:
      • ARCs (algorand://knowledge/taxonomy/arcs)
      • SDK (algorand://knowledge/taxonomy/sdks)
      • AlgoKit (algorand://knowledge/taxonomy/algokit)
      • Utilidades de AlgoKit (algorand://knowledge/taxonomy/algokit-utils)
      • TEALScript (algoritmo://conocimiento/taxonomía/tealscript)
      • Puya (algorand://knowledge/taxonomy/puya)
      • Autenticación líquida (algorand://knowledge/taxonomy/liquid-auth)
      • Python (algorand://knowledge/taxonomy/python)
      • Documentación para desarrolladores (algorand://knowledge/taxonomy/developers)
      • Herramientas CLI (algorand://knowledge/taxonomy/clis)
      • Gestión de nodos (algorand://knowledge/taxonomy/nodes)
      • Detalles técnicos (algorand://knowledge/taxonomy/details)

Características del cliente (trabajo en progreso)

  • Billetera local con almacenamiento seguro
  • Compatibilidad con billeteras externas (Pera, Defly, Daffi)
  • Firma de transacciones
  • Gestión de sesiones
  • Compatibilidad con módulos ES universales

Formato de respuesta

Todas las respuestas siguen un formato estandarizado:

{ "data": { // Response data here }, "metadata": { // Only for paginated responses "totalItems": number, "itemsPerPage": number, "currentPage": number, "totalPages": number, "hasNextPage": boolean, "pageToken": string, "arrayField": string // Name of paginated array field } }

Los errores se devuelven en un formato estandarizado:

{ "error": { "code": string, "message": string } }

Herramientas y recursos disponibles

La implementación de Algorand MCP proporciona 125 herramientas y recursos para la interacción de blockchain:

  • 40 herramientas básicas (cuentas, activos, aplicaciones, gestión de transacciones)
  • 30 herramientas API (algoritmo e indexador)
  • 6 herramientas NFD (Dominios NFF) para servicios de nombres
  • 28 herramientas Vestige para el análisis de DeFi
  • 9 herramientas de Tinyman para interacciones con AMM
  • 12 herramientas Ultrade para la funcionalidad DEX

Herramientas API

Herramientas de la API de Algod

  • api_algod_get_account_info: Obtener el saldo actual de la cuenta, los activos y la dirección de autorización
  • api_algod_get_account_application_info: Obtener información de la aplicación específica de la cuenta
  • api_algod_get_account_asset_info: Obtener información de activos específica de la cuenta
  • api_algod_get_application_by_id: Obtener información de la aplicación
  • api_algod_get_application_box: Obtener el cuadro de aplicación por nombre
  • api_algod_get_application_boxes: Obtener todos los cuadros de aplicación
  • api_algod_get_asset_by_id: Obtener información actual del activo
  • api_algod_get_pending_transaction: Obtener información de transacciones pendientes
  • api_algod_get_pending_transactions_by_address: Obtener transacciones pendientes para una dirección
  • api_algod_get_pending_transactions: Obtener todas las transacciones pendientes
  • api_algod_get_transaction_params: Obtener los parámetros de transacción sugeridos
  • api_algod_get_node_status: Obtener el estado actual del nodo
  • api_algod_get_node_status_after_block: Obtener el estado del nodo después de una ronda específica

Herramientas de API de indexación

  • api_indexer_lookup_account_by_id: Obtener información de la cuenta
  • api_indexer_lookup_account_assets: Obtener los activos de la cuenta
  • api_indexer_lookup_account_app_local_states: Obtener los estados locales de la aplicación de la cuenta
  • api_indexer_lookup_account_created_applications: Obtener aplicaciones creadas por cuenta
  • api_indexer_search_for_accounts: Busca cuentas con varios criterios
  • api_indexer_lookup_applications: Obtener información de la aplicación
  • api_indexer_lookup_application_logs: Obtener mensajes de registro de la aplicación
  • api_indexer_search_for_applications: Buscar aplicaciones
  • api_indexer_lookup_asset_by_id: Obtener información y configuración de los activos
  • api_indexer_lookup_asset_balances: Obtener las cuentas que contienen este activo
  • api_indexer_lookup_asset_transactions: Obtener transacciones que involucran este activo
  • api_indexer_search_for_assets: Buscar activos
  • api_indexer_lookup_transaction_by_id: Obtener información de la transacción
  • api_indexer_lookup_account_transactions: Obtener el historial de transacciones de la cuenta
  • api_indexer_search_for_transactions: Buscar transacciones

Herramientas API de NFD (Dominios NFD)

  • api_nfd_get_nfd: Obtener NFD por nombre o ID de aplicación
  • api_nfd_get_nfds_for_addresses: Obtener NFD para direcciones específicas
  • api_nfd_get_nfd_activity: Obtener actividad/cambios para NFD
  • api_nfd_get_nfd_analytics: Obtener datos analíticos para NFD
  • api_nfd_browse_nfds: Explorar NFD con varios filtros
  • api_nfd_search_nfds: Busca NFD con varios filtros

Herramientas API de Vestige

  1. Ver herramientas:
  • api_vestige_view_networks: Obtener todas las redes
  • api_vestige_view_network_by_id: Obtener la red por id
  • api_vestige_view_protocols: Obtener todos los protocolos
  • api_vestige_view_protocol_by_id: Obtener el protocolo por id
  • api_vestige_view_protocol_volumes: Obtener volúmenes de protocolo en un día específico
  • api_vestige_view_assets: Obtener datos sobre los activos
  • api_vestige_view_assets_list: Obtener la lista de activos
  • api_vestige_view_assets_search: Buscar activos por consulta
  • api_vestige_view_asset_price: Obtener precios de activos
  • api_vestige_view_asset_candles: Obtener velas de activos
  • api_vestige_view_asset_history: Obtenga el volumen de activos, swaps, bloqueo total, vwap e historial de confianza
  • api_vestige_view_asset_composition: Obtener bloqueos de activos según el protocolo y el par
  • api_vestige_view_pools: Obtener grupos
  • api_vestige_view_vaults: Obtener todas las bóvedas
  • api_vestige_view_balances: Obtener saldos por ID de red, ID de protocolo e ID de activo
  • api_vestige_view_notes: Obtener notas por ID de red y, opcionalmente, ID de activo
  • api_vestige_view_first_asset_notes: Obtener la primera nota de los activos
  • api_vestige_view_asset_notes_count: Obtener el recuento de notas de los activos
  • api_vestige_view_swaps: Obtener intercambios
  1. Intercambiar herramientas:
  • api_vestige_get_best_v4_swap_data: Obtener los mejores datos de intercambio de V4
  • api_vestige_get_v4_swap_discount: Obtenga descuento por intercambio de V4
  • api_vestige_get_v4_swap_data_transactions: Obtener transacciones de datos de intercambio V4
  • api_vestige_get_agregator_stats: Obtener estadísticas del agregador
  1. Herramientas de moneda:
  • api_vestige_view_currency_prices: Consulta los precios de divisas más recientes.
  • api_vestige_view_currency_price_history: Obtener precios de divisas por rango de marca de tiempo
  • api_vestige_view_currency_price: Obtener el precio de la moneda por marca de tiempo
  • api_vestige_view_currency_average_price: Obtener el precio promedio de la moneda
  • api_vestige_view_currency_prices_simple_30d: Obtener precios de divisas de los últimos 30 días

Herramientas API de Tinyman

  • api_tinyman_get_pool: Obtener información del pool de Tinyman por par de activos
  • api_tinyman_get_pool_analytics: Obtener análisis para un grupo de Tinyman
  • api_tinyman_get_pool_creation_quote: Obtener cotización para crear un nuevo grupo
  • api_tinyman_get_liquidity_quote: Obtener cotización para agregar liquidez
  • api_tinyman_get_remove_liquidity_quote: Obtener cotización para eliminar liquidez
  • api_tinyman_get_swap_quote: Obtener cotización para intercambiar activos
  • api_tinyman_get_asset_optin_quote: Obtener cotización para optar por el token del pool
  • api_tinyman_get_validator_optin_quote: Obtener cotización para optar por el validador
  • api_tinyman_get_validator_optout_quote: Obtener cotización para optar por no usar el validador

Herramientas API de Ultrade

  1. Herramientas de billetera:
  • api_ultrade_wallet_signin_message: Generar un mensaje a partir de los datos de inicio de sesión
  • api_ultrade_wallet_signin: Iniciar sesión en la cuenta de trading
  • api_ultrade_wallet_add_key: Agregar una clave comercial
  • api_ultrade_wallet_revoke_key: Revocar una clave comercial
  • api_ultrade_wallet_keys: Obtener claves de trading
  • api_ultrade_wallet_key_message: Generar mensaje a partir de los datos de la clave comercial
  • api_ultrade_wallet_trades: Obtener transacciones filtradas de la billetera
  • api_ultrade_wallet_transactions: Obtener transacciones de billetera filtradas
  • api_ultrade_wallet_withdraw: Retirar token
  • api_ultrade_wallet_withdraw_message: Generar mensaje a partir de los datos de retiro
  1. Herramientas de mercado:
  • api_ultrade_market_symbols: Obtener símbolos de mercado
  • api_ultrade_market_details: Obtener detalles del mercado
  • api_ultrade_market_price: Obtener el último precio de mercado por símbolo de par
  • api_ultrade_market_depth: Obtener la profundidad del libro de órdenes
  • api_ultrade_market_last_trades: Obtener las últimas operaciones
  • api_ultrade_market_history: Obtener el historial del mercado
  • api_ultrade_market_assets: Obtener activos comerciales
  • api_ultrade_market_fee_rates: Obtener tarifas
  • api_ultrade_market_chains: Obtener cadenas de blockchain
  • api_ultrade_market_withdrawal_fee: Obtener la comisión de retiro
  • api_ultrade_market_operation_details: Obtener detalles de la operación
  • api_ultrade_market_settings: Obtener la configuración del mercado
  • api_ultrade_market_orders: Obtener pedidos
  • api_ultrade_market_open_orders: Obtener órdenes abiertas
  • api_ultrade_market_order_by_id: Obtener el pedido por ID
  • api_ultrade_market_order_message: Generar mensaje a partir de los datos del pedido
  • api_ultrade_market_create_order: Crear un nuevo pedido
  • api_ultrade_market_create_orders: Crear nuevos pedidos
  • api_ultrade_market_cancel_order: Cancelar orden abierta
  • api_ultrade_market_cancel_orders: Cancelar múltiples órdenes abiertas
  1. Herramientas del sistema:
  • api_ultrade_system_time: Obtener la hora actual del sistema
  • api_ultrade_system_maintenance: Obtener el estado de mantenimiento del sistema
  • api_ultrade_system_version: Obtener la versión del sistema

Herramientas de gestión de cuentas

  • create_account: Crea una nueva cuenta de Algorand
  • rekey_account: Rekey una cuenta a una nueva dirección
  • validate_address: Comprueba si una dirección de Algorand es válida
  • encode_address: codifica una clave pública en una dirección de Algorand
  • decode_address: decodifica una dirección de Algorand a una clave pública

Herramientas de aplicación

  • make_app_create_txn: Crea una transacción de creación de aplicaciones
  • make_app_update_txn: Crea una transacción de actualización de la aplicación
  • make_app_delete_txn: Crea una transacción de eliminación de aplicación
  • make_app_optin_txn: Crea una transacción de suscripción a la aplicación
  • make_app_closeout_txn: Crea una transacción de cierre de aplicación
  • make_app_clear_txn: Crea una transacción de estado claro de la aplicación
  • make_app_call_txn: Crea una transacción de llamada de aplicación
  • get_application_address: obtiene la dirección para un ID de aplicación determinado
  • compile_teal: Compilar el código fuente de TEAL
  • disassemble_teal: Desmonta el bytecode TEAL y lo devuelve al origen

Herramientas de activos

  • make_asset_create_txn: Crea una transacción de creación de activos
  • make_asset_config_txn: Crea una transacción de configuración de activos
  • make_asset_destroy_txn: Crea una transacción de destrucción de activos
  • make_asset_freeze_txn: Crea una transacción de congelación de activos
  • make_asset_transfer_txn: Crea una transacción de transferencia de activos

Herramientas de transacción

  • send_raw_transaction: Envía transacciones firmadas a la red
  • simulator_raw_transactions: Simular transacciones sin procesar
  • simular_transacciones: Simular transacciones con configuración detallada
  • make_payment_txn: Crea una transacción de pago
  • assignment_group_id: Asigna un ID de grupo a una lista de transacciones
  • sign_transaction: Firmar una transacción con una clave secreta

Herramientas de gestión de claves

  • mnemonic_to_mdk: Convierte un mnemónico en una clave de derivación maestra
  • mdk_to_mnemonic: Convierte una clave de derivación maestra en un mnemónico
  • secret_key_to_mnemonic: Convierte una clave secreta en un mnemónico
  • mnemonic_to_secret_key: Convierte un mnemónico en una clave secreta
  • seed_from_mnemonic: Generar una semilla a partir de un mnemónico
  • mnemonic_from_seed: Generar un mnemónico a partir de una semilla
  • sign_bytes: Firma bytes arbitrarios con una clave secreta

Herramientas de utilidad

  • bytes_to_bigint: Convierte bytes a un BigInt
  • bigint_to_bytes: Convierte un BigInt a bytes
  • encode_uint64: Codifica un uint64 en bytes
  • decode_uint64: Decodifica bytes a un uint64
  • generate_algorand_uri: Genera un URI de Algorand y un código QR según la especificación ARC-26

Dependencias

  • algosdk: SDK de JavaScript de Algorand
  • @perawallet/connect: Conector de Pera Wallet
  • @blockshake/defly-connect: Conector de billetera Defly
  • @daffiwallet/connect: Conector de Daffi Wallet

Licencia

Instituto Tecnológico de Massachusetts (MIT)

ID: mdua2aie6d