mcpField
I
Indigo Protocol Mcp

Indigo Protocol Mcp

本地服务
github.com/IndigoProtocol数据与分析67 周前更新

关于 Indigo Protocol Mcp

Indigo Protocol Mcp 是面向 Cardano Indigo Protocol 的 MCP 服务,为 AI Agent 提供 iAsset 价格、CDP 借贷分析及协议数据,并支持多种操作。

主要功能

  1. 01查询 iAsset、ADA 和 INDY 价格
  2. 02浏览并分析 CDP 健康状况
  3. 03查询稳定池、质押与治理数据
  4. 04查看 TVL、APR 和 DEX 数据
  5. 05执行 CDP 与赎回操作

适用场景

  1. 01追踪 iAsset 价格与利息数据
  2. 02检查持有者的 CDP 清算风险
  3. 03分析协议收益、治理和稳定池
  4. 04通过工具管理 CDP 头寸

MCP 相关

该 MCP 服务向客户端提供 Indigo Protocol 的资产、CDP、稳定池、质押、治理和 DEX 数据工具,也包含部分链上操作工具。支持 stdio 与 HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"indigo": {
"command": "npx",
"args": [
"-y",
"@indigoprotocol/indigo-mcp"
]
}
}
}
启动命令npx -y @indigoprotocol/indigo-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@indigoprotocol/indigo-mcp0.4.2

工具

69

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

Indigo MCP

Smithery npm downloads Ask DeepWiki

面向 Indigo Protocol 的 MCP 服务——通过 Model Context Protocol,向大模型 Agent 提供 Indigo iAsset 数据、价格和 CDP/贷款分析。

⚡ 快速开始 — 完整的 Cardano DeFi 技术栈

MCP 服务(75 个工具)
# 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 setup
AI 技能(13 项)— 可选
# 3. Install Indigo Skills
npx @indigoprotocol/indigo-skills

# 4. Install Cardano Skills
npx @indigoprotocol/cardano-skills
╔═══════════════════════════════════════════════════════════════╗
║                                                               ║
║   ██╗███╗   ██╗██████╗ ██╗ ██████╗  ██████╗                   ║
║   ██║████╗  ██║██╔══██╗██║██╔════╝ ██╔═══██╗                  ║
║   ██║██╔██╗ ██║██║  ██║██║██║  ███╗██║   ██║                  ║
║   ██║██║╚██╗██║██║  ██║██║██║   ██║██║   ██║                  ║
║   ██║██║ ╚████║██████╔╝██║╚██████╔╝╚██████╔╝                  ║
║   ╚═╝╚═╝  ╚═══╝╚═════╝ ╚═╝ ╚═════╝  ╚═════╝                   ║
║                                                               ║
║   ███╗   ███╗ ██████╗██████╗                                  ║
║   ████╗ ████║██╔════╝██╔══██╗                                 ║
║   ██╔████╔██║██║     ██████╔╝                                 ║
║   ██║╚██╔╝██║██║     ██╔═══╝                                  ║
║   ██║ ╚═╝ ██║╚██████╗██║                                      ║
║   ╚═╝     ╚═╝ ╚═════╝╚═╝                                      ║
║                                                               ║
║   75 tools • 13 skills for Cardano DeFi                       ║
║                                                               ║
╚═══════════════════════════════════════════════════════════════╝

这些设置命令会自动配置 Claude Desktop、Claude Code、Cursor 或 Windsurf。无需手动编辑配置。

功能

  • 实时 iAsset 价格(iUSD、iBTC、iETH、iSOL、iEUR、iJPY)
  • ADA 和 INDY 代币价格数据
  • 支持分页和筛选的 CDP/贷款浏览
  • 通过支付密钥哈希或 bech32 地址查找所有者
  • CDP 健康状况分析,包括抵押率和清算风险状态
  • 稳定池状态和账户查询
  • INDY 质押仓位和管理器状态
  • 协议分析:TVL、APR 奖励、DEX 收益、汇总统计数据
  • 治理:协议参数、投票、温度检查
  • 赎回订单簿和队列汇总
  • DEX 代理:Steelswap 兑换、Iris 流动性池、Blockfrost 余额
  • CDP 清算、赎回、冻结和合并操作
  • 通过 ROB 仓位开设杠杆 CDP
  • ROB(赎回订单簿)仓位管理
  • 预言机利率馈送和初始化
  • 稳定池请求处理和取消
  • 质押奖励分发
  • Collector UTXO、IPFS 存储和检索

