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?"

How to connect

How to connect Indigo Protocol MCP to Claude

The server address to paste into Claude settings:

https://indigo-mcp--indigoprotocol.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Indigo Protocol MCP to ChatGPT

The server address to paste into ChatGPT settings:

https://indigo-mcp--indigoprotocol.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Indigo Protocol MCP to Cursor

The server address to paste into Cursor settings:

https://indigo-mcp--indigoprotocol.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

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.