# io.github.IndigoProtocol/indigo-mcp (npm · @indigoprotocol/indigo-mcp)

Indigo Protocol MCP — iAsset prices, CDP analytics, stability pools, staking & governance

- Trust score: 63/100 (medium)
- Change this week: +56
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-07

## Components

- npm · `@indigoprotocol/indigo-mcp`: 63/100 (this document), [markdown](https://verifymcp.io/servers/indigoprotocol-indigo-mcp/indigoprotocol-indigo-mcp.md), [page](https://verifymcp.io/servers/indigoprotocol-indigo-mcp/indigoprotocol-indigo-mcp)

## Channel facts

- Registry: `npm`
- Package: `@indigoprotocol/indigo-mcp`
- Version: `0.2.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-07.

- **Supply Chain Security**: 89/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects uuid 10.0.0, reached via @indigo-labs/indigo-sdk > @evolution-sdk/evolution > dockerode > uuid. A fixed version is available.
  - No install/post-install scripts declared.
  - 110 of 341 dependencies flagged as unhealthy (4 deprecated).
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 57 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 3920 tokens (~63/item across 62 items; 62 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 95/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 85% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add indigoprotocol-indigo-mcp -- npx -y @indigoprotocol/indigo-mcp
```

### Codex

```bash
codex mcp add indigoprotocol-indigo-mcp -- npx -y @indigoprotocol/indigo-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "indigoprotocol-indigo-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@indigoprotocol/indigo-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add indigoprotocol-indigo-mcp --command npx --arg -y --arg @indigoprotocol/indigo-mcp
```

### Hermes

```yaml
mcp_servers:
  indigoprotocol-indigo-mcp:
    command: "npx"
    args: ["-y", "@indigoprotocol/indigo-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "indigoprotocol-indigo-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@indigoprotocol/indigo-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-07 (score 63, +2)

- [functional] Dependency health: partial → 0.85

### 2026-08-06 (score 61, +28)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: good
- [functional] First check of Schema quality: pass
- [functional] First check of Tool coverage: 85
- [functional] First check of Schema quality: fail

### 2026-08-03 (score 33, +12)

- [security regression] CVE-2026-41907 affects this package: high
- [security regression] Provenance: unverified → fail
- [security regression] Known CVEs: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security] Stability: Stability not yet verified: our sandbox run of this package did not complete, so we have no schema to compare.
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional] Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess.
- [functional] Capabilities: Protocol version not yet verified: our sandbox run of this package did not complete, so we never saw its MCP handshake.
- [functional] Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess.
- [functional] Licence: MIT

### 2026-08-02 (score 21, +16)

- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional improvement] Dependency health: unverified → partial
- [functional] Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional] Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.
- [functional] Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet.

### 2026-08-01 (score 5, −2)

- [functional regression] Dependency health: partial → unverified

### 2026-07-31 (score 7, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −21)

- [security regression] Malware scan: pass → unverified
- [functional regression] Dependency health: partial → unverified

### 2026-07-29 (score 27, +2)

- [functional regression] Security disclosure: fail → unverified

## MCP tools (62)

### `get_tvl` (~20 tokens)

Get historical TVL data from DefiLlama

### `get_apr_rewards` (~16 tokens)

Get all APR reward records

### `get_apr_by_key` (~46 tokens)

Get APR for a specific key

Input parameters:

- `key` (string, required): APR key, e.g. sp_iUSD_indy, sp_iUSD_ada, stake_ada

### `get_dex_yields` (~21 tokens)

Get DEX farm yields for iAsset pairs

### `get_protocol_stats` (~14 tokens)

Get aggregated protocol statistics

### `get_assets` (~19 tokens)

Get all Indigo iAssets with prices and interest data

### `get_asset` (~24 tokens)

Get details for a specific Indigo iAsset

Input parameters:

- `asset` (string, required)

### `get_asset_price` (~27 tokens)

Get the current price for a specific Indigo iAsset

Input parameters:

- `asset` (string, required)

### `get_ada_price` (~18 tokens)

Get the current ADA price in USD

### `get_indy_price` (~22 tokens)

Get the current INDY token price in ADA and USD

### `get_all_cdps` (~45 tokens)

Get all CDPs/loans, optionally filtered by iAsset

Input parameters:

- `asset` (string)
- `limit` (number)
- `offset` (number)

### `get_cdps_by_owner` (~55 tokens)

Get all CDPs/loans for a specific owner (accepts payment key hash or bech32 address)

Input parameters:

- `owner` (string, required): Owner payment key hash (56-char hex) or bech32 address

### `get_cdps_by_address` (~46 tokens)

Get all CDPs/loans for a specific Cardano address

Input parameters:

- `address` (string, required): Cardano bech32 address (addr1... or addr_test1...)

### `analyze_cdp_health` (~43 tokens)

Analyze health and collateral ratios of CDPs for an owner

Input parameters:

- `owner` (string, required): Owner payment key hash (56-char hex) or bech32 address

### `mint_cdp` (~120 tokens)

Mint additional iAssets from an existing CDP (increases debt) — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address (addr1... or addr_test1...)
- `amount` (string, required): iAsset amount to mint in smallest unit
- `asset` (string, required)
- `cdpOutputIndex` (number, required): Output index of the CDP UTxO
- `cdpTxHash` (string, required): Transaction hash of the CDP UTxO

### `burn_cdp` (~114 tokens)

Burn iAssets to reduce CDP debt — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address (addr1... or addr_test1...)
- `amount` (string, required): iAsset amount to burn in smallest unit
- `asset` (string, required)
- `cdpOutputIndex` (number, required): Output index of the CDP UTxO
- `cdpTxHash` (string, required): Transaction hash of the CDP UTxO

### `open_cdp` (~90 tokens)

Open a new CDP position — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address (addr1... or addr_test1...)
- `asset` (string, required)
- `collateralAmount` (string, required): Collateral amount in lovelace
- `mintAmount` (string, required): iAsset amount to mint in smallest unit

### `deposit_cdp` (~103 tokens)

Deposit additional collateral into a CDP — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `amount` (string, required): Lovelace amount to deposit
- `asset` (string, required)
- `cdpOutputIndex` (number, required): Output index of the CDP UTxO
- `cdpTxHash` (string, required): Transaction hash of the CDP UTxO

### `withdraw_cdp` (~102 tokens)

Withdraw collateral from a CDP — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `amount` (string, required): Lovelace amount to withdraw
- `asset` (string, required)
- `cdpOutputIndex` (number, required): Output index of the CDP UTxO
- `cdpTxHash` (string, required): Transaction hash of the CDP UTxO

### `close_cdp` (~90 tokens)

Close a CDP and reclaim collateral — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `asset` (string, required)
- `cdpOutputIndex` (number, required): Output index of the CDP UTxO
- `cdpTxHash` (string, required): Transaction hash of the CDP UTxO

### `liquidate_cdp` (~105 tokens)

Liquidate an undercollateralized CDP through the stability pool — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address (addr1... or addr_test1...)
- `asset` (string, required)
- `cdpOutputIndex` (number, required): Output index of the CDP UTxO
- `cdpTxHash` (string, required): Transaction hash of the CDP UTxO

### `redeem_cdp` (~134 tokens)

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.

Input parameters:

- `address` (string, required): User Cardano bech32 address (addr1... or addr_test1...)
- `amount` (string, required): iAsset amount to redeem in smallest unit (pass total minted amount to redeem max)
- `asset` (string, required)
- `cdpOutputIndex` (number, required): Output index of the CDP UTxO
- `cdpTxHash` (string, required): Transaction hash of the CDP UTxO

### `freeze_cdp` (~102 tokens)

Freeze a CDP to prevent further operations until unfrozen — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address (addr1... or addr_test1...)
- `asset` (string, required)
- `cdpOutputIndex` (number, required): Output index of the CDP UTxO
- `cdpTxHash` (string, required): Transaction hash of the CDP UTxO

### `merge_cdps` (~76 tokens)

Merge multiple CDPs into one — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address (addr1... or addr_test1...)
- `cdpOutRefs` (array, required): Array of CDP UTxO references to merge (minimum 2)

### `get_collector_utxos` (~36 tokens)

Get collector UTXOs for fee distribution

Input parameters:

- `length` (number): Maximum number of UTXOs to return

### `store_on_ipfs` (~31 tokens)

Store text content on IPFS

Input parameters:

- `text` (string, required): Text content to store on IPFS

### `retrieve_from_ipfs` (~31 tokens)

Retrieve content from IPFS by CID

Input parameters:

- `cid` (string, required): IPFS content identifier (CID)

### `get_steelswap_tokens` (~23 tokens)

Get all tokens available on Steelswap DEX

### `get_steelswap_estimate` (~58 tokens)

Get a swap estimate from Steelswap DEX

Input parameters:

- `amountIn` (number, required): Amount of input token
- `tokenIn` (string, required): Input token identifier
- `tokenOut` (string, required): Output token identifier

### `get_iris_liquidity_pools` (~61 tokens)

Get liquidity pools from Iris, optionally filtered by tokens or DEX

Input parameters:

- `dex` (string): DEX name filter
- `tokenA` (string): First token identifier
- `tokenB` (string): Second token identifier

### `get_blockfrost_balances` (~38 tokens)

Get token balances for a Cardano address via Blockfrost

Input parameters:

- `address` (string, required): Cardano bech32 address

### `get_protocol_params` (~15 tokens)

Get latest governance protocol parameters

### `get_temperature_checks` (~14 tokens)

Get temperature check polls

### `get_sync_status` (~15 tokens)

Get indexer sync status

### `get_polls` (~14 tokens)

Get all governance polls

### `leverage_cdp` (~103 tokens)

Open a leveraged CDP by redeeming against LRP positions — builds an unsigned transaction (CBOR hex) for client-side signing

Input parameters:

- `address` (string, required): User Cardano bech32 address (addr1... or addr_test1...)
- `asset` (string, required)
- `baseCollateral` (string, required): Base collateral amount in lovelace
- `leverage` (number, required): Leverage multiplier (e.g. 2.0 for 2x leverage)

### `open_lrp` (~108 tokens)

Open a new LRP (Limit Redemption Protocol) position with ADA and a max price limit. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `asset` (string, required)
- `lovelacesAmount` (string, required): ADA amount in lovelace to deposit into the LRP
- `maxPrice` (string, required): Max price as an on-chain integer string (the getOnChainInt value)

### `cancel_lrp` (~82 tokens)

Cancel an existing LRP position. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `lrpOutputIndex` (number, required): Output index of the LRP UTxO
- `lrpTxHash` (string, required): Transaction hash of the LRP UTxO

### `adjust_lrp` (~142 tokens)

Adjust 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.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `lovelacesAdjustAmount` (string, required): Lovelace adjustment amount (positive to add, negative to remove)
- `lrpOutputIndex` (number, required): Output index of the LRP UTxO
- `lrpTxHash` (string, required): Transaction hash of the LRP UTxO
- `newMaxPrice` (string): Optional new max price as an on-chain integer string

### `claim_lrp` (~85 tokens)

Claim received iAssets from an LRP position. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `lrpOutputIndex` (number, required): Output index of the LRP UTxO
- `lrpTxHash` (string, required): Transaction hash of the LRP UTxO

### `redeem_lrp` (~145 tokens)

Redeem iAssets against one or more LRP positions. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `iassetOutputIndex` (number, required): Output index of the iAsset UTxO
- `iassetTxHash` (string, required): Transaction hash of the iAsset UTxO
- `priceOracleOutputIndex` (number, required): Output index of the price oracle UTxO
- `priceOracleTxHash` (string, required): Transaction hash of the price oracle UTxO
- `redemptionLrps` (array, required): Array of LRP positions and amounts to redeem against

### `feed_interest_oracle` (~113 tokens)

Feed 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.

Input parameters:

- `address` (string, required): Oracle operator Cardano bech32 address
- `asset` (string, required)
- `biasTime` (string, required): Oracle bias time in milliseconds as bigint string
- `newInterestRate` (string, required): New interest rate as bigint string
- `owner` (string, required): Oracle operator pub key hash (hex)

### `start_interest_oracle` (~140 tokens)

Initialize 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.

Input parameters:

- `address` (string, required): Admin Cardano bech32 address
- `biasTime` (string, required): Oracle bias time in milliseconds as bigint string
- `initialInterestRate` (string, required): Initial interest rate as bigint string
- `initialLastInterestUpdate` (string, required): Initial last interest update timestamp (milliseconds) as bigint string
- `initialUnitaryInterest` (string, required): Initial unitary interest as bigint string
- `owner` (string, required): Oracle operator pub key hash (hex)

### `get_order_book` (~40 tokens)

Get open limited redemption positions from the order book, optionally filtered by asset or owners

Input parameters:

- `asset` (string)
- `owners` (array)

### `get_redemption_orders` (~45 tokens)

Get redemption orders, optionally filtered by timestamp or price range

Input parameters:

- `in_range` (boolean): Filter by price range
- `timestamp` (number): Unix timestamp in milliseconds

### `get_redemption_queue` (~33 tokens)

Get aggregated redemption queue for a specific iAsset, sorted by max price ascending

Input parameters:

- `asset` (string, required)

### `process_sp_request` (~112 tokens)

Process a pending stability pool request (protocol maintenance operation). Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `accountOutputIndex` (number, required): Output index of the account UTxO
- `accountTxHash` (string, required): Transaction hash of the account UTxO with the pending request
- `address` (string, required): User Cardano bech32 address
- `asset` (string, required): iAsset of the stability pool (iUSD, iBTC, iETH, or iSOL)

### `annul_sp_request` (~82 tokens)

Cancel a pending stability pool request. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `accountOutputIndex` (number, required): Output index of the account UTxO
- `accountTxHash` (string, required): Transaction hash of the account UTxO with the pending request
- `address` (string, required): User Cardano bech32 address

### `get_stability_pools` (~35 tokens)

Get the latest stability pool state for each iAsset (snapshotP, snapshotD, snapshotS, epoch, scale)

### `get_stability_pool_accounts` (~31 tokens)

Get all open stability pool accounts, optionally filtered by iAsset

Input parameters:

- `asset` (string)

### `get_sp_account_by_owner` (~47 tokens)

Get stability pool accounts for specific owners (accepts payment key hashes or bech32 addresses)

Input parameters:

- `owners` (array, required): Array of payment key hashes or bech32 addresses

### `create_sp_account` (~89 tokens)

Create a new stability pool account by depositing iAssets. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `amount` (string, required): Amount of iAsset to deposit (in smallest unit)
- `asset` (string, required): iAsset to deposit (iUSD, iBTC, iETH, or iSOL)

### `adjust_sp_account` (~138 tokens)

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.

Input parameters:

- `accountOutputIndex` (number, required): Output index of the account UTxO
- `accountTxHash` (string, required): Transaction hash of the account UTxO
- `address` (string, required): User Cardano bech32 address
- `amount` (string, required): Amount to adjust (positive = deposit, negative = withdraw, in smallest unit)
- `asset` (string, required): iAsset of the stability pool (iUSD, iBTC, iETH, or iSOL)

### `close_sp_account` (~83 tokens)

Close a stability pool account and withdraw all deposited iAssets. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `accountOutputIndex` (number, required): Output index of the account UTxO
- `accountTxHash` (string, required): Transaction hash of the account UTxO
- `address` (string, required): User Cardano bech32 address

### `get_staking_info` (~30 tokens)

Get the current INDY staking manager state (slot, outputHash, totalStake, snapshotAda)

### `get_staking_positions` (~18 tokens)

Get all open INDY staking positions

### `get_staking_positions_by_owner` (~49 tokens)

Get INDY staking positions for specific owners (accepts payment key hashes or bech32 addresses)

Input parameters:

- `owners` (array, required): Array of payment key hashes or bech32 addresses

### `get_staking_position_by_address` (~37 tokens)

Get INDY staking positions for a single Cardano address

Input parameters:

- `address` (string, required): Cardano bech32 address

### `distribute_staking_rewards` (~83 tokens)

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.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `collectorTxHashes` (array, required): Array of collector UTxO references to distribute rewards from

### `open_staking_position` (~65 tokens)

Stake INDY tokens by creating a new staking position. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `amount` (string, required): INDY amount to stake (in smallest unit)

### `adjust_staking_position` (~110 tokens)

Adjust an existing INDY staking position (add or remove INDY). Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `amount` (string, required): INDY amount to adjust (positive = stake more, negative = unstake)
- `positionOutputIndex` (number, required): Output index of the staking position UTxO
- `positionTxHash` (string, required): Transaction hash of the staking position UTxO

### `close_staking_position` (~87 tokens)

Close an INDY staking position and unstake all INDY. Returns an unsigned transaction (CBOR hex) for client-side signing.

Input parameters:

- `address` (string, required): User Cardano bech32 address
- `positionOutputIndex` (number, required): Output index of the staking position UTxO
- `positionTxHash` (string, required): Transaction hash of the staking position UTxO

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/indigoprotocol-indigo-mcp/indigoprotocol-indigo-mcp#diagnostics

## Score history

- 2026-08-07: 63
- 2026-08-06: 61
- 2026-08-05: 33
- 2026-08-04: 33
- 2026-08-03: 33
- 2026-08-02: 21
- 2026-08-01: 5
- 2026-07-31: 7
- 2026-07-30: 6
- 2026-07-29: 27
- 2026-07-28: 25
- 2026-07-27: 24

## Links

- npm package: https://www.npmjs.com/package/@indigoprotocol/indigo-mcp
- Socket report: https://socket.dev/npm/package/@indigoprotocol/indigo-mcp
- Repository: https://github.com/IndigoProtocol/indigo-mcp
- Changelog RSS feed: https://verifymcp.io/servers/indigoprotocol-indigo-mcp/indigoprotocol-indigo-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/indigoprotocol-indigo-mcp/indigoprotocol-indigo-mcp.json
- HTML version of this page: https://verifymcp.io/servers/indigoprotocol-indigo-mcp/indigoprotocol-indigo-mcp
