Algorand Remote MCP for interacting with the Algorand blockchain. Use algorand_mcp_skill tool at start of each session to learn how to interact and operate Algorand Remote MCP.
The server provides 12 tools with generally clear names and reasonable descriptions. Most tools follow verb_noun naming conventions (haystack_get_swap_quote, algod_get_application_info, indexer_lookup_application_logs). However, there are significant gaps in schema completeness, parameter descriptions lack depth, and output schemas are not documented. Parameter descriptions are present but often terse (20-40 chars). Error handling guidance is absent, tools document what they do but not what can go wrong or how to recover. The Haystack swap tools are well-described with detailed domain context (DEX aggregation, LST protocols, base units), but algod and indexer tools have minimal descriptions (10-20 chars). The server does accept human-friendly identifiers (Algorand addresses as strings) but lacks guidance on format validation or error cases.
Get application box contents from algod
Get all application boxes from algod
Get application details from algod
Get application global state from algod
Get NFD domain information by name
Get all NFD names owned by an Algorand address
Execute an optimized token swap via Haystack Router — gets the best route across multiple DEXes (Tinyman V2, Pact, Folks) and LST protocols, then signs with the vault wallet and submits. This is an all-in-one tool: quote → sign → submit → confirm. All amounts are in base units.
Algod tools (algod_get_application_*) have minimal descriptions (10-25 chars). Descriptions like 'Get application details from algod' and 'Get application box contents from algod' lack context about when to use them, what they return structurally, or prerequisites.
Output schemas are not documented for any tool. The rubric requires documenting what fields the response contains so LLMs can plan downstream calls and extract data. Without this, agents cannot compose tools effectively or know what to expect from results.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | 1.12.1+ | v1 |
Get an optimized swap quote from Haystack Router — a DEX aggregator that finds the best swap route across multiple Algorand DEXes (Tinyman V2, Pact, Folks) and LST protocols (tALGO, xALGO). Returns the best-price quote with route details, USD values, and price impact. All amounts are in base units (e.g., 1000000 = 1 ALGO).
Check if an Algorand address needs to opt into an asset before swapping. Returns true if opt-in is needed. Always returns false for ALGO (ASA 0).
Get application log messages
Search the Algorand indexer for accounts, transactions, assets, or applications
Search for applications with various criteria
No error handling guidance. Tools do not describe what errors can occur (e.g., 'invalid asset ID', 'address not found', 'network timeout'), how to classify them (retryable vs. fatal), or what recovery actions to take. This forces LLMs to guess when a call fails.
indexer_search has an ambiguous name and design. The tool accepts 'type' enum (accounts|transactions|assets|applications) and a generic 'query' parameter as an object with no schema details. This violates the constraint-based input pattern, 'query' should be strongly typed or split by resource type.
Parameter descriptions are often vague or lack format guidance. For example, algod tools accept 'appId' (type number) but do not clarify valid ranges (e.g., '0 < appId < 2^64'). Algorand addresses are strings but no regex pattern or length constraint is documented.
haystack_execute_swap is IRREVERSIBLE (described as 'all-in-one: quote → sign → submit → confirm') but lacks a dry-run or confirmation mechanism. The rubric requires irreversible operations to support confirmation steps so agents do not accidentally execute swaps.
Tools returning paginated results (indexer_lookup_application_logs, indexer_search_for_applications, api_nfd_get_nfds_for_address) accept 'limit' and 'offset'/'nextToken' but do not document total count or whether there are more results. Without explicit pagination signals, agents cannot reliably iterate through all results.