Indigo MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 这是一个基于 Model Context Protocol (MCP) 的后端服务器实现,专为 Indigo Protocol 构建。它通过 MCP 的工具、资源等能力,向支持 MCP 的大语言模型客户端提供可查询的数据、可执行的外部工具,以及可渲染的提示模板,帮助 LLM-driven 应用访问区块链数据、分析结果和交易能力。
-
主要功能点
- 实时数据与分析工具:提供资产价格、价格系列、ADA/INDY 价格、CDP/贷款分析等数据能力。
- CDP 与交易工具:开放、增抵、取回、关闭 CDP,抵押、铸币、清算等操作,以及与治理、稳定池、LRP 等相关工具。
- 数据资源与工具注册:通过统一的工具注册中心暴露大量工具,结合资源管理(尽管当前资源模块为占位)。
- 安全与扩展性:通过 JSON-RPC 与客户端通信,支持会话管理、能力声明;提供多种传输协议(stdio、HTTP SSE/Streamable HTTP)。
- STATA 环境友好:可在本地或云环境部署,支持环境变量配置(如 BLOCKFROST_API_KEY、INDEXER_URL、CARDANO_NETWORK)。
- 测试覆盖:包含单元测试,确保工具注册与行为符合预期。
-
安装步骤
- 运行环境要求:Node.js 版本 18+,npm。
- 下载与安装
- 克隆仓库后,进入项目目录,执行 npm install 以安装依赖。
- 运行服务器
- 直接通过 STDIO 运行(默认 stdio 模式):
- npx @indigoprotocol/indigo-mcp 或
- npm run dev(使用 tsx 热重载开发模式)
- 使用 HTTP 传输运行:
- MCP_TRANSPORT=http
- PORT=3000
- npx @indigoprotocol/indigo-mcp
- 直接通过 STDIO 运行(默认 stdio 模式):
- 构建与生产启动
- npm run build 编译 TypeScript
- npm run start 运行编译后的服务器
- 依赖与配置(环境变量示例,以下为常用字段)
- INDEXER_URL:Indigo analytics 数据源基地址(默认 https://analytics.indigoprotocol.io/api/v1)
- BLOCKFROST_API_KEY:Blockfrost 项目密钥,用于交易构建(写操作需要,只读操作可跳过)
- CARDANO_NETWORK:Cardano 网络(mainnet、preprod、preview,默认 mainnet)
- MCP_TRANSPORT:传输模式,stdio 或 http
- PORT:HTTP 监听端口(仅当 MCP_TRANSPORT=http 时使用)
-
服务器配置(供 MCP 客户端参考使用) { "serverName": "indigo-mcp", "command": "npx", "args": ["-y", "@indigoprotocol/indigo-mcp"], "env": { "INDEXER_URL": "https://analytics.indigoprotocol.io/api/v1", "BLOCKFROST_API_KEY": "your-blockfrost-project-id", "CARDANO_NETWORK": "mainnet" }, "transport": "stdio" } 注释说明:
- serverName:服务器名称,与 MCP 客户端连接时标识使用。
- command / args:启动命令及参数,示例中通过 npx 调用 indigo-mcp。
- env:运行时环境变量,包含数据源地址、区块链写操作所需的密钥、网络等信息。
- transport:传输模式,stdio 表示标准输入输出通信,http 表示通过 HTTP 端点对外暴露。
- MCP 客户端不需要此信息,但若要在 IDE/工具中进行集成配置,可参考上述字段。
-
基本使用方法(对开发者友好)
- 启动后,服务会通过 MCP 的标准 JSON-RPC 与 LLM 客户端通信,LLM 客户端可以请求读取资源、执行工具调用、获取提示模板等。
- 连接方式包括:
- STDIO:直接通过命令行或集成工具与进程的标准输入输出进行通信。
- HTTP:通过 POST /mcp 端点进行 JSON-RPC 调用,健康检查可通过 GET /health。
- 常见交互场景:
- 读取 Indigo iAsset 数据、价格、以及 CDP/分析结果等。
- 调用外部工具进行资产管理、Stability Pool、Staking、LRP、治理等操作,返回未签名交易的 CBOR 十六进制字符串以及相关摘要信息,供客户端签名并广播。
- LLM 客户端发起的查询将以清晰的文本摘要形式返回,便于在对话中展现结果或继续决策。
-
使用注意事项
- 写操作需要 BLOCKFROST_API_KEY,以便在客户端签名阶段构建交易。
- 通过 http 传输时,请确保端口开放并正确配置防火墙。
- 对接 LLM 客户端时,确保客户端支持 MCP 的 JSON-RPC 约定和传输方式(stdio/http)。