Yahoo Finance MCP Server について
yfinance 経由で Yahoo Finance のデータを AI アシスタントに提供する Python 製 MCP サーバーです。株式の基礎情報、アナリスト見通し、ニュース、スクリーナー、チャートを扱います。
主な機能
- 01企業、評価、取引データ
- 02アナリスト予測と格付け変更
- 03財務諸表と保有者データ
- 04ニュース検索とセクターランキング
- 05過去価格とチャート生成
- 06オプション、ファンド保有銘柄、スクリーナー
活用シーン
- 01銘柄の財務状況とアナリスト見通しの確認
- 02セクター上位銘柄の検索や株式・ファンドのスクリーニング
- 03テクニカルチャートによる過去価格の分析
- 04オプション、ファンド保有銘柄、インサイダー取引の確認
MCP 対応
Yahoo Finance のデータや操作をツールとして MCP クライアントに提供します。株式検索、ニュース、スクリーナー、チャート生成などを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
15掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| symbol | string | はい | 株式ティッカーシンボル(例:'AAPL'、'GOOGL'、'MSFT') |
詳細
Yahoo Finance MCP サーバー
yfinance を介して AI アシスタントが Yahoo Finance のデータにアクセスできるようにする、Model Context Protocol(MCP) サーバーです。AI とのチャットから、株式情報、金融ニュース、セクターランキングの照会や、プロ仕様の金融チャートの生成を行えます。
機能
- 株式データ — 企業情報、財務情報、バリュエーション指標、配当、取引データ
- アナリストデータ — コンセンサス目標値、予想・修正の推移、推奨履歴、企業単位のアクション
- 財務諸表 — 過去のデータを含む損益計算書と貸借対照表(EBIT、投下資本など)
- 金融ニュース — 任意のティッカーに関する最近のニュース記事やプレスリリース
- 検索 — Yahoo Finance 全体から株式、ETF、ニュースを検索
- セクターランキング — セクター別の上位 ETF、投資信託、企業、成長リーダー、上位パフォーマー
- 価格履歴 — 過去の OHLCV データを Markdown テーブルまたはプロ仕様のチャートで表示
- チャート生成 — WebP 画像として返されるローソク足、VWAP、出来高プロファイルのチャート
- オプションデータ — コール、プット、権利行使価格、IV、満期日を含むオプションチェーン
- 所有者データ — 大株主、機関投資家、投資信託の保有者、インサイダー取引
- ファンドの投資先情報 — ETF と投資信託の保有銘柄、資産クラス、セクター、格付け、運用の詳細
- スクリーナー — 事前定義済み、株式、投資信託、ETF のクエリツリー
ツール
yfinance_get_ticker_info
企業情報、財務情報、取引指標、ガバナンスデータなど、包括的な株式データを取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
symbol | string | はい | 株式ティッカーシンボル(例:AAPL、GOOGL、MSFT) |
返却値: 企業の詳細、価格データ、バリュエーション指標、取引情報、配当、財務情報、パフォーマンス指標を含む JSON オブジェクト。
yfinance_get_analyst_price_targets
株式の現在価格と、アナリストのコンセンサス価格目標を取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
symbol | string | はい | 株式ティッカーシンボル(例:AAPL、GOOGL、MSFT) |
返却値: current、low、high、mean、median の価格フィールドを含む JSON オブジェクト。アナリストのカバレッジと利用可能なフィールドは、シンボルによって異なります。
yfinance_get_analyst_estimates
アナリストのコンセンサス予想、予想修正の勢い、推奨、成長予想、業績履歴を取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
symbol | string | はい | 株式ティッカーシンボル |
sections | array | いいえ | recommendations、earnings_estimate、revenue_estimate、eps_trend、eps_revisions、earnings_history、growth_estimates のいずれか。すべてのセクションを取得する場合は省略します |
max_rows | number | いいえ | セクションごとの最大行数。デフォルト:12。すべての行を取得するには 0 を使用します |
返却値: 利用可能なセクションの名前付き配列に加え、セクションごとの行数、切り捨て状況、利用できないセクション、取得に失敗したセクションを含む _metadata。あるセクションでエラーが発生しても、正常に取得できたセクションは破棄されません。
yfinance_get_upgrades_downgrades
アナリストによる格上げ、格下げ、新規カバレッジ開始、評価の再確認、目標株価の変更を新しい順に取得します。
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | Yes | 株式のティッカーシンボル |
max_rows | number | No | 返すアクションの最大件数です。デフォルト:25。すべての行を返すには 0 を指定します |
Returns: 格上げ・格下げの記録を含む JSON オブジェクトです。_metadata には行数と切り捨て状況が含まれます。記録には次の項目が含まれる場合があります。
GradeDate:アナリストのアクションの日時Firm:アナリスト企業名ToGradeとFromGrade:新しい評価と以前の評価Action:評価に関するアクションpriceTargetAction:Raises、Lowers、Maintainsなどの目標株価に関するアクションcurrentPriceTargetとpriorPriceTarget:新しい目標株価と以前の目標株価
利用可能なフィールドは、銘柄やアナリストのアクションによって異なります。
yfinance_get_ticker_news
特定の株式に関する最近のニュース記事やプレスリリースを取得します。
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | Yes | 株式のティッカーシンボル |
symbol は空であってはならず、ASCII の英字、数字、または ., -, ^, =, &, _ のみを含む必要があります。
無効な入力の場合は、入力値を再表示したり Yahoo Finance を呼び出したりせずに INVALID_PARAMS を返します。
受け付ける形式には、BRK.B、2330.TW、^GSPC、EURUSD=X、ES=F、BTC-USD があります。
この形式チェックでは、ティッカーが存在するかどうかは検証しません。
Returns: タイトル、概要、公開日、プロバイダー、URL、サムネイルを含むニュース項目の JSON 配列です。
yfinance_search
Yahoo Finance で株式、ETF、ニュース記事を検索します。
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | 検索クエリ — 企業名、ティッカーシンボル、またはキーワード |
search_type | string | Yes | "all"(株価情報+ニュース)、"quotes"(株式/ETF のみ)、または "news"(記事のみ) |
Returns: search_type に応じて、一致する株価情報やニュースの結果を返します。
yfinance_get_top
市場セクター内で上位にランクされる金融商品や企業を取得します。
| Parameter | Type | Required | Description |
|---|---|---|---|
sector | string | Yes | 市場セクター(下記の対応セクターを参照) |
top_type | string | Yes | "top_etfs"、"top_mutual_funds"、"top_companies"、"top_growth_companies"、または "top_performing_companies" |
top_n | number | No | 返す結果の件数(デフォルト:10、最大:100) |
Returns: 関連指標を含む、上位の金融商品や企業の JSON 配列です。
対応セクター
Basic Materials、Communication Services、Consumer Cyclical、Consumer Defensive、Energy、Financial Services、Healthcare、Industrials、Real Estate、Technology、Utilities
yfinance_screen
事前定義されたスクリーナーキーまたはカスタムクエリツリーを使用して、Yahoo Finance のスクリーナーを実行します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
query | string/object | はい | query_type="predefined" の場合:"day_gainers" などのスクリーナーキー。query_type="equity"、"fund"、または "etf" の場合:{operator, operands} ノードを含むカスタムクエリツリー |
query_type | string | いいえ | "predefined"(デフォルト)、"equity"、"fund"、または "etf" |
offset | number | いいえ | 結果のオフセット |
size | number | いいえ | カスタムクエリの行数。Yahoo の上限は 250 です |
count | number | いいえ | 事前定義されたクエリの行数。Yahoo の上限は 250 です |
sort_field | string | いいえ | ソートフィールド。例:"percentchange" |
sort_asc | boolean | いいえ | true の場合は昇順、false の場合は降順にソートします |
user_id | string | いいえ | オプションの Yahoo ユーザー識別子 |
user_id_type | string | いいえ | オプションの Yahoo ユーザー ID の種類。通常は "guid" です |
戻り値: Yahoo Finance からの JSON スクリーナーレスポンス。通常、銘柄データの行とメタデータが含まれます。
カスタム株式スクリーナーの例:
{
"query_type": "equity",
"query": {
"operator": "and",
"operands": [
{ "operator": "gt", "operands": ["percentchange", 3] },
{ "operator": "eq", "operands": ["region", "us"] },
{ "operator": "gte", "operands": ["intradayprice", 5] },
{ "operator": "gt", "operands": ["dayvolume", 500000] }
]
},
"sort_field": "percentchange",
"sort_asc": false,
"size": 50
}
カスタム ETF スクリーナーの例:
{
"query_type": "etf",
"query": {
"operator": "and",
"operands": [
{ "operator": "eq", "operands": ["categoryname", "Large Blend"] },
{ "operator": "lte", "operands": ["annualreportnetexpenseratio", 0.2] }
]
},
"sort_field": "fundnetassets",
"sort_asc": false,
"size": 25
}
yfinance_screen_gappers
寄り付きセッションで上昇しているギャップ銘柄を対象とする、専用のカスタムスクリーナーを実行します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
min_percent_change | number | いいえ | 前日終値からのギャップ/変化率の最小値(デフォルト:3.0) |
min_price | number | いいえ | 日中価格の最小値(デフォルト:5.0) |
min_volume | number | いいえ | 当日出来高の最小値(デフォルト:500000) |
min_market_cap | number | いいえ | 日中時価総額の最小値(米ドル、デフォルト:2000000000) |
region | string | いいえ | Yahoo の地域コード(デフォルト:"us") |
size | number | いいえ | 結果の件数(デフォルト:50、最大:250) |
offset | number | いいえ | ページネーション用の結果オフセット(デフォルト:0) |
sort_asc | boolean | いいえ | percentchange で昇順(true)または降順(false、デフォルト)にソートします |
戻り値: Yahoo Finance からの JSON スクリーナーレスポンス。
yfinance_get_price_history
過去の価格データを取得し、必要に応じてテクニカル分析チャートを生成します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
symbol | string | はい | 株式ティッカーシンボル |
period | string | いいえ | 期間 — 1d、5d、1mo、3mo、6mo、1y、2y、5y、10y、ytd、max(デフォルト:1mo) |
interval | string | いいえ | データの粒度 — 1m、2m、5m、15m、30m、60m、90m、1h、1d、5d、1wk、1mo、3mo(デフォルト:1d) |
chart_type | string | いいえ | 生成するチャート(表形式データの場合は省略します) |
prepost | boolean | いいえ | 利用可能な場合、プレマーケットおよびポストマーケットのデータを含めます(デフォルト:false。period="1d"、interval="1m" のような日中データのリクエストで便利です) |
チャートの種類:
| 値 | 説明 |
|---|---|
"price_volume" | 出来高バー付きのローソク足チャート |
"vwap" | 出来高加重平均価格のオーバーレイ付き価格チャート |
"volume_profile" | 価格帯ごとの出来高分布を示すローソク足チャート |
戻り値:
chart_typeなし:日付、始値、高値、安値、終値、出来高、配当、株式分割の列を含む Markdown テーブル。chart_typeあり:トークンを効率的に使用できるよう、Base64 エンコードされた WebP 画像。
yfinance_get_financials
財務諸表(損益計算書、貸借対照表、キャッシュフロー計算書)を過去のデータとともに取得します。
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | Yes | 株式ティッカーシンボル |
frequency | string | No | "annual"(年次)、"quarterly"(四半期)、または "ttm"(直近12か月)。デフォルト:"annual" |
戻り値: 各報告期間の損益計算書、貸借対照表、キャッシュフローのデータを含むJSONオブジェクトです。
- 損益計算書のフィールド:EBIT、純利益、税引当額、税引前利益、支払利息、総収益、営業利益、EBITDA、正規化後の純利益
- 貸借対照表のフィールド:株主資本、総負債、現金および現金同等物、投下資本、純負債、総資産、非支配持分を含む総負債、無形資産控除後の純資産、有形簿価
- キャッシュフローのフィールド:営業キャッシュフロー、フリーキャッシュフロー、設備投資、継続事業からの純利益、減価償却費、運転資本の変動、現金配当金の支払い
yfinance_get_holders
大株主、機関投資家、投資信託の保有者、およびインサイダーのデータを取得します。
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | Yes | 株式ティッカーシンボル(例:AAPL、MSFT) |
max_rows | number | No | 保有者の各セクションで返される最大行数。デフォルト:10。すべての行を返すには 0 を指定します |
戻り値: 以下を含むJSONオブジェクトです。
major_holders— 各行にindexラベル(例:insidersPercentHeld、institutionsPercentHeld、institutionsFloatPercentHeld、institutionsCount)とValueが含まれる集計内訳institutional_holders— 機関投資家。レコードには通常、Date Reported、Holder、Shares、Value、pctChange、pctHeldなどのフィールドが含まれますmutualfund_holders— 投資信託の保有者。レコードには通常、機関投資家の保有者と同様のフィールドが含まれますinsider_transactions— 最近のインサイダー取引。レコードには通常、Shares、Value、Insider、Position、Transaction、Start Date、Ownershipなどのフィールドが含まれますinsider_purchases— 6か月間の概要。各行にはカテゴリ(購入、売却、純株式数など)が記載されます。レコードには通常、Insider Purchases Last 6m、Shares、Transなどのフィールドが含まれますinsider_roster— 確認されているインサイダー。レコードには通常、Name、Position、Shares Owned Directly、Most Recent Transaction、Latest Transaction Dateなどのフィールドが含まれます_metadata— 行数制限のメタデータ。max_rowsと、セクションごとのtotal_rows、returned_rows、truncatedが含まれます
応答を簡潔に保つため、保有者の各セクションはデフォルトで10行に制限されています。保有者データセット全体が必要な場合は、max_rows: 0 を指定してください。保有者関連データセットのフィールド名は yfinance によって提供され、ティッカー、データの利用状況、yfinance のバージョンによって異なる場合があります。
yfinance_get_fund_data
ETFまたは投資信託のポートフォリオ構成と運用の詳細を取得します。
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | Yes | ETFまたは投資信託のティッカーシンボル(例:SPY、BND、VFIAX) |
sections | array | No | description、fund_overview、fund_operations、asset_classes、top_holdings、equity_holdings、bond_holdings、bond_ratings、sector_weightings のいずれか。すべてのセクションを取得する場合は省略します |
max_rows | number | No | 表形式の各セクションで返される最大行数。デフォルト:25。すべての行を取得するには 0 を指定します |
戻り値: 利用可能なファンドの各セクションに加え、行数制限、セクションごとの切り捨て状況、利用できないセクション、取得に失敗したセクションを含む _metadata が返されます。セクションの構成はファンドによって異なります。たとえば、株式ファンドと債券ファンドでは、表示されるポートフォリオの内訳が異なります。
yfinance_get_option_dates
株式で利用可能なオプションの満期日を取得します。
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | Yes | 株式のティッカーシンボル(例:AAPL、MSFT) |
返り値: YYYY-MM-DD 形式の満期日の JSON 配列。
yfinance_get_option_chain
利用可能な権利行使価格を含む、株式のオプションチェーンデータ(コールとプット)を取得します。
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | Yes | 株式のティッカーシンボル |
expiration_date | string | No | YYYY-MM-DD 形式のオプション満期日。省略すると、すべての日付を取得します。 |
option_type | string | No | "calls"、"puts"、または "all"(デフォルト:"all") |
返り値: 満期日をキーとする JSON オブジェクト。以下の情報を含むコールおよび/またはプットのデータが含まれます。
contractSymbol:オプション契約の識別子strike:権利行使価格lastPrice:最終取引価格bid/ask:買値と売値volume:取引高openInterest:建玉impliedVolatility:IVinTheMoney:オプションがイン・ザ・マネーかどうかcontractSize:契約サイズ(REGULAR)currency:通貨(USD)
使用方法
uv を使用する場合(推奨)
- uv をインストールします
- MCP クライアントの設定に以下を追加します。
{
"mcpServers": {
"yfmcp": {
"command": "uvx",
"args": ["yfmcp@latest"]
}
}
}
Docker を使用する場合
{
"mcpServers": {
"yfmcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "narumi/yfinance-mcp"]
}
}
}
ソースから
- リポジトリをクローンし、依存関係をインストールします。
git clone https://github.com/narumiruna/yfinance-mcp.git
cd yfinance-mcp
uv sync
- MCP クライアントの設定に以下を追加します。
{
"mcpServers": {
"yfmcp": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/yfinance-mcp",
"yfmcp"
]
}
}
}
/path/to/yfinance-mcp を、クローンしたリポジトリの実際のパスに置き換えてください。
Codex CLI でのテスト
このリポジトリには .codex/config.toml が含まれており、uv run yfmcp を使用してローカルの yfmcp MCP サーバーを Codex CLI に登録します。リポジトリをクローンして uv sync を実行した後、リポジトリのルートから Codex CLI を開き、次のようなプロンプトを試してください。
Show VOO ticker info
Show VOO price history for the last 5 days
Find the ticker symbol for Toyota
Get AAPL option expiration dates
開発
前提条件
- Python ≥ 3.12
- uv パッケージマネージャー
セットアップ
uv sync --extra dev
Lint とフォーマット
uv run ruff check .
uv run ruff format .
型チェック
uv run ty check src tests
テスト
uv run pytest -v -s --cov=src tests
デモチャットボット
専用リポジトリのデモチャットボットをご覧ください:yfinance-mcp-demo
コントリビューター
contrib.rocks で作成されています。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。