返回市场
阿尔戈兰德-mcp

阿尔戈兰德-mcp

作者:GoPlausible38 星标更新:2025-09-17

项目介绍

Algorand MCP 实现

<!-- [![smithery badge](https://smithery.ai/badge/@GoPlausible/algorand-mcp)](https://smithery.ai/server/@GoPlausible/algorand-mcp) -->

npm 下载量 npm 版本 License: MIT

概述

模型上下文协议或MCP,是一个开放协议,标准化了应用程序如何向LLMs提供上下文。MCP提供了规范标准,使LLMs能够获得工具、资源和指令,从而更加有用和有效。

截图 2025-03-15 17 47 54

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

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

  • (生产环境)一个用于区块链交互的服务器包(仅支持Node.js)
  • (进行中)一个用于钱包管理和交易签名的客户端包(支持浏览器和Node.js)

📦 本仓库中的包:

📦 NPM:

<!-- **📦 Smithery:** - **[Algorand MCP 服务器在Smithery上](https://smithery.ai/server/@GoPlausible/algorand-mcp)** - 通过Smithery实现的Algorand MCP服务器。 -->

功能

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

要求

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

安装

要安装或更新Algorand MCP实现,请克隆仓库,安装依赖并构建项目:

首先检查Node版本是否为23.6.1或更高版本:

node -v

如需升级到23.6.1或更高版本!

然后检查Claude或Cursor容器文件夹是否有mcp-servers文件夹(如果没有创建一个):

mkdir PATH_ON_YOUR_MACHINE/Claude/mcp-servers
# 或对于Cursor
mkdir PATH_ON_YOUR_MACHINE/Cursor/mcp-servers

然后在mcp-servers文件夹下克隆此仓库并安装依赖:

cd PATH_ON_YOUR_MACHINE/Claude/mcp-servers
# 或对于Cursor
cd PATH_ON_YOUR_MACHINE/Cursor/mcp-servers
# 克隆仓库
git clone https://github.com/GoPlausible/algorand-mcp.git
cd algorand-mcp
# 安装依赖
npm install
# 构建项目
npm run build
# 编辑.env文件以设置您的配置

现在您已完成!现在您可以打开您的MCP配置,并添加服务器如下:

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "node",
      "args": [
        "PATH_ON_YOUR_MACHINE/Claude/mcp-servers/algorand-mcp/packages/server/dist/index.js"
      ],
      "env": {
        "ALGORAND_NETWORK": "testnet",
        "ALGORAND_ALGOD_API": "https://testnet-api.algonode.cloud/v2",
        "ALGORAND_ALGOD": "https://testnet-api.algonode.cloud",
        "ALGORAND_INDEXER_API": "https://testnet-idx.algonode.cloud/v2",
        "ALGORAND_INDEXER": "https://testnet-idx.algonode.cloud",
        "ALGORAND_ALGOD_PORT": "",
        "ALGORAND_INDEXER_PORT": "",
        "ALGORAND_TOKEN": "",
        "ALGORAND_AGENT_WALLET": "problem aim online jaguar upper oil flight stumble mystery aerobic toy avoid file tomato moment exclude witness guard lab opera crunch noodle dune abandon broccoli",
        "NFD_API_URL": "https://api.nf.domains",
        "NFD_API_KEY": "",
        "TINYMAN_ACTIVE": "false",
        "ULTRADE_ACTIVE": "false",
        "VESTIGE_ACTIVE": "false",
        "ULTRADE_API_URL": "https://api.ultrade.io",
        "VESTIGE_API_URL": "https://api.vestigelabs.org",
        "VESTIGE_API_KEY": "",
        "ITEMS_PER_PAGE": "10"
      }
    }
  }
}

确保更改路径以匹配您本地系统的路径。

例如,在MACOS和Claude中,路径可能如下所示:

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "node",
      "args": [
        "/Users/YOUR_USERNAME/Library/Application\ Support/Claude/mcp-servers/algorand-mcp/packages/server/dist/index.js"
      ]
    }
  }
}

