关于 oracle-feeds-mcp
oracle-feeds-mcp 是只读 MCP 服务,用于获取 Chainlink 和 Pyth 的链上价格。它支持历史查询,并提供时间戳和按数据年龄标记的陈旧状态;使用公共端点且无需 API 密钥。
主要功能
- 01获取 Chainlink 和 Pyth 最新价格
- 02查询历史 Chainlink 轮次
- 03查询历史 Pyth 价格
- 04搜索 Pyth 实时 Feed 目录
- 05提供价格时间戳、年龄和陈旧标记
- 06使用公共端点且无需 API 密钥
适用场景
- 01查看受支持资产的当前预言机价格
- 02获取指定 Chainlink 轮次的价格
- 03查询指定时间的 Pyth 价格
- 04搜索 Pyth 目录以查找 Feed
MCP 相关
通过标准 stdio MCP 服务向 MCP 客户端提供只读的 Chainlink 和 Pyth 价格数据工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
oracle-feeds-mcp
一个用于获取链上价格预言机数据的 MCP 服务,涵盖 两个独立的提供方——Chainlink 和 Pyth Network,而非仅提供一个。
为什么要做这个项目
这个领域此前唯一的 MCP 服务 kukapay/chainlink-feeds-mcp 仅支持 Chainlink,强制要求提供 Infura API 密钥,包含一个占位工具 queryPriceByRound(无论你请求哪个轮次,它都会静默地再次调用 latestRoundData()),而且没有任何测试。本项目覆盖了相同范围并提供更多功能,同时修复了这些具体问题:
chainlink-feeds-mcp | oracle-feeds-mcp | |
|---|---|---|
| 提供方 | 仅 Chainlink | Chainlink 和 Pyth |
| RPC | 需要自备 Infura 密钥 | 默认使用免费的公共 RPC,无需密钥 |
| 历史轮次查询 | 占位实现——重新获取最新轮次 | 实际调用 getRoundData(roundId) |
| 数据过时标记 | 不提供 | 每个结果都会根据数据源自身的链上/发布时戳标记 stale: true/false |
| 数据源发现 | 仅静态列表 | 静态 Chainlink 注册表 以及 对 Pyth 完整目录的实时搜索(searchPythFeeds) |
| 测试 | 无 | 21 项测试,涵盖过时状态计算、数据源查询和两个提供方(网络调用均为模拟) |
这是一个数据访问工具:它会原样返回预言机报告的价格,并附上时间戳和基于数据年龄的过时标记。它不会尝试验证、协调或裁定不同提供方之间的数据——如果你需要判断“哪个来源更可信”,那是另一个更复杂的问题,本项目有意不涉及。
下游使用提示: 预言机价格数据通常用于自主链上交易或再平衡 Agent。此服务为只读服务,本身不会转移资金;但如果你将其输出接入会执行交易的 Agent,则你有责任配置该 Agent 所需的风险控制措施——此工具不对交易规模、滑点或执行安全性做任何判断。
工具
getChainlinkPrice({ chain, pair })— 获取最新的 Chainlink 价格,并附带过时标记。getChainlinkRoundPrice({ chain, pair, roundId })— 获取指定的历史 Chainlink 轮次。listChainlinkFeeds()— 列出精选的 Chainlink 注册表中的所有链和交易对。listSupportedChains()— 仅列出链。getPythPrice({ symbol })— 按符号(SOL/USD)或原始数据源 ID 获取最新的 Pyth 价格。getPythHistoricalPrice({ symbol, unixTimestamp })— 获取指定时间的 Pyth 价格。searchPythFeeds({ query })— 搜索 Pyth 实时目录(数百个数据源,而非硬编码列表)。
每个价格结果都包含 updatedAt、ageSeconds 和 stale(默认阈值为 1 小时,超过即标记为过时)。
覆盖范围
Chainlink 数据源采用精选注册表(并非完整镜像),覆盖 5 条 EVM 链——Ethereum、Base、Arbitrum、Polygon、Optimism——每条链都包含主要交易对(BTC、ETH、USDC、USDT、DAI、LINK、SOL,以及少量链原生资产)。请参阅 src/feeds/chainlink.ts;这是一个纯数据文件,可轻松扩展以添加更多链或交易对。
Pyth 的覆盖范围实际上包含 Pyth 实时目录中的全部数据——searchPythFeeds 和 getPythPrice 会直接查询 Hermes,而不是随项目附带静态列表,因此新的 Pyth 数据源会自动显示。
安装和运行
npm install
npm run build
npm start
此服务以标准 stdio MCP 服务的形式运行——将任意 MCP 客户端指向 node dist/index.js 即可。
无需 API 密钥或环境变量。Chainlink 读取使用免费的公共 RPC 端点(*.publicnode.com);Pyth 读取使用其公开的 Hermes REST API。
开发
npm test # 21 tests, network calls mocked
npm run typecheck
披露
此仓库由 AI Agent(rileybuilds)构建和维护,并接受人工监督。请参阅账号简介。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。