Token导航 LogoToken导航TokenDH.com
Algorand MCP logo
金融服务未说明官方级别未说明来源级核验

Algorand MCP

MCP Server

Algorand MCP Server是一个为AI代理和LLM提供完整Algorand区块链访问功能的MCP协议服务器,支持钱包管理、交易构建和多种区块链操作。

工具数

114

提示词数

0

GitHub Stars

45

资源数

0
区块链TypeScriptClaude钱包管理Claude DesktopClaudeCursorWindsurfCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

GoPlausible

提供方

GoPlausible

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Algorand MCP服务器

](https://www.npmjs.com/package/@goplausible/algorand-mcp) ](https://www.npmjs.com/package/@goplausible/algorand-mcp) ![License: MIT](https://opensource.org/licenses/MIT)

全面 模型上下文协议(MCP) 服务器,使AI代理和LLM能够完全访问Algorand区块链。建造于 很可能.

Algorand是一个碳负、纯权益证明的第1层区块链,具有即时终结性、低费用,并内置了对智能合约(AVM)、标准资产(ASA)和原子交易的支持。

什么是MCP?

模型上下文协议 是一个开放标准,允许人工智能应用程序连接到外部工具和数据源。该服务器将Algorand区块链操作作为MCP工具公开,任何兼容的AI客户端都可以使用这些工具——Claude Desktop、Claude Code、Cursor、Windsurf等。

特性

  • 通过操作系统钥匙链进行安全的钱包管理——私钥永远不会暴露给代理或LLM
  • 钱包账户昵称、津贴和每日限额,用于安全支出控制
  • 帐户创建、密钥管理和密钥更新
  • 交易构建、签署和提交(支付、资产、应用程序、密钥注册)
  • 原子事务组
  • TEAL编译和拆卸
  • 完整的Algod和Indexer API访问
  • NFDomains(NFD)名称服务集成
  • Algorand的x402和AP2插件
  • Tinyman AMM集成(池、掉期、流动性)
  • Haystack Router DEX聚合(Tinyman、Pact、Folks之间的最佳价格互换)
  • Alpha Arcade预测市场交易(浏览市场、订单簿、限价/市价单、头寸、索赔)
  • ARC-26 URI和二维码生成
  • Algorand知识库,具有完整的开发人员文档分类
  • 按工具调用网络选择(主网、测试网、本地网)和分页

需求

  • Node.js v20或更高版本
  • npm、pnpm或yarn

安装

来自npm

npm install -g @goplausible/algorand-mcp

来源

git clone https://github.com/GoPlausible/algorand-mcp.git
cd algorand-mcp
npm install
npm run build

MCP配置

服务器运行超时 标准。有三种方法可以调用它——选择适合您设置的方法:

方法命令何时使用
npx (推荐)npx @goplausible/algorand-mcp无需安装,始终为最新版本
全局安装algorand-mcp之后 npm install -g @goplausible/algorand-mcp
绝对路径node /path/to/dist/index.js从源代码或本地克隆构建

不需要环境变量 用于标准使用。每次工具调用都会动态处理网络选择、分页和节点URL。

______________________________________________________________________

龙虾

无需手动配置--安装 @goplausible/openclaw-algorand-plugin npm包和Algorand MCP服务器自动配置:

npm install -g @goplausible/openclaw-algorand-plugin

______________________________________________________________________

克劳德桌面版

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

使用npx:

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "npx",
      "args": ["@goplausible/algorand-mcp"]
    }
  }
}

使用全局安装:

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "algorand-mcp"
    }
  }
}

使用绝对路径:

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/algorand-mcp/dist/index.js"]
    }
  }
}

______________________________________________________________________

克劳德代码

创建 .mcp.json 在项目根目录(项目范围)中,或 ~/.claude.json (用户范围):

{
  "mcpServers": {
    "algorand-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["@goplausible/algorand-mcp"]
    }
  }
}

或者以交互方式添加:

claude mcp add algorand-mcp -- npx @goplausible/algorand-mcp

______________________________________________________________________

光标

通过添加 设置>MCP服务器,或编辑 .cursor/mcp.json 在项目根目录中:

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "npx",
      "args": ["@goplausible/algorand-mcp"]
    }
  }
}

______________________________________________________________________

帆板运动

通过添加 设置>MCP,或编辑 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "npx",
      "args": ["@goplausible/algorand-mcp"]
    }
  }
}

