A Model Context Protocol (MCP) server implementation that provides tools and resources for AI agents to interact with the Algorand blockchain.
Algorand Remote MCP bridges the gap between AI agents and the Algorand blockchain ecosystem. It serves as a middleware layer that enables AI systems to interact with blockchain technology through a standardized interface, without requiring deep blockchain expertise.
The server is designed to run on Cloudflare Workers and provides a comprehensive set of tools and resources for blockchain operations, including wallet management, transaction creation and submission, API integration, and knowledge access. This is a remote MCP implementation only, focused on providing server-side functionality for AI agents to interact with the Algorand blockchain.
- Secure Wallet Management: Create, access, and manage Algorand wallets with automatic wallet creation for new users
- HashiCorp Vault Integration:
- Secure storage of sensitive wallet credentials using HashiCorp Vault
- Ed25519 keypair operations for cryptographic functions
- Policy that all new accounts use Ed25519 secure secrets engine.
- Comprehensive Transaction Support: Create, sign, and submit various transaction types (payments, assets, applications)
- API Integration: Access Algorand node, indexer, and NFD APIs through standardized interfaces
- Knowledge Resources: Access documentation and guides for Algorand development
- Google OAuth Authentication: Secure user authentication through Google OAuth
- Pagination Support: Handle large datasets with built-in pagination
- Standardized Response Formatting: Consistent response formatting for AI agent consumption
- Wallet Reset Capability: Users can reset their wallet and generate a new one if needed
Make sure you have these:
- Node.js v16+ installed
- A Google account for OAuth authentication
Add this to your MCP servers:
{
"mcpServers": {
"algorand-remote-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://algorand-remote-mcp.your-account.workers.dev/sse" // or http://localhost:8787/sse for local development
]
}
}
}
And then restart your LLM Agent and prompt to it:
Read Algorand Remote MCP guide.
Algorand Remote MCP is built on the Model Context Protocol (MCP), which provides a standardized way for AI agents to interact with external systems. The server is implemented as a Cloudflare Worker with the following components:
- AlgorandRemoteMCP Class: Main MCP agent implementation that extends McpAgent
- Tool Managers: Specialized managers for different operation types
- Resource Providers: URI-based access to data and documentation
- ResponseProcessor: Standardized response formatting with pagination support
- OAuth Integration: Secure user authentication and authorization
- HashiCorp Vault Integration:
- Secure storage of sensitive wallet credentials
- Ed25519 keypair operations for cryptographic functions
- Secure key management without exposing private keys
- Policy that all new accounts use the secure Ed25519 secrets engine
- Service Bindings: Inter-worker communication for secure vault operations
create_account
: Create a new Algorand accountmnemonic_to_address
: View the address associated with a mnemonic (without storing the private key)check_account_balance
: Check the balance of an Algorand account
get_wallet_address
: Get the address for the configured walletget_wallet_info
: Get account information for the configured walletget_wallet_assets
: Get assets owned by the configured walletget_wallet_publickey
: Get the public key for the configured walletreset_wallet_account
: Reset the wallet account for the configured user
create_payment_transaction
: Create a payment transactionsign_transaction
: Sign a transaction with the wallet's credentialssubmit_transaction
: Submit a signed transaction to the networkcreate_atomic_group
: Create an atomic transaction group from multiple transactionssign_atomic_group
: Sign an atomic transaction groupsubmit_atomic_group
: Submit a signed atomic transaction group to the networkasset_optin
: Create an asset opt-in transactiontransfer_asset
: Create an asset transfer transactioncreate_asset
: Create a new Algorand Standard Assetcreate_application
: Create a new smart contract applicationcall_application
: Call a smart contract application
api_algod_get_account_info
: Get account details from Algorand nodeapi_algod_get_transaction_info
: Get transaction details from Algorand nodeapi_indexer_lookup_account_by_id
: Get account details from indexerapi_nfd_get_nfd
: Get NFD address information
validate_address
: Validate an Algorand addressencode_obj
: Encode an object to msgpack formatdecode_obj
: Decode msgpack bytes to an objectcompile_teal
: Compile TEAL source codealgorand_mcp_guide
: Access comprehensive guide for using Algorand Remote MCP
create_keypair
: Create a new Ed25519 keypair in HashiCorp Vaultget_public_key
: Get the public key for a keypair from HashiCorp Vaultsign_bytes
: Sign bytes with a secret keyverify_signature
: Verify a signature using a keypair in HashiCorp Vault
algorand://wallet/address
: Wallet account addressalgorand://wallet/account
: Wallet account informationalgorand://wallet/assets
: Wallet account assetsalgorand://wallet/publickey
: Wallet account public key
algorand://knowledge/taxonomy
: Full taxonomy of knowledge resourcesalgorand://knowledge/taxonomy/{category}
: Category-specific knowledge resources
algorand://remote-mcp-guide
: Comprehensive guide for using Algorand Remote MCP
- Node.js v16+
- Cloudflare Workers account
- Algorand node access (or use a service like Nodely.io aka AlgoNode)
- Google OAuth credentials
- HashiCorp Vault worker for secure credential storage
ALGORAND_NETWORK=mainnet
ALGORAND_ALGOD=https://your-algod-node.com
ALGORAND_INDEXER=https://your-indexer-node.com
NFD_API_URL=https://api.nf.domains
ALGORAND_TOKEN=your-api-token
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
HCV_WORKER_URL=https://your-hashicorp-vault-worker.workers.dev
- Clone the repository
- Install dependencies:
npm install
- Configure environment variables in
wrangler.toml
- Deploy to Cloudflare Workers:
wrangler deploy
- User authenticates through Google OAuth
- Server creates or retrieves wallet credentials from HashiCorp Vault
- User can now access tools and resources through the MCP interface
- Create transaction using appropriate tool (e.g.,
create_payment_transaction
) - Sign transaction with wallet credentials using
sign_transaction
- Submit transaction to network using
submit_transaction
- Verify transaction success
- Create multiple transactions as an atomic group using
create_atomic_group
- Sign the transaction group using
sign_atomic_group
- Submit the signed group to the network using
submit_atomic_group
- Verify transaction success
├── src/ # Source code directory
│ ├── index.ts # Main entry point
│ ├── types.ts # Type definitions
│ ├── oauth-handler.ts # OAuth authentication handler
│ ├── workers-oauth-utils.ts # OAuth utilities
│ ├── resources/ # Resource providers
│ │ ├── guide/ # Guide resources
│ │ ├── knowledge/ # Knowledge resources
│ │ └── wallet/ # Wallet resources
│ ├── tools/ # Tool managers
│ │ ├── accountManager.ts # Account management tools
│ │ ├── algodManager.ts # Algorand node tools
│ │ ├── arc26Manager.ts # ARC-26 tools
│ │ ├── knowledgeManager.ts # Knowledge tools
│ │ ├── utilityManager.ts # Utility tools
│ │ ├── walletManager.ts # Wallet management tools
│ │ ├── apiManager/ # API integration tools
│ │ └── transactionManager/ # Transaction tools
│ └── utils/ # Utilities
│ ├── Guide.js # Guide content
│ ├── oauth-utils.ts # OAuth utilities
│ ├── vaultManager.ts # HashiCorp Vault utilities for secret storage and cryptographic operations
│ └── responseProcessor.ts # Response formatting
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch:
git checkout -b feature/my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin feature/my-new-feature
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Server Name:
algorand-remote-mcp
- Connection:
npx mcp-remote https://algorand-remote-mcp.emg110.workers.dev/sse
validate_address
- Check if an Algorand address is validencode_address
- Encode a public key to an Algorand addressdecode_address
- Decode an Algorand address to a public keyget_application_address
- Get the address for a given application IDbytes_to_bigint
- Convert bytes to a BigIntbigint_to_bytes
- Convert a BigInt to bytesencode_uint64
- Encode a uint64 to bytesdecode_uint64
- Decode bytes to a uint64verify_bytes
- Verify a signature against bytes with an Algorand addresssign_bytes
- Sign bytes with a secret keyencode_obj
- Encode an object to msgpack formatdecode_obj
- Decode msgpack bytes to an object
create_account
- Create a new Algorand accountmnemonic_to_address
- View the address associated with a mnemonic (without storing the private key)check_account_balance
- Check the balance of an Algorand accountget_wallet_publickey
- Get the public key for the configured walletget_wallet_address
- Get the address for the configured walletget_wallet_info
- Get the account information for the configured walletget_wallet_assets
- Get the assets for the configured walletreset_wallet_account
- Reset the wallet account for the configured user
create_payment_transaction
- Create a payment transaction on Algorandsign_transaction
- Sign an Algorand transaction with your agent accountsubmit_transaction
- Submit a signed transaction to the Algorand networkcreate_key_registration_transaction
- Create a key registration transactionassign_group_id
- Assign a group ID to a set of transactions for atomic executioncreate_atomic_group
- Create an atomic transaction group from multiple transactions of types pay, axfer, acfg, appl, afrz or keyregsign_atomic_group
- Sign an atomic transaction groupsubmit_atomic_group
- Submit a signed atomic transaction group to the Algorand networksend_raw_transaction
- Submit signed transactions to the Algorand networksimulate_raw_transactions
- Simulate raw transactionssimulate_transactions
- Simulate encoded transactions
create_asset
- Create a new Algorand Standard Asset (ASA)asset_optin
- Opt-in to an Algorand Standard Asset (ASA)transfer_asset
- Transfer an Algorand Standard Asset (ASA)
create_application
- Create a new smart contract application on Algorandupdate_application
- Update an existing smart contract applicationdelete_application
- Delete an existing smart contract applicationcloseout_application
- Close out from an Algorand applicationclear_application
- Clear state for an Algorand applicationcall_application
- Call a smart contract application on Algorandoptin_application
- Opt-in to an Algorand application
compile_teal
- Compile TEAL source codedisassemble_teal
- Disassemble TEAL bytecode into source code
generate_algorand_uri
- Generate a URI following the ARC-26 specification
api_algod_get_account_info
- Get current account balance, assets, and auth address from algodapi_algod_get_account_application_info
- Get account-specific application informationapi_algod_get_account_asset_info
- Get account-specific asset informationapi_algod_get_application_info
- Get application details from algodapi_algod_get_application_box_value
- Get application box contentsapi_algod_get_application_boxes
- Get all application boxesapi_algod_get_application_state
- Get application global stateapi_algod_get_asset_info
- Get asset details from algodapi_algod_get_asset_holding
- Get asset holding information for an accountasset_verification_status
- Get the verification status of an Algorand asset from Pera Walletasset_details_info
- Get detailed information about an Algorand asset from Pera Walletapi_algod_get_transaction_info
- Get transaction details by transaction IDapi_algod_get_pending_transactions
- Get pending transactions from algod mempool
api_indexer_lookup_account_by_id
- Get account information from indexerapi_indexer_lookup_account_assets
- Get account assetsapi_indexer_lookup_account_app_local_states
- Get account application local statesapi_indexer_lookup_account_created_applications
- Get applications created by an accountapi_indexer_search_for_accounts
- Search for accounts with various criteriaapi_indexer_lookup_applications
- Get application information from indexerapi_indexer_lookup_application_logs
- Get application log messagesapi_indexer_search_for_applications
- Search for applications with various criteriaapi_indexer_lookup_application_box
- Get application box by nameapi_indexer_lookup_application_boxes
- Get all application boxesapi_indexer_lookup_asset_by_id
- Get asset information from indexerapi_indexer_lookup_asset_balances
- Get accounts that hold a specific assetapi_indexer_search_for_assets
- Search for assets with various criteriaapi_indexer_lookup_transaction_by_id
- Get transaction details from indexerapi_indexer_lookup_account_transactions
- Get transactions related to an accountapi_indexer_search_for_transactions
- Search for transactions with various criteriaapi_indexer_search
- Search the Algorand indexer for accounts, transactions, assets, or applications
api_nfd_get_nfd
- Get NFD domain information by nameapi_nfd_get_nfds_for_address
- Get all NFD domains owned by an addressapi_nfd_get_nfd_activity
- Get activity for an NFD domainapi_nfd_get_nfd_analytics
- Get analytics for an NFD domainapi_nfd_browse_nfds
- Browse NFD domains with filtering optionsapi_nfd_search_nfds
- Search for NFD domains
api_request
- Make a request to an external APIalgorand_mcp_guide
- Access comprehensive guide for using Algorand Remote MCPget_knowledge_doc
- Get markdown content for specified knowledge documentslist_knowledge_docs
- List available knowledge documents by category
algorand://wallet/publickey
- Wallet Account Public Keyalgorand://wallet/address
- Wallet Account Addressalgorand://wallet/account
- Wallet Account Informationalgorand://wallet/assets
- Wallet Account Assets
algorand://knowledge/taxonomy
- Algorand Knowledge Full Taxonomyalgorand://knowledge/taxonomy/arcs
- Algorand Request for Commentsalgorand://knowledge/taxonomy/sdks
- Software Development Kitsalgorand://knowledge/taxonomy/algokit
- AlgoKitalgorand://knowledge/taxonomy/algokit-utils
- AlgoKit Utilsalgorand://knowledge/taxonomy/tealscript
- TEALScriptalgorand://knowledge/taxonomy/puya
- Puyaalgorand://knowledge/taxonomy/liquid-auth
- Liquid Authalgorand://knowledge/taxonomy/python
- Python Developmentalgorand://knowledge/taxonomy/developers
- Developer Documentationalgorand://knowledge/taxonomy/clis
- CLI Toolsalgorand://knowledge/taxonomy/nodes
- Node Managementalgorand://knowledge/taxonomy/details
- Developer Details
algorand://remote-mcp-guide
- Algorand MCP Guide