Algorand Remote MCP Lite is a wallet-first Model Context Protocol server for Algorand. It is a trimmed version of the full remote MCP, focused on agentic wallet workflows with 46 tools covering wallet management, transactions, blockchain queries, DEX-aggregated swaps, and more. It runs on Algorand Mainnet by default and signs transactions server-side using HashiCorp Vault.
- MCP server on Cloudflare Workers (Durable Object) that registers wallet, transaction, and API tools.
- OAuth 2.0 with PKCE and OIDC-compatible social login (Google, GitHub, Twitter/X, LinkedIn) for user identity.
- HashiCorp Vault transit signing via the
HCV_WORKERservice; private keys never leave the vault. - Algod + Indexer APIs for on-chain state and transaction submission.
- KV namespaces for OAuth sessions, vault entity mapping, verified assets, ARC-26 QR/receipt caching, and AP2 storage.
- Wallet edition: minimal, curated tool set that behaves like an agentic wallet.
- Server-side signing: the LLM never receives mnemonics or private keys.
- Mainnet-first: examples and defaults target mainnet assets and apps.
- Modular tooling: wallet, transactions, indexer, NFD, Pera verified assets, Haystack Router DEX swaps, and more are separate tool groups.
- Users authenticate via OAuth/OIDC providers; approval and PKCE flows are handled in
src/oauth-handler.tsandsrc/oauth-provider.ts. - After login,
ensureUserAccountbinds the social identity (provider + email) to a Vault entity and transit key. - The wallet address is derived from the Vault public key and used as the agent wallet.
- Signing tools (
wallet_sign_transaction,wallet_sign_atomic_group) use Vault transit so signatures are produced inside Vault.
- Agentic wallet operations: balance, assets, signing, and submission without exposing secrets.
- On-demand topup using Algorand ARC-26 QR codes (
generate_algorand_qrcode). - AP2 mandate generation for intent, cart, and payment flows (
generate_ap2_mandate). - Receipt generation with QR codes for payments and asset transfers (
generate_algorand_receipt). - Atomic transaction groups and asset workflows (opt-in, transfer, USDC opt-in).
- Verified asset discovery via Pera Wallet and NFD lookups.
- Best-price DEX swaps via Haystack Router (aggregates Tinyman, Pact, Folks, LST protocols).
wallet_get_info: Get the account information for the configured wallet (address, publicKey, balance, assets)wallet_get_assets: Get all asset holdings for the configured walletwallet_get_role: Get wallet user role UUID (sensitive — warn users to protect it)wallet_reset_account: Reset/recreate wallet account with new keys (DESTRUCTIVE — transfer funds first!)
sdk_check_account_balance: Check the ALGO balance of an Algorand account
sdk_validate_address: Check if an Algorand address is validsdk_encode_address: Encode a public key to an Algorand addresssdk_decode_address: Decode an Algorand address to a public keysdk_app_address_by_id: Get the escrow address for a given application IDalgorand_mcp_skill: Access comprehensive skill/guide for using Algorand Remote MCP Lite, including workflows, examples, and best practices
sdk_txn_payment_transaction: Create an ALGO payment transactionwallet_sign_transaction: Sign an Algorand transaction with the agent wallet (via Vault)sdk_submit_transaction: Submit a signed transaction to the Algorand networksdk_send_raw_transaction: Submit raw signed transaction bytes to the network
sdk_txn_asset_create: Create a new Algorand Standard Asset (ASA)sdk_txn_asset_optin: Opt-in to an Algorand Standard Asset (ASA)sdk_txn_asset_transfer: Transfer an Algorand Standard Asset (ASA)wallet_usdc_optin: One-step USDC opt-in for the agent wallet (builds, signs, submits)
sdk_assign_group_id: Assign a group ID to transactions for atomic executionsdk_create_atomic_group: Create an atomic transaction group from multiple transactionssdk_sign_atomic_group: Sign an atomic transaction group (SDK-level)wallet_sign_atomic_group: Sign an atomic transaction group (via wallet/Vault)sdk_submit_atomic_group: Submit a signed atomic transaction group to the network
algod_get_account_info: Get current account balance, assets, and auth address from algodalgod_get_account_asset_info: Get account-specific asset information from algodalgod_get_asset_info: Get asset details (name, decimals, supply, creator) from algodalgod_get_pending_txn_info: Get pending transaction details by transaction ID
pera_verified_asset_query: Get detailed information about an Algorand asset from Pera (includes verification tier)pera_verified_assets_search: Search Pera verified assets by asset name, unit name, or creator address
indexer_search: General search across accounts, transactions, assets, or applicationsindexer_search_for_accounts: Search for accounts with various criteriaindexer_search_for_assets: Search for assets with various criteriaindexer_lookup_account_assets: Get assets held by an accountindexer_lookup_account_transactions: Get transaction history for an accountindexer_lookup_asset_balances: Get accounts that hold a specific assetindexer_lookup_transaction_by_id: Get transaction details by ID
api_nfd_get_nfd: Get NFD (.algo) domain information by nameapi_nfd_get_nfds_for_address: Get all NFD names owned by an Algorand address
haystack_get_swap_quote: Get best-price swap quote across multiple DEXes (Tinyman, Pact, Folks, LST protocols)haystack_execute_swap: All-in-one swap: quote + sign via wallet + submit + confirmhaystack_needs_optin: Check if an address needs to opt into an asset before swapping
generate_algorand_qrcode: Generate an ARC-26 URI and QR code for payment or asset transfer requests
generate_algorand_receipt: Generate a transaction receipt with QR code for payments or asset transfers
generate_ap2_mandate: Create an AP2 intent, cart, or payment mandate
tinyman_fixed_input_swap: Execute a swap with a fixed input amounttinyman_fixed_output_swap: Execute a swap with a fixed output amount
- Algorand MCP Skill (
algorand://remote-mcp-skill): Comprehensive skill definition for using Algorand Remote MCP tools.
- Install dependencies:
npm install - Configure
wrangler.jsoncvars and secrets (Algod/Indexer URLs, OAuth client IDs/secrets, Vault worker URL/token). - Start the worker:
npm run dev
- A client requests
/authorizeand chooses a social provider. - The user authenticates, then
/callbackexchanges the code for tokens. - The server binds the identity to a Vault keypair and exposes wallet tools.
- This server is configured for Algorand Mainnet by default; update
ALGORAND_NETWORK,ALGORAND_ALGOD, andALGORAND_INDEXERif you need to point elsewhere. - ARC-26 QR codes are intended for on-demand topups and user-friendly funding flows.