mcpField
Y
Yahoo Finance MCP Server

Yahoo Finance MCP Server

ローカル
github.com金融データ2053 日前に更新

Yahoo Finance MCP Server について

yfinance 経由で Yahoo Finance のデータを AI アシスタントに提供する Python 製 MCP サーバーです。株式の基礎情報、アナリスト見通し、ニュース、スクリーナー、チャートを扱います。

主な機能

  1. 01企業、評価、取引データ
  2. 02アナリスト予測と格付け変更
  3. 03財務諸表と保有者データ
  4. 04ニュース検索とセクターランキング
  5. 05過去価格とチャート生成
  6. 06オプション、ファンド保有銘柄、スクリーナー

活用シーン

  1. 01銘柄の財務状況とアナリスト見通しの確認
  2. 02セクター上位銘柄の検索や株式・ファンドのスクリーニング
  3. 03テクニカルチャートによる過去価格の分析
  4. 04オプション、ファンド保有銘柄、インサイダー取引の確認

MCP 対応

Yahoo Finance のデータや操作をツールとして MCP クライアントに提供します。株式検索、ニュース、スクリーナー、チャート生成などを利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"yfinance": {
"command": "uvx",
"args": [
"yfmcp"
]
}
}
}
起動コマンドuvx yfmcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiyfmcp0.14.0

ツール

15

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
symbolstringはい株式ティッカーシンボル(例:'AAPL'、'GOOGL'、'MSFT')

詳細

Yahoo Finance MCP サーバー

PyPI version Python CI License: MIT

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

企業情報、財務情報、取引指標、ガバナンスデータなど、包括的な株式データを取得します。

パラメーター型必須説明
symbolstringはい株式ティッカーシンボル(例:AAPL、GOOGL、MSFT)

返却値: 企業の詳細、価格データ、バリュエーション指標、取引情報、配当、財務情報、パフォーマンス指標を含む JSON オブジェクト。

yfinance_get_analyst_price_targets

株式の現在価格と、アナリストのコンセンサス価格目標を取得します。

パラメーター型必須説明
symbolstringはい株式ティッカーシンボル(例:AAPL、GOOGL、MSFT)

返却値: current、low、high、mean、median の価格フィールドを含む JSON オブジェクト。アナリストのカバレッジと利用可能なフィールドは、シンボルによって異なります。

yfinance_get_analyst_estimates

アナリストのコンセンサス予想、予想修正の勢い、推奨、成長予想、業績履歴を取得します。

パラメーター型必須説明
symbolstringはい株式ティッカーシンボル
sectionsarrayいいえrecommendations、earnings_estimate、revenue_estimate、eps_trend、eps_revisions、earnings_history、growth_estimates のいずれか。すべてのセクションを取得する場合は省略します
max_rowsnumberいいえセクションごとの最大行数。デフォルト:12。すべての行を取得するには 0 を使用します

返却値: 利用可能なセクションの名前付き配列に加え、セクションごとの行数、切り捨て状況、利用できないセクション、取得に失敗したセクションを含む _metadata。あるセクションでエラーが発生しても、正常に取得できたセクションは破棄されません。

yfinance_get_upgrades_downgrades

アナリストによる格上げ、格下げ、新規カバレッジ開始、評価の再確認、目標株価の変更を新しい順に取得します。

ParameterTypeRequiredDescription
symbolstringYes株式のティッカーシンボル
max_rowsnumberNo返すアクションの最大件数です。デフォルト:25。すべての行を返すには 0 を指定します

Returns: 格上げ・格下げの記録を含む JSON オブジェクトです。_metadata には行数と切り捨て状況が含まれます。記録には次の項目が含まれる場合があります。

  • GradeDate:アナリストのアクションの日時
  • Firm:アナリスト企業名
  • ToGrade と FromGrade:新しい評価と以前の評価
  • Action:評価に関するアクション
  • priceTargetAction:Raises、Lowers、Maintains などの目標株価に関するアクション
  • currentPriceTarget と priorPriceTarget:新しい目標株価と以前の目標株価

