链上价格数据服务

提供实时访问Chainlink去中心化链上价格数据的MCP服务器,优化用于AI代理和自治系统的无缝集成。

  • by kukapay
  • JavaScript
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 kukapay/chainlink-feeds-mcp

使用说明

Chainlink为MCP服务器供电

MCP服务器,提供对Chainlink去中心化链上价格馈送的实时访问,经过优化,可无缝集成到人工智能代理和自主系统中

特性

  • 查询最新价格:获取指定价格馈送对的最新价格(例如。, FIL/ETH)在给定链上(例如。, ethereum),包括价格、小数、轮ID和时间戳。
  • 按轮次ID查询价格:检索特定轮次ID的价格数据(由于链上历史数据的限制,目前为占位符)。
  • 列出支持的链:获取支持的区块链网络的逗号分隔列表(例如。, ethereum,base).
  • 列出所有订阅源:检索所有链及其价格提要名称的Markdown格式列表(例如。, - ethereum: FIL/ETH,FDUSD/USD).
  • 按链列出订阅源:获取特定链的价格馈送名称的逗号分隔列表(例如。, FIL/ETH,FDUSD/USD 为了 ethereum).
  • 可配置的馈送:在中定义价格提要和RPC端点 feeds.json 文件,支持多个链和提要类别。

支持的链和馈送

服务器支持 9个区块链网络 总计 329条价格信息,如中所定义 feeds.json:

  • 以太坊107次喂食(例如。, FIL/ETH, BTC/USD, USDC/USD)
  • BNB链(bsc):80次喂食(例如。, DOT/USD, CAKE/USD, BUSD/BNB)
  • 基础:52次喂食(例如。, AXL/USD, USDC/USD, WIF/USD)
  • 斯塔克内特:9次喂食(例如。, ETH/USD, BTC/USD, WSTETH/ETH)
  • 流线:15次喂食(例如。, ETH/USD, FOXY/USD, MATIC/USD)
  • 地幔:6次喂食(例如。, MNT/USD, USDT/USD, BTC/USD)
  • 滚动: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的Price Feeds文档。

先决条件

  • Node.js:版本18.x或更高版本。
  • npm:用于依赖项安装。
  • Infura API密钥:从获取密钥 MetaMask开发人员仪表板 可以访问支持的网络(例如以太坊、Base)。
  • MCP检查员 (可选):用于在本地测试服务器。
  • 克劳德桌面 (可选):用于与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" }
        }
      }
    }   
    

用法

服务器通过MCP协议公开了五个工具,可通过以下方式访问 克劳德桌面 (用于自然语言查询)或 MCP检查员 (对于JSON输入)。下面是工具,有自然语言(通过Claude Desktop)和JSON格式的示例。

工具: getLatestPrice

  • 描述:获取指定链上给定对的最新价格,返回一个JSON对象,如下所示:

    {
      "chain": "ethereum",
      "pair": "FIL/ETH",
      "price": 0.01234,
      "decimals": 18,
      "roundId": "123456",
      "timestamp": "2025-04-17T12:00:00.000Z",
      "proxyAddress": "0x0606Be69451B1C9861Ac6b3626b99093b713E801",
      "feedCategory": "medium"
    }
    
  • 参数:

    • pair (string):价格馈送对,例如。, FIL/ETH.
    • chain (string):区块链网络,例如。, ethereum.
  • 自然语言示例(Claude Desktop):

    输入:“以太坊上FIL/ETH的最新价格是多少?”

    输出:“以太坊上最新的FIL/ETH价格为0.01234,有18位小数,轮次ID为123456,更新时间为2025-04-17 12:00:00 UTC。”

工具: queryPriceByRound

  • 描述:查询指定链上给定对和轮ID的价格,返回一个JSON对象,如下所示:

    {
      "chain": "ethereum",
      "pair": "FDUSD/USD",
      "price": 1.0001,
      "decimals": 8,
      "roundId": "123",
      "timestamp": "2025-04-17T12:00:00.000Z",
      "proxyAddress": "0xfAA9147190c2C2cc5B8387B4f49016bDB3380572",
      "feedCategory": "medium"
    }
    
  • 参数:

    • roundId (string):价格数据的轮次ID。
    • pair (string):价格馈送对,例如。, FDUSD/USD.
    • chain (string):区块链网络,例如。, ethereum.
  • 自然语言示例(Claude Desktop):

    输入:“你能在以太坊上获得第123轮的FDUSD/USD价格吗?”

    输出:“对于第123轮,以太坊上的FDUSD/USD价格为1.0001,有8位小数,更新时间为2025-04-17 12:00:00 UTC。注意:由于历史数据的限制,这是一个占位符响应。”

工具: listSupportedChains

  • 描述:返回所有支持的区块链网络的逗号分隔列表。

  • 参数:没有。

  • 自然语言示例(Claude Desktop):

    输入:“此服务器支持哪些区块链网络?”

    输出:“服务器支持以下网络:以太坊、bsc、base、starknet、linea、mantle、scroll、zksync、celo。”

工具: listSupportedFeeds

  • 描述:返回所有支持的链及其价格提要名称的Markdown列表。

  • 参数:没有。

  • 自然语言示例(Claude Desktop):

    输入:“你能列出服务器支持的所有价格提要吗?”

    输出:“以下是按链支持的价格提要:

    • 以太坊:FIL/ETH、FDUSD/USD、UNI/ETH。..
    • BNB链:DOT/USD、CAKE/USD、BUSD/BNB。..
    • 基准:AXL/USD、USDC/USD、WIF/USD。..
    • Starknet:以太坊/美元,比特币/美元,WSTETH/ETH。..
    • Linea:ETH/USD,FOXY/USD,MATIC/USD。..
    • 地幔:MNT/USD、USDT/USD、BTC/USD。..
    • 滚动:SCR/USD,STETH/USD,WBTC/BTC。..
    • zkSync:ZK/USD、PEPE/USD、TRUMP/USD。..
    • Celo:Celo/USD,CUSD/USD,NGN/USD。.."

工具: listSupportedFeedsByChain

  • 描述:返回指定区块链网络的价格提要名称的逗号分隔列表。

  • 参数:

    • chain (string):区块链网络,例如。, base.
  • 自然语言示例(Claude Desktop):

    输入:“Base链上有哪些价格信息?”

    输出:“基础链支持以下价格馈送:AXL/USD、USDC/USD、WIF/USD、CBETH/ETH……”

许可证

该项目根据 MIT许可证.