algorand-mcp
by: GoPlausible
Algorand Model Context Protocol (Server & Client)
πOverview
Purpose: To standardize the interaction between applications and large language models (LLMs) through the Model Context Protocol (MCP) specifically tailored for Algorand blockchain interactions.
Overview: The Algorand MCP implementation provides an open protocol that allows applications to deliver contextual information to LLMs, enhancing their usability and performance. This repository contains both a server and a client package, designed for efficient interactions with the Algorand blockchain.
Key Features:
-
Complete Algorand Blockchain Interaction Capabilities: Provides robust tools for managing blockchain interactions, including transaction creation and submission, and extensive querying of blockchain state.
-
Extensive Wallet Management System: Facilitates efficient wallet management and secure transaction signing, supporting both local and external wallets.
-
Comprehensive Transaction Handling: Streamlines the process for creating, signing, and submitting transactions while ensuring a standardized response format.
-
Rich Blockchain State Querying: Offers utilities for querying real-time and historical blockchain data, utilizing built-in resource tools for enhanced functionality.
-
Built-in Security Features: Ensures secure handling of credentials and wallet information, crucial for protecting user assets.
-
Support for Claude Desktop and Cursor Integration: Compatible with popular client-side applications, ensuring widespread usability across platforms.
Algorand MCP Implementation
Overview
Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to large language models (LLMs). MCP defines specification standards to give LLMs tools, resources, and instructions to enhance their usefulness and effectiveness.
This repository implements MCP for Algorand blockchain interactions. It includes:
- A production-ready server package for blockchain interactions (Node.js only)
- A work-in-progress client package for wallet management and transaction signing (supports browser and Node.js)
Packages in this repository:
- Algorand MCP Server - Full Algorand MCP server implementation.
- Algorand MCP Client - Client-side wallet management and transaction signing, for other agent hosts integration.
NPM:
Smithery:
Features
- Complete Algorand documentation integration including ARCs, SDKs, and tools
- Comprehensive blockchain interaction capabilities
- Extensive wallet management and 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
npm install algorand-mcp
Via Smithery
For Claude Desktop:
npx -y @smithery/cli@latest install @GoPlausible/algorand-mcp --client claude --config "{\"NFD_API_KEY\":\"\",\"NFD_API_URL\":\"https://api.nf.domains\",\"ALGORAND_ALGOD\":\"https://testnet-api.algonode.cloud\",\"ALGORAND_TOKEN\":\"\",\"ITEMS_PER_PAGE\":\"10\",\"VESTIGE_API_KEY\":\"\",\"VESTIGE_API_URL\":\"https://api.vestigelabs.org\",\"ALGORAND_INDEXER\":\"https://testnet-idx.algonode.cloud\",\"ALGORAND_NETWORK\":\"testnet\",\"ALGORAND_ALGOD_API\":\"https://testnet-api.algonode.cloud/v2\",\"ALGORAND_ALGOD_PORT\":\"\",\"ALGORAND_INDEXER_API\":\"https://testnet-idx.algonode.cloud/v2\",\"ALGORAND_INDEXER_PORT\":\"\"}"
For Cursor:
npx -y @smithery/cli@latest install @GoPlausible/algorand-mcp --client cursor --config "{\"NFD_API_KEY\":\"\",\"NFD_API_URL\":\"https://api.nf.domains\",\"ALGORAND_ALGOD\":\"https://testnet-api.algonode.cloud\",\"ALGORAND_TOKEN\":\"\",\"ITEMS_PER_PAGE\":\"10\",\"VESTIGE_API_KEY\":\"\",\"VESTIGE_API_URL\":\"https://api.vestigelabs.org\",\"ALGORAND_INDEXER\":\"https://testnet-idx.algonode.cloud\",\"ALGORAND_NETWORK\":\"testnet\",\"ALGORAND_ALGOD_API\":\"https://testnet-api.algonode.cloud/v2\",\"ALGORAND_ALGOD_PORT\":\"\",\"ALGORAND_INDEXER_API\":\"https://testnet-idx.algonode.cloud/v2\",\"ALGORAND_INDEXER_PORT\":\"\"}"
IMPORTANT: When using Smithery UI to copy the command, set ITEMS_PER_PAGE
before clicking connect to ensure all environment variables are included.
Project Architecture
The project has a modular architecture with two main packages:
-
Server Package (
@algorand-mcp/server
)- MCP tools and resources
- Blockchain interactions
- Transaction creation/submission
- Blockchain queries
-
Client Package (
@algorand-mcp/client
)- Wallet connections and transaction signing
- Supports local and external wallets
- Cross-platform (browser/Node.js)
- Secure credential management
- Work in progress (server package operates independently)
Project Structure
algorand-mcp/
βββ packages/
β βββ client/ # Client Package
β βββ server/ # Server Package with resources, tools, and API management
βββ package.json # Root package file
βββ tsconfig.json # Root TypeScript configuration
Core Functionalities
Server Features
- Account management and asset operations
- Application interactions
- Transaction creation and submission
- Blockchain state queries with pagination
- NFDomains and Vestige DeFi analytics integration
- Tinyman AMM and Ultrade DEX integration
- Knowledge taxonomy resources with comprehensive Algorand documentation
Client Features (WIP)
- Local wallet with secure storage
- External wallet support (Pera, Defly, Daffi)
- Transaction signing and session management
- Universal ES module support
Response Format
Successful responses:
{
"data": {
// Response data here
},
"metadata": { // Only for paginated responses
"totalItems": number,
"itemsPerPage": number,
"currentPage": number,
"totalPages": number,
"hasNextPage": boolean,
"pageToken": string,
"arrayField": string // Name of paginated array field
}
}
Error responses:
{
"error": {
"code": string,
"message": string
}
}
Available Tools and Resources
The implementation includes 125 tools and resources:
- 40 base tools for account, asset, application, and transaction management
- 30 API tools covering algod and indexer APIs
- 6 NFDomains tools for name services
- 28 Vestige tools for DeFi analytics
- 9 Tinyman tools for automated market maker (AMM) interactions
- 12 Ultrade tools for decentralized exchange (DEX) functionality
API Tools
Algod API Tools
- Get account info, application data, asset data, and pending transactions
- Retrieve transaction parameters, node status, and application boxes
Indexer API Tools
- Lookup accounts, assets, applications, and transactions with extensive search capabilities
NFDomains API Tools
- Fetch NFD information, activity, analytics, and browse/search NFDs
Vestige API Tools
Includes view, swap, and currency tools to retrieve data about:
- Networks, protocols, assets, pools, vaults, balances, swaps, and currency prices
- Best swap data and aggregator statistics
Tinyman API Tools
- Access pool info, analytics, quotes for liquidity and swaps, and validator opt-in/out quotes
Ultrade API Tools
- Wallet management (sign in, keys, trades, withdrawals)
- Market data (symbols, prices, order book, trades, history, fees)
- Order management (create, cancel, fetch)
- System information (time, maintenance, version)
Account Management Tools
- Create accounts, validate and encode/decode addresses, rekey accounts
Application Tools
- Create, update, delete, opt-in/out, clear, and call applications
- Compile and disassemble TEAL code
Asset Tools
- Create, configure, destroy, freeze, and transfer assets
Transaction Tools
- Submit/send transactions, simulate transactions, create payment transactions, sign, and group transactions
Key Management Tools
- Mnemonic and key conversions, seeds generation, and signing bytes
Utility Tools
- Convert between bytes and BigInt, encode/decode uint64, generate Algorand URIs and QR codes per ARC-26
Dependencies
- algosdk (Algorand JavaScript SDK)
- @perawallet/connect (Pera Wallet connector)
- @blockshake/defly-connect (Defly Wallet connector)
- @daffiwallet/connect (Daffi Wallet connector)
License
MIT