Chainlink为MCP服务器供电
MCP服务器,提供对Chainlink去中心化链上价格馈送的实时访问,经过优化,可无缝集成到人工智能代理和自主系统中
 ](https://nodejs.org/)
特性
- 查询最新价格:获取指定价格馈送对的最新价格(例如。,
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界面集成。
安装
- 克隆存储库:
git clone https://github.com/kukapay/chainlink-feeds-mcp.git
cd chainlink-feeds-mcp- 再进行:
npm install该项目要求:
- @modelcontextprotocol/sdk:用于MCP服务器功能。 - ethers:用于区块链交互的6.x版本。 - zod:用于输入验证。 - dotenv:用于环境变量管理。
- 配置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许可证.
