区块链AI代理服务

为AI代理提供与Algorand区块链交互的工具和资源的Model Context Protocol(MCP)服务器,支持钱包管理、交易操作和DEX聚合。

  • by GoPlausible
  • TypeScript
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 GoPlausible/algorand-remote-mcp

使用说明

Algorand远程MCP

一个模型上下文协议(MCP)服务器,为AI代理提供与Algorand区块链交互的工具和资源。基于Cloudflare Workers构建,具有基于HashiCorp Vault的钱包管理和多提供商OAuth身份验证。

概述

Algorand Remote MCP通过标准化的MCP接口连接AI代理和Algorand区块链生态系统。它使人工智能系统能够管理钱包、创建和提交交易、通过DEX聚合器交换代币以及访问区块链数据——所有这些都不需要深厚的区块链专业知识。

这是一个 远程MCP 在Cloudflare Workers上运行的实现具有:

  • HashiCorp保险库 用于安全的Ed25519密钥存储和交易签名
  • 多提供商OAuth (谷歌、GitHub、推特、领英)用于用户身份验证
  • algosdk v3.5.2 用于Algorand SDK操作
  • Haystack路由器 跨Tinyman、Pact、Folks和LST协议实现最优价格的DEX聚合
  • Tinyman SDK 用于直接DEX掉期操作
  • Alpha Arcade SDK 用于预测市场交易(订单簿、限价/市价单、头寸)

快速开始

先决条件: Node.js v16+,OAuth帐户(谷歌、GitHub、推特或领英)

添加到MCP客户端配置中:

{
  "mcpServers": {
    "algorand-remote-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://algorandmcp.goplausible.xyz/sse"
      ]
    }
  }
}

重新启动LLM代理并提示:

Read Algorand MCP skill.

建筑

┌─────────────────────────────────────────────────────────────────────────────┐
│                              AI Agents / LLM Clients                       │
│                    (Claude, GPT, Cursor, Windsurf, etc.)                    │
└─────────────────────────────┬───────────────────────────────────────────────┘
                              │ MCP Protocol (SSE / Streamable HTTP)
                              ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                     Cloudflare Workers — Edge Runtime                       │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │                        OAuthProvider Layer                            │  │
│  │          Google · GitHub · Twitter · LinkedIn (Multi-provider)        │  │
│  └───────────────────────────┬───────────────────────────────────────────┘  │
│                              ▼                                              │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │              AlgorandRemoteMCP (McpAgent / McpServer)                 │  │
│  │                                                                       │  │
│  │  ┌─────────────── Tool Managers ───────────────────────────────────┐  │  │
│  │  │                                                                 │  │  │
│  │  │  walletManager ─── accountManager ─── utilityManager            │  │  │
│  │  │  transactionManager/                                            │  │  │
│  │  │    ├── generalTransaction   (pay, sign, submit, keyreg)         │  │  │
│  │  │    ├── assetTransactions    (ASA create, optin, transfer)       │  │  │
│  │  │    ├── appTransactions      (create, update, delete, call)      │  │  │
│  │  │    └── groupTransactions    (atomic groups)                     │  │  │
│  │  │  algodManager ─── knowledgeManager                              │  │  │
│  │  │  arc26Manager ─── receiptManager ─── ap2Manager                 │  │  │
│  │  │  tinymanManager ─── alphaArcadeManager                          │  │  │
│  │  │  apiManager/                                                    │  │  │
│  │  │    ├── algod/       (account, application, asset, txn queries)  │  │  │
│  │  │    ├── indexer/     (search & lookup across all data types)     │  │  │
│  │  │    ├── hayrouter/   (DEX aggregator — quote, swap, optin)      │  │  │
│  │  │    └── nfd/         (Algorand Name Service lookups)            │  │  │
│  │  └─────────────────────────────────────────────────────────────────┘  │  │
│  │                                                                       │  │
│  │  ┌─────────────── Resources ───────────────────────────────────────┐  │  │
│  │  │  algorand://remote-mcp-skill         (Skill definition)        │  │  │
│  │  │  algorand://knowledge/taxonomy       (Knowledge base)          │  │  │
│  │  │  algorand://knowledge/taxonomy/{cat} (Category docs)           │  │  │
│  │  └─────────────────────────────────────────────────────────────────┘  │  │
│  │                                                                       │  │
│  │  ┌─────────────── Utils ───────────────────────────────────────────┐  │  │
│  │  │  ResponseProcessor (pagination, BigInt-safe JSON)               │  │  │
│  │  │  vaultManager (Vault API client)                                │  │  │
│  │  │  Skill.js (skill content)                                       │  │  │
│  │  └─────────────────────────────────────────────────────────────────┘  │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
│  ┌─────────────── Cloudflare Bindings ────────────────────────────────────┐ │
│  │  Durable Objects (session state)  ·  KV (OAuth tokens, client reg)    │ │
│  │  R2 Bucket (knowledge documents)  ·  Service Bindings (Vault worker)  │ │
│  └────────────────────────────────────────────────────────────────────────┘ │
└──────────┬──────────────────┬──────────────────┬──────────────────┬─────────┘
           │                  │                  │                  │
           ▼                  ▼                  ▼                  ▼