托管部署

可通过 Fronteir AI 使用托管部署。

快速开始

自动设置(推荐)

运行交互式设置,自动配置 MCP 客户端:

npx @indigoprotocol/indigo-mcp setup

此操作将:

  1. 询问你使用的客户端(Claude Desktop、Claude Code、Cursor、Windsurf)
  2. 提示输入 Blockfrost API 密钥
  3. 自动更新配置文件
手动安装

全局安装:

npm install -g @indigoprotocol/indigo-mcp

或通过 npx 直接运行(无需安装):

npx @indigoprotocol/indigo-mcp
Docker

该镜像会从源代码构建服务——无需预先运行 pnpm build,也不依赖任何外部构建步骤:

docker build -t indigo-mcp .
docker run -p 3000:3000 -e BLOCKFROST_API_KEY=your-key indigo-mcp

它会在端口 3000 上运行 HTTP 传输(已内置 MCP_TRANSPORT=http),Fly 部署也使用此配置。

HTTP 传输(远程)

该服务支持用于远程/托管部署的 HTTP 传输:

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

这会启动一个 HTTP 服务,其中包含:

  • POST /mcp — MCP 端点(带 SSE 的 Streamable HTTP)
  • GET /health — 健康检查

每个客户端都有自己的会话:initialize 会返回一个 Mcp-Session-Id,后续请求必须将其传回。重启后的客户端只需再次运行 initialize 即可——现有会话不会受到影响,服务也无需重启。绑定地址和端口取自 HOST 和 PORT(MCP_PORT 可用作 PORT 的别名)。

配置

注意: 写入操作(构建交易)需要 BLOCKFROST_API_KEY。只读工具无需此密钥即可使用。可在 blockfrost.io 免费获取密钥。

Claude Desktop

将配置添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %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"

标准配置:

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

适用于 nvm 用户(多个 Node 版本):

如果你使用 nvm 且安装了多个 Node 版本,可能需要指定完整路径并显式设置 PATH:

{
  "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"
      }
    }
  }
}

注意: 请将 YOUR_USERNAME 和 Node 版本替换为实际值。运行 which npx 可查找 Node 路径。

Claude Code(CLI)

将配置添加到 ~/.claude/settings.json 或项目中的 .claude/settings.json:

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

添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.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"
      }
    }
  }
}
Windsurf

添加到 ~/.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

为 OpenClaw 安装 Indigo 技能:

openclaw skills add IndigoProtocol/indigo-skills

技能会自动配置,立即开始使用 Indigo 工具。

与 Cardano MCP 一起使用

如需完整的 Cardano DeFi 功能,请同时使用 Indigo MCP 和 Cardano MCP:

{
  "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"
      }
    }
  }
}
任意兼容 MCP 的客户端

通过 stdio 直接运行服务:

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

或者全局安装并引用二进制文件:

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

对于任何支持通过 stdio 使用 MCP 的客户端,将其指向带有上述环境变量的 npx @indigoprotocol/indigo-mcp 命令。

可用工具

资产工具
工具描述参数
get_assets获取所有 Indigo iAssets 的价格和利息数据无
get_asset获取特定 iAsset 的详情asset:iUSD、iBTC、iETH、iSOL、iEUR、iJPY 或 iADA
get_asset_price获取特定 iAsset 的当前价格asset:iUSD、iBTC、iETH、iSOL、iEUR、iJPY 或 iADA
get_ada_price获取当前 ADA 对 USD 的价格无
get_indy_price获取当前 INDY 代币对 ADA 和 USD 的价格无
CDP / 贷款工具
工具描述参数
get_all_cdps获取所有 CDP/贷款,可按 iAsset 筛选asset?:iAsset 筛选条件;limit?:1-500(默认 50);offset?:分页偏移量
get_cdps_by_owner获取特定所有者的 CDPowner:付款密钥哈希(56 位十六进制)或 bech32 地址
get_cdps_by_address获取特定 Cardano 地址的 CDPaddress:bech32 地址(addr1... 或 addr_test1...)
analyze_cdp_health分析抵押率和清算风险owner:付款密钥哈希或 bech32 地址
CDP 写入工具

