
Algorand MCP 服务器
概述
Algorand MCP 服务器提供了一整套工具和资源,用于通过模型上下文协议(MCP)与 Algorand 区块链进行交互。它仅在 Node.js 环境中运行,支持账户管理、资产操作、应用程序交互和区块链查询等功能。
要求
- Node.js v23.6.1 或更高版本
- npm v10.2.4 或更高版本
功能
- 总共 125 个工具:
- 40 个基础工具(账户、资产、应用程序、交易管理)
- 30 个 API 工具(algod 和索引器)
- 6 个 NFDomains(NFD)工具用于命名服务
- 28 个 Vestige 工具用于 DeFi 分析
- 9 个 Tinyman 工具用于 AMM 交互
- 12 个 Ultrade 工具用于 DEX 功能
- 30 个数据访问资源端点
- 内置默认配置以快速设置
- 完整的交易管理
- 完整的应用程序生命周期支持
- 资产创建和管理
- 实时和历史数据访问
- NFDomains 集成用于命名解析和管理
- Vestige 集成用于 DeFi 分析和跟踪(可选,默认禁用)
- Tinyman AMM 集成用于去中心化交易(可选,默认禁用)
- Ultrade DEX 集成用于交易和市场操作(可选,默认禁用)
项目结构
src/
├── resources/ # MCP 资源(用户可调用的端点)
│ ├── knowledge/ # 文档和分类法
│ │ ├── taxonomy/ # Markdown 文档
│ │ ├── taxonomy-categories/ # 分类 JSON 定义
│ │ └── index.ts # 知识资源处理器
│ ├── wallet/ # 钱包管理
│ │ └── index.ts # 钱包资源处理器
│ └── index.ts # 资源注册
├── tools/ # MCP 工具(代理可调用的操作)
│ ├── accountManager.ts # 账户操作
│ ├── algodManager.ts # 节点交互
│ ├── utilityManager.ts # 辅助函数
│ ├── apiManager/ # API 工具(代理可访问的资源数据)
│ │ ├── algod/ # Algod API 工具
│ │ ├── indexer/ # 索引器 API 工具
│ │ ├── nfd/ # NFDomains 工具
│ │ ├── vestige/ # Vestige DeFi 工具
│ │ ├── tinyman/ # Tinyman AMM 工具
│ │ └── ultrade/ # Ultrade DEX 工具
│ └── transactionManager/ # 交易处理
└── index.ts # 服务器入口点
MCP 组件
资源
用户可调用的端点,提供对数据和服务的直接访问:
- 知识资源:
- algorand://knowledge/taxonomy - 全部文档分类法
- algorand://knowledge/taxonomy/{category} - 特定分类的文档
知识工具:
- get_knowledge_doc - 获取指定知识文档的 Markdown 内容
- 参数:
{ documents: string[] }(例如,["ARCs:specs:arc-0020.md"])
- 返回值:Markdown 格式的文档内容
- 钱包资源:
- algorand://wallet/account - 账户信息和余额
- algorand://wallet/assets - 账户持有的资产及其详情
API 工具
代理可调用的工具,提供对各种 Algorand 生态系统 API 的直接访问。这些工具设计用于由代理 LLM 使用来与以下内容交互:
- Algorand 节点(algod)API 用于实时区块链数据
- 索引器 API 用于历史区块链数据
- NFDomains API 用于命名服务
- Vestige API 用于 DeFi 分析
- Tinyman API 用于 AMM 操作
- Ultrade API 用于 DEX 功能
每个 API 工具都遵循一致的命名约定,以 api_ 前缀开头,以便于清晰和更好的用户体验。
安装
要安装或更新 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",
"ULTRADE_API_URL": "https://api.ultrade.io",
"VESTIGE_ACTIVE": "false",
"VESTIGE_API_URL": "https://api.vestigelabs.org",
"VESTIGE_API_KEY": "",
"ITEMS_PER_PAGE": "10"
}
}
}
}
确保您更改路径以匹配您本地系统的路径。
例如,在 MACOS 和 Claud 上,路径可能如下所示:
{
"mcpServers": {
"algorand-mcp": {
"command": "node",
"args": [
" /Users/YOUR_USERNAME/Library/Application\ Support/Claude/mcp-servers/algorand-mcp/packages/server/dist/index.js"
]
}
}
}
可用工具
知识资源
静态 URI 用于访问 Algorand 的全面文档:
- algorand://knowledge/taxonomy - 全部文档分类法
- algorand://knowledge/taxonomy/arcs - ARCs 文档
- algorand://knowledge/taxonomy/sdks - SDKs 文档
- algorand://knowledge/taxonomy/algokit - AlgoKit 文档
- algorand://knowledge/taxonomy/algokit-utils - AlgoKit Utils 文档
- algorand://knowledge/taxonomy/tealscript - TEALScript 文档
- algorand://knowledge/taxonomy/puya - Puya 文档
- algorand://knowledge/taxonomy/liquid-auth - Liquid Auth 文档
- algorand://knowledge/taxonomy/python - Python 开发资源
- algorand://knowledge/taxonomy/developers - 开发者文档
- algorand://knowledge/taxonomy/clis - CLI 工具文档
- algorand://knowledge/taxonomy/nodes - 节点管理文档
- algorand://knowledge/taxonomy/details - 技术细节文档
每个资源提供对其相应文档类别的直接访问,格式为 Markdown。
API 工具
API 工具设计用于由代理 LLM 执行各种操作,并且可以轻松地被 LLM 代理调用。它们根据其功能分为不同的部分。
Algod API 工具
- api_algod_get_account_info: 从 algod 获取当前账户余额、资产和授权地址
- api_algod_get_account_application_info: 从 algod 获取特定账户的应用程序信息
- api_algod_get_account_asset_info: 从 algod 获取特定账户的资产信息
- api_algod_get_application_by_id: 获取应用程序信息
- api_algod_get_application_box: 通过名称获取应用程序箱
- api_algod_get_application_boxes: 获取所有应用程序箱
- api_algod_get_asset_by_id: 从 algod 获取当前资产信息
- 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_transactions: 获取账户交易历史
- api_indexer_lookup_account_assets: 获取账户资产
- api_indexer_lookup_account_app_local_states: 获取账户应用程序本地状态
- api_indexer_lookup_account_created_applications: 获取该账户创建的应用程序
- api_indexer_lookup_applications: 从索引器获取应用程序信息
- api_indexer_lookup_application_logs: 获取应用程序日志消息
- api_indexer_lookup_application_box: 通过名称获取应用程序箱
- api_indexer_lookup_application_boxes: 获取所有应用程序箱
- api_indexer_lookup_asset_by_id: 获取资产信息和配置
- api_indexer_lookup_asset_balances: 获取持有该资产的账户及其余额
- api_indexer_lookup_asset_transactions: 获取涉及该资产的交易
- api_indexer_lookup_transaction_by_id: 通过 ID 获取交易信息
- api_indexer_search_accounts: 使用各种标准搜索账户
- api_indexer_search_for_applications: 使用各种标准搜索应用程序
- api_indexer_search_for_assets: 使用各种标准搜索资产
- 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 工具
- 查看工具:
- 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: 获取交换
- 交换工具:
- 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: 获取聚合器统计信息
- 货币工具:
- 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 池信息
- 参数:asset1Id, asset2Id, version (v1_1 或 v2)
- 返回值:池状态、验证器应用 ID、资产和储备
-
api_tinyman_get_pool_analytics: 获取 Tinyman 池的分析
- 参数:asset1Id, asset2Id, version
- 返回值:池状态、空闲检查、配对比率和储备
-
api_tinyman_get_pool_creation_quote: 获取创建新池的报价
- 参数:asset1Id, asset2Id, initiatorAddr, version
- 返回值:交易计数和估计费用
-
api_tinyman_get_liquidity_quote: 获取添加流动性的报价
- 参数:asset1Id, asset2Id, asset1Amount, asset2Amount, mode (initial/flexible/singleAsset), version
- 返回值:带有预期池代币的流动性报价
-
api_tinyman_get_remove_liquidity_quote: 获取移除流动性的报价
- 参数:asset1Id, asset2Id, poolTokenAmount, initiatorAddr, slippage, singleAssetMode, version
- 返回值:带有预期资产金额的移除流动性报价
-
api_tinyman_get_swap_quote: 获取交换资产的报价
- 参数:assetIn, assetOut, amount, mode (fixedInput/fixedOutput), version
- 返回值:带有预期输出/输入金额的交换报价
-
api_tinyman_get_asset_optin_quote: 获取加入池代币的报价
- 参数:assetId, initiatorAddr
- 返回值:交易计数和估计费用
-
api_tinyman_get_validator_optin_quote: 获取加入验证器的报价
- 参数:initiatorAddr, version
- 返回值:交易计数和估计费用
-
api_tinyman_get_validator_optout_quote: 获取退出验证器的报价
- 参数:initiatorAddr, version
- 返回值:交易计数和估计费用
Ultrade API 工具
- 钱包工具:
-
api_ultrade_wallet_signin_message: 从登录数据生成消息
- 参数:data (address, technology), customMessage (可选)
- 返回值:需要签名的消息
-
api_ultrade_wallet_signin: 登录交易账户
- 参数:message, signature, data (address, technology), referralToken (可选)
- 返回值:会话令牌
-
api_ultrade_wallet_add_key: 添加交易密钥
- 参数:message, signature, walletAddress, walletToken
- 返回值:交易密钥详情
-
api_ultrade_wallet_revoke_key: 撤销交易密钥
- 参数:message, signature, walletAddress, walletToken
- 返回值:操作状态
-
api_ultrade_wallet_keys: 获取交易密钥
- 参数:walletAddress, walletToken
- 返回值:交易密钥列表
-
api_ultrade_wallet_key_message: 从交易密钥数据生成消息
- 参数:tkAddress, loginAddress, loginChainId, expiredDate (可选), addKey, type
- 返回值:需要签名的消息
-
api_ultrade_wallet_trades: 获取筛选过的钱包交易
- 参数:walletAddress, walletToken (可选), tradingKey (可选)
- 返回值:交易列表
-
api_ultrade_wallet_transactions: 获取筛选过的钱包交易
- 参数:walletAddress, walletToken (可选), tradingKey (可选)
- 返回值:交易列表
-
api_ultrade_wallet_withdraw: 提取代币