Yahoo Finance unofficial MCP Server について
Yahoo Finance unofficial MCP Serverは、yfinance経由で株価や財務データをAIエージェントに提供するMCPサーバーです。10種類のツールで、価格履歴、財務諸表、ニュース、アナリスト評価、複数銘柄の相場を扱います。
主な機能
- 01現在の株価と主要指標を取得
- 02期間・間隔を指定して価格履歴を取得
- 03財務諸表と業績データを参照
- 04配当と株式分割の履歴を確認
- 05ニュースとアナリスト評価を取得
- 06銘柄検索と複数銘柄の相場取得
活用シーン
- 01株価と評価指標の確認
- 02指定期間の価格推移を分析
- 03企業の財務諸表と業績を調査
- 04複数銘柄の相場を比較
MCP 対応
MCPサーバーとして、株価、財務情報、市場分析データを調べるためのYahoo Financeデータツール10種類をクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
YFinance MCP Server
Yahoo Finance API との統合により金融データを提供する、包括的な Model Context Protocol(MCP)サーバーです。このサーバーにより、AI エージェントはリアルタイムの株式市場データ、過去の価格、財務諸表、市場分析にアクセスできます。
Features
- 包括的な金融データツール 10 種 により、市場データへ完全にアクセスできます
- リアルタイムの株式情報(株価、時価総額、主要指標など)
- 過去データの分析(期間や間隔を柔軟に指定可能)
- 財務諸表(損益計算書、貸借対照表、キャッシュフロー計算書)
- 業績データ(年次および四半期)
- 配当および株式分割の履歴
- ニュースおよびアナリストの推奨
- 株式検索と複数銘柄の株価情報取得
- 堅牢なエラー処理(構造化された JSON レスポンス)
- FastMCP フレームワーク(高いパフォーマンスを実現する非同期処理をサポート)
Quick Start
Prerequisites
- Python 3.11+
- uv(Python パッケージマネージャー)
Installation
# Clone the repository
git clone https://github.com/barvhaim/yfinance-mcp-server.git
cd yfinance-mcp-server
# Install dependencies
uv sync
Running the Server
# Start the MCP server
uv run main.py
# The server will start and be ready to accept MCP client connections
Available Tools
1. get_stock_info
現在の株価、時価総額、財務指標など、包括的な株式情報を取得します。
Parameters:
symbol(str):株式ティッカーシンボル(例:'AAPL'、'GOOGL')
Returns: 株価、時価総額、P/E 比率、配当利回り、52 週間の値幅、出来高、ベータ値、企業情報などの株式情報。
2. get_historical_data
期間や間隔を柔軟に指定して、過去の株価データを取得します。
Parameters:
symbol(str):株式ティッカーシンボルperiod(str):期間(1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max)interval(str):データの間隔(1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo)
Returns: 日付と出来高情報を含む、過去の OHLCV データ。
3. get_dividends
株式の配当支払い履歴を取得します。
Parameters:
symbol(str):株式ティッカーシンボル
Returns: 日付と金額を含む配当支払いの一覧。
4. get_splits
株式分割の履歴を取得します。
Parameters:
symbol(str):株式ティッカーシンボル
Returns: 日付と分割比率を含む株式分割の一覧。
5. get_financials
包括的な財務諸表を取得します。
Parameters:
symbol(str):株式ティッカーシンボルquarterly(bool):True の場合は四半期データ、False の場合は年次データを取得します
Returns: 損益計算書、貸借対照表、キャッシュフロー計算書のデータ。
6. get_earnings
分析用の業績データを取得します。
Parameters:
symbol(str):株式ティッカーシンボル
Returns: 年次および四半期の業績データ。
7. get_news
株式に関連する最近のニュース記事を取得します。
Parameters:
symbol(str):株式ティッカーシンボルcount(int):返す記事数(デフォルト:10)
Returns: タイトル、リンク、発行元、タイムスタンプを含むニュース記事の一覧。
8. get_recommendations
アナリストの推奨と評価を取得します。
Parameters:
symbol(str):株式ティッカーシンボル
Returns: 企業、評価、アクションを含むアナリスト推奨の一覧。
9. search_stocks
企業名またはティッカーシンボルで株式を検索します。
Parameters:
query(str):検索クエリ(企業名またはティッカー)limit(int):返す結果の最大数(デフォルト:10)
Returns: シンボル、名称、取引所情報を含む、一致した株式の一覧。
10. get_multiple_quotes
複数の株式の現在の株価情報を同時に取得します。
Parameters:
symbols(List[str]):株式ティッカーシンボルの一覧
Returns: 現在の株価、変動額、基本指標を含む株価情報の辞書。
Usage Examples
Basic Stock Information
# Get Apple stock information
result = await get_stock_info("AAPL")
print(f"Current Price: ${result['current_price']}")
print(f"Market Cap: ${result['market_cap']:,}")
Historical Data Analysis
# Get 1-year daily data for Google
result = await get_historical_data("GOOGL", period="1y", interval="1d")
print(f"Retrieved {result['count']} data points")
Multiple Stock Quotes
# Get quotes for tech stocks
result = await get_multiple_quotes(["AAPL", "GOOGL", "MSFT", "AMZN"])
for symbol, quote in result['quotes'].items():
print(f"{symbol}: ${quote['current_price']}")
MCP Client Integration
Claude Desktop との連携
このサーバーを Claude Desktop に接続するには:
-
1 つ目のターミナルでサーバーを起動します:
uv run main.py -
MCP 設定ファイルを編集して、Claude Desktop を設定します:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json -
サーバー設定を追加します:
{ "yfinance": { "command": "uv", "args": [ "--directory", "/path/to/yfinance-mcp-server", "run", "main.py" ] } } -
cwdのパスを実際のプロジェクトディレクトリに更新します -
新しいサーバーを読み込むため、Claude Desktop を再起動します
-
Claude に「利用可能な金融データツールを教えてください」と質問して、接続を確認します
代替方法:直接接続
その他の MCP クライアントの場合:
- サーバーを起動します:
uv run main.py - サーバーのエンドポイントに接続するよう、MCP クライアントを設定します
- ツールは AI エージェントによって自動的に検出されます
- ツールでは標準の株式シンボル(AAPL、GOOGL、MSFT など)を使用します
開発
コードフォーマット
# Format code with black
uv run black .
# Check formatting
uv run black --check .
# Show formatting differences
uv run black --diff .
新しいツールの追加
main.pyに新しい非同期関数を作成します@mcp.tool()でデコレートします- 適切な型ヒントと docstring を追加します
- エラー処理を含めます
- 実装をテストします
環境変数
設定が必要な場合は、.env.sample を .env にコピーします:
cp .env.sample .env
エラー処理
すべてのツールに包括的なエラー処理が含まれています:
- 無効なシンボルに対して、構造化されたエラーメッセージを返します
- ネットワークの問題を捕捉して報告します
- データを利用できない場合も適切に処理します
- yfinance によってレート制限が自動的に遵守されます
パフォーマンスに関する考慮事項
- パフォーマンスを最適化する非同期処理
- 構造化 JSON による効率的なデータのシリアル化
- レイテンシを低減する最小限のデータ処理
- 頻繁にアクセスされるデータを対象とした yfinance の組み込みキャッシュ
依存関係
- fastmcp - MCP サーバーの実装に使用する FastMCP フレームワーク
- yfinance - 金融データを取得する Yahoo Finance API
- python-dotenv - 環境変数の管理
- black - コードフォーマット
- pydantic - データの検証とシリアル化
ライセンス
このプロジェクトは MIT License の下で利用できます。
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 該当する場合はテストを追加します
- black でコードをフォーマットします
- プルリクエストを送信します
サポート
問題や質問がある場合:
- Issues セクションを確認します
- 開発ガイダンスについては
CLAUDE.mdファイルを確認します uv syncを実行して、すべての依存関係が正しくインストールされていることを確認します
変更履歴
v0.1.0
- 10 個の金融データツールを初期実装
- FastMCP サーバーフレームワークとの連携
- 包括的なエラー処理
- yfinance API を全面的にカバー
- MCP クライアント連携のサポート
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。