┌──────────────────┐ ┌────────────────┐ ┌────────────────┐ ┌───────────────┐
│  HashiCorp Vault │ │  Algorand Node │ │  DEX & Markets │ │  External APIs│
│  (CF Worker)     │ │  (Algod +      │ │                │ │               │
│                  │ │   Indexer)     │ │  Haystack      │ │  NFD API      │
│  Ed25519 keypair │ │                │ │  Router        │ │  Pera API     │
│  generation      │ │  Nodely.io /   │ │  ┌──────────┐  │ │  Alpha Arcade │
│  Transit engine  │ │  AlgoNode      │ │  │ Tinyman  │  │ │  API          │
│  signing         │ │                │ │  │ Pact     │  │ │               │
│  No private key  │ │  MainNet /     │ │  │ Folks    │  │ │               │
│  exposure        │ │  TestNet       │ │  │ LST      │  │ │               │
│                  │ │                │ │  └──────────┘  │ │               │
└──────────────────┘ └────────────────┘ │                │ └───────────────┘
                                        │  Tinyman SDK   │
                                        │  Alpha Arcade  │
                                        │  SDK           │
                                        └────────────────┘

组件摘要

  • AlgorandRemoteMCP:主MCP代理在Cloudflare Workers上扩展McpAgent
  • OAuthProvider:多提供商身份验证层(谷歌、GitHub、推特、领英)
  • 工具经理:15名专业经理,负责账户、钱包、交易、资产、应用程序、API、DEX操作、预测市场、ARC-26 URI、收据、AP2协议和知识
  • 资源提供程序:通过R2基于URI访问技能定义和知识库
  • 响应处理器:具有分页和BigInt安全序列化的标准化响应格式
  • HashiCorp保险库:Ed25519密钥对生成和通过Transit引擎进行安全签名——无私钥泄露
  • Cloudflare绑定:会话状态的持久对象,OAuth的KV,知识文档的R2,Vault worker的服务绑定

工具

账户管理

工具 说明
sdk_create_algorand_keypair 创建新的Algorand密钥对(不与钱包链接)
sdk_mnemonic_to_address_and_secretkey 从助记符中获取地址和密钥
sdk_address_to_public_key 获取Algorand地址的公钥
sdk_check_account_balance 在ALGO中检查账户余额

钱包管理

工具 说明
wallet_get_info 获取帐户信息,包括地址、公钥、余额和资产(替换 wallet_get_address 和 wallet_get_publickey)
wallet_get_role 获取配置钱包的角色UUID,用于使用OIDC登录Hashicorp Vault
wallet_get_assets 获取钱包中持有的资产
wallet_reset_account 重置钱包并生成新密钥(破坏性)
wallet_logout 从OAuth提供者注销

