Indigo Protocol MCP

Indigo MCP MCP server for Indigo Protocol — exposes Indigo iAsset data, prices, and CDP/loan analytics to LLM agents via the Model Context Protocol.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Get Tvl: Get historical TVL data from DefiLlama
  • Get Apr Rewards: Get all APR reward records
  • Get Apr By Key: Get APR for a specific key

What data it sees

Do you need an account

No: the server works without sign-in

Indigo MCP

MCP server for Indigo Protocol — exposes Indigo iAsset data, prices, and CDP/loan analytics to LLM agents via the Model Context Protocol.

Features

  • Real-time iAsset prices (iUSD, iBTC, iETH, iSOL)
  • ADA and INDY token price feeds
  • CDP/loan browsing with pagination and filtering
  • Owner lookup by payment key hash or bech32 address
  • CDP health analysis with collateral ratio and liquidation risk status
  • Stability pool state and account queries
  • INDY staking positions and manager state
  • Protocol analytics: TVL, APR rewards, DEX yields, aggregated stats
  • Governance: protocol parameters, polls, temperature checks
  • Redemption order book and queue aggregation
  • DEX proxy: Steelswap swaps, Iris liquidity pools, Blockfrost balances
  • CDP liquidation, redemption, freeze, and merge operations
  • Leveraged CDP opening via LRP positions
  • LRP (Limit Redemption Protocol) position management
  • Oracle interest rate feeding and initialization
  • Stability pool request processing and cancellation
  • Staking reward distribution
  • Collector UTXOs, IPFS storage and retrieval

Quick Start

Install globally:

npm install -g @indigoprotocol/indigo-mcp

Or run directly with npx (no install needed):

npx @indigoprotocol/indigo-mcp

Docker

docker build -t indigo-mcp .
docker run -i indigo-mcp

HTTP Transport (Remote)

The server supports HTTP transport for remote/hosted deployments:

MCP_TRANSPORT=http PORT=3000 npx @indigoprotocol/indigo-mcp

This starts an HTTP server with:

  • POST /mcp — MCP endpoint (Streamable HTTP with SSE)
  • GET /health — Health check

Configuration

Note: BLOCKFROST_API_KEY is required for write operations (transaction building). Read-only tools work without it. Get a free key at blockfrost.io.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "indigo": {
      "command": "npx",
      "args": ["-y", "@indigoprotocol/indigo-mcp"],
      "env": {
        "INDEXER_URL": "https://analytics.indigoprotocol.io/api/v1",
        "BLOCKFROST_API_KEY": "your-blockfrost-project-id"
      }
    }
  }
}

Claude Code (CLI)

Add to ~/.claude/settings.json or .claude/settings.json in your project:

