用途
chainlink-feeds-mcp 是一个 MCP(Model Context Protocol)服务器,旨在为 AI 智能体和自主系统提供对 Chainlink 去中心化链上价格喂价的实时访问。它通过 MCP 协议暴露工具,使 AI 客户端(如 Claude Desktop)能够以自然语言或 JSON 格式查询区块链价格数据。
主要能力
该服务器提供五个工具:
- getLatestPrice:获取指定链上指定交易对的最新价格,返回包含价格、小数位、轮次 ID、时间戳、代理地址和喂价类别的 JSON 对象。
- queryPriceByRound:按轮次 ID 查询指定交易对的价格,目前由于链上历史数据限制,该功能为占位符。
- listSupportedChains:返回所有支持的区块链网络的逗号分隔列表。
- listSupportedFeeds:返回所有支持的链及其价格喂价名称的 Markdown 格式列表。
- listSupportedFeedsByChain:返回指定链的价格喂价名称的逗号分隔列表。
服务器支持 9 个区块链网络,共 329 个价格喂价,定义在 feeds.json 中:
- Ethereum:107 个喂价(如 FIL/ETH、BTC/USD、USDC/USD)
- BNB Chain (bsc):80 个喂价(如 DOT/USD、CAKE/USD、BUSD/BNB)
- Base:52 个喂价(如 AXL/USD、USDC/USD、WIF/USD)
- Starknet:9 个喂价(如 ETH/USD、BTC/USD、WSTETH/ETH)
- Linea:15 个喂价(如 ETH/USD、FOXY/USD、MATIC/USD)
- Mantle:6 个喂价(如 MNT/USD、USDT/USD、BTC/USD)
- Scroll:22 个喂价(如 SCR/USD、STETH/USD、WBTC/BTC)
- zkSync:16 个喂价(如 ZK/USD、PEPE/USD、TRUMP/USD)
- Celo:22 个喂价(如 CELO/USD、CUSD/USD、NGN/USD)
可通过更新 feeds.json 添加更多链和喂价,需提供新网络配置和 Chainlink 价格喂价文档中的代理地址。
使用方式
环境要求
- Node.js:18.x 或更高版本
- npm:用于安装依赖
- Infura API Key:从 MetaMask Developer Dashboard 获取,需支持目标网络(如 Ethereum、Base)
- MCP Inspector(可选):用于本地测试服务器
- Claude Desktop(可选):用于与 Anthropic 的 Claude 界面集成
安装步骤
- 克隆仓库:
git clone https://github.com/kukapay/chainlink-feeds-mcp.git cd chainlink-feeds-mcp - 安装依赖:
项目依赖:@modelcontextprotocol/sdk(MCP 服务器功能)、ethers 6.x(区块链交互)、zod(输入验证)、dotenv(环境变量管理)。npm install - 配置 MCP 客户端:在 Claude Desktop 等 MCP 客户端的配置文件中添加:
{ "mcpServers": { "chainlink-feeds-mcp": { "command": "node", "args": ["path/to/chainlink-feeds-mcp/index.js"], "env": { "INFURA_API_KEY": "your_api_key_here" } } } }
工具调用示例
- getLatestPrice:
- 自然语言输入:"What's the latest FIL/ETH price on Ethereum?"
- 输出:"The latest FIL/ETH price on Ethereum is 0.01234, with 18 decimals, round ID 123456, updated at 2025-04-17 12:00:00 UTC."
- queryPriceByRound:
- 自然语言输入:"Can you get the FDUSD/USD price for round ID 123 on Ethereum?"
- 输出:"For round ID 123, the FDUSD/USD price on Ethereum is 1.0001, with 8 decimals, updated at 2025-04-17 12:00:00 UTC. Note: This is a placeholder response due to historical data limitations."
- listSupportedChains:
- 自然语言输入:"Which blockchain networks does this server support?"
- 输出:"The server supports the following networks: ethereum, bsc, base, starknet, linea, mantle, scroll, zksync, celo."
- listSupportedFeeds:
- 自然语言输入:"Can you list all the price feeds supported by the server?"
- 输出:Markdown 格式的链和喂价列表。
- listSupportedFeedsByChain:
- 自然语言输入:"What price feeds are available on the Base chain?"
- 输出:"The Base chain supports the following price feeds: AXL/USD, USDC/USD, WIF/USD, CBETH/ETH, ..."
适用场景
- AI 智能体需要实时获取区块链价格数据以进行决策。
- 自动化系统集成 Chainlink 价格喂价。
- 通过 Claude Desktop 等 MCP 客户端以自然语言查询价格。
限制
- queryPriceByRound 目前为占位符,因链上历史数据限制,无法返回真实历史价格。
- 需要 Infura API Key 才能访问支持的区块链网络。
- 支持的链和喂价数量固定,需手动更新 feeds.json 以添加新网络。
- 项目采用 MIT 许可证。