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.

Algorand MCP 实现

概述

模型上下文协议(MCP)是一种开放协议,它规范了应用程序如何向LLM提供上下文。MCP提供了规范标准,为LLM提供工具、资源和指令,使其更加实用和高效。

MCP Github包含更多信息和不同的工具和规范以及 MCP 的文档。

此代码库是 Algorand 区块链交互的模型上下文协议 (MCP) 实现。该实现包括:

  • (生产)用于区块链交互的服务器包(仅限 Node.js)
  • (WIP)用于钱包管理和交易签名的客户端包(支持浏览器和 Node.js)

📦此存储库中的软件包:

📦NPM:

📦锻造:

特征

  • 完成 Algorand 文档集成
    • 完整的 Algorand 知识分类
    • 全面的开发人员文档
    • ARC、SDK 和工具文档
    • 通过知识工具直接访问文档
  • 完整的 Algorand 区块链交互功能
  • 广泛的钱包管理系统
  • 全面的交易处理
  • 丰富的区块链状态查询
  • 内置安全功能
  • 支持 Claude Desktop 和 Cursor 集成

要求

  • Node.js v23.6.1 或更高版本
  • npm v10.2.4 或更高版本

安装

通过 NPM(适用于希望运行自己的实例的开发人员)

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

通过 Smithery(适用于所有用户)

通过 Smithery(适用于 Claude Desktop)

只需在终端中运行此命令:

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\":\"\"}"

通过 Smithery(用于光标)

只需在终端中运行此命令:

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\":\"\"}"

**重要提示:**使用 Smithery UI 复制命令时,请确保在单击连接之前设置 ITEMS_PER_PAGE,以便将所有 ENV 变量带入命令,否则您的命令将不包含 Algorand MCP 运行所需的环境变量!

项目架构