以 Pyth 定价的 iAssets 有提交时限。 目前,每种 iAsset 都通过 Pyth 定价,链上喂价验证器仅接受价格更新后 280 秒 内提交的交易。依赖价格的写入工具(open_cdp、withdraw_cdp、mint_cdp、redeem_cdp、freeze_cdp、leverage_cdp、redeem_rob)因此会返回一个 summary.pyth 区块,其中包含价格、时间戳和 submitBefore 截止时间。如果签名耗时超过该时间(例如使用硬件钱包,或由人工在浏览器中批准),请重新构建交易,而不是提交已过期的交易。价格更新过期后,构建时会被拒绝,并提供重试提示。

工具描述参数
open_cdp开启新的 CDP 仓位(返回未签名的 CBOR 交易)address:bech32 地址;asset:iUSD、iBTC、iETH、iSOL、iEUR、iJPY 或 iADA;collateralAmount:lovelace;mintAmount:最小单位的 iAsset 数量
deposit_cdp向 CDP 存入额外抵押品address:bech32 地址;asset:iAsset;cdpTxHash:CDP UTxO 交易哈希;cdpOutputIndex:输出索引;amount:lovelace
withdraw_cdp从 CDP 提取抵押品address:bech32 地址;asset:iAsset;cdpTxHash:CDP UTxO 交易哈希;cdpOutputIndex:输出索引;amount:lovelace
close_cdp关闭 CDP 并收回抵押品address:bech32 地址;asset:iAsset;cdpTxHash:CDP UTxO 交易哈希;cdpOutputIndex:输出索引
CDP 铸造/销毁工具
工具描述参数
mint_cdp从现有 CDP 铸造额外 iAssets(增加债务)address:bech32 地址;asset:iUSD、iBTC、iETH、iSOL、iEUR、iJPY 或 iADA;cdpTxHash:CDP UTxO 交易哈希;cdpOutputIndex:CDP UTxO 输出索引;amount:最小单位的 iAsset 数量
burn_cdp销毁 iAssets 以减少 CDP 债务address:bech32 地址;asset:iUSD、iBTC、iETH、iSOL、iEUR、iJPY 或 iADA;cdpTxHash:CDP UTxO 交易哈希;cdpOutputIndex:CDP UTxO 输出索引;amount:最小单位的 iAsset 数量
CDP 清算与赎回工具
工具描述参数
liquidate_cdp通过稳定池清算抵押不足的 CDPaddress:bech32 地址;asset:iAsset;cdpTxHash:CDP UTxO 交易哈希;cdpOutputIndex:输出索引
redeem_cdp从 CDP 赎回 iAssetaddress:bech32 地址;asset:iAsset;cdpTxHash:CDP UTxO 交易哈希;cdpOutputIndex:输出索引;amount:以最小单位表示的 iAsset 数量
freeze_cdp冻结 CDP 以阻止后续操作address:bech32 地址;asset:iAsset;cdpTxHash:CDP UTxO 交易哈希;cdpOutputIndex:输出索引
merge_cdps将多个 CDP 合并为一个address:bech32 地址;cdpOutRefs:{txHash, outputIndex} 数组(至少 2 个)
杠杆 CDP 工具
工具描述参数
leverage_cdp通过针对 ROB 仓位进行赎回来开立杠杆 CDPaddress:bech32 地址;asset:iAsset;leverage:杠杆倍数(例如 2.0);baseCollateral:lovelace 数量
稳定池工具
工具描述参数
get_stability_pools获取每种 iAsset 的最新稳定池状态无
get_stability_pool_accounts获取所有已开启的稳定池账户,可按 iAsset 筛选asset?:iUSD、iBTC、iETH、iSOL、iEUR、iJPY 或 iADA
get_sp_account_by_owner获取特定所有者的稳定池账户owners:付款密钥哈希或 bech32 地址数组
质押工具
工具描述参数
get_staking_info获取当前 INDY 质押管理器状态无
get_staking_positions获取所有已开启的 INDY 质押仓位无
get_staking_positions_by_owner获取特定所有者的 INDY 质押仓位owners:付款密钥哈希或 bech32 地址数组
get_staking_position_by_address获取单个地址的 INDY 质押仓位address:Cardano bech32 地址
稳定池请求工具
工具描述参数
process_sp_request处理待处理的稳定池请求(协议维护)address:bech32 地址;asset:iAsset;accountTxHash:账户 UTxO 交易哈希;accountOutputIndex:输出索引
annul_sp_request取消待处理的稳定池请求address:bech32 地址;accountTxHash:账户 UTxO 交易哈希;accountOutputIndex:输出索引
质押写入工具
工具描述参数
open_staking_position创建新的质押头寸以质押 INDY 代币address:bech32 地址;amount:以最小单位表示的 INDY 数量
adjust_staking_position调整现有质押头寸(增加或移除 INDY)address:bech32 地址;amount:正数表示增加质押,负数表示解除质押;positionTxHash:UTxO 交易哈希;positionOutputIndex:UTxO 输出索引
close_staking_position关闭质押头寸并解除所有 INDY 质押address:bech32 地址;positionTxHash:UTxO 交易哈希;positionOutputIndex:UTxO 输出索引
质押奖励工具
工具描述参数
distribute_staking_rewards将收集器 UTxO 中收集的 ADA 奖励分发给质押者address:bech32 地址;collectorTxHashes:{txHash, outputIndex} 数组
分析与 APR 工具
工具描述参数
get_tvl从 DefiLlama 获取历史 TVL 数据无
get_apr_rewards获取所有 APR 奖励记录无
get_apr_by_key获取指定键的 APRkey:APR 键(例如 sp_iUSD_indy、stake_ada)
get_dex_yields获取 iAsset 交易对的 DEX 农场收益无
get_protocol_stats获取汇总的协议统计数据无
治理工具
工具描述参数
get_protocol_params获取最新的治理协议参数无
get_temperature_checks获取温度检查投票无
get_polls获取所有治理投票无
赎回与订单簿工具
工具描述参数
get_order_book获取未结清的 ROB(赎回订单簿)头寸asset?:iAsset 筛选条件;owners?:支付密钥哈希数组
get_redemption_orders获取已执行的赎回订单asset?:iAsset 筛选条件;limit?:最大记录数(默认 100)
get_redemption_queue获取某个 iAsset 的未结清 ROB 订单簿条目asset:iUSD、iBTC、iETH、iSOL、iEUR、iJPY 或 iADA
ROB 写入工具
工具描述参数
open_rob使用 ADA 和最高价格限制开立新的 ROB 头寸address:bech32 地址;asset:iAsset;lovelacesAmount:存入的 lovelace 数量;maxPriceNumerator + maxPriceDenominator:有理数形式的最高价格
cancel_rob取消现有的 ROB 头寸address:bech32 地址;robTxHash:ROB UTxO 交易哈希;robOutputIndex:输出索引
adjust_rob调整 ROB 中的 ADA(正数表示增加,负数表示减少)address:bech32 地址;robTxHash:ROB UTxO 交易哈希;robOutputIndex:输出索引;lovelacesAdjustAmount:调整量;newMaxPriceNumerator? + newMaxPriceDenominator?:可选的新有理数形式最高价格
claim_rob领取从 ROB 头寸中收到的 iAssetsaddress:bech32 地址;robTxHash:ROB UTxO 交易哈希;robOutputIndex:输出索引
redeem_rob使用一个或多个 ROB 头寸赎回 iAssetsaddress:bech32 地址;asset:iAsset;redemptionRobs:{txHash, outputIndex, amount} 数组
DEX 代理工具
工具描述参数
get_steelswap_tokens获取 Steelswap DEX 上的所有可用代币无
get_steelswap_estimate获取 Steelswap 的兑换估算tokenIn:输入代币;tokenOut:输出代币;amountIn:数量
get_iris_liquidity_pools获取 Iris 的流动性池tokenA?:第一个代币;tokenB?:第二个代币;dex?:DEX 筛选条件
get_blockfrost_balances获取 Cardano 地址的代币余额address:Cardano bech32 地址
收集器与 IPFS 工具
工具描述参数
get_collector_utxos获取用于费用分配的收集器 UTXOlength?:要返回的最大 UTXO 数
store_on_ipfs在 IPFS 上存储文本内容text:要存储的内容
retrieve_from_ipfs根据 CID 从 IPFS 检索内容cid:IPFS 内容标识符
利息工具(v3)
工具描述参数
collect_interest构建交易,为一个或多个 CDP 收取应计利息asset、cdps[]
distribute_interest构建交易,分配已收取的利息(管理员)address
feed_interest_oracle向利息预言机提供新的利率(管理员)address、预言机参数
get_interest_oracle读取 iAsset 当前的利息预言机状态asset
预言机 / Pyth 工具(v3)
工具描述参数
get_oracle_price获取 iAsset 的链上价格(OracleNft / Delisted / Pyth)asset
get_pyth_price获取 iAsset 当前的 Pyth 价格及其链上馈送配置asset
feed_price_oracle向由 OracleNft 支持的价格预言机提供新价格(管理员)address、oracleTxHash、价格
稳定币互换工具(v3)
工具描述参数
get_stableswap_pool获取 (iAsset, 抵押品) 的稳定币互换池状态asset
create_stableswap_order构建交易,通过稳定币互换池交换抵押品↔iAssetaddress、asset、amount、minting
cancel_stableswap_order构建交易,取消稳定币互换订单address、orderTxHash、orderOutputIndex