交易操作

工具 说明
sdk_txn_payment_transaction 创建付款交易
wallet_sign_transaction 使用保管库密钥签署交易
sdk_sign_transaction 使用助记符签署交易
sdk_submit_transaction 向网络提交已签名的交易
sdk_txn_key_registration_transaction 创建密钥注册事务
sdk_assign_group_id 为原子执行分配组ID
sdk_create_atomic_group 创建原子事务组(pay、axfer、acfg、appl、afrz、keyreg)
wallet_sign_atomic_group 使用vault密钥对原子组进行签名
sdk_sign_atomic_group 用助记符在原子群上签名
sdk_submit_atomic_group 提交已签名的原子组
sdk_send_raw_transaction 提交原始签名交易

资产运营

工具 说明
sdk_txn_create_asset 创建新的Algorand标准资产(ASA)
sdk_txn_asset_optin 选择加入ASA
wallet_usdc_optin 选择加入USDC的代理钱包(保险库签名)
sdk_txn_transfer_asset 转移ASA

应用程序(智能合约)操作

工具 说明
sdk_txn_create_application 创建新的智能合约
sdk_txn_update_application 更新现有智能合约
sdk_txn_delete_application 删除智能合约
sdk_txn_closeout_application 退出应用程序
sdk_txn_clear_application 清除应用程序状态
sdk_txn_call_application 调用智能合约(noop、optin、close-out、clear、delete)
sdk_optin_application 选择加入应用程序

DEX-Haystack路由器(DEX聚合器)

工具 说明
haystack_get_swap_quote 获得跨多个DEX和LST协议的最佳价格掉期报价
haystack_execute_swap 执行优化的交换:报价、保管签名、提交、确认
haystack_needs_optin 在交换之前,检查地址是否需要选择加入资产

DEX--Tinyman

工具 说明
tinyman_fixed_input_swap 执行固定输入金额的掉期
tinyman_fixed_output_swap 执行具有固定输出量的掉期

阿尔及利亚API

工具 说明
algod_get_account_info 获取账户余额、资产和身份验证地址
algod_get_account_application_info 获取特定帐户的应用程序信息
algod_get_account_asset_info 获取账户特定资产信息
algod_get_application_info 获取应用程序详细信息
algod_get_application_box_value 获取应用程序框内容
algod_get_application_boxes 列出应用程序框
algod_get_application_state 获取应用程序全局状态
algod_get_asset_info 获取资产详细信息
algod_get_asset_holding 为账户获取资产持有
algod_get_pending_txn_info 获取待处理交易详细信息
algod_get_pending_transactions 从mempool获取待处理事务

Pera钱包资产验证

工具 说明
pera_asset_verification_status 获取资产的验证状态
pera_verified_asset_details 从Pera获取详细的资产信息
pera_verified_asset_search 按名称、单位名称或创建者搜索已验证的资产

索引器API

工具 说明
indexer_lookup_account_assets 获取账户资产
indexer_lookup_account_app_local_states 获取帐户应用程序的本地状态
indexer_lookup_account_created_apps 获取由帐户创建的应用程序
indexer_lookup_account_transactions 获取帐户的交易记录
indexer_search_for_accounts 使用筛选器搜索帐户
indexer_lookup_application_logs 获取应用程序日志消息
indexer_search_for_applications 搜索应用程序
indexer_lookup_asset_balances 获取特定资产的持有者
indexer_search_for_assets 搜索资产
indexer_lookup_transaction_by_id 获取交易详情
indexer_search_for_transactions 搜索交易记录

NFD(Algorand名称服务)

工具 说明
api_nfd_get_nfd 按名称获取NFD域信息
api_nfd_get_nfds_for_address 获取某个地址拥有的所有NFD域

TEAL运营