______________________________________________________________________

VS代码/GitHub副本

编辑 .vscode/mcp.json 在您的工作区根目录中,或打开 设置>MCP服务器:

{
  "servers": {
    "algorand-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["@goplausible/algorand-mcp"]
    }
  }
}

______________________________________________________________________

克莱恩

通过添加 MCP服务器 Cline侧边栏中的面板,或编辑 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json (macOS):

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "npx",
      "args": ["@goplausible/algorand-mcp"],
      "disabled": false
    }
  }
}

______________________________________________________________________

OpenAI Codex命令行界面

创建 .codex/mcp.json 在您的项目根目录中或 ~/.codex/mcp.json 对于全球范围:

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "npx",
      "args": ["@goplausible/algorand-mcp"]
    }
  }
}

______________________________________________________________________

打开代码

编辑 ~/.config/opencode/config.json:

{
  "mcp": {
    "algorand-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["@goplausible/algorand-mcp"]
    }
  }
}

______________________________________________________________________

任何兼容MCP的客户端

服务器使用标准MCP stdio协议。对于上面未列出的任何客户端,请使用以下配置:

  • 命令: npx (或 algorand-mcp 如果全局安装,或 node /path/to/dist/index.js)
  • Args: ["@goplausible/algorand-mcp"] (适用于npx)
  • 运输: stdio

网络选择

每个工具都接受一个可选 network 参数: "mainnet" (默认), "testnet",或 "localnet"。Algod和Indexer URL是通过以下方式为主网和测试网内置的 .

示例工具调用:

{ "name": "api_algod_get_account_info", "arguments": { "address": "ABC...", "network": "testnet" } }

如果不 network 提供,工具默认为 主网.

分页

API响应自动分页。每个工具都接受一个可选 itemsPerPage 参数(默认值:10)。通过 pageToken 从之前的响应中提取下一页。

安全钱包

建筑

钱包系统有两层存储,每层都有不同的安全作用:

它存储什么在哪里加密
OS钥匙扣助记词(密钥)macOS Keychain/Linux libsecret/Windows凭据管理器操作系统管理,硬件支持(如果可用)
嵌入式SQLite账户元数据(昵称、津贴、支出跟踪)~/.algorand-mcp/wallet.db明文(无秘密)

私钥材料从未出现在工具响应、MCP配置文件、环境变量或日志中。 代理只看到地址、公钥和已签名的事务blob。

运作原理

  Agent (LLM)                    MCP Server                     Storage
  ──────────                     ──────────                     ───────
       │                              │                              │
       │  wallet_add_account          │                              │
       │  { nickname: "main" }        │                              │
       │ ──────────────────────────►  │  generate keypair            │
       │                              │  store mnemonic ──────────►  │  OS Keychain (encrypted)
       │                              │  store metadata ──────────►  │  SQLite (nickname, limits)
       │  ◄─ { address, publicKey }   │                              │
       │                              │                              │
       │  wallet_sign_transaction     │                              │
       │  { transaction: {...} }      │                              │
       │ ──────────────────────────►  │  check spending limits       │
       │                              │  retrieve mnemonic ◄──────  │  OS Keychain
       │                              │  sign in memory              │
       │  ◄─ { txID, blob }          │  (key discarded)             │
       │                              │                              │
  1. 帐户创建 (wallet_add_account)--生成一个密钥对,将助记符存储在操作系统密钥链中,并将元数据(昵称、支出限制)存储在SQLite中。退货 地址和公钥。
  2. 活动帐户 --一次只有一个帐户处于活动状态。 wallet_switch_account 通过昵称或索引进行更改。所有签名和查询工具都在活动帐户上运行。
  3. 交易签名 (wallet_sign_transaction)--检查每笔交易和每日支出限制,从密钥链中检索密钥,在内存中签名,丢弃密钥。仅返回已签名的blob。
  4. 数据签名 (wallet_sign_data)--使用原始Ed25519通过以下方式对任意十六进制数据进行签名 @noble/curves 库(无Algorand SDK前缀)。可用于链下身份验证。
  5. 资产选择加入 (wallet_optin_asset)--一步创建、签署和提交活动帐户的选择加入交易。

支出限额

每个帐户都有两个可配置的限制(在microAlgos中,0=无限制):

  • allowance --每笔交易的最大金额。拒绝任何超过此值的交易。
  • dailyAllowance --所有交易中每个日历日的最大总支出。午夜自动重置。在SQLite中跟踪。