环境变量

变量必需默认值说明
INDEXER_URL否https://analytics.indigoprotocol.io/apiIndigo 分析 API 基础 URL
BLOCKFROST_API_KEY写入操作必需—用于构建交易的 Blockfrost 项目 ID
CARDANO_NETWORK否mainnetCardano 网络:mainnet、preprod 或 preview
MCP_TRANSPORT否stdio传输模式:stdio 或 http
PORT否3000HTTP 服务端口(仅在 MCP_TRANSPORT=http 时使用);MCP_PORT 也可作为别名
HOST否0.0.0.0HTTP 绑定地址(仅在 MCP_TRANSPORT=http 时使用);设为 127.0.0.1 可仅绑定到本地
X402_PRIVATE_KEY否—付款方钱包的 EVM 私钥(0x…)——启用通过拆分流程自动付款
PAYMENT_SERVER否https://mcp.openmm.io结算工作进程/代理 URL
X402_TESTNET否false使用 Base Sepolia 测试网
X402_FACILITATOR_URL否—备用 Facilitator(仅在未设置 PAYMENT_SERVER 时使用)

示例查询

连接到 LLM Agent 后,你可以用自然语言提问,例如:

  • “所有 Indigo iAssets 当前的价格是多少?”
  • “iUSD 现在的价格是多少?”
  • “ADA 值多少美元?”
  • “显示所有 iETH CDP”
  • “这个地址拥有哪些 CDP?”(粘贴 Cardano 地址)
  • “分析我的 CDP 健康状况”(提供你的地址或付款密钥哈希)
  • “我的持仓是否有被清算的风险?”
  • “显示当前稳定池状态”
  • “我的稳定池存款是多少?”(提供你的地址)
  • “我质押了多少 INDY?”(提供你的地址)
  • “Indigo 当前的 TVL 是多少?”
  • “我在 iUSD 稳定池中能获得多少 APR?”
  • “当前治理协议参数是什么?”
  • “显示 iUSD 赎回队列”
  • “获取将 100 ADA 兑换为 iUSD 的 Steelswap 估算”
  • “iAsset 交易对当前的 DEX 收益率是多少?”