{
  "mcpServers": {
    "indigo": {
      "command": "npx",
      "args": ["-y", "@indigoprotocol/indigo-mcp"],
      "env": {
        "INDEXER_URL": "https://analytics.indigoprotocol.io/api/v1",
        "BLOCKFROST_API_KEY": "your-blockfrost-project-id"
      }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project-level):

{
  "mcpServers": {
    "indigo": {
      "command": "npx",
      "args": ["-y", "@indigoprotocol/indigo-mcp"],
      "env": {
        "INDEXER_URL": "https://analytics.indigoprotocol.io/api/v1",
        "BLOCKFROST_API_KEY": "your-blockfrost-project-id"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "indigo": {
      "command": "npx",
      "args": ["-y", "@indigoprotocol/indigo-mcp"],
      "env": {
        "INDEXER_URL": "https://analytics.indigoprotocol.io/api/v1",
        "BLOCKFROST_API_KEY": "your-blockfrost-project-id"
      }
    }
  }
}

Any MCP-Compatible Client

Run the server directly via stdio:

INDEXER_URL=https://analytics.indigoprotocol.io/api/v1 \
BLOCKFROST_API_KEY=your-blockfrost-project-id \
npx @indigoprotocol/indigo-mcp

Or install globally and reference the binary:

npm install -g @indigoprotocol/indigo-mcp
indigo-mcp

For any client that supports MCP over stdio, point it to the npx @indigoprotocol/indigo-mcp command with the environment variables above.

Environment Variables

  • INDEXER_URL — Indigo analytics API base URL (default: https://analytics.indigoprotocol.io/api/v1)
  • BLOCKFROST_API_KEY — Blockfrost project ID for transaction building (required for write ops)
  • CARDANO_NETWORK — Cardano network: mainnet, preprod, or preview (default: mainnet)
  • MCP_TRANSPORT — Transport mode: stdio or http (default: stdio)
  • PORT — HTTP server port when MCP_TRANSPORT=http (default: 3000)

Example Queries

When connected to an LLM agent, you can ask natural language questions like:

  • "What are the current prices of all Indigo iAssets?"
  • "What is the price of iUSD right now?"
  • "How much is ADA worth in USD?"
  • "Show me all iETH CDPs"
  • "What CDPs does this address own?" (paste a Cardano address)
  • "Analyze the health of my CDPs" (with your address or payment key hash)
  • "Are any of my positions at risk of liquidation?"
  • "Show me the current stability pool state"
  • "What are my stability pool deposits?" (with your address)
  • "How much INDY am I staking?" (with your address)
  • "What's the current TVL of Indigo?"
  • "What APR can I earn on iUSD stability pool?"
  • "What are the current governance protocol parameters?"
  • "Show me the iUSD redemption queue"
  • "Get a Steelswap estimate for swapping 100 ADA to iUSD"
  • "What are the current DEX yields for iAsset pairs?"
Server tool list (60)

Raw names from tools/list. Only developers need these.

get_tvlGet historical TVL data from DefiLlama
get_apr_rewardsGet all APR reward records
get_apr_by_keyGet APR for a specific key
get_dex_yieldsGet DEX farm yields for iAsset pairs
get_protocol_statsGet aggregated protocol statistics
get_assetsGet all Indigo iAssets with prices and interest data
get_assetGet details for a specific Indigo iAsset
get_asset_priceGet the current price for a specific Indigo iAsset
get_ada_priceGet the current ADA price in USD
get_indy_priceGet the current INDY token price in ADA and USD
get_all_cdpsGet all CDPs/loans, optionally filtered by iAsset
get_cdps_by_ownerGet all CDPs/loans for a specific owner (accepts payment key hash or bech32 address)
get_cdps_by_addressGet all CDPs/loans for a specific Cardano address
analyze_cdp_healthAnalyze health and collateral ratios of CDPs for an owner
mint_cdpMint additional iAssets from an existing CDP (increases debt) — builds an unsigned transaction (CBOR hex) for client-side signing
burn_cdpBurn iAssets to reduce CDP debt — builds an unsigned transaction (CBOR hex) for client-side signing
open_cdpOpen a new CDP position — builds an unsigned transaction (CBOR hex) for client-side signing
deposit_cdpDeposit additional collateral into a CDP — builds an unsigned transaction (CBOR hex) for client-side signing
withdraw_cdpWithdraw collateral from a CDP — builds an unsigned transaction (CBOR hex) for client-side signing
close_cdpClose a CDP and reclaim collateral — builds an unsigned transaction (CBOR hex) for client-side signing
liquidate_cdpLiquidate an undercollateralized CDP through the stability pool — builds an unsigned transaction (CBOR hex) for client-side signing
redeem_cdpRedeem iAssets from a CDP — builds an unsigned transaction (CBOR hex) for client-side signing. To redeem the maximum possible, pass the total minted amount.
freeze_cdpFreeze a CDP to prevent further operations until unfrozen — builds an unsigned transaction (CBOR hex) for client-side signing
merge_cdpsMerge multiple CDPs into one — builds an unsigned transaction (CBOR hex) for client-side signing
get_collector_utxosGet collector UTXOs for fee distribution
store_on_ipfsStore text content on IPFS
retrieve_from_ipfsRetrieve content from IPFS by CID
get_steelswap_tokensGet all tokens available on Steelswap DEX
get_steelswap_estimateGet a swap estimate from Steelswap DEX
get_iris_liquidity_poolsGet liquidity pools from Iris, optionally filtered by tokens or DEX
get_blockfrost_balancesGet token balances for a Cardano address via Blockfrost
get_protocol_paramsGet latest governance protocol parameters
get_temperature_checksGet temperature check polls
get_sync_statusGet indexer sync status
get_pollsGet all governance polls
leverage_cdpOpen a leveraged CDP by redeeming against LRP positions — builds an unsigned transaction (CBOR hex) for client-side signing
open_lrpOpen a new LRP (Limit Redemption Protocol) position with ADA and a max price limit. Returns an unsigned transaction (CBOR hex) for client-side signing.
cancel_lrpCancel an existing LRP position. Returns an unsigned transaction (CBOR hex) for client-side signing.
adjust_lrpAdjust ADA amount in an LRP position (positive to increase, negative to decrease). Optionally update the max price. Returns an unsigned transaction (CBOR hex) for client-side signing.
claim_lrpClaim received iAssets from an LRP position. Returns an unsigned transaction (CBOR hex) for client-side signing.
redeem_lrpRedeem iAssets against one or more LRP positions. Returns an unsigned transaction (CBOR hex) for client-side signing.
feed_interest_oracleFeed a new interest rate to the interest oracle for a given iAsset. Returns an unsigned transaction (CBOR hex) for client-side signing. Only callable by the oracle operator.
start_interest_oracleInitialize a new interest oracle (one-time admin setup). Returns an unsigned transaction (CBOR hex) and the minted oracle asset class. Only callable by protocol administrators.
get_order_bookGet open limited redemption positions from the order book, optionally filtered by asset or owners
get_redemption_ordersGet redemption orders, optionally filtered by timestamp or price range
get_redemption_queueGet aggregated redemption queue for a specific iAsset, sorted by max price ascending
process_sp_requestProcess a pending stability pool request (protocol maintenance operation). Returns an unsigned transaction (CBOR hex) for client-side signing.
annul_sp_requestCancel a pending stability pool request. Returns an unsigned transaction (CBOR hex) for client-side signing.
get_stability_poolsGet the latest stability pool state for each iAsset (snapshotP, snapshotD, snapshotS, epoch, scale)
get_stability_pool_accountsGet all open stability pool accounts, optionally filtered by iAsset
get_sp_account_by_ownerGet stability pool accounts for specific owners (accepts payment key hashes or bech32 addresses)
create_sp_accountCreate a new stability pool account by depositing iAssets. Returns an unsigned transaction (CBOR hex) for client-side signing.
adjust_sp_accountDeposit to or withdraw from an existing stability pool account. Positive amount deposits, negative withdraws. Returns an unsigned transaction (CBOR hex) for client-side signing.
close_sp_accountClose a stability pool account and withdraw all deposited iAssets. Returns an unsigned transaction (CBOR hex) for client-side signing.
get_staking_infoGet the current INDY staking manager state (slot, outputHash, totalStake, snapshotAda)
get_staking_positionsGet all open INDY staking positions
get_staking_positions_by_ownerGet INDY staking positions for specific owners (accepts payment key hashes or bech32 addresses)
get_staking_position_by_addressGet INDY staking positions for a single Cardano address
distribute_staking_rewardsDistribute collected ADA rewards from collector UTxOs to staking positions. This is a protocol maintenance operation that anyone can call. Returns an unsigned transaction (CBOR hex) for client-side signing.
open_staking_positionStake INDY tokens by creating a new staking position. Returns an unsigned transaction (CBOR hex) for client-side signing.