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
部署
克隆存储库
安装依赖项: npm install
在中配置环境变量 wrangler.toml
部署: npm run deploy
使用流程
认证
用户通过OAuth(谷歌、GitHub、推特或领英)进行身份验证
服务器从HashiCorp Vault创建或检索钱包凭据
用户通过MCP接口访问工具和资源
用户可以使用注销 wallet_logout
个别交易
创建交易(例如。, sdk_txn_payment_transaction)
用保险库签名(wallet_sign_transaction)或助记符(sdk_sign_transaction)
提交到网络(sdk_submit_transaction)
原子事务组
创建组(sdk_create_atomic_group)
签名组(wallet_sign_atomic_group 或 sdk_sign_atomic_group)
提交组(sdk_submit_atomic_group)
DEX通过Haystack路由器交换
获得最佳报价(haystack_get_swap_quote)
执行掉期操作——在一次通话中报价、保管签名、提交和确认(haystack_execute_swap)
DEX通过Tinyman进行互换
执行固定输入或固定输出交换(tinyman_fixed_input_swap / tinyman_fixed_output_swap)
通过Alpha Arcade预测市场
浏览市场(alpha_get_live_markets)
查看订单簿(alpha_get_orderbook)
下单(alpha_create_limit_order 或 alpha_create_market_order)
监视器位置(alpha_get_positions)和未结订单(alpha_get_open_orders)
管理订单--修改(alpha_amend_order)或取消(alpha_cancel_order)
从已解决的市场中索赔奖金(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
贡献
分叉存储库
创建特征分支: git checkout -b feature/my-new-feature
提交您的更改: git commit -am 'Add some feature'
推到分支: git push origin feature/my-new-feature
提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。