分发

该服务发布在三个地方,它们并非同一构建产物。

目标构建方式输出发布方式
npm — @indigoprotocol/indigo-mcpscripts/build.shdist/CI,在 v* 标签上触发
MCP Registry — io.github.IndigoProtocol/indigo-mcpserver.json仅元数据CI,在 v* 标签上触发(GitHub OIDC——无需令牌)
Smitheryscripts/smithery-build.sh.smithery/stdio/server.mcpb手动运行 pnpm smithery:publish

容器镜像(Dockerfile)从源代码构建,由 Fly 和其他容器托管平台使用。它不会使用 .smithery/ 输出——该路径仅供 Smithery 使用。

发布版本
  1. 合并版本号更新(package.json;SERVER_VERSION 从中读取)
  2. git tag vX.Y.Z && git push origin vX.Y.Z
  3. CI 会先发布到 npm,然后发布到 MCP Registry(Registry 通过软件包的 mcpName 字段验证所有权,因此必须先发布到 npm)
  4. 对照 Registry 验证,而不是查看工作流:npm view @indigoprotocol/indigo-mcp version
  5. 为托管的 HTTP 端点运行 fly deploy,并为 Smithery 运行 pnpm smithery:publish

开发

先决条件
  • Node.js >= 20(捆绑的 undici 需要全局 File,该全局对象从 Node 20 开始提供)
  • npm
