IndigoProtocol/indigo-mcp
OfficialThis server provides a comprehensive set of tools to interact with the Indigo Protocol on Cardano, enabling querying of asset prices, CDP management, staking, governance, and DEX operations. Write operations return unsigned CBOR transactions for client-side signing and require a Blockfrost API key.
Asset & Price Data
Fetch prices for iAssets (iUSD, iBTC, iETH, iSOL), ADA, and INDY tokens, along with detailed asset information.
CDP / Loan Management
Query all CDPs or filter by iAsset, owner, or address; analyze health, collateral ratios, and liquidation risk.
Open, deposit, withdraw, close, mint, burn, liquidate, redeem, freeze, and merge CDP positions.
Open leveraged CDPs by redeeming against ROB positions.
Stability Pool
Query stability pool states and accounts (filtered by iAsset or owner).
Create, adjust, and close stability pool accounts; process or cancel pending requests.
INDY Staking
View staking manager state and positions (by owner or address).
Open, adjust, and close staking positions; distribute ADA rewards to stakers.
Redemption Order Book (ROB)
Query open ROB positions, executed redemption orders, and aggregated redemption queues.
Open, cancel, adjust, claim, and redeem against ROB positions.
Analytics & Governance
Retrieve historical TVL, APR rewards, DEX farm yields, and aggregated protocol statistics.
Access governance protocol parameters, temperature checks, and governance polls.
DEX Proxy
Query Steelswap tokens and swap estimates, Iris liquidity pools, and token balances for a Cardano address via Blockfrost.
Collector & IPFS
Fetch collector UTXOs for fee distribution; store and retrieve text content on IPFS by CID.
Payment Gating: Optional x402 micropayment integration for tool access.
Provides tools for interacting with the Cardano blockchain, enabling management of Indigo Protocol positions, tracking of ADA and INDY token prices, and execution of on-chain operations like staking and liquidations.
Enables storage and retrieval of data through the IPFS protocol as part of the server's protocol maintenance features.
Indigo MCP
MCP server for Indigo Protocol — exposes Indigo iAsset data, prices, and CDP/loan analytics to LLM agents via the Model Context Protocol.
⚡ Quick Start — Full Cardano DeFi Stack
MCP Servers (75 tools)
# 1. Install & Setup Indigo MCP (69 tools)
npm install -g @indigoprotocol/indigo-mcp
npx @indigoprotocol/indigo-mcp setup
# 2. Install & Setup Cardano MCP (6 wallet tools)
npm install -g @indigoprotocol/cardano-mcp
npx @indigoprotocol/cardano-mcp setupAI Skills (13 skills) — Optional
# 3. Install Indigo Skills
npx @indigoprotocol/indigo-skills
# 4. Install Cardano Skills
npx @indigoprotocol/cardano-skills╔═══════════════════════════════════════════════════════════════╗
║ ║
║ ██╗███╗ ██╗██████╗ ██╗ ██████╗ ██████╗ ║
║ ██║████╗ ██║██╔══██╗██║██╔════╝ ██╔═══██╗ ║
║ ██║██╔██╗ ██║██║ ██║██║██║ ███╗██║ ██║ ║
║ ██║██║╚██╗██║██║ ██║██║██║ ██║██║ ██║ ║
║ ██║██║ ╚████║██████╔╝██║╚██████╔╝╚██████╔╝ ║
║ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ║
║ ║
║ ███╗ ███╗ ██████╗██████╗ ║
║ ████╗ ████║██╔════╝██╔══██╗ ║
║ ██╔████╔██║██║ ██████╔╝ ║
║ ██║╚██╔╝██║██║ ██╔═══╝ ║
║ ██║ ╚═╝ ██║╚██████╗██║ ║
║ ╚═╝ ╚═╝ ╚═════╝╚═╝ ║
║ ║
║ 75 tools • 13 skills for Cardano DeFi ║
║ ║
╚═══════════════════════════════════════════════════════════════╝The setup commands auto-configure Claude Desktop, Claude Code, Cursor, or Windsurf. No manual config editing needed.
Related MCP server: seashail
Features
Real-time iAsset prices (iUSD, iBTC, iETH, iSOL, iEUR, iJPY)
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 ROB positions
ROB (Redemption Order Book) position management
Oracle interest rate feeding and initialization
Stability pool request processing and cancellation
Staking reward distribution
Collector UTXOs, IPFS storage and retrieval
Hosted deployment
A hosted deployment is available on Fronteir AI.
Quick Start
Automatic Setup (Recommended)
Run the interactive setup to automatically configure your MCP client:
npx @indigoprotocol/indigo-mcp setupThis will:
Ask which client you're using (Claude Desktop, Claude Code, Cursor, Windsurf)
Prompt for your Blockfrost API key
Automatically update your config file
Manual Installation
Install globally:
npm install -g @indigoprotocol/indigo-mcpOr run directly with npx (no install needed):
npx @indigoprotocol/indigo-mcpDocker
The image builds the server from source — no prior pnpm build needed, and no
dependency on any external build step:
docker build -t indigo-mcp .
docker run -p 3000:3000 -e BLOCKFROST_API_KEY=your-key indigo-mcpIt runs the HTTP transport on port 3000 (MCP_TRANSPORT=http is baked in), which
is what the Fly deployment uses.
HTTP Transport (Remote)
The server supports HTTP transport for remote/hosted deployments:
MCP_TRANSPORT=http PORT=3000 npx @indigoprotocol/indigo-mcpThis starts an HTTP server with:
POST /mcp— MCP endpoint (Streamable HTTP with SSE)GET /health— Health check
Each client gets its own session: initialize returns an Mcp-Session-Id that
subsequent requests must send back. A client that restarts can simply
initialize again — existing sessions are unaffected and the server does not
need restarting. Bind address and port come from HOST and PORT (MCP_PORT
is accepted as an alias for PORT).
Configuration
Note:
BLOCKFROST_API_KEYis 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):
# macOS
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Windows (PowerShell)
notepad "$env:APPDATA\Claude\claude_desktop_config.json"Standard config:
{
"mcpServers": {
"indigo": {
"command": "npx",
"args": ["-y", "@indigoprotocol/indigo-mcp"],
"env": {
"INDEXER_URL": "https://analytics.indigoprotocol.io/api",
"BLOCKFROST_API_KEY": "your-blockfrost-project-id"
}
}
}
}For nvm users (multiple Node versions):
If you use nvm and have multiple Node versions, you may need to specify the full path and set PATH explicitly:
{
"mcpServers": {
"indigo": {
"command": "/Users/YOUR_USERNAME/.nvm/versions/node/v22.22.0/bin/npx",
"args": ["-y", "@indigoprotocol/indigo-mcp"],
"env": {
"PATH": "/Users/YOUR_USERNAME/.nvm/versions/node/v22.22.0/bin:/usr/local/bin:/usr/bin:/bin",
"INDEXER_URL": "https://analytics.indigoprotocol.io/api",
"BLOCKFROST_API_KEY": "your-blockfrost-project-id"
}
}
}
}Note: Replace
YOUR_USERNAMEand Node version with your actual values. Find your Node path withwhich npx.
Claude Code (CLI)
Add to ~/.claude/settings.json or .claude/settings.json in your project:
nano ~/.claude/settings.json{
"mcpServers": {
"indigo": {
"command": "npx",
"args": ["-y", "@indigoprotocol/indigo-mcp"],
"env": {
"INDEXER_URL": "https://analytics.indigoprotocol.io/api",
"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",
"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",
"BLOCKFROST_API_KEY": "your-blockfrost-project-id"
}
}
}
}OpenClaw
Install Indigo skills for OpenClaw:
openclaw skills add IndigoProtocol/indigo-skillsSkills are automatically configured — start using Indigo tools immediately.
Combined with Cardano MCP
For full Cardano DeFi capabilities, use both Indigo MCP and Cardano MCP together:
{
"mcpServers": {
"indigo": {
"command": "npx",
"args": ["-y", "@indigoprotocol/indigo-mcp"],
"env": {
"BLOCKFROST_API_KEY": "your-blockfrost-project-id"
}
},
"cardano": {
"command": "npx",
"args": ["-y", "@indigoprotocol/cardano-mcp"],
"env": {
"SEED_PHRASE": "word1,word2,word3,...",
"BLOCKFROST_PROJECT_ID": "your-blockfrost-project-id"
}
}
}
}Any MCP-Compatible Client
Run the server directly via stdio:
INDEXER_URL=https://analytics.indigoprotocol.io/api \
BLOCKFROST_API_KEY=your-blockfrost-project-id \
npx @indigoprotocol/indigo-mcpOr install globally and reference the binary:
npm install -g @indigoprotocol/indigo-mcp
indigo-mcpFor any client that supports MCP over stdio, point it to the npx @indigoprotocol/indigo-mcp command with the environment variables above.
Available Tools
Asset Tools
Tool | Description | Parameters |
| Get all Indigo iAssets with prices and interest data | None |
| Get details for a specific iAsset |
|
| Get the current price for a specific iAsset |
|
| Get the current ADA price in USD | None |
| Get the current INDY token price in ADA and USD | None |
CDP / Loan Tools
Tool | Description | Parameters |
| Get all CDPs/loans, optionally filtered by iAsset |
|
| Get CDPs for a specific owner |
|
| Get CDPs for a specific Cardano address |
|
| Analyze collateral ratios and liquidation risk |
|
CDP Write Tools
Pyth-priced iAssets have a submission deadline. Every iAsset is currently priced through Pyth, and the on-chain feed validator only accepts a transaction for 280 seconds after the price update it embeds. Price-dependent write tools (
open_cdp,withdraw_cdp,mint_cdp,redeem_cdp,freeze_cdp,leverage_cdp,redeem_rob) therefore return asummary.pythblock with the price, its timestamp and asubmitBeforedeadline. If signing takes longer than that — a hardware wallet, or a human approving in a browser — rebuild the transaction rather than submitting a stale one. A price update that has already expired is rejected at build time with a retry hint.
Tool | Description | Parameters |
| Open a new CDP position (returns unsigned CBOR tx) |
|
| Deposit additional collateral into a CDP |
|
| Withdraw collateral from a CDP |
|
| Close a CDP and reclaim collateral |
|
CDP Mint/Burn Tools
Tool | Description | Parameters |
| Mint additional iAssets from an existing CDP (increases debt) |
|
| Burn iAssets to reduce CDP debt |
|
CDP Liquidation & Redemption Tools
Tool | Description | Parameters |
| Liquidate an undercollateralized CDP through the stability pool |
|
| Redeem iAssets from a CDP |
|
| Freeze a CDP to prevent further operations |
|
| Merge multiple CDPs into one |
|
Leverage CDP Tools
Tool | Description | Parameters |
| Open a leveraged CDP by redeeming against ROB positions |
|
Stability Pool Tools
Tool | Description | Parameters |
| Get the latest stability pool state for each iAsset | None |
| Get all open stability pool accounts, optionally filtered by iAsset |
|
| Get stability pool accounts for specific owners |
|
Staking Tools
Tool | Description | Parameters |
| Get the current INDY staking manager state | None |
| Get all open INDY staking positions | None |
| Get INDY staking positions for specific owners |
|
| Get INDY staking positions for a single address |
|
Stability Pool Request Tools
Tool | Description | Parameters |
| Process a pending stability pool request (protocol maintenance) |
|
| Cancel a pending stability pool request |
|
Staking Write Tools
Tool | Description | Parameters |
| Stake INDY tokens by creating a new staking position |
|
| Adjust an existing staking position (add or remove INDY) |
|
| Close a staking position and unstake all INDY |
|
Staking Reward Tools
Tool | Description | Parameters |
| Distribute collected ADA rewards from collector UTxOs to stakers |
|
Analytics & APR Tools
Tool | Description | Parameters |
| Get historical TVL data from DefiLlama | None |
| Get all APR reward records | None |
| Get APR for a specific key |
|
| Get DEX farm yields for iAsset pairs | None |
| Get aggregated protocol statistics | None |
Governance Tools
Tool | Description | Parameters |
| Get latest governance protocol parameters | None |
| Get temperature check polls | None |
| Get all governance polls | None |
Redemption & Order Book Tools
Tool | Description | Parameters |
| Get open ROB (redemption order book) positions |
|
| Get executed redemption orders |
|
| Get open ROB order-book entries for an iAsset |
|
ROB Write Tools
Tool | Description | Parameters |
| Open a new ROB position with ADA and a max price limit |
|
| Cancel an existing ROB position |
|
| Adjust ADA in a ROB (positive to add, negative to remove) |
|
| Claim received iAssets from an ROB position |
|
| Redeem iAssets against one or more ROB positions |
|
DEX Proxy Tools
Tool | Description | Parameters |
| Get all tokens available on Steelswap DEX | None |
| Get a swap estimate from Steelswap |
|
| Get liquidity pools from Iris |
|
| Get token balances for a Cardano address |
|
Collector & IPFS Tools
Tool | Description | Parameters |
| Get collector UTXOs for fee distribution |
|
| Store text content on IPFS |
|
| Retrieve content from IPFS by CID |
|
Interest Tools (v3)
Tool | Description | Parameters |
| Build a tx to collect accrued interest for one or more CDPs |
|
| Build a tx to distribute collected interest (admin) |
|
| Feed a new interest rate to the interest oracle (admin) |
|
| Read the current interest oracle state for an iAsset |
|
Oracle / Pyth Tools (v3)
Tool | Description | Parameters |
| On-chain price for an iAsset (OracleNft / Delisted / Pyth) |
|
| Current Pyth price for an iAsset, plus its on-chain feed config |
|
| Feed a new price to an OracleNft-backed price oracle (admin) |
|
Stableswap Tools (v3)
Tool | Description | Parameters |
| Get the stableswap pool state for an (iAsset, collateral) |
|
| Build a tx to swap collateral↔iAsset via the stableswap pool |
|
| Build a tx to cancel a stableswap order |
|
Environment Variables
Variable | Required | Default | Description |
| No |
| Indigo analytics API base URL |
| For write ops | — | Blockfrost project ID for transaction building |
| No |
| Cardano network: |
| No |
| Transport mode: |
| No |
| HTTP server port (only used when |
| No |
| HTTP bind address (only used when |
| No | — | EVM private key ( |
| No |
| Settlement worker / proxy URL |
| No |
| Use Base Sepolia testnet |
| No | — | Fallback facilitator (used only when |
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?"
Distribution
The server is published to three places, and they are not the same artifact.
Target | Built by | Output | Published by |
npm — |
|
| CI, on a |
MCP Registry — |
| metadata only | CI, on a |
|
|
|
The container image (Dockerfile) builds from source and is used by Fly and any
other container host. It does not consume .smithery/ output — that path is
Smithery-specific.
Cutting a release
Merge the version bump (
package.json;SERVER_VERSIONis read from it)git tag vX.Y.Z && git push origin vX.Y.ZCI publishes to npm, then to the MCP Registry (the registry verifies ownership via the package's
mcpNamefield, so npm has to go first)Verify against the registry, not the workflow:
npm view @indigoprotocol/indigo-mcp versionfly deployfor the hosted HTTP endpoint, andpnpm smithery:publishfor Smithery
Development
Prerequisites
Node.js >= 20 (the bundled
undicirequires theFileglobal, added in Node 20)npm
Setup
git clone https://github.com/IndigoProtocol/indigo-mcp.git
cd indigo-mcp
npm install
npm run dev # run with tsx (hot reload)Scripts
npm run build # compile TypeScript
npm run start # run compiled server
npm run dev # run with tsx (hot reload)
npm run typecheck # type-check without emitting
npm run lint # eslint
npm run lint:fix # eslint --fix
npm run format # prettier
npm run format:check # prettier --check
npm run test # run tests
npm run test:watch # run tests in watch modeProject Structure
src/
├── index.ts # Server entry point (stdio transport)
├── payment.ts # x402 configuration: chain addresses + tool price tiers
├── payment-client.ts # withAutoPayment: client-side auto-pay on 402 responses
├── types/
│ └── tx-types.ts # UnsignedTxResult, TxSummary types
├── tools/
│ ├── index.ts # Tool registration hub
│ ├── asset-tools.ts # 5 asset/price tools
│ ├── cdp-tools.ts # 4 CDP/loan tools
│ ├── stability-pool-tools.ts # 3 stability pool tools
│ ├── staking-tools.ts # 4 INDY staking tools
│ ├── staking-write-tools.ts # 3 INDY staking write tools
│ ├── staking-reward-tools.ts # 1 staking reward distribution tool
│ ├── cdp-liquidation-tools.ts # 4 CDP liquidation/redemption/freeze/merge tools
│ ├── leverage-cdp-tools.ts # 1 leveraged CDP tool
│ ├── rob-write-tools.ts # 5 ROB write tools
│ ├── sp-request-tools.ts # 2 SP request processing tools
│ ├── analytics-tools.ts # 5 analytics/APR tools
│ ├── governance-tools.ts # 3 governance tools
│ ├── redemption-tools.ts # 3 redemption/order book tools
│ ├── dex-tools.ts # 4 DEX proxy tools
│ └── collector-tools.ts # 3 collector/IPFS tools
├── resources/
│ └── index.ts # MCP resource definitions
├── tests/
│ ├── unit/
│ │ ├── tools/ # Unit tests for each tool module
│ │ └── utils/ # Unit tests for validators, address
│ └── integration/
│ └── indexer-client.test.ts # Integration test for HTTP client
└── utils/
├── index.ts # Re-exports
├── indexer-client.ts # Axios client for Indigo analytics API
├── validators.ts # Zod validators (AssetParam enum)
├── address.ts # Bech32 address → payment credential
├── lucid-provider.ts # Lucid + Blockfrost singleton provider
├── sdk-config.ts # SystemParams loader with cache
└── tx-builder.ts # Transaction builder → unsigned CBORTesting via stdin
The server communicates over stdio using JSON-RPC. You can test tools directly:
npm run build
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}' | node dist/index.jsx402 Payment Gating
Indigo MCP optionally gates tools behind per-call micropayments using the x402 protocol. Payment is disabled by default — set at least one wallet address to enable it.
How it works
Payment uses the split execution model — the same architecture as openMM-MCP:
A tool is called (no payment header needed from the caller)
The gate intercepts and contacts the settlement worker (
mcp.openmm.ioby default)Worker responds
402with EIP-3009 requirements (amount, recipient, chain)Gate signs locally using
X402_PRIVATE_KEY— the key never leaves this processGate retries with the signed payment → worker verifies on-chain, issues a JWT
Gate verifies JWT locally, executes the original tool handler
Settlement tx hash is injected into the tool response
This keeps process isolation clean: indigo-mcp never holds the recipient wallet — only the payer key. Verification and settlement are handled by the openmm.io proxy.
Read tools (
get_tvl,get_asset_price, …) cost $0.001 USDC per callAnalysis tools (
analyze_cdp_health) cost $0.005 USDC per callWrite tools (
open_cdp,mint_cdp, …) cost $0.01 USDC per call
Environment variables
Variable | Required | Default | Description |
| to enable | — | EVM private key ( |
| optional |
| Settlement worker / proxy URL |
| optional |
| Use Base Sepolia testnet |
| optional | — | Fallback facilitator URL (used only when |
Split execution flow
When X402_PRIVATE_KEY is set, every paid tool call is handled transparently:
Gate contacts
PAYMENT_SERVER(https://mcp.openmm.ioby default)Signs EIP-3009 locally — the private key never leaves this process
Proxy verifies on-chain, issues a short-lived JWT
Gate verifies JWT, executes tool, injects settlement tx hash into response
If X402_PRIVATE_KEY is not set the gate is disabled and all tools execute without payment.
# Minimal: just set the payer key (proxy defaults to mcp.openmm.io)
X402_PRIVATE_KEY=0xYourPayerPrivateKey npx @indigoprotocol/indigo-mcp
# Self-hosted proxy
X402_PRIVATE_KEY=0xYourPayerPrivateKey \
PAYMENT_SERVER=https://your-own-proxy \
npx @indigoprotocol/indigo-mcpLocal development
# 1. Copy example env
cp .env.example .env
# Edit .env and set X402_PRIVATE_KEY to a funded Base Sepolia wallet
# 2. Start the HTTP server
MCP_TRANSPORT=http PORT=3000 npm run dev
# 3. Run the payment e2e tests
X402_TESTNET=true npm test -- x402-paymentMCP client config with x402
Add the env block to whichever MCP config file your client uses:
Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"indigo": {
"command": "npx",
"args": ["-y", "@indigoprotocol/indigo-mcp"],
"env": {
"INDEXER_URL": "https://analytics.indigoprotocol.io/api",
"BLOCKFROST_API_KEY": "your-blockfrost-project-id",
"X402_PRIVATE_KEY": "0xYourPayerPrivateKey",
"X402_TESTNET": "true"
}
}
}
}Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"indigo": {
"command": "npx",
"args": ["-y", "@indigoprotocol/indigo-mcp"],
"env": {
"INDEXER_URL": "https://analytics.indigoprotocol.io/api",
"BLOCKFROST_API_KEY": "your-blockfrost-project-id",
"X402_PRIVATE_KEY": "0xYourPayerPrivateKey",
"X402_TESTNET": "true"
}
}
}
}Cursor / Windsurf — same env block applies to ~/.cursor/mcp.json or ~/.codeium/windsurf/mcp_config.json.
Set
X402_TESTNETtofalse(or omit it) for Base mainnet.
License
ISC
Available Tools
69 toolsadjust_robA
Adjust ADA amount in an ROB buy order (positive to increase, negative to decrease). Optionally update the max price (numerator/denominator). Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: address (required), robTxHash (required), robOutputIndex (required), lovelacesAdjustAmount (required), +2 more.
adjust_sp_accountA
Deposit to or withdraw from an existing stability pool account. Positive amount deposits, negative withdraws. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: asset (required), amount (required), address (required), accountTxHash (required), +1 more.
adjust_staking_positionA
Adjust an existing INDY staking position (add or remove INDY). Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: amount (required), address (required), positionTxHash (required), positionOutputIndex (required).
analyze_cdp_healthA
Analyze collateral ratios and liquidation risk of CDPs for an owner, accounting for accrued interest
Inputs: owner (required).
annul_sp_requestA
Cancel a pending stability pool request. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: address (required), accountTxHash (required), accountOutputIndex (required).
burn_cdpA
Burn iAssets to reduce CDP debt — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), amount (required), address (required), cdpTxHash (required), +1 more.
cancel_robA
Cancel an existing ROB position. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: address (required), robTxHash (required), robOutputIndex (required).
cancel_stableswap_orderA
Cancel an outstanding stableswap order and reclaim funds. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: address (required), orderTxHash (required), orderOutputIndex (required).
claim_robB
Claim received iAssets from an ROB position. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: address (required), robTxHash (required), robOutputIndex (required).
close_cdpA
Close a CDP and reclaim collateral — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), address (required), cdpTxHash (required), cdpOutputIndex (required).
close_sp_accountA
Close a stability pool account and withdraw all deposited iAssets. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: address (required), accountTxHash (required), accountOutputIndex (required).
close_staking_positionA
Close an INDY staking position and unstake all INDY. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: address (required), positionTxHash (required), positionOutputIndex (required).
collect_interestA
Batch-collect accrued interest from one or more CDP positions into the interest collector — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: cdps (required), asset (required), address (required).
create_sp_accountA
Create a new stability pool account by depositing iAssets. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: asset (required), amount (required), address (required).
create_stableswap_orderA
Submit a stableswap order: swap collateral for iAsset (minting=true) or iAsset for collateral (minting=false). Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: asset (required), amount (required), address (required), minting (required).
deposit_cdpA
Deposit additional ADA collateral into a CDP — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), amount (required), address (required), cdpTxHash (required), +1 more.
distribute_interestA
Distribute accumulated interest from collector UTxOs to the admin interest collector — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: address (required), collectorTxHashes (required), collectorOutputIndices (required).
distribute_staking_rewardsA
Distribute 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.
Inputs: address (required), collectorTxHashes (required).
feed_interest_oracleA
ADMIN/MAINTENANCE: Update the interest rate stored in an interest oracle UTxO. Builds an unsigned transaction (CBOR hex) that must be signed by the oracle owner key. Requires the oracle contract parameters (biasTime in milliseconds, owner pubkey hash hex) which are fixed at contract deployment and must be supplied by the protocol admin.
Inputs: asset (required), address (required), oracleOwner (required), oracleBiasTime (required), +1 more.
feed_price_oracleA
Feed a new price to an OracleNft-backed price oracle — builds an unsigned transaction (CBOR hex) for admin signing. Only applicable to assets whose priceInfo is OracleNft; Pyth-priced assets are updated via signed Pyth messages, not this tool.
Inputs: asset (required), address (required), priceNumerator (required), priceDenominator (required).
freeze_cdpA
Freeze a CDP to prevent further operations until unfrozen — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), address (required), cdpTxHash (required), cdpOutputIndex (required).
get_ada_priceB
Get the current ADA price in USD
Inputs: no named parameters.
get_all_cdpsB
Get all CDPs, optionally filtered by iAsset
Inputs: asset, limit, offset.
get_apr_by_keyC
Get APR for a specific key
Inputs: key (required).
get_apr_rewardsB
Get all APR reward records
Inputs: no named parameters.
get_assetB
Get details for a specific Indigo iAsset
Inputs: asset (required).
get_asset_priceA
Get the current price(s) for a specific Indigo iAsset, per collateral asset (ADA and others)
Inputs: asset (required).
get_assetsA
Get all Indigo iAssets with their prices
Inputs: no named parameters.
get_blockfrost_balancesB
Get token balances for a Cardano address via Blockfrost
Inputs: address (required).
get_cdps_by_addressB
Get all CDPs for a specific Cardano address
Inputs: address (required).
get_cdps_by_ownerA
Get all CDPs for a specific owner (accepts payment key hash or bech32 address)
Inputs: owner (required).
get_collector_utxosC
Get collector UTXOs for fee distribution
Inputs: length.
get_dex_yieldsB
Get DEX farm yields for iAsset pairs
Inputs: no named parameters.
get_indy_priceA
Get the current INDY token price in ADA and USD
Inputs: no named parameters.
get_interest_oracleA
Read the current interest oracle state for an asset — returns the on-chain interest rate, unitary interest accumulator, and last-updated timestamp
Inputs: asset (required).
get_iris_liquidity_poolsB
Get liquidity pools from Iris, optionally filtered by tokens or DEX
Inputs: dex, tokenA, tokenB.
get_oracle_priceA
Get the on-chain price for an iAsset from its price oracle. Handles OracleNft (reads the oracle UTxO datum), Delisted (returns the delisted price), and Pyth/DeferredValidation (delegates to get_pyth_price).
Inputs: asset (required).
get_order_bookB
Get open ROB (redemption order book) positions, optionally filtered by iAsset or owners
Inputs: asset, owners.
get_pollsB
Get all governance polls
Inputs: no named parameters.
get_protocol_paramsB
Get latest governance protocol parameters
Inputs: no named parameters.
get_protocol_statsC
Get aggregated protocol statistics
Inputs: no named parameters.
get_pyth_priceA
Get the current Pyth price for an iAsset, together with its on-chain feed configuration. The price is the latest signed Pyth update served by the Indigo analytics API — the same payload the CDP write tools embed on-chain — and is only valid on-chain until validUntil.
Inputs: asset (required).
get_redemption_ordersB
Get executed redemption orders, optionally filtered by iAsset
Inputs: asset, limit.
get_redemption_queueB
Get the open ROB order-book entries for a specific iAsset
Inputs: asset (required).
get_sp_account_by_ownerB
Get stability pool accounts for specific owners (accepts payment key hashes or bech32 addresses)
Inputs: owners (required).
get_stability_pool_accountsA
Get all open stability pool accounts, optionally filtered by iAsset
Inputs: asset.
get_stability_poolsA
Get the latest stability pool state for each iAsset (snapshots, epoch-to-scale-to-sum, asset states)
Inputs: no named parameters.
get_stableswap_poolA
Find the stableswap pool UTxO for an (iAsset, ADA collateral) pair and return its parsed datum
Inputs: asset (required).
get_staking_infoA
Get the current INDY staking manager state (total stake, snapshot ada, output ref)
Inputs: no named parameters.
get_staking_position_by_addressB
Get INDY staking positions for a single Cardano address
Inputs: address (required).
get_staking_positionsB
Get all open INDY staking positions
Inputs: no named parameters.
get_staking_positions_by_ownerA
Get INDY staking positions for specific owners (accepts payment key hashes or bech32 addresses)
Inputs: owners (required).
get_steelswap_estimateC
Get a swap estimate from Steelswap DEX
Inputs: tokenIn (required), amountIn (required), tokenOut (required).
get_steelswap_tokensB
Get all tokens available on Steelswap DEX
Inputs: no named parameters.
get_temperature_checksC
Get temperature check polls
Inputs: no named parameters.
get_tvlB
Get protocol TVL history
Inputs: no named parameters.
leverage_cdpA
Open a leveraged CDP by redeeming against ROB positions — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), address (required), leverage (required), baseCollateral (required).
liquidate_cdpA
Liquidate an undercollateralized CDP through the stability pool — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), address (required), cdpTxHash (required), cdpOutputIndex (required).
merge_cdpsA
Merge multiple CDPs into one — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: address (required), cdpOutRefs (required).
mint_cdpA
Mint additional iAssets from an existing CDP (increases debt) — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), amount (required), address (required), cdpTxHash (required), +1 more.
open_cdpA
Open a new CDP position with ADA collateral — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), address (required), mintAmount (required), collateralAmount (required).
open_robA
Open a new ROB (Redemption Order Book) buy order: deposit ADA to buy an iAsset up to a max price. The max price is a rational number (numerator/denominator). Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: asset (required), address (required), lovelacesAmount (required), maxPriceNumerator (required), +1 more.
open_staking_positionA
Stake INDY tokens by creating a new staking position. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: amount (required), address (required).
process_sp_requestA
Process a pending stability pool request (protocol maintenance operation). Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: asset (required), address (required), accountTxHash (required), accountOutputIndex (required).
redeem_cdpA
Redeem iAssets from a CDP — builds an unsigned transaction (CBOR hex) for client-side signing. To redeem the maximum possible, pass the total minted amount.
Inputs: asset (required), amount (required), address (required), cdpTxHash (required), +1 more.
redeem_robA
Redeem iAssets against one or more ROB positions for a given iAsset. Returns an unsigned transaction (CBOR hex) for client-side signing.
Inputs: asset (required), address (required), redemptionRobs (required).
retrieve_from_ipfsC
Retrieve content from IPFS by CID
Inputs: cid (required).
store_on_ipfsC
Store text content on IPFS
Inputs: text (required).
withdraw_cdpA
Withdraw ADA collateral from a CDP — builds an unsigned transaction (CBOR hex) for client-side signing
Inputs: asset (required), amount (required), address (required), cdpTxHash (required), +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 69 tools
Multiple query tools have unclear boundaries, e.g., get_redemption_queue and get_order_book both return open ROB order-book entries, and get_cdps_by_owner/get_cdps_by_address or get_staking_positions_by_owner/get_staking_position_by_address are near-duplicates. get_assets/get_asset/get_asset_price and get_oracle_price/get_pyth_price also overlap, so agents must read descriptions carefully to avoid misselection.
The vast majority follow a consistent snake_case verb_noun pattern (get_*, open_*, close_*, adjust_*). Minor inconsistencies exist: singular get_staking_position_by_address vs plural get_staking_positions_by_owner, and sp/stable_pool abbreviation mixing (get_sp_account_by_owner vs get_stability_pool_accounts).
69 tools far exceeds the well-scoped range and crosses the 50+ extreme threshold. Even though the protocol has many subdomains, the count overwhelms agent tool selection and includes many redundant query variants.
Core lifecycle coverage is strong: CDPs, stability pool accounts, staking positions, ROB orders, stableswap orders, and oracles all have open/read/adjust/close equivalents. Minor gaps exist around governance (only temperature checks and polls are readable, no vote/proposal creation) and external DEX actions are query-only, but these are workable.
Maintenance
Related MCP Connectors
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
MCP server for the Z1N Protocol - on-chain identity for AI agents on Polygon
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for Cardano blockchain data — exposes on-chain queries, address lookups, transaction history, token metadata, stake pool info, and network parameters to LLM agents.150 npm4MIT
- AlicenseNot gradedqualityDmaintenanceAgent-native, self-hosted MCP server for crypto trading and DeFi management. Enables agents to query balances, execute trades, and manage positions with a policy engine and secure key storage.8Apache 2.0
- AlicenseCqualityDmaintenanceMCP server enabling LLMs to interact with a Cardano node by wrapping cardano-cli/torsten-cli, supporting queries, transactions, staking, and governance operations.64MIT
- FlicenseBqualityDmaintenanceAn MCP server that provides LLMs with access to 95 tools covering the Koios Cardano blockchain REST API, enabling queries for on-chain data like transactions, addresses, assets, and governance.923-