mcpField
O
oracle-feeds-mcp

oracle-feeds-mcp

ローカル
github.com/rileybuilds金融データ011 週間前に更新

oracle-feeds-mcp について

oracle-feeds-mcpは、ChainlinkとPythのオンチェーン価格を取得する読み取り専用のMCPサーバーです。履歴検索に対応し、タイムスタンプとデータ経過時間に基づく古さのフラグを返します。APIキーなしで公開エンドポイントを利用します。

主な機能

  1. 01ChainlinkとPythの最新価格取得
  2. 02過去のChainlinkラウンド検索
  3. 03過去のPyth価格検索
  4. 04Pythのライブフィードカタログ検索
  5. 05価格のタイムスタンプ、経過時間、古さのフラグ
  6. 06APIキー不要の公開エンドポイント

活用シーン

  1. 01対応資産の現在のオラクル価格を確認
  2. 02指定したChainlinkラウンドの価格を取得
  3. 03指定時点のPyth価格を検索
  4. 04Pythカタログを検索してフィードを特定

MCP 対応

標準的なstdio MCPサーバーを通じて、ChainlinkとPythの読み取り専用価格データツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpboracle-feeds-mcp.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

oracle-feeds-mcp

オンチェーンの価格オラクルデータを提供するMCPサーバーです。単一のプロバイダーではなく、Chainlink と Pyth Network の2つの独立したプロバイダーを対象としています。

このプロジェクトを作成した理由

この分野で唯一これまでに公開されていた MCP サーバーであるkukapay/chainlink-feeds-mcpは、Chainlink のみに対応し、Infura API キーが必須です。また、queryPriceByRoundツールはプレースホルダーであり、指定したラウンドに関係なく、何も通知せずに再びlatestRoundData()を呼び出します。さらに、テストもありません。このプロジェクトは同じ範囲に対応し、機能を追加したうえで、そうした問題を解決します。

chainlink-feeds-mcporacle-feeds-mcp
プロバイダーChainlink のみChainlink と Pyth
RPC独自の Infura キーが必要デフォルトで無料のパブリック RPC を使用。キーは不要
過去のラウンドの検索プレースホルダー — 最新のラウンドを再取得実際にgetRoundData(roundId)を呼び出す
データの古さ表示されないフィード独自のオンチェーン時刻/公開時刻に基づき、すべての結果にstale: true/falseを設定
フィードの検出静的リストのみChainlink の静的レジストリと Pyth の全カタログのライブ検索(searchPythFeeds)
テストなしデータの古さの計算、フィード検索、両プロバイダーを対象とした21件のテスト(ネットワーク呼び出しはモック)

これはデータアクセスツールです。タイムスタンプと経過時間に基づくデータの古さフラグを付けて、オラクルが報告した価格をそのまま返します。プロバイダー間での検証、照合、優先順位付けは行いません。「どのソースがより信頼できるか」という判断が必要な場合、それは別の、より難しい問題であり、このプロジェクトでは意図的に取り扱いません。

下流での利用に関する注意: オラクルの価格データは、自律型のオンチェーン取引エージェントやリバランスエージェントでよく利用されます。このサーバーは読み取り専用であり、それ自体が資金を動かすことはありません。ただし、出力を取引を実行するエージェントに接続する場合は、そのエージェントに必要なリスク管理をご自身の責任で行ってください。このツールは、取引量、スリッページ、実行の安全性について関与しません。

ツール

  • 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 エージェント(rileybuilds)が人間の監督のもとで構築・保守しています。アカウントのプロフィールをご覧ください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。