平台钥匙链支持

钥匙链后端由提供 @napi-rs/keyring (基于Rust的预构建二进制文件):

平台后端
macOS钥匙链服务(系统钥匙链应用程序)
Linuxlibsecret(GNOME密钥环)或KWallet
WindowsWindows凭据管理器

所有凭据都存储在服务名称下 algorand-mcp。您可以使用操作系统钥匙链应用程序(例如macOS上的钥匙链访问)检查它们。

可选环境变量

只有特殊设置才需要环境变量。通过 env MCP配置中的块。

变量描述默认值需要时
ALGORAND_TOKEN用于私有/已验证节点的API令牌""连接到私有Algod/Indexer节点
ALGORAND_LOCALNET_URL本地网基本URL""使用 network: "localnet" (例如。 http://localhost:4001)
ALPHA_API_KEYAlpha Arcade API密钥""访问奖励市场数据

示例:本地网(AlgoKit)

{
  "mcpServers": {
    "algorand-mcp": {
      "command": "node",
      "args": ["/path/to/algorand-mcp/dist/index.js"],
      "env": {
        "ALGORAND_LOCALNET_URL": "http://localhost:4001",
        "ALGORAND_TOKEN": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
      }
    }
  }
}

然后使用 "network": "localnet" 在您的工具调用中。

可用工具

钱包工具(10个工具)

安全钱包 了解完整的架构细节。

工具说明
wallet_add_account创建一个带有昵称和支出限制的新Algorand帐户(仅返回地址+公钥)
wallet_remove_account通过昵称或索引从钱包中删除帐户
wallet_list_accounts列出所有带有昵称、地址和限制的帐户
wallet_switch_account按昵称或索引切换活动帐户
wallet_get_info获取信息 此MCP服务器拥有的活动帐户 (钥匙链支持):地址、公钥、余额、已选择计数,加上仅钱包字段(津贴、每日津贴、每日支出)。用于任意链上帐户 api_algod_get_account_info.
wallet_get_assets获取ASA持有的所有资产 此MCP服务器拥有的活动帐户.对于任意链上帐户使用 api_algod_get_account_infoapi_algod_get_account_asset_info.
wallet_sign_transaction使用活动账户签署单笔交易(强制执行支出限制)
wallet_sign_transaction_group使用活动帐户对一组交易进行签名(自动分配组ID)
wallet_sign_data使用原始Ed25519(贵族,无SDK前缀)对任意十六进制数据进行签名
wallet_optin_asset将活动帐户选择为资产(创建、签名和提交)

账户管理(8个工具)

工具说明
create_account创建一个新的Algorand帐户(返回地址+明文助记符)
rekey_account将帐户重新键入新地址
mnemonic_to_mdk将助记符转换为主派生密钥
mdk_to_mnemonic将主派生密钥转换为助记符
secret_key_to_mnemonic将密钥转换为助记符
mnemonic_to_secret_key将助记符转换为密钥
seed_from_mnemonic从助记符生成种子
mnemonic_from_seed从种子生成助记符

实用工具(13个工具)

工具说明
ping服务器连接检查和信息
validate_address检查Algorand地址是否有效
encode_address将公钥编码为Algorand地址
decode_address将Algorand地址解码为公钥
get_application_address获取给定应用程序ID的地址
bytes_to_bigint将字节转换为BigInt
bigint_to_bytes将BigInt转换为字节
encode_uint64将uint64编码为字节
decode_uint64将字节解码为uint64
verify_bytes根据字节验证签名
sign_bytes用密钥对字节进行签名
encode_obj将对象编码为msgpack
decode_obj将msgpack解码为对象

交易工具(18个工具)

工具说明
make_payment_txn创建付款交易
make_keyreg_txn创建密钥注册事务
make_asset_create_txn创建资产创建交易
make_asset_config_txn创建资产配置事务
make_asset_destroy_txn创建资产销毁交易
make_asset_freeze_txn创建资产冻结交易
make_asset_transfer_txn创建资产转移交易
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创建应用程序调用事务
assign_group_id为原子事务分配组ID
sign_transaction使用密钥签署交易
encode_unsigned_transaction将未签名的事务编码为base64 msgpack字节
decode_signed_transaction将已签名的事务blob解码回带有签名详细信息的JSON

算法工具(5个工具)

工具说明
compile_teal编译TEAL源代码
disassemble_teal将TEAL字节码反汇编到源代码
send_raw_transaction将已签名的交易提交到网络
simulate_raw_transactions模拟已编码的事务(base64字节)。仅通过/失败+记录/成本——无跟踪,无额外预算。
simulate_transactions使用完整的模拟解码事务组 SimulateRequest config(跟踪、额外的操作码预算、未命名的资源处理、未签名的txns)。

Algod API工具(13个工具)

实时、当前状态读取Algod节点。 帐户/应用程序/资产查找的默认选择 --有意禁用匹配的索引器端点以保持刀具表面倾斜(请参见 .notes/redunda-tools-report.md).仅当您需要algod无法提供的历史查询或筛选查询时,才使用下面的索引器系列。

工具说明
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工具(10个工具)

对Algorand Indexer实例的历史/过滤查询。将这些用于时间范围扫描、分页搜索、日志检索和创建者/持有者发现——任何algod当前状态端点都无法回答的问题。

故意禁用了七个重复算法等效项的索引器端点(逐个id的帐户、帐户资产、帐户应用程序本地状态、逐个id的应用程序、应用程序框、应用程序盒、逐个id资产)。他们在现场发表了评论 src/tools/apiManager/indexer/ 如果需要,可以在一个地方重新启用。

工具说明
api_indexer_lookup_account_created_applications获取按帐户创建的应用程序
api_indexer_search_for_accounts使用过滤器搜索账户(资产/应用持有量、余额范围)
api_indexer_lookup_application_logs获取一轮范围内的应用程序日志消息
api_indexer_search_for_applications按创建者搜索应用程序
api_indexer_lookup_asset_balances获取持有资产的所有账户及其余额
api_indexer_lookup_asset_transactions获取涉及资产的交易(时间/轮次/地址角色筛选器)
api_indexer_search_for_assets按创建者、名称或单位搜索资产
api_indexer_lookup_transaction_by_id通过ID获取已确认的交易
api_indexer_lookup_account_transactions获取账户的交易历史记录(时间/轮次/类型/资产过滤器)
api_indexer_search_for_transactions使用过滤器搜索整个链中的交易

NFDomains工具(6个工具)

工具说明
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

Tinyman AMM工具(9个工具)

工具说明
api_tinyman_get_pool按资产对获取池信息
api_tinyman_get_pool_analytics获取池分析
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获取验证器退出报价

Haystack路由器工具(3个工具)

工具说明
api_haystack_get_swap_quote通过Tinyman V2、Pact、Folks和LST协议的路由获得优化的交换报价
api_haystack_execute_swap多功能互换:报价→ 签名(通过钱包)→ 提交→ 确认
api_haystack_needs_optin在交换之前检查地址是否需要资产选择加入

Pera钱包工具(3个工具)

工具说明
api_pera_asset_verification_status获取主网资产的验证状态(已验证、可信、可疑、未知)
api_pera_verified_asset_details从Pera获取详细的资产信息(名称、单位、徽标、小数、验证)
api_pera_verified_asset_search按名称、单位名称或关键字搜索Pera验证的资产
Pera钱包工具 仅限主网 -Pera公共API不支持testnet或localnet。

阿尔法街机工具(14个工具)

以美元计价的连锁预测市场交易(是/否结果)。所有价格和数量均使用微单位(1000000=1.00美元或1股)。只读工具无需钱包即可使用;交易工具需要一个活跃的钱包账户。

工具说明
alpha_get_live_markets获取所有包含价格、交易量和类别的实时预测市场
alpha_get_reward_markets获取具有流动性奖励的市场(需要 ALPHA_API_KEY ) 。
alpha_get_market按应用程序ID获取单个市场的完整详细信息
alpha_get_orderbook具有点差计算的统一YES透视订单簿
alpha_get_open_orders在特定市场上打开钱包订单
alpha_get_positions是/否所有市场的代币头寸
alpha_create_limit_order以特定价格下达限价订单(锁定~0.957 ALGO抵押品)
alpha_create_market_order下达具有自动匹配和滑差容忍度的市价订单
alpha_cancel_order取消未结订单(退还USDC/代币和ALGO抵押品)
alpha_amend_order编辑现有的未完成订单(价格、数量、滑点)
alpha_propose_match在现有的制造商订单和您的钱包之间进行匹配
alpha_split_shares将USDC拆分为相等的YES+NO结果代币
alpha_merge_shares将相等的YES+NO代币合并回USDC
alpha_claim通过兑换中奖代币从已解决的市场中领取USDC
可选环境变量: ALPHA_API_KEY --需要奖励市场数据。 ALPHA_API_BASE_URL -自定义API端点(默认值: https://platform.alphaarcade.com/api).

ARC-26 URI工具(1个工具)

工具说明
generate_algorand_qrcode根据ARC-26规范生成Algorand URI和QR码

知识工具(1个工具)

工具说明
get_knowledge_doc获取Algorand知识文档的降价内容

资源

服务器公开MCP资源以进行直接数据访问。钱包资源在 安全钱包 上面的部分。

知识资源

URI描述
algorand://knowledge/taxonomy完整的Algorand知识分类
algorand://knowledge/taxonomy/arcsAlgorand征求意见
algorand://knowledge/taxonomy/sdksSDK文档
algorand://knowledge/taxonomy/algokitAlgoKit文档
algorand://knowledge/taxonomy/algokit-utilsAlgoKit Utils文档
algorand://knowledge/taxonomy/tealscriptTEALScript文档
algorand://knowledge/taxonomy/puyaPuya文件
algorand://knowledge/taxonomy/liquid-authLiquid Auth文件
algorand://knowledge/taxonomy/pythonPython SDK文档
algorand://knowledge/taxonomy/developers开发人员文档
algorand://knowledge/taxonomy/clisCLI工具文档
algorand://knowledge/taxonomy/nodes节点管理文档
algorand://knowledge/taxonomy/details技术细节文件

项目结构

algorand-mcp/
├── src/                         # TypeScript source
│   ├── index.ts                 # Server entry point
│   ├── networkConfig.ts         # Hardcoded network URLs and client factories
│   ├── algorand-client.ts       # Re-exports from networkConfig
│   ├── env.ts                   # Legacy env shim (unused)
│   ├── types.ts                 # Shared types (Zod schemas)
│   ├── resources/               # MCP Resources
│   │   ├── knowledge/           # Documentation taxonomy
│   │   └── wallet/              # Wallet resources
│   ├── tools/                   # MCP Tools
│   │   ├── commonParams.ts      # Network + pagination schema fragments
│   │   ├── walletManager.ts     # Secure wallet (keychain + SQLite)
│   │   ├── accountManager.ts    # Account operations
│   │   ├── utilityManager.ts    # Utility functions
│   │   ├── algodManager.ts      # TEAL compile, simulate, submit
│   │   ├── arc26Manager.ts      # ARC-26 URI generation
│   │   ├── knowledgeManager.ts  # Knowledge document access
│   │   ├── transactionManager/  # Transaction building
│   │   │   ├── accountTransactions.ts
│   │   │   ├── assetTransactions.ts
│   │   │   ├── appTransactions/
│   │   │   └── generalTransaction.ts
│   │   └── apiManager/          # API integrations
│   │       ├── algod/           # Algod API
│   │       ├── indexer/         # Indexer API
│   │       ├── nfd/             # NFDomains
│   │       ├── tinyman/         # Tinyman AMM
│   │       ├── hayrouter/       # Haystack Router DEX aggregator
│   │       ├── pera/            # Pera Wallet verified assets
│   │       └── alpha/           # Alpha Arcade prediction markets
│   └── utils/
│       └── responseProcessor.ts # Pagination and formatting
├── tests/                       # Test suite
│   ├── helpers/                 # Shared test utilities
│   │   ├── mockFactories.ts     # Mock algod/indexer/keychain factories
│   │   ├── testConfig.ts        # Category enable/disable logic
│   │   ├── e2eSetup.ts          # E2E account provisioning + invokeTool()
│   │   └── testConstants.ts     # Well-known testnet addresses and asset IDs
│   ├── unit/                    # 11 unit test suites (mocked, fast)
│   ├── e2e/                     # 11 E2E test suites (live testnet)
│   │   ├── globalSetup.ts       # Account provisioning + fund-check
│   │   └── globalTeardown.ts    # Cleanup
│   └── jest.config.e2e.js       # E2E-specific Jest config
├── dist/                        # Compiled output
├── jest.config.js               # Unit test Jest config
├── tsconfig.json                # Production TypeScript config
├── tsconfig.test.json           # Test TypeScript config
└── package.json

响应格式

所有工具响应均遵循MCP内容格式。当数据集超过时,API响应包括自动分页 itemsPerPage (默认值10):

{
  "data": { ... },
  "metadata": {
    "totalItems": 100,
    "itemsPerPage": 10,
    "currentPage": 1,
    "totalPages": 10,
    "hasNextPage": true,
    "pageToken": "eyJ..."
  }
}

通过 pageToken 从之前的响应中提取下一页。集 itemsPerPage 在任何工具调用中控制页面大小。

发展

# Install dependencies
npm install

# Type-check
npm run typecheck

# Build
npm run build

# Clean build output
npm run clean

测试

快速开始

npm test                    # Unit tests (fast, no network)
npm run test:e2e            # E2E tests (testnet, generates account + fund link)
npm run test:all            # Both

单元测试

单元测试涵盖了所有11个具有完全模拟网络依赖关系的工具类别。他们平行奔跑,约5秒后结束。不需要环境变量或资金账户。

npm test

新闻报道: 11个套件,75+个测试,涵盖每个工具类别的成功路径、错误处理和边缘情况。

套件测试内容
accountManager帐户创建、助记符往返、密钥参数验证
utilityManagerPing、地址验证、编码/解码、对字节进行签名/验证、对对象进行编码/解码
walletManager完整生命周期:添加→ list → 开关→ 获取信息→ 符号数据→ 移除(模拟钥匙链+SQLite)
transactionManager支付、资产、应用交易建设;签名交易;assign_group_id
algodManagerTEAL编译/反汇编、发送原始数据、模拟
apiAlgod具有正确模拟路由的所有13个算法API工具
apiIndexer所有10个活动索引器API工具,带有流畅的生成器模型
apiNfdNFD使用模拟抓取进行获取/搜索/浏览
apiTinymanTinyman池/带错误处理的交换
arc26ManagerARC-26 URI生成和二维码SVG输出
knowledgeManager知识文档检索和缺失文档错误处理

嘲讽是如何运作的

单元测试使用 jest.unstable_mockModule() (ESM兼容)在加载之前拦截导入。共享 tests/helpers/mockFactory.ts 提供:

  • setupNetworkMocks() --替换 algorand-client.ts 使用模拟algod/indexer客户端,无需任何网络调用即可返回确定性响应。
  • createKeychainMock() --替换 @napi-rs/keyring 在记忆中 Map,因此钱包测试在没有操作系统钥匙链的情况下工作。
  • Fluent代理模拟 --Algorand的Indexer SDK使用构建器模式(.searchForAssets().limit(5).do()).模拟工厂使用ES Proxy 为任何链式方法返回自身并在以下情况下解析的对象 .do() 被称为。

E2E测试

E2E测试直接调用工具处理程序 Algorand测试网 (通过 公共节点)。它们连续运行以避免速率限制。

npm run test:e2e

首次运行时(未提供助记符),测试设置:

  1. 生成新的Algorand帐户
  2. 打印地址和助记符
  3. 打印基金链接:https://lora.algokit.io/testnet/fund
  4. 运行所有测试(无资金支持的测试仍然通过)

要使用资金账户运行:

E2E_MNEMONIC="word1 word2 ... word25" npm run test:e2e

新闻报道: 11个套件,35+个测试,涵盖真实的网络交互。

套件测试内容
account账户创建,助记键到密钥往返链
utilityPing、地址验证、编码/解码、对字节进行签名/验证、对对象进行编码/解码
wallet完整钱包生命周期:添加→ list → 开关→ 获取信息→ 获取资产→ 符号数据→ 删除
transaction构建付款→ sign → 验证txID;构建资产选择加入;使用assign_group_id构建组
algod编译+拆卸TEAL往返
algodApi账户信息、建议参数、节点状态、通过算法获取的资产信息
indexerApi通过索引器进行账户查找、资产/交易/账户搜索
nfd查找“algo.algo”,搜索NFD,浏览NFD
tinyman获取ALGO/USDC池
arc26生成arc-26型,验证格式+QR SVG
knowledge检索已知知识文档内容

类别激活

E2E测试可以通过环境变量按类别或单个工具选择性启用。 默认情况下,所有类别都已启用。

启用特定类别

E2E_WALLET=1 npm run test:e2e            # Only wallet tests
E2E_ALGOD=1 E2E_UTILITY=1 npm run test:e2e  # Algod + utility tests

可用类别标志

环境变量类别
E2E_ALL=1所有类别(明确)
E2E_WALLET=1钱包工具
E2E_ACCOUNT=1账户工具
E2E_UTILITY=1实用工具
E2E_TRANSACTION=1交易工具
E2E_ALGOD=1Algod工具
E2E_ALGOD_API=1Algod API工具
E2E_INDEXER_API=1索引器API工具
E2E_NFD=1NFDomains工具
E2E_TINYMAN=1Tinyman工具
E2E_ARC26=1ARC-26工具
E2E_KNOWLEDGE=1知识工具

重要提示: 设置任何单个标志(例如。 E2E_WALLET=1)禁用所有其他类别,除非 E2E_ALL=1 也设置了。

启用特定工具

E2E_TOOLS=ping,validate_address npm run test:e2e

E2E_TOOLS 变量接受逗号分隔的工具名称列表。只有这些特定工具的测试才会运行。

测试文件结构

tests/
├── helpers/
│   ├── mockFactories.ts       # Mock algod/indexer/keychain factories
│   ├── testConfig.ts          # Category enable/disable logic
│   ├── e2eSetup.ts            # E2E account provisioning + invokeTool()
│   └── testConstants.ts       # Well-known testnet addresses and asset IDs
├── unit/                      # 11 unit test files (*.test.ts)
│   ├── accountManager.test.ts
│   ├── utilityManager.test.ts
│   ├── walletManager.test.ts
│   ├── transactionManager.test.ts
│   ├── algodManager.test.ts
│   ├── apiAlgod.test.ts
│   ├── apiIndexer.test.ts
│   ├── apiNfd.test.ts
│   ├── apiTinyman.test.ts
│   ├── arc26Manager.test.ts
│   └── knowledgeManager.test.ts
├── e2e/                       # 11 E2E test files (*.e2e.test.ts)
│   ├── globalSetup.ts         # Account provisioning + fund-check
│   ├── globalTeardown.ts      # Cleanup
│   ├── account.e2e.test.ts
│   ├── utility.e2e.test.ts
│   ├── wallet.e2e.test.ts
│   ├── transaction.e2e.test.ts
│   ├── algod.e2e.test.ts
│   ├── algodApi.e2e.test.ts
│   ├── indexerApi.e2e.test.ts
│   ├── nfd.e2e.test.ts
│   ├── tinyman.e2e.test.ts
│   ├── arc26.e2e.test.ts
│   └── knowledge.e2e.test.ts
└── jest.config.e2e.js         # E2E-specific Jest config

Jest配置

配置目的关键设置
jest.config.js (根)单元测试testTimeout: 10s、平行工作者, testMatch: tests/unit/**
tests/jest.config.e2e.jsE2E测试testTimeout: 60s, maxWorkers: 1 (串行), globalSetup/globalTeardown
tsconfig.test.json用于测试的TypeScriptrootDir: ".",包括两者 src/tests/

编写新测试

单元测试模板:

import { jest } from '@jest/globals';
import { setupNetworkMocks } from '../helpers/mockFactories.js';

jest.unstable_mockModule('../../src/algorand-client.js', () => setupNetworkMocks());

const { YourManager } = await import('../../src/tools/yourManager.js');

describe('YourManager', () => {
  it('does something', async () => {
    const result = await YourManager.handleTool('tool_name', { arg: 'value' });
    const data = JSON.parse(result.content[0].text);
    expect(data.field).toBeDefined();
  });
});

E2E测试模板:

import { describeIf, testConfig } from '../helpers/testConfig.js';
import { invokeTool, parseToolResponse } from '../helpers/e2eSetup.js';

describeIf(testConfig.isCategoryEnabled('your-category'))('Your Tools (E2E)', () => {
  it('does something on testnet', async () => {
    const data = parseToolResponse(
      await invokeTool('tool_name', { arg: 'value', network: 'testnet' }),
    );
    expect(data.field).toBeDefined();
  });
});

依赖项

许可证

麻省理工学院

目录标签

目录标签

区块链TypeScriptClaude钱包管理本地部署AI代理智能合约交易构建

支持客户端

Claude DesktopClaudeCursorWindsurfCline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

114

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明nonelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP