UluAlgorandMCP
Provides ecosystem knowledge and interpretation for the Algorand blockchain, including protocol discovery, application and asset identification, naming resolution, and protocol summaries.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@UluAlgorandMCP identify app 1002541853"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
UluAlgorandMCP
Algorand ecosystem MCP server. Returns meaning, not raw chain data.
What It Is
UluAlgorandMCP is an Algorand-specific knowledge and interpretation layer exposed as an MCP (Model Context Protocol) server. It provides protocol discovery, application identification, asset identification, naming resolution, and protocol summaries for the Algorand ecosystem.
Related MCP server: UluVoiMCP
What It Does
Identifies known Algorand applications by app ID (protocol, role, purpose)
Identifies known Algorand assets by asset ID (symbol, type, protocol association)
Lists and describes Algorand protocols (DEXes, lending, naming, bridges, wallets)
Resolves .algo names from a curated static registry
Provides agent-friendly protocol summaries
What It Does Not Do
Generic block/round lookup
Account balance or state queries
Transaction building, signing, or broadcasting
Custody or key management
Real-time on-chain data fetching
Those responsibilities belong to other layers:
UluCoreMCP → chain primitives (blocks, accounts, transactions)
UluAlgorandMCP → Algorand ecosystem meaning (this server)
UluWalletMCP → signing and custody
UluBroadcastMCP → transaction submissionCore returns facts. Algorand returns meaning.
How It Differs From UluCoreMCP
UluCoreMCP provides low-level chain primitives: look up a block, query an account, fetch a transaction. It is network-aware and returns raw chain data.
UluAlgorandMCP sits above that layer. It answers questions like "what is application 1002541853?" (Tinyman V2 Router) or "what protocols exist in the Algorand ecosystem?" without requiring any chain calls.
How It Mirrors UluVoiMCP
UluAlgorandMCP is the Algorand-specific sibling of UluVoiMCP. Both share:
The same EmptyMCP scaffold
The same project structure (
data/,lib/,tools/,index.js)The same tool surface (10 tools across 3 modules)
The same registry-backed architecture
The same error conventions
UluVoiMCP covers the Voi ecosystem. UluAlgorandMCP covers Algorand.
Relationship to algorand-mcp
GoPlausible/algorand-mcp was used as a reference for understanding which Algorand ecosystem capabilities exist and which protocols are worth covering. However, UluAlgorandMCP does not replicate its architecture. algorand-mcp combines wallet, signing, submission, indexer access, and ecosystem integrations in one server. UluAlgorandMCP is deliberately smaller, focused only on the ecosystem knowledge layer.
Setup
npm installUsage
node index.jsAdding to a Client
{
"mcpServers": {
"ulu-algorand-mcp": {
"command": "node",
"args": ["/absolute/path/to/UluAlgorandMCP/index.js"]
}
}
}Tools
Protocol Discovery
Tool | Description |
| List all known Algorand protocols. Optional |
| Get full metadata for a protocol by ID. |
| List known contracts and assets for a protocol. |
| Get a concise agent-friendly protocol summary. |
Application & Asset Identification
Tool | Description |
| Identify an Algorand app by ID — returns protocol, role, type. |
| Identify an Algorand asset by ID — returns symbol, type, tags. |
| Get the known role of an Algorand application. |
Naming Resolution
Tool | Description |
| Resolve a .algo name from the static registry. |
| Look up names associated with an address. |
| Search the name registry by substring pattern. |
Example Requests and Responses
List all DEX protocols
Request:
{ "type": "dex" }Response:
{
"protocols": [
{
"id": "tinyman",
"name": "Tinyman",
"type": "dex",
"description": "Leading Algorand DEX using constant-product AMM pools...",
"tags": ["defi", "amm", "swap", "liquidity"]
}
]
}Identify an application
Request:
{ "appId": 1002541853 }Response:
{
"appId": 1002541853,
"recognized": true,
"name": "Tinyman V2 Router",
"protocol": "tinyman",
"protocolName": "Tinyman",
"role": "amm-router",
"type": "dex",
"description": "Tinyman V2 AMM router and validator..."
}Identify an asset
Request:
{ "assetId": 31566704 }Response:
{
"assetId": 31566704,
"recognized": true,
"name": "USDC",
"symbol": "USDC",
"decimals": 6,
"type": "stablecoin",
"protocol": null,
"protocolName": null,
"tags": ["stablecoin", "circle", "usd"],
"description": "USD Coin issued by Circle. The primary USD stablecoin on Algorand."
}Resolve a name
Request:
{ "name": "tinyman.algo" }Response:
{
"name": "tinyman.algo",
"description": "Tinyman — leading Algorand DEX",
"source": "static-registry"
}Identify an unknown application
Request:
{ "appId": 999999999 }Response:
{
"appId": 999999999,
"recognized": false,
"message": "Application 999999999 is not in the known Algorand registry."
}Project Structure
index.js Server entry point
package.json Dependencies and metadata
data/
protocols.json Curated protocol registry
applications.json Known application IDs and roles
assets.json Known asset IDs and metadata
names.json Well-known .algo names
lib/
errors.js Tool result/error helpers
registry.js Data loading and lookup functions
tools/
protocols.js get_protocols, get_protocol, get_protocol_contracts, get_protocol_summary
identify.js identify_application, identify_asset, get_contract_role
names.js resolve_name, reverse_resolve_address, search_namesInitial Registry Coverage
The v1 registry includes curated entries for:
DEX/AMM: Tinyman, Pact, HumbleSwap, CompX
Lending: Folks Finance
Naming: NFDomains
Analytics: Vestige
Bridge: Algomint, Aramid Bridge
Liquid Staking: Cometa
Real World Assets: Lofty
Oracle: Goracle
Wallets: Pera, Defly
The registry is static and curated. Dynamic enrichment can be added in future versions.
Constraints
JavaScript only, no TypeScript
No bundlers or build systems
Lightweight, stdio MCP server
Extended from the EmptyMCP scaffold
Structurally consistent with all Ulu MCP servers
Available Tools
10 toolsget_contract_roleA
Get the known protocol role for an Algorand application (e.g. amm-router, name-registry, lending-pool)
Inputs: appId (required).
get_protocolA
Get detailed information about a specific Algorand protocol by ID
Inputs: protocolId (required).
get_protocol_contractsA
List all known application contracts for an Algorand protocol
Inputs: protocolId (required).
get_protocolsA
List all known Algorand protocols with type and description
Inputs: type.
get_protocol_summaryA
Get a concise agent-friendly summary of an Algorand protocol including its purpose, contracts, and assets
Inputs: protocolId (required).
identify_applicationA
Identify an Algorand application by ID — returns protocol, role, type, and description if known
Inputs: appId (required).
identify_assetA
Identify an Algorand asset by ID — returns name, symbol, type, protocol association, and tags if known
Inputs: assetId (required).
resolve_nameA
Resolve an Algorand name (e.g. 'example.algo') to its address and metadata from the static registry. For live resolution, use UluCoreMCP or NFDomains API.
Inputs: name (required).
reverse_resolve_addressA
Look up well-known Algorand names associated with an address from the static registry. For live resolution, use UluCoreMCP or NFDomains API.
Inputs: address (required).
search_namesA
Search the static Algorand name registry by pattern. Returns matching .algo names.
Inputs: pattern (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Tools are mostly distinct: protocol operations are split into list, get, contracts, and summary, and name tools are clearly separated. However, identify_application and get_contract_role overlap since identify_application already returns the role, which could cause misselection.
All tools follow a consistent verb_noun pattern with snake_case, using verbs like get, identify, resolve, and search. The convention is uniform and predictable across the entire set.
10 tools is well within the ideal 3-15 range and fits the server's purpose of providing Algorand protocol, contract, asset, and name lookups. Each tool covers a distinct aspect without unnecessary bloat.
The surface covers protocol discovery, application/asset identification, contract roles, and name resolution (forward, reverse, search), which is comprehensive for a read-only static registry. Minor gaps exist, such as no direct list-all-assets or list-all-applications, but these are not critical dead ends.
Maintenance
Related MCP Connectors
MCP server for OnceAsk, the AI-native current-address layer for people and agents.
Hosted MCP server for live public-data APIs and Skills for AI agents.
Tenzro Network MCP server: wallet, identity, payments, inference, staking, bridges, verification.
Hosted AgentLux MCP server for marketplace, identity, creator, services, and social flows.
Related MCP Servers
- AlicenseCqualityCmaintenanceA comprehensive MCP server for tooling interactions(40+) and resource accessibility(60+) with Algorand blockchain, plus many useful prompts.100627 npm44MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides a semantic layer for the Voi ecosystem, translating raw blockchain data into human-readable information about protocols, applications, and assets. It enables users to identify contract roles, resolve enVoi names, and explore curated registry data for ecosystem services like HumbleSwap and Nautilus.10MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server providing 50+ tools for Algorand blockchain development, including account management, asset operations, smart contracts, API integration, swap functionality, and advanced transaction capabilities.41 npmMIT
- AlicenseAqualityDmaintenanceAlgorand ecosystem knowledge layer as an MCP server, enabling identification of applications and assets, protocol discovery, name resolution, and protocol summaries without on-chain queries.10MIT