利用可能なフィールドは、銘柄やアナリストのアクションによって異なります。

yfinance_get_ticker_news

特定の株式に関する最近のニュース記事やプレスリリースを取得します。

ParameterTypeRequiredDescription
symbolstringYes株式のティッカーシンボル

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、ニュース記事を検索します。

ParameterTypeRequiredDescription
querystringYes検索クエリ — 企業名、ティッカーシンボル、またはキーワード
search_typestringYes"all"(株価情報+ニュース)、"quotes"(株式/ETF のみ)、または "news"(記事のみ)

Returns: search_type に応じて、一致する株価情報やニュースの結果を返します。

yfinance_get_top

市場セクター内で上位にランクされる金融商品や企業を取得します。

ParameterTypeRequiredDescription
sectorstringYes市場セクター(下記の対応セクターを参照)
top_typestringYes"top_etfs"、"top_mutual_funds"、"top_companies"、"top_growth_companies"、または "top_performing_companies"
top_nnumberNo返す結果の件数(デフォルト: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 のスクリーナーを実行します。

パラメーター型必須説明
querystring/objectはいquery_type="predefined" の場合:"day_gainers" などのスクリーナーキー。query_type="equity"、"fund"、または "etf" の場合:{operator, operands} ノードを含むカスタムクエリツリー
query_typestringいいえ"predefined"(デフォルト)、"equity"、"fund"、または "etf"
offsetnumberいいえ結果のオフセット
sizenumberいいえカスタムクエリの行数。Yahoo の上限は 250 です
countnumberいいえ事前定義されたクエリの行数。Yahoo の上限は 250 です
sort_fieldstringいいえソートフィールド。例:"percentchange"
sort_ascbooleanいいえtrue の場合は昇順、false の場合は降順にソートします
user_idstringいいえオプションの Yahoo ユーザー識別子
user_id_typestringいいえオプションの 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_changenumberいいえ前日終値からのギャップ/変化率の最小値(デフォルト:3.0)
min_pricenumberいいえ日中価格の最小値(デフォルト:5.0)
min_volumenumberいいえ当日出来高の最小値(デフォルト:500000)
min_market_capnumberいいえ日中時価総額の最小値(米ドル、デフォルト:2000000000)
regionstringいいえYahoo の地域コード(デフォルト:"us")
sizenumberいいえ結果の件数(デフォルト:50、最大:250)
offsetnumberいいえページネーション用の結果オフセット(デフォルト:0)
sort_ascbooleanいいえpercentchange で昇順(true)または降順(false、デフォルト)にソートします

戻り値: Yahoo Finance からの JSON スクリーナーレスポンス。

yfinance_get_price_history

過去の価格データを取得し、必要に応じてテクニカル分析チャートを生成します。

パラメーター型必須説明
symbolstringはい株式ティッカーシンボル
periodstringいいえ期間 — 1d、5d、1mo、3mo、6mo、1y、2y、5y、10y、ytd、max(デフォルト:1mo)
intervalstringいいえデータの粒度 — 1m、2m、5m、15m、30m、60m、90m、1h、1d、5d、1wk、1mo、3mo(デフォルト:1d)
chart_typestringいいえ生成するチャート(表形式データの場合は省略します)
prepostbooleanいいえ利用可能な場合、プレマーケットおよびポストマーケットのデータを含めます(デフォルト:false。period="1d"、interval="1m" のような日中データのリクエストで便利です)

チャートの種類:

値説明
"price_volume"出来高バー付きのローソク足チャート
"vwap"出来高加重平均価格のオーバーレイ付き価格チャート
"volume_profile"価格帯ごとの出来高分布を示すローソク足チャート

戻り値:

  • chart_type なし:日付、始値、高値、安値、終値、出来高、配当、株式分割の列を含む Markdown テーブル。
  • chart_type あり:トークンを効率的に使用できるよう、Base64 エンコードされた WebP 画像。
yfinance_get_financials

財務諸表(損益計算書、貸借対照表、キャッシュフロー計算書)を過去のデータとともに取得します。

ParameterTypeRequiredDescription
symbolstringYes株式ティッカーシンボル
frequencystringNo"annual"(年次)、"quarterly"(四半期)、または "ttm"(直近12か月)。デフォルト:"annual"

戻り値: 各報告期間の損益計算書、貸借対照表、キャッシュフローのデータを含むJSONオブジェクトです。

  • 損益計算書のフィールド:EBIT、純利益、税引当額、税引前利益、支払利息、総収益、営業利益、EBITDA、正規化後の純利益
  • 貸借対照表のフィールド:株主資本、総負債、現金および現金同等物、投下資本、純負債、総資産、非支配持分を含む総負債、無形資産控除後の純資産、有形簿価
  • キャッシュフローのフィールド:営業キャッシュフロー、フリーキャッシュフロー、設備投資、継続事業からの純利益、減価償却費、運転資本の変動、現金配当金の支払い
yfinance_get_holders

大株主、機関投資家、投資信託の保有者、およびインサイダーのデータを取得します。

ParameterTypeRequiredDescription
symbolstringYes株式ティッカーシンボル(例:AAPL、MSFT)
max_rowsnumberNo保有者の各セクションで返される最大行数。デフォルト: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または投資信託のポートフォリオ構成と運用の詳細を取得します。

ParameterTypeRequiredDescription
symbolstringYesETFまたは投資信託のティッカーシンボル(例:SPY、BND、VFIAX)
sectionsarrayNodescription、fund_overview、fund_operations、asset_classes、top_holdings、equity_holdings、bond_holdings、bond_ratings、sector_weightings のいずれか。すべてのセクションを取得する場合は省略します
max_rowsnumberNo表形式の各セクションで返される最大行数。デフォルト:25。すべての行を取得するには 0 を指定します

戻り値: 利用可能なファンドの各セクションに加え、行数制限、セクションごとの切り捨て状況、利用できないセクション、取得に失敗したセクションを含む _metadata が返されます。セクションの構成はファンドによって異なります。たとえば、株式ファンドと債券ファンドでは、表示されるポートフォリオの内訳が異なります。

yfinance_get_option_dates

株式で利用可能なオプションの満期日を取得します。

ParameterTypeRequiredDescription
symbolstringYes株式のティッカーシンボル(例:AAPL、MSFT)

返り値: YYYY-MM-DD 形式の満期日の JSON 配列。

yfinance_get_option_chain

利用可能な権利行使価格を含む、株式のオプションチェーンデータ(コールとプット)を取得します。

ParameterTypeRequiredDescription
symbolstringYes株式のティッカーシンボル
expiration_datestringNoYYYY-MM-DD 形式のオプション満期日。省略すると、すべての日付を取得します。
option_typestringNo"calls"、"puts"、または "all"(デフォルト:"all")

返り値: 満期日をキーとする JSON オブジェクト。以下の情報を含むコールおよび/またはプットのデータが含まれます。

  • contractSymbol:オプション契約の識別子
  • strike:権利行使価格
  • lastPrice:最終取引価格
  • bid/ask:買値と売値
  • volume:取引高
  • openInterest:建玉
  • impliedVolatility:IV
  • inTheMoney:オプションがイン・ザ・マネーかどうか
  • contractSize:契約サイズ(REGULAR)
  • currency:通貨(USD)

使用方法

uv を使用する場合(推奨)
  1. uv をインストールします
  2. MCP クライアントの設定に以下を追加します。
{
  "mcpServers": {
    "yfmcp": {
      "command": "uvx",
      "args": ["yfmcp@latest"]
    }
  }
}
Docker を使用する場合
{
  "mcpServers": {
    "yfmcp": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "narumi/yfinance-mcp"]
    }
  }
}
ソースから
  1. リポジトリをクローンし、依存関係をインストールします。
git clone https://github.com/narumiruna/yfinance-mcp.git
cd yfinance-mcp
uv sync
  1. 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

コントリビューター

README の画像

contrib.rocks で作成されています。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。

コメント

MCP は初めてですか?

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

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