项目架构

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

  1. 服务器包 (@algorand-mcp/server)

    • 提供MCP工具和资源
    • 管理区块链交互
    • 处理交易创建和提交
    • 提供全面的区块链查询
  2. 客户端包 (@algorand-mcp/client)

    • 处理钱包连接和交易签名
    • 支持本地和外部钱包
    • 通用兼容性(浏览器/Node.js)
    • 安全凭证管理
    • 还在进行中(服务器与客户端状态无关)

项目结构

algorand-mcp/
├── packages/
│   ├── client/                    # 客户端包
│   │   ├── src/
│   │   │   ├── index.ts          # 客户端入口点和钱包管理
│   │   │   └── LocalWallet.ts    # 本地钱包实现
│   │   ├── package.json
│   │   └── tsconfig.json
│   └── server/                    # 服务器包
│       ├── src/
│       │   ├── resources/         # MCP资源(用户可调用的端点)
│       │   │   ├── knowledge/     # 文档和分类法
│       │   │   │   ├── taxonomy/  # Markdown文档
│       │   │   │   └── index.ts   # 知识资源处理器
│       │   │   ├── wallet/       # 钱包管理
│       │   │   │   └── index.ts   # 钱包资源处理器
│       │   │   └── index.ts       # 资源注册
│       │   ├── tools/            # MCP工具(代理可调用的操作)
│       │   │   ├── accountManager.ts     # 账户操作
│       │   │   ├── algodManager.ts       # 节点交互
│       │   │   ├── utilityManager.ts     # 工具函数
│       │   │   ├── apiManager/       # API工具
│       │   │   │   ├── algod/           # Algod API工具
│       │   │   │   ├── indexer/         # Indexer API工具
│       │   │   │   ├── nfd/            # NFDomains工具
│       │   │   │   ├── vestige/        # Vestige DeFi工具
│       │   │   │   ├── tinyman/        # Tinyman AMM工具
│       │   │   │   └── ultrade/        # Ultrade DEX工具
│       │   │   └── transactionManager/   # 交易处理
│       │   ├── env.ts            # 环境配置
│       │   └── index.ts          # 服务器入口点
│       ├── package.json
│       └── tsconfig.json
├── package.json                   # 根包文件
└── tsconfig.json                 # 根TypeScript配置

核心功能

服务器功能

  • 账户管理
  • 资产操作
  • 应用程序交互
  • 交易创建和提交
  • 区块链状态查询
  • 全面的工具函数
  • 标准化的响应格式
  • 内置分页支持
  • NFDomains集成
  • Vestige DeFi分析(可选,默认禁用)
  • Tinyman AMM集成(可选,默认禁用)
  • Ultrade DEX集成(可选,默认禁用)
  • 知识分类法资源:
    • 完整的文档分类法(algorand://knowledge/taxonomy)
    • 分类特定文档:
      • ARCs(algorand://knowledge/taxonomy/arcs)
      • SDKs(algorand://knowledge/taxonomy/sdks)
      • AlgoKit(algorand://knowledge/taxonomy/algokit)
      • AlgoKit Utils(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": {
    // 响应数据在此处
  },
  "metadata": {  // 仅针对分页响应
    "totalItems": number,
    "itemsPerPage": number,
    "currentPage": number,
    "totalPages": number,
    "hasNextPage": boolean,
    "pageToken": string,
    "arrayField": string  // 分页数组字段名称
  }
}

错误返回标准化格式:

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

可用工具和资源

Algorand MCP实现提供了125个工具和资源用于区块链交互:

  • 40个基础工具(账户、资产、应用程序、交易管理)
  • 30个API工具(algod和索引器)
  • 6个NFDomains(NFD)工具用于域名服务
  • 28个Vestige工具用于DeFi分析
  • 9个Tinyman工具用于AMM交互
  • 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: 获取特定地址的NFDs
  • api_nfd_get_nfd_activity: 获取NFDs的活动/变化
  • api_nfd_get_nfd_analytics: 获取NFDs的分析数据
  • api_nfd_browse_nfds: 使用各种过滤器浏览NFDs
  • api_nfd_search_nfds: 使用各种过滤器搜索NFDs

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: 获取资产成交量、交换量、总锁定量、加权平均价格和信心历史
  • 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_v_este_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: 从提取数据生成消息

2