Algorand MCP 实现
<!-- [](https://smithery.ai/server/@GoPlausible/algorand-mcp) -->

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

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"
]
}
}
}
项目架构
该项目遵循模块化架构,主要包含两个包:
-
服务器包 (@algorand-mcp/server)
- 提供MCP工具和资源
- 管理区块链交互
- 处理交易创建和提交
- 提供全面的区块链查询
-
客户端包 (@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工具
- 查看工具:
- 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池信息
- 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工具
- 钱包工具:
- 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