MCP Yahoo Finance について
MCP Yahoo Finance は、Yahoo Finance から株価、企業情報、過去の価格、財務諸表、ニュース、オプションデータを取得する MCP サーバーです。開発は初期段階にあり、リリースごとにツール名やレスポンスのフィールドが変わる場合があります。
主な機能
- 01現在の株価とクォートの取得
- 02過去の価格とパフォーマンス分析
- 03財務諸表と配当データ
- 04ニュースとアナリスト評価
- 05オプションの満期日とオプションチェーン
活用シーン
- 01複数銘柄のリターンとボラティリティの比較
- 02企業の財務諸表と配当履歴の確認
- 03特定の満期日のオプションチェーンの取得
MCP 対応
本プロジェクトは MCP サーバーとして、get_current_stock_price、get_historical_stock_prices、get_income_statement、get_option_chain などのツールを MCP クライアントに公開し、JSON 形式でデータを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Yahoo Finance
MCP Yahoo Finance は Model Context Protocol(MCP)サーバーです。Yahoo Finance からデータを取得します。株価、企業データ、過去の価格、財務レポート、ニュース、アナリストの評価、決算日、配当、オプションデータを取得するために使用できます。
このプロジェクトは開発の初期段階にあります。ツール名とレスポンスのフィールドはリリース間で変更される可能性があります。
インストール
mcp-yahoo-finance は別途インストールしなくても実行できます。uvx を使用してください。
pip を使用する
pip install mcp-yahoo-finance
Git を使用する
リポジトリをクローンします。次に、開発環境をインストールします。
git clone [email protected]:maxscheijen/mcp-yahoo-finance.git
cd mcp-yahoo-finance
uv sync
設定
Claude Desktop
claude_desktop_config.json ファイルにこのエントリを追加します。
{
"mcpServers": {
"yahoo-finance": {
"command": "uvx",
"args": ["mcp-yahoo-finance"]
}
}
}
Docker を使用することもできます。IMAGE を Docker イメージ名に置き換えてください。
{
"mcpServers": {
"yahoo-finance": {
"command": "docker",
"args": ["run", "-i", "--rm", "IMAGE"]
}
}
}
VS Code
.vscode/mcp.json ファイルにこのエントリを追加します。
{
"servers": {
"yahoo-finance": {
"command": "uvx",
"args": ["mcp-yahoo-finance"]
}
}
}
質問の例
次のような質問ができます。
- 「Apple の株価はいくらですか?」
- 「前日終値、日中レンジ、市場ステータスを含む AAPL の詳細なクォートを教えてください。」
- 「Nvidia の企業概要を見せてください。」
- 「Apple と Google の株価の違いは何ですか?」
- 「2024-01-01 から 2025-01-01 の間に Apple の株価はどれだけ変化しましたか?」
- 「AAPL のオプションの満期日は何がありますか?」
- 「2024-01-19 に満期を迎える AAPL のオプションチェーンを見せてください。」
- 「Tesla のコールオプションとプットオプションは何ですか?」
レスポンスデータ
ツールはデータを JSON 形式で返します。これは詳細なクォートの例です。
{
"symbol": "AAPL",
"currentPrice": 243.5822,
"previousClose": 241.33,
"absoluteChange": 2.2522,
"percentChange": 0.9331,
"open": 242.1,
"dayHigh": 244.2,
"dayLow": 241.9,
"volume": 45678901,
"marketStatus": "REGULAR",
"currency": "USD",
"exchange": "NMS",
"timestamp": "2025-01-02T15:30:00+00:00",
"source": {
"provider": "Yahoo Finance",
"endpoint": "info",
"fetchedAt": "2025-01-02T15:30:01+00:00"
}
}
エラーはすべてのツールで同じ形式を使用します。エラーにはエラーコードとメッセージが含まれます。
{
"error": {
"code": "NO_DATA",
"message": "No historical data found for AAPL"
}
}
履歴および表形式の結果は、データソースの列名をそのまま保持します。日付は YYYY-MM-DD 形式を使用します。サーバーは Yahoo Finance が使用するタイムゾーンを表示しません。
履歴価格ツールはデフォルトで調整済み価格を返します。調整済み価格には株式分割と配当による変更が含まれます。これらの変更を含まない価格を取得するには、get_historical_stock_prices で adjusted を false に設定します。
日付検索は開始日と終了日の両方を含みます。日付が週末または市場の休業日の場合、その日付の価格データが存在しないことがあります。その場合、ツールは NO_DATA エラーを返します。
クォートまたは企業データが欠落している場合、その値は null です。ニュースツールはデフォルトで 10 件の記事を返します。最大 100 件の記事を返すことができます。タイトル、URL、発行元、サムネイル、関連する銘柄コード、公開時刻が含まれます。公開時刻は UTC と ISO 8601 形式を使用します。start_date と end_date を設定してニュースをフィルタリングできます。フィルターは両方の日付を含みます。
レコメンデーション、決算、配当、財務レポート、オプションの各ツールは、トップレベルの symbol フィールドを使用します。それらのデータが利用可能な場合、Yahoo Finance からデータを返します。
利用可能なツール
symbol の値には Yahoo Finance のティッカーシンボルを使用します。例は AAPL と MSFT です。
| ツール | 目的 |
|---|---|
get_current_stock_price | 現在の株価とクォートデータを取得します。 |
get_rich_quote | 価格、価格変動、取引レンジ、市場ステータス、ソースデータを含むクォートを取得します。 |
get_company_overview | セクター、業種、時価総額、ウェブサイト、従業員数、説明、ソースデータを含む企業プロフィールを取得します。 |
get_symbol_comparison | 最大 20 銘柄の現在のクォートを比較します。 |
get_performance_analysis | 複数銘柄のリターン、移動平均、ボラティリティ、ドローダウン、ベンチマークリターン、相関を比較します。 |
get_stock_price_by_date | 1 つの取引日の調整後終値を取得します。 |
get_stock_price_date_range | 指定した期間の調整後終値を取得します。 |
get_historical_stock_prices | 指定した期間と時間間隔の過去の価格を取得します。 |
get_dividends | 過去の配当支払いを取得します。 |
get_stock_splits | 過去の株式分割を取得します。 |
get_capital_gains | キャピタルゲインの支払いを取得します。 |
get_upcoming_dividends | 今後の配当日と配当率を取得します。 |
get_earnings_analytics | 決算結果と予想を取得します。 |
get_income_statement | 年次、四半期、または直近 12 か月の損益計算書を取得します。 |
get_cashflow | 期間ごとのキャッシュフロー計算書を取得します。 |
get_earning_dates | 過去と将来の決算日を取得します。 |
get_news | Yahoo Finance のニュースを取得します。日付フィルターを設定できます。 |
get_recommendations | アナリストの推奨を取得します。 |
get_option_expiration_dates | 利用可能なオプションの満期日を取得します。 |
get_option_chain | 1 つの満期日のコールとプットを取得します。権利行使価格、マネーネス、流動性、スプレッド、種類、結果数でフィルタリングできます。 |
get_option_summary | 1 つの満期日のインプライドボラティリティ、未決済建玉、出来高、プット/コールレシオ、マックスペインを取得します。 |
パフォーマンスの計算
パフォーマンス分析では、株式分割と配当で調整された終値を使用します。
トータルリターンは (last close / first close) - 1 です。
年間ボラティリティは、日次リターンの標準偏差に sqrt(252) を掛けたものです。
最大ドローダウンは、以前の高値からの最大の下落幅です。
このツールは、銘柄間で共通する日付の日次リターンから相関を計算します。これにより、異なる取引カレンダーを持つ銘柄を比較できます。
ローカルで開発する
uv sync を実行して、ロックされた開発環境をインストールします。次に、以下のコマンドを実行します。
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv build
以下の Makefile コマンドも使用できます。
make test
make lint
make docker-build
テストではモックの Yahoo Finance データを使用します。Yahoo Finance へのライブリクエストは行いません。
Docker イメージをビルドする
以下のコマンドを実行します。
docker build -t mcp-yahoo-finance .
MCP Inspector でテストする
以下のコマンドを実行します。
npx @modelcontextprotocol/inspector uv run mcp-yahoo-finance
Yahoo Finance の制限
Yahoo Finance はサードパーティのデータソースです。そのデータは遅延したり、不完全だったり、利用できなかったりする可能性があります。このプロジェクトは投資アドバイスを提供しません。データが正確、完全、または最新であることを保証しません。重要なデータは、使用する前に信頼できる情報源で確認してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。