Chainlink Feeds MCP Server について
Chainlink Feeds MCP Server は、設定済みネットワークの Chainlink オンチェーン価格フィードを AI エージェントに提供します。最新価格の取得や対応ネットワーク・フィードの一覧表示ができ、ラウンド指定の履歴取得は現在プレースホルダーです。
主な機能
- 01ネットワークとペアを指定して最新価格を取得
- 02ラウンド ID による価格照会
- 03対応ネットワークとフィードの一覧表示
- 04指定ネットワークのフィード一覧表示
- 05フィードと RPC エンドポイントの設定
活用シーン
- 01トークンペアの最新オンチェーン価格を確認する
- 02ネットワークで利用可能なフィードを探す
- 03照会前に対応ネットワークを確認する
MCP 対応
価格データの取得と対応ネットワーク・フィードの一覧表示を行う 5 つの MCP ツールを公開します。クライアントはネットワークとペアを指定して最新価格を取得できますが、ラウンド ID による結果は履歴データの制約からプレースホルダーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Chainlink Feeds MCP サーバー
Chainlink の分散型オンチェーン価格フィードにリアルタイムでアクセスできる MCP サーバーです。AI エージェントや自律システムにシームレスに統合できるよう最適化されています。
特長
- 最新価格の照会:指定したチェーン(例:
ethereum)上の価格フィードペア(例:FIL/ETH)の最新価格を取得します。価格、小数桁数、ラウンド ID、タイムスタンプが含まれます。 - ラウンド ID による価格の照会:特定のラウンド ID の価格データを取得します(オンチェーンの過去データに制限があるため、現在はプレースホルダーです)。
- 対応チェーンの一覧表示:対応するブロックチェーンネットワークのカンマ区切りリストを取得します(例:
ethereum,base)。 - 全フィードの一覧表示:すべてのチェーンとその価格フィード名の Markdown 形式のリストを取得します(例:
- ethereum: FIL/ETH,FDUSD/USD)。 - チェーン別フィードの一覧表示:特定のチェーンの価格フィード名のカンマ区切りリストを取得します(例:
ethereumの場合はFIL/ETH,FDUSD/USD)。 - フィードの設定:
feeds.jsonファイルで価格フィードと RPC エンドポイントを定義できます。複数のチェーンとフィードカテゴリーに対応しています。
対応チェーンとフィード
feeds.json で定義されているとおり、このサーバーは 9 つのブロックチェーンネットワークに対応し、合計 329 件の価格フィードを備えています。
- 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)
Chainlink の Price Feeds ドキュメントを参照し、新しいネットワーク設定とプロキシアドレスを feeds.json に追加することで、対応チェーンとフィードを追加できます。
前提条件
- Node.js:バージョン 18.x 以降。
- npm:依存関係のインストールに使用します。
- Infura API Key:対応ネットワーク(例:Ethereum、Base)にアクセスできるキーを MetaMask Developer Dashboard から取得してください。
- MCP Inspector(任意):サーバーをローカルでテストするために使用します。
- Claude Desktop(任意):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 プロトコルを通じて 5 つのツールを公開しており、Claude Desktop(自然言語での問い合わせ)または MCP Inspector(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):
入力:「Ethereum 上の最新の FIL/ETH 価格は?」
出力:「Ethereum 上の最新の 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):
入力:「Ethereum 上のラウンド ID 123 の FDUSD/USD 価格を取得できますか?」
出力:「ラウンド ID 123 の Ethereum 上の FDUSD/USD 価格は 1.0001 です。小数点以下の桁数は 8 で、2025-04-17 12:00:00 UTC に更新されました。注:過去のデータに制限があるため、これはプレースホルダーの応答です。」
ツール:listSupportedChains
-
説明:サポートされているすべてのブロックチェーンネットワークを、カンマ区切りのリストで返します。
-
パラメーター:なし。
-
自然言語の例(Claude Desktop):
入力:「このサーバーがサポートしているブロックチェーンネットワークは?」
出力:「このサーバーは次のネットワークをサポートしています:ethereum、bsc、base、starknet、linea、mantle、scroll、zksync、celo。」
ツール:listSupportedFeeds
-
説明:サポートされているすべてのチェーンとその価格フィード名を、Markdown リストで返します。
-
パラメーター:なし。
-
自然言語の例(Claude Desktop):
入力:「サーバーがサポートしている価格フィードをすべて一覧表示できますか?」
出力:「チェーンごとのサポート対象価格フィードは次のとおりです:
- Ethereum:FIL/ETH、FDUSD/USD、UNI/ETH、...
- BNB Chain:DOT/USD、CAKE/USD、BUSD/BNB、...
- Base:AXL/USD、USDC/USD、WIF/USD、...
- Starknet:ETH/USD、BTC/USD、WSTETH/ETH、...
- Linea:ETH/USD、FOXY/USD、MATIC/USD、...
- Mantle:MNT/USD、USDT/USD、BTC/USD、...
- Scroll: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 チェーンではどの価格フィードを利用できますか?」
出力:「Base チェーンでは次の価格フィードを利用できます:AXL/USD、USDC/USD、WIF/USD、CBETH/ETH、...」
ライセンス
このプロジェクトはMIT Licenseの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。