npm version
License: MIT
Overview
Model context protocol or MCP, is an open protocol that standardizes how applications provide context to LLMs. MCP provides specification standards to give LLMs tools, resources and instructions to be more useful and effective.
Screenshot 2025-03-15 at 17 47 54
MCP Github contains more information and different tools and specifications plus documentation of MCP.
This repository is a Model Context Protocol (MCP) implementation for Algorand blockchain interactions. The implementation consists of:
- (PRODUCTION) A server package for blockchain interactions (Node.js only)
- (WIP) A client package for wallet management and transaction signing (supports both browser and Node.js)
š¦ Packages:
- Algorand MCP Server - Algorand MCP server full implementation.
- Algorand MCP Client - Algorand MCP Client for client side Wallet management and transaction signing, as well as integration by other Agent hosts.
š¦ :
- **Algorand MCP Server on ** - Algorand MCP server implementation via .
IMPORTANT: The client package is still a work in progress and is not yet fully functional. The server package, however, is fully operational and can be used for to integrate Algorand blockchain to any agent system that supports Model Context Protocol (MCP).
Features
- Complete Algorand blockchain interaction capabilities
- Extensive wallet management system
- Comprehensive transaction handling
- Rich blockchain state querying
- Built-in security features
- Support for Claude Desktop and Cursor integration
Requirements
- Node.js v23.6.1 or later
- npm v10.2.4 or later
Installation
Via NPM (for developers who wish to run their own instances)
# Install both client and server packages
npm install algorand-mcp
Via (For all users)
Go to Algorand MCP Server on and select your AI tool and platform. Copy either command or copy depending on if you are using the command or MCP config JSON to connect to MCP Server. Click connect to start!
Screenshot 2025-03-15 at 00 50 12
Using command
First let's copy the command from (Please make sure your tool of choice and platform are selected correctly!)
Screenshot 2025-03-15 at 14 45 24
Then paste that in the command field of New MCP server dialog
Screenshot 2025-03-15 at 14 51 06
Then The MCP server is detected and loading tools and resources
Screenshot 2025-03-15 at 14 51 31
And it is good to go!
Screenshot 2025-03-15 at 14 51 43
Using settings JSON
Copy the JSON from
Screenshot 2025-03-15 at 15 09 04
Now open MCP settings in your tool of choice (Claud Desktop, Cursor,...) and Paste the copied JSON there as a whole and save the file.
You are good to go!
6z7Q0fuH (1)
Important note for Windows OS Users
Please not that if you receive "Server Closed" or "Connection Closed" Then you need to try and change the cmd
command with C:\Windows\System32\cmd.exe
as suggested by !
Screenshot 2025-03-15 at 15 51 13
Important note for Cursor Users
Cursor does not yet support the Resources
Capability of MCP protocol! They are working on it.
MCP Server Feature support matrix
Client | [Resources] | [Prompts] | [Tools] | [Sampling] | Roots | Notes |
---|
[Claude Desktop App][Claude] | ā
| ā
| ā
| ā | ā | Full support for all MCP features |
[5ire][5ire] | ā | ā | ā
| ā | ā | Supports tools. |
[BeeAI Framework][BeeAI Framework] | ā | ā | ā
| ā | ā | Supports tools in agentic workflows. |
[Cline][Cline] | ā
| ā | ā
| ā | ā | Supports tools and resources. |
[Continue][Continue] | ā
| ā
| ā
| ā | ā | Full support for all MCP features |
[Cursor][Cursor] | ā | ā | ā
| ā | ā | Supports tools. |
[Emacs Mcp][Mcp.el] | ā | ā | ā
| ā | ā | Supports tools in Emacs. |
[Firebase Genkit][Genkit] | ā ļø | ā
| ā
| ā | ā | Supports resource list and lookup through tools. |
[GenAIScript][GenAIScript] | ā | ā | ā
| ā | ā | Supports tools. |
[Goose][Goose] | ā | ā | ā
| ā | ā | Supports tools. |
[LibreChat][LibreChat] | ā | ā | ā
| ā | ā | Supports tools for Agents |
[mcp-agent][mcp-agent] | ā | ā | ā
| ā ļø | ā | Supports tools, server connection management, and agent workflows. |
[oterm][oterm] | ā | ā | ā
| ā | ā | Supports tools. |
[Roo Code][Roo Code] | ā
| ā | ā
| ā | ā | Supports tools and resources. |
[Sourcegraph Cody][Cody] | ā
| ā | ā | ā | ā | Supports resources through OpenCTX |
[Superinterface][Superinterface] | ā | ā | ā
| ā | ā | Supports tools |
[TheiaAI/TheiaIDE][TheiaAI/TheiaIDE] | ā | ā | ā
| ā | ā | Supports tools for Agents in Theia AI and the AI-powered Theia IDE |
[Windsurf Editor][Windsurf] | ā | ā | ā
| ā | ā | Supports tools with AI Flow for collaborative development. |
[Zed][Zed] | ā | ā
| ā | ā | ā | Prompts appear as slash commands |
[SpinAI][SpinAI] | ā | ā | ā
| ā | ā | Supports tools for Typescript AI Agents |
[OpenSumi][OpenSumi] | ā | ā | ā
| ā | ā | Supports tools in OpenSumi |
[Daydreams Agents][Daydreams] | ā
| ā
| ā
| ā | ā | Support for drop in Servers to Daydreams agents |
Project Architecture
The project follows a modular architecture with two main packages:
- Server Package (
@algorand-mcp/server
)
- Provides MCP tools and resources
- Manages blockchain interactions
- Handles transaction creation and submission
- Offers comprehensive blockchain queries
- Client Package (
@algorand-mcp/client
)
- Handles wallet connections and transaction signing
- Supports both local and external wallets
- Universal compatibility (browser/Node.js)
- Secure credential management
- Still work in progress (Server works irrelevant to client status)
Project Structure
algorand-mcp/
āāā packages/
ā āāā client/ # Client Package
ā ā āāā src/
ā ā ā āāā index.ts # Client entry point and wallet management
ā ā ā āāā LocalWallet.ts # Local wallet implementation
ā ā āāā package.json
ā ā āāā tsconfig.json
ā āāā server/ # Server Package
ā āāā src/
ā ā āāā resources/ # MCP Resources
ā ā ā āāā algod/ # Real-time blockchain state
ā ā ā āāā indexer/ # Historical blockchain data
ā ā āāā tools/ # MCP Tools
ā ā ā āāā accountManager.ts # Account operations
ā ā ā āāā algodManager.ts # Node interactions
ā ā ā āāā utilityManager.ts # Utility functions
ā ā ā āāā transactionManager/ # Transaction handling
ā ā ā āāā accountTransactions.ts
ā ā ā āāā assetTransactions.ts
ā ā ā āāā generalTransaction.ts
ā ā ā āāā appTransactions/
ā ā āāā env.ts # Environment configuration
ā ā āāā index.ts # Server entry point
ā āāā package.json
ā āāā tsconfig.json
āāā package.json # Root package file
āāā tsconfig.json # Root TypeScript config
Core Functionalities
Client Features
- Local wallet with secure storage
- External wallet support (Pera, Defly, Daffi)
- Transaction signing
- Session management
- Universal ES module support
Server Features
- Account management
- Asset operations
- Application interactions
- Transaction creation and submission
- Blockchain state queries
- Comprehensive utility functions
The Algorand MCP implementation provides 100+ tools and resources for blockchain interaction. For detailed documentation and usage instructions, please refer to the server package README.
Resource Tools
- resource_tool_get_account_info: Get current account balance, assets, and auth address from algod
- resource_tool_get_account_application_info: Get account-specific application information from algod
- resource_tool_get_account_asset_info: Get account-specific asset information from algod
- resource_tool_get_application_by_id: Get application information
- resource_tool_get_application_box: Get application box by name
- resource_tool_get_application_boxes: Get all application boxes
- resource_tool_get_asset_by_id: Get current asset information from algod
- resource_tool_get_pending_transaction: Get pending transaction information
- resource_tool_get_pending_transactions_by_address: Get pending transactions for an address
- resource_tool_get_pending_transactions: Get all pending transactions
- resource_tool_get_transaction_params: Get suggested transaction parameters
- resource_tool_get_node_status: Get current node status
- resource_tool_get_node_status_after_block: Get node status after a specific round
- resource_tool_lookup_account_by_id: Get account information from indexer
- resource_tool_lookup_account_transactions: Get account transaction history
- resource_tool_lookup_account_assets: Get account assets
- resource_tool_lookup_account_app_local_states: Get account application local states
- resource_tool_lookup_account_created_applications: Get applications created by this account
- resource_tool_lookup_applications: Get application information from indexer
- resource_tool_lookup_application_logs: Get application log messages
- resource_tool_lookup_application_box: Get application box by name
- resource_tool_lookup_application_boxes: Get all application boxes
- resource_tool_lookup_asset_by_id: Get asset information and configuration
- resource_tool_lookup_asset_balances: Get accounts holding this asset and their balances
- resource_tool_lookup_asset_transactions: Get transactions involving this asset
- resource_tool_lookup_transaction_by_id: Get transaction information by ID
- resource_tool_search_accounts: Search for accounts with various criteria
- resource_tool_search_for_applications: Search for applications with various criteria
- resource_tool_search_for_assets: Search for assets with various criteria
- resource_tool_search_for_transactions: Search for transactions with various criteria
Account Management Tools
- create_account
- rekey_account
- mnemonic_to_mdk
- mdk_to_mnemonic
- secret_key_to_mnemonic
- mnemonic_to_secret_key
- seed_from_mnemonic
- mnemonic_from_seed
- validate_address
- encode_address
- decode_address
Application Tools
- 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
- get_application_address
Asset Tools
- make_asset_create_txn
- make_asset_config_txn
- make_asset_destroy_txn
- make_asset_freeze_txn
- make_asset_transfer_txn
Transaction Tools
- make_payment_txn
- assign_group_id
- sign_transaction
- sign_bytes
- send_raw_transaction
- simulate_raw_transactions
Key Management Tools
- generate_key_pair
- derive_key
Utility Tools
- encode_obj
- decode_obj
- bytes_to_bigint
- bigint_to_bytes
- encode_uint64
- decode_uint64
- compile_teal
- disassemble_teal
Available Resources (30)
Algod Resources
- accounts/{address}
- accounts/{address}/application/{app-id}
- accounts/{address}/asset/{asset-id}
- applications/{app-id}
- applications/{app-id}/box/{name}
- applications/{app-id}/boxes
- assets/{asset-id}
- transactions/pending/{txid}
- accounts/{address}/transactions/pending
- transactions/pending
- transactions/params
- status
Block Resources
- blocks/latest
- blocks/{round}
- blocks/{round}/transactions
- indexer/blocks/{round}
Health Resources
Genesis Resources
Network Resources
Supply Resources
- ledger/supply
- indexer/supply
Participation Resources
- participation
- participation/keys
- participation/keys/{id}
Fee Resources
- transactions/fee
- indexer/fee-distribution
Protocol Resources
- protocol
- indexer/protocol-upgrades
Node Resources
Compile Resources
- compile/teal
- compile/teal/disassemble
- compile/teal/dryrun
Debug Resources
- debug/accounts/{address}
- debug/txns/{txid}
- debug/blocks/{round}
- debug/ledger
Indexer Resources
- indexer/accounts/{address}
- indexer/accounts/{address}/transactions
- indexer/accounts/{address}/apps-local-state
- indexer/accounts/{address}/created-applications
- indexer/applications/{app-id}
- indexer/applications/{app-id}/logs
- indexer/applications/{app-id}/box/{name}
- indexer/applications/{app-id}/boxes
- indexer/applications
- indexer/assets/{asset-id}
- indexer/assets/{asset-id}/balances
- indexer/assets/{asset-id}/transactions
- indexer/assets/{asset-id}/balances/{address}
- indexer/assets/{asset-id}/transactions/{txid}
- indexer/assets
- indexer/transactions/{txid}
- indexer/transactions
Note: The server path in the configuration should be the absolute path to your compiled server's index.js file.
Dependencies
- algosdk: Algorand JavaScript SDK
- @perawallet/connect: Pera Wallet connector
- @blockshake/defly-connect: Defly Wallet connector
- @daffiwallet/connect: Daffi Wallet connector
License
MIT