该项目采用模块化架构,包含两个主要包:

  1. 服务器包( @algorand-mcp/server
    • 提供 MCP 工具和资源
    • 管理区块链交互
    • 处理交易创建和提交
    • 提供全面的区块链查询
  2. 客户端包( @algorand-mcp/client
    • 处理钱包连接和交易签名
    • 支持本地和外部钱包
    • 通用兼容性(浏览器/Node.js)
    • 安全凭证管理
    • 仍在进行中(服务器工作与客户端状态无关)

项目结构

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

核心功能

服务器功能

  • 帐户管理
  • 资产运营
  • 应用程序交互
  • 交易创建和提交
  • 区块链状态查询
  • 全面的实用功能
  • 标准化响应格式
  • 内置分页支持
  • NFDomains 集成
  • Vestige DeFi 分析
  • Tinyman AMM 集成
  • Ultrade DEX 集成
  • 知识分类资源:
    • 完整文档分类法 (algorand://knowledge/taxonomy)
    • 特定类别的文档:
      • ARC(algorand://knowledge/taxonomy/arcs)
      • SDK(algorand://knowledge/taxonomy/sdks)
      • AlgoKit(algorand://knowledge/taxonomy/algokit)
      • AlgoKit 实用程序 (algorand://knowledge/taxonomy/algokit-utils)
      • TEALScript (algorand://knowledge/taxonomy/tealscript)
      • Puya (algorand://knowledge/taxonomy/puya)
      • Liquid Auth(algorand://knowledge/taxonomy/liquid-auth)
      • Python(algorand://knowledge/taxonomy/python)
      • 开发者文档 (algorand://knowledge/taxonomy/developers)
      • CLI 工具 (algorand://knowledge/taxonomy/clis)
      • 节点管理(algorand://knowledge/taxonomy/nodes)
      • 技术细节(algorand://knowledge/taxonomy/details)

客户端功能(正在进行中)

  • 具有安全存储的本地钱包
  • 外部钱包支持(Pera、Defly、Daffi)
  • 交易签名
  • 会话管理
  • 通用 ES 模块支持

响应格式

所有回复均遵循标准化格式:

{ "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 } }

错误以标准格式返回:

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

可用的工具和资源

Algorand MCP 实现为区块链交互提供了 125 种工具和资源:

  • 40个基础工具(账户、资产、应用程序、交易管理)
  • 30 个 API 工具(算法和索引器)
  • 6 个用于名称服务的 NFDomains (NFD) 工具
  • 28 个用于 DeFi 分析的 Vestige 工具
  • 9 个用于 AMM 交互的 Tinyman 工具
  • 12 个 Ultrade 工具,用于 DEX 功能

API 工具

Algod API 工具

  • api_algod_get_account_info:获取当前账户余额、资产、授权地址
  • api_algod_get_account_application_info:获取账户特定应用信息
  • api_algod_get_account_asset_info:获取账户特定资产信息
  • api_algod_get_application_by_id:获取应用信息
  • api_algod_get_application_box:根据名称获取应用框
  • api_algod_get_application_boxes:获取所有应用框
  • api_algod_get_asset_by_id:获取当前资产信息
  • api_algod_get_pending_transaction:获取待处理交易信息
  • api_algod_get_pending_transactions_by_address:获取某个地址的待处理交易
  • api_algod_get_pending_transactions:获取所有待处理的交易
  • api_algod_get_transaction_params:获取建议的交易参数
  • api_algod_get_node_status:获取当前节点状态
  • api_algod_get_node_status_after_block:获取特定轮次后的节点状态

索引器 API 工具

  • api_indexer_lookup_account_by_id:获取账户信息
  • api_indexer_lookup_account_assets:获取账户资产
  • api_indexer_lookup_account_app_local_states:获取账户应用程序本地状态
  • api_indexer_lookup_account_created_applications:获取账户创建的应用程序
  • api_indexer_search_for_accounts:根据不同条件搜索账户
  • api_indexer_lookup_applications:获取应用程序信息
  • api_indexer_lookup_application_logs:获取应用程序日志消息
  • api_indexer_search_for_applications:搜索应用程序
  • api_indexer_lookup_asset_by_id:获取资产信息和配置
  • api_indexer_lookup_asset_balances:获取持有此资产的账户
  • api_indexer_lookup_asset_transactions:获取涉及此资产的交易
  • api_indexer_search_for_assets:搜索资产
  • api_indexer_lookup_transaction_by_id:获取交易信息
  • api_indexer_lookup_account_transactions:获取账户交易历史记录
  • api_indexer_search_for_transactions:搜索交易

NFDomains(NFD)API工具

  • api_nfd_get_nfd:通过名称或应用程序ID获取NFD
  • api_nfd_get_nfds_for_addresses:获取特定地址的 NFD
  • api_nfd_get_nfd_activity:获取 NFD 的活动/更改
  • api_nfd_get_nfd_analytics:获取 NFD 的分析数据
  • api_nfd_browse_nfds:使用各种过滤器浏览 NFD
  • api_nfd_search_nfds:使用各种过滤器搜索 NFD

Vestige API 工具

  1. 查看工具:
  • api_vestige_view_networks:获取所有网络
  • api_vestige_view_network_by_id:通过 id 获取网络
  • api_vestige_view_protocols:获取所有协议
  • api_vestige_view_protocol_by_id:通过 id 获取协议
  • api_vestige_view_protocol_volumes:获取特定日期的协议卷
  • api_vestige_view_assets:获取有关资产的数据
  • api_vestige_view_assets_list:获取资产列表
  • api_vestige_view_assets_search:通过查询搜索资产
  • api_vestige_view_asset_price:获取资产价格
  • api_vestige_view_asset_candles:获取资产蜡烛图
  • api_vestige_view_asset_history:获取资产交易量、掉期、总锁定量、交易量加权平均价格 (VWAP) 和置信度历史记录
  • api_vestige_view_asset_composition:根据协议和交易对获取资产锁定
  • api_vestige_view_pools:获取池
  • api_vestige_view_vaults:获取所有保险库
  • api_vestige_view_balances:通过网络 ID、协议 ID 和资产 ID 获取余额
  • api_vestige_view_notes:通过网络 ID 和可选资产 ID 获取注释
  • api_vestige_view_first_asset_notes:获取资产的第一条注释
  • api_vestige_view_asset_notes_count:获取资产的注释数量
  • api_vestige_view_swaps:获取掉期
  1. 交换工具:
  • api_vestige_get_best_v4_swap_data:获取最佳 V4 交换数据
  • api_vestige_get_v4_swap_discount:获取 V4 交换折扣
  • api_vestige_get_v4_swap_data_transactions:获取 V4 交换数据交易
  • api_vestige_get_aggregator_stats:获取聚合器统计数据
  1. 货币工具:
  • api_vestige_view_currency_prices:获取所有最新货币价格
  • api_vestige_view_currency_price_history:按时间戳范围获取货币价格
  • api_vestige_view_currency_price:按时间戳获取货币价格
  • api_vestige_view_currency_average_price:获取货币的平均价格
  • api_vestige_view_currency_prices_simple_30d:获取过去 30 天的货币价格

Tinyman API 工具

  • api_tinyman_get_pool:按资产对获取 Tinyman 池信息
  • api_tinyman_get_pool_analytics:获取 Tinyman 池的分析数据
  • api_tinyman_get_pool_creation_quote:获取创建新池的报价
  • api_tinyman_get_liquidity_quote:获取增加流动性的报价
  • api_tinyman_get_remove_liquidity_quote:获取移除流动性的报价
  • api_tinyman_get_swap_quote:获取资产交换报价
  • api_tinyman_get_asset_optin_quote:获取选择加入池代币的报价
  • api_tinyman_get_validator_optin_quote:获取选择加入验证器的报价
  • api_tinyman_get_validator_optout_quote:获取退出验证器的报价

Ultrade API 工具

  1. 钱包工具:
  • api_ultrade_wallet_signin_message:根据登录数据生成消息
  • api_ultrade_wallet_signin:登录交易账户
  • api_ultrade_wallet_add_key:添加交易密钥
  • api_ultrade_wallet_revoke_key:撤销交易密钥
  • api_ultrade_wallet_keys:获取交易密钥
  • api_ultrade_wallet_key_message:从交易密钥数据生成消息
  • api_ultrade_wallet_trades:获取已过滤的钱包交易
  • api_ultrade_wallet_transactions:获取过滤的钱包交易
  • api_ultrade_wallet_withdraw:提取代币
  • api_ultrade_wallet_withdraw_message:从提现数据生成消息
  1. 市场工具:
  • api_ultrade_market_symbols:获取市场符号
  • api_ultrade_market_details:获取市场详情
  • api_ultrade_market_price:获取货币对的最新市场价格
  • api_ultrade_market_depth:获取订单簿深度
  • api_ultrade_market_last_trades:获取最后交易
  • api_ultrade_market_history:获取市场历史记录
  • api_ultrade_market_assets:获取交易资产
  • api_ultrade_market_fee_rates:获取费率
  • api_ultrade_market_chains:获取区块链
  • api_ultrade_market_withdrawal_fee:获取提现手续费
  • api_ultrade_market_operation_details:获取操作详情
  • api_ultrade_market_settings:获取市场设置
  • api_ultrade_market_orders:获取订单
  • api_ultrade_market_open_orders:获取未结订单
  • api_ultrade_market_order_by_id:通过ID获取订单
  • api_ultrade_market_order_message:从订单数据生成消息
  • api_ultrade_market_create_order:创建新订单
  • api_ultrade_market_create_orders:创建新订单
  • api_ultrade_market_cancel_order:取消未结订单
  • api_ultrade_market_cancel_orders:取消多个未结订单
  1. 系统工具:
  • api_ultrade_system_time:获取当前系统时间
  • api_ultrade_system_maintenance:获取系统维护状态
  • api_ultrade_system_version:获取系统版本

账户管理工具

  • create_account:创建一个新的 Algorand 帐户
  • rekey_account:将帐户重新密钥到新地址
  • 验证地址:检查 Algorand 地址是否有效
  • encode_address:将公钥编码为 Algorand 地址
  • 解码地址:将 Algorand 地址解码为公钥

应用工具

  • make_app_create_txn:创建应用程序创建交易
  • make_app_update_txn:创建应用程序更新交易
  • make_app_delete_txn:创建应用程序删除事务
  • make_app_optin_txn:创建应用程序选择加入交易
  • make_app_closeout_txn:创建应用程序关闭交易
  • make_app_clear_txn:创建应用程序清除状态交易
  • make_app_call_txn:创建应用程序调用交易
  • get_application_address:获取给定应用程序 ID 的地址
  • compile_teal:编译 TEAL 源代码
  • disassemble_teal:将 TEAL 字节码反汇编回源代码

资产工具

  • make_asset_create_txn:创建资产创建交易
  • make_asset_config_txn:创建资产配置交易
  • make_asset_destroy_txn:创建资产销毁交易
  • make_asset_freeze_txn:创建资产冻结交易
  • make_asset_transfer_txn:创建资产转移交易

交易工具

  • send_raw_transaction:向网络提交已签名的交易
  • 模拟原始交易
  • 模拟交易:详细配置模拟交易
  • make_payment_txn:创建支付交易
  • 分配组ID给交易列表
  • sign_transaction:使用密钥签署交易

密钥管理工具

  • mnemonic_to_mdk:将助记符转换为主派生密钥
  • mdk_to_mnemonic:将主派生密钥转换为助记符
  • secret_key_to_mnemonic:将密钥转换为助记符
  • mnemonic_to_secret_key:将助记符转换为密钥
  • seed_from_mnemonic:从助记符生成种子
  • mnemonic_from_seed:从种子生成助记符
  • sign_bytes:使用密钥对任意字节进行签名

实用工具

  • bytes_to_bigint:将字节转换为 BigInt
  • bigint_to_bytes:将 BigInt 转换为字节
  • encode_uint64:将 uint64 编码为字节
  • decoder_uint64:将字节解码为uint64
  • generate_algorand_uri:根据 ARC-26 规范生成 Algorand URI 和二维码

依赖项

  • algosdk:Algorand JavaScript SDK
  • @perawallet/connect:Pera Wallet 连接器
  • @blockshake/defly-connect:Defly 钱包连接器
  • @daffiwallet/connect:Daffi 钱包连接器

执照

麻省理工学院

ID: mdua2aie6d