设置
git clone https://github.com/IndigoProtocol/indigo-mcp.git
cd indigo-mcp
npm install
npm run dev      # run with tsx (hot reload)
脚本
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 mode
项目结构
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 CBOR
通过 stdin 测试

服务通过 stdio 使用 JSON-RPC 进行通信。你可以直接测试工具:

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

x402 付费门控

Indigo MCP 可选择使用 x402 protocol,按次调用收取微额费用,以限制工具的使用。默认禁用付费功能——至少设置一个钱包地址即可启用。

工作原理

付费采用拆分执行模式,与 openMM-MCP 使用的架构相同:

  1. 调用工具(调用方无需提供付费标头)
  2. 门控会拦截调用并联系结算工作进程(默认位于 mcp.openmm.io)
  3. 工作进程返回带有 EIP-3009 要求(金额、接收方、链)的 402 响应
  4. 门控使用 X402_PRIVATE_KEY 在本地签名——密钥不会离开此进程
  5. 门控携带已签名的付费信息重试 → 工作进程在链上验证并签发 JWT
  6. 门控在本地验证 JWT,并执行原始工具处理程序
  7. 结算交易哈希会注入工具响应

这样可以保持清晰的进程隔离:indigo-mcp 不会持有接收方钱包,只持有付款方密钥。验证和结算由 openmm.io 代理处理。

  • 读取工具(get_tvl、get_asset_price 等)每次调用收费 $0.001 USDC
  • 分析工具(analyze_cdp_health)每次调用收费 $0.005 USDC
  • 写入工具(open_cdp、mint_cdp 等)每次调用收费 $0.01 USDC
环境变量
变量必需条件默认值描述
X402_PRIVATE_KEY启用所需—付款方钱包的 EVM 私钥(0x…)——启用拆分付费
PAYMENT_SERVER可选https://mcp.openmm.io结算工作进程 / 代理 URL
X402_TESTNET可选false使用 Base Sepolia 测试网
X402_FACILITATOR_URL可选—备用协调器 URL(仅在未设置 PAYMENT_SERVER 时使用)
拆分执行流程

设置 X402_PRIVATE_KEY 后,每次付费工具调用都会透明地按以下方式处理:

  1. 门控联系 PAYMENT_SERVER(默认为 https://mcp.openmm.io)
  2. 在本地签署 EIP-3009——私钥不会离开此进程
  3. 代理在链上验证并签发短时有效的 JWT
  4. 门控验证 JWT、执行工具,并将结算交易哈希注入响应

如果未设置 X402_PRIVATE_KEY,门控将处于禁用状态,所有工具都会在无需付费的情况下执行。

# 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-mcp
本地开发
# 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-payment
配置带 x402 的 MCP 客户端

将 env 块添加到客户端使用的 MCP 配置文件中:

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——同一 env 块也适用于 ~/.cursor/mcp.json 或 ~/.codeium/windsurf/mcp_config.json。

在 Base 主网上,将 X402_TESTNET 设为 false(或省略该变量)。

许可证

ISC

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。