Production-grade MCP server for Cardano blockchain development
Strong foundation with 15 well-named tools covering Cardano blockchain operations. All tools have descriptions (avg 180 chars, within baseline 194). Input schemas present for all tools with type definitions and parameter descriptions. However, output schemas are not documented in the source code, critical for LLM planning. Some parameter descriptions lack format/constraint details (e.g., 'asset' format in get_asset_info). Error handling guidance is minimal. Tool composition is sound (each does one thing), but some tools expose external service dependencies (Kupo, Yaci Store) without clear fallback patterns.
Explain the Cardano eUTxO (Extended Unspent Transaction Output) model. Essential context for building Cardano dApps — very different from Ethereum's account model. Covers: UTxO structure, spending rules, smart contract validators, datum/redeemer pattern, native assets, address types, and all encoding conventions.
Fetch all UTxOs (unspent transaction outputs) at a Cardano address. Returns lovelace amounts and native assets. Use this instead of 'get balance' — in Cardano there are no account balances, only UTxOs.
Get the Aiken smart contract language standard library quick reference. Covers: basic types, aiken/list, aiken/bytearray, aiken/math, cardano/transaction types, Value/assets API, validator syntax, and common patterns (signature check, output validation, validity range).
Fetch metadata, supply, and on-chain information for a Cardano native asset (fungible token or NFT). Supports CIP-25 and CIP-68 metadata standards. Asset format: policyId.hexAssetName (e.g. abc123.4d79546f6b656e)
Fetch details for a Cardano block by its hash. Returns slot number, epoch, transaction count, pool, and more.
Output schemas not documented in source code. LLMs cannot plan downstream tool calls or extract required fields without knowing response structure. Critical for tool chaining.
External service dependencies (Kupo, Yaci Store) exposed without fallback or graceful degradation. watch_address, query_kupo_matches, query_custom_indexer fail silently if services unavailable. No retry guidance or alternative paths documented.
Parameter format constraints not fully specified. get_asset_info accepts 'policyId.hexAssetName' but description shows two formats; validate_aiken_snippet's 'code' param lacks length/complexity bounds; query_custom_indexer's 'path' param lacks validation rules.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Get current Cardano network status: latest block, epoch, slot, and chain tip. Also shows which network this server is connected to (mainnet/preprod/preview) and the configured API endpoints. Use this as a sanity check that the server is working and connected to the right network.
Get the sync status and health of the local Kupo indexer. Returns the most recent checkpoint slot, the current node tip, and whether Kupo is fully synced. Use this to verify Kupo is running and check how far behind it is.
Fetch full details for a Cardano transaction including inputs, outputs, fees, metadata, and datum hashes. Use this to inspect what a transaction did and what UTxOs it consumed/produced.
Get a starter Aiken validator template. Templates include: simple_lock (PubKeyHash signature check), time_lock (POSIX timestamp validity), multisig (M-of-N threshold), vesting (cliff + cancellation), nft_mint (one-shot minting policy), and oracle_consumer (reference input oracle pattern). Each template includes inline comments explaining the pattern.
List Cardano CIP-1694 governance proposals, enriched with human-readable titles and abstracts fetched from CIP-100/108 IPFS metadata anchors. Filter by status (active/ratified/enacted/expired/dropped) or action type. Returns: proposal IDs, types, epoch info, deposit amounts, titles, and abstracts. For full vote tallies and outcome predictions use get_proposal_details.
Fetch the transaction history for a Cardano address using Koios. Returns transactions in reverse chronological order with block and slot info. Useful for auditing address activity or finding when tokens were received.
Passthrough query to a Yaci Store custom indexer REST API. Yaci Store provides advanced Cardano indexing with custom SQL queries, aggregate views, and historical data that Kupo doesn't support. Requires Yaci Store running locally (set YACI_STORE_URL env var, default: http://localhost:8080). See Yaci Store docs for available endpoints: https://github.com/bloxbean/yaci-store
Query all UTxOs matching a Kupo watch pattern. Returns UTxOs with value, datum hashes, script hashes, and creation/spend slots. Unspent UTxOs have spent_at = null. Pattern must be previously registered with watch_address (or Kupo configured to index it). Requires Kupo running locally (KUPO_URL env var).
Validate an Aiken smart contract snippet by running `aiken build`. Writes the snippet to a temp project and runs the real Aiken compiler. Returns type/parse errors, or 'ok' on success. Requires the `aiken` CLI to be installed (https://aiken-lang.org/installation-instructions).
Register an address or pattern with Kupo for UTxO watching. Kupo is a lightweight chain-follower that persists UTxO state across restarts. Patterns can be: a full bech32 address, a payment credential prefix, or '*' for all. Requires Kupo running locally (set KUPO_URL env var, default: http://localhost:1442). After registering, use query_kupo_matches to retrieve matching UTxOs.
Error handling guidance minimal. No recovery suggestions for common failures (invalid address format, missing Kupo, rate limits). Errors should guide LLM to next action (retry, lookup, ask user).
Tool composition: query_custom_indexer is a generic passthrough to Yaci Store REST API. This violates single-responsibility, it's a proxy, not a domain tool. Should wrap specific indexer queries (e.g., get_address_utxos_historical, get_token_holders) with validated schemas.