SuperAPI AI 工具集

chainlink-feeds-mcp

chainlink-feeds-mcp 是一个 MCP 服务器,为 AI 智能体和自动化系统提供 Chainlink 去中心化链上价格喂价的实时访问。它支持查询指定链上交易对的最新价格、按轮次 ID 查询价格、列出支持的链和喂价,并可通过 feeds.json 配置多链和喂价类别。项目基于 Node.js 18+,使用 npm 安装依赖,需要 Infura API Key,可集成到 Claude Desktop 等 MCP 客户端。

访问官网

工具介绍

用途

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 界面集成

安装步骤

  1. 克隆仓库:
    git clone https://github.com/kukapay/chainlink-feeds-mcp.git
    cd chainlink-feeds-mcp
    
  2. 安装依赖:
    npm install
    
    项目依赖:@modelcontextprotocol/sdk(MCP 服务器功能)、ethers 6.x(区块链交互)、zod(输入验证)、dotenv(环境变量管理)。
  3. 配置 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 许可证。