工具 说明
sdk_compile_teal 编译TEAL源代码
sdk_disassemble_teal 分解TEAL字节码

实用工具

工具 说明
sdk_validate_address 检查Algorand地址是否有效
sdk_encode_address 将公钥编码到地址
sdk_decode_address 将地址解码为公钥
sdk_app_address_by_id 获取应用程序ID的地址
sdk_verify_bytes 根据字节验证签名
sdk_sign_bytes 用密钥对字节进行签名
algorand_mcp_skill 获得全面的Algorand MCP技能

ARC-26 URI和收据

工具 说明
generate_algorand_uri 生成符合ARC-26的URI
generate_algorand_qrcode 为Algorand URI生成二维码
generate_algorand_receipt 生成交易收据

AP2协议

工具 说明
generate_ap2_mandate 使用可验证的凭据创建AP2意图、购物车或支付授权

阿尔法街机(预测市场)

工具 说明
alpha_get_live_markets 获取所有实时预测市场(标题、价格、数量、多选选项)
alpha_get_reward_markets 用流动性奖励获取市场
alpha_get_market 获取单个市场的完整详细信息(链上+API)
alpha_get_orderbook 具有点差计算的统一YES透视订单簿
alpha_get_open_orders 获取特定市场钱包的未结订单
alpha_get_positions 获取所有市场上的是/否代币头寸
alpha_create_limit_order 下达限价订单(价格和数量以微单位计)
alpha_create_market_order 通过自动匹配和滑点下单
alpha_cancel_order 取消未结订单并退还抵押品
alpha_amend_order 就地编辑现有的未完成订单
alpha_propose_match 建议在制造商订单和您的钱包之间进行匹配
alpha_split_shares 将USDC拆分为相等的YES+NO结果代币
alpha_merge_shares 将YES+NO代币合并回USDC
alpha_claim 通过兑换结果代币从已解决的市场中索赔USDC

知识库

工具 说明
get_knowledge_doc 获取知识文档的标记内容
list_knowledge_docs 按类别列出可用的知识文档

资源

知识资源

URI 描述
algorand://knowledge/taxonomy 知识资源的完整分类
algorand://knowledge/taxonomy/{category} 特定类别的资源(arcs、sdk、algokit、puya等)

技能

URI 描述
algorand://remote-mcp-skill 全面的Algorand MCP技能

发展

先决条件

  • Node.js v16+
  • Cloudflare Workers帐户
  • Algorand节点访问(例如Nodely.io/AlgoNode)
  • OAuth凭据(谷歌、GitHub、推特和/或领英)
  • HashiCorp Vault工作人员用于安全密钥管理

环境变量

ALGORAND_NETWORK=mainnet
ALGORAND_ALGOD=https://your-algod-node.com
ALGORAND_INDEXER=https://your-indexer-node.com
ALGORAND_TOKEN=your-api-token
NFD_API_URL=https://api.nf.domains
HAYSTACK_API_KEY=your-haystack-api-key
ALPHA_API_KEY=your-alpha-arcade-api-key           # Optional, enables richer market data
ALPHA_API_BASE_URL=https://platform.alphaarcade.com/api  # Optional, default shown
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
HCV_WORKER_URL=https://your-hashicorp-vault-worker.workers.dev

脚本

npm run dev          # Start local development server
npm run type-check   # Run TypeScript type checking
npm run deploy       # Deploy to Cloudflare Workers
npm run format       # Format code with Biome
npm run lint:fix     # Lint and auto-fix with Biome

部署

  1. 克隆存储库
  2. 安装依赖项: npm install
  3. 在中配置环境变量 wrangler.toml
  4. 部署: npm run deploy

使用流程

认证

  1. 用户通过OAuth(谷歌、GitHub、推特或领英)进行身份验证
  2. 服务器从HashiCorp Vault创建或检索钱包凭据
  3. 用户通过MCP接口访问工具和资源
  4. 用户可以使用注销 wallet_logout

个别交易

  1. 创建交易(例如。, sdk_txn_payment_transaction)
  2. 用保险库签名(wallet_sign_transaction)或助记符(sdk_sign_transaction)
  3. 提交到网络(sdk_submit_transaction)

原子事务组

  1. 创建组(sdk_create_atomic_group)
  2. 签名组(wallet_sign_atomic_group 或 sdk_sign_atomic_group)
  3. 提交组(sdk_submit_atomic_group)

DEX通过Haystack路由器交换

  1. 获得最佳报价(haystack_get_swap_quote)
  2. 执行掉期操作——在一次通话中报价、保管签名、提交和确认(haystack_execute_swap)

DEX通过Tinyman进行互换

  1. 执行固定输入或固定输出交换(tinyman_fixed_input_swap / tinyman_fixed_output_swap)

通过Alpha Arcade预测市场

  1. 浏览市场(alpha_get_live_markets)
  2. 查看订单簿(alpha_get_orderbook)
  3. 下单(alpha_create_limit_order 或 alpha_create_market_order)
  4. 监视器位置(alpha_get_positions)和未结订单(alpha_get_open_orders)
  5. 管理订单--修改(alpha_amend_order)或取消(alpha_cancel_order)
  6. 从已解决的市场中索赔奖金(alpha_claim)

项目结构

src/
├── index.ts                      # Main entry point
├── types.ts                      # Type definitions
├── oauth-handler.ts              # OAuth authentication handler
├── workers-oauth-utils.ts        # OAuth utilities
├── resources/
│   ├── skill/                    # Skill resource
│   └── knowledge/                # Knowledge base resources
├── tools/
│   ├── accountManager.ts         # Account management
│   ├── algodManager.ts           # Algorand node tools
│   ├── ap2Manager.ts             # AP2 protocol tools
│   ├── arc26Manager.ts           # ARC-26 URI and QR tools
│   ├── knowledgeManager.ts       # Knowledge base tools
│   ├── receiptManager.ts         # Transaction receipt tools
│   ├── tinymanManager.ts         # Tinyman DEX tools
│   ├── alphaArcadeManager.ts     # Alpha Arcade prediction market tools
│   ├── utilityManager.ts         # Utility tools
│   ├── walletManager.ts          # Wallet management tools
│   ├── apiManager/
│   │   ├── algod/                # Algod API tools (account, application, asset, transaction)
│   │   ├── hayrouter/            # Haystack Router DEX aggregator tools
│   │   ├── indexer/              # Indexer API tools (account, application, asset, transaction)
│   │   └── nfd/                  # NFD name service tools
│   └── transactionManager/
│       ├── generalTransaction.ts # Payment, signing, submission, key registration
│       ├── appTransactions.ts    # Application (smart contract) transactions
│       ├── assetTransactions.ts  # Asset create, optin, transfer
│       └── groupTransactions.ts  # Atomic transaction groups
└── utils/
    ├── Skill.js                  # Skill content
    ├── vaultManager.ts           # HashiCorp Vault integration
    └── responseProcessor.ts      # Response formatting and pagination

关键依赖关系

包装 版本 用途
algosdk ^3.5.2 Algorand JavaScript SDK
@txnlab/haystack-router ^2.0.5 最佳价格掉期的DEX聚合器
@tinymanorg/tinyman-js-sdk ^5.1.2 Tinyman DEX SDK
@alpha-arcade/sdk 最新 预测市场交易SDK
@modelcontextprotocol/sdk ^1.12.1 MCP协议SDK
agents ^0.0.95 Cloudflare代理SDK
algo-msgpack-with-bigint ^2.1.1 支持BigInt的MessagePack

贡献

  1. 分叉存储库
  2. 创建特征分支: git checkout -b feature/my-new-feature
  3. 提交您的更改: git commit -am 'Add some feature'
  4. 推到分支: git push origin feature/my-new-feature
  5. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。