Skip to main content
Glama
TuokkiCode

Finviz MCP

by TuokkiCode

Finviz MCP

MCPサーバーで、Claude(または任意のMCPクライアント)にFinviz株式データへのアクセスを提供します:個別銘柄のファンダメンタルズ、ニュース、スクリーナー検索、および実際の過去の価格データ(Yahoo Finance)。データはfinvizfinanceおよびyfinanceライブラリを使用してライブで取得されるため、APIキーは不要です。

ツール

  • get_stock(ticker) – 個別銘柄のFinvizファンダメンタルズ(P/E、時価総額、マージン、収益など)

  • get_stock_news(ticker) – 銘柄の最近のニュース見出し

  • get_price_history(ticker, days=7) – Yahoo Financeからの実際の日次履歴データ(始値/高値/安値/終値/出来高)を最大365日分、さらに最良の買い日だった日(最安値と最新終値に対する最高リターン)の分析付き。Finviz自体には履歴データAPIはなく、現在のスナップショットと静的なチャート画像のみ。

  • screen_stocks(...) – 自然なパラメータ(market_cap、sector、pe_max、rsi、dividend_yield_min、signalなど)を使用したFinvizスクリーナー。ClaudeにFinviz内部のフィルター名を説明する必要はありません。サーバーが自動的にパラメータを最も近いFinvizサポート値に変換します。ローカルで実行した場合のみ機能し、公開クラウドサーバーでは機能しません – 制限事項を参照。

  • list_screener_filters(search=None) / list_screener_signals() – Claudeがscreen_stocksで名前付きパラメータとしてまだカバーされていないフィルターを必要とする場合の補助ツール。見つかった値はscreen_stocks(extra_filters={...})パラメータとして指定できます。

screen_stocksパラメータは常に最も近いFinviz提供の「バケット」にスナップします(例:pe_max=18 → "Under 20")。これはFinvizスクリーナーが事前定義された値の範囲のみをサポートし、任意の数値をサポートしないためです。

Related MCP server: Yahoo Finance MCP Server

1. ローカルテスト

Python 3.10+が必要:

pip install -r requirements.txt
python server.py

サーバーはhttp://localhost:8000/mcp(Streamable HTTP)で起動します。

この環境でエンドツーエンドでテスト済み(インストール、起動、initializeハンドシェイク、および実際のFinvizデータを使用した5つのツールすべて)。テスト中に、PyPIのfinvizfinance 1.3.0がFinvizの更新されたページテンプレートにまだ対応していないことが判明しました:get_stockは完全にクラッシュし(古いquote-links CSSクラスが現在はquote-header_categoriesになり、内容も異なる)、screen_stocksのTicker列に余分な先頭文字が含まれていました(例:"NVDA" → "NNVDA"、Finvizの新しいロゴプレースホルダーによる)。server.pyは両方を直接修正します(ファイル上部のコメントを参照)– Finvizが再びページを変更した場合、これらの修正を最初に確認することをお勧めします。

PythonがマシンにインストールされていないがDockerがある場合は、ローカルPythonインストールなしでテストできます:

docker build -t finviz-mcp .
docker run -p 8000:8000 finviz-mcp

コマンドラインからの簡単な動作テスト(curlが必要で、サーバーが実行中であること):

curl -X POST http://localhost:8000/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}"

応答には6つのツールが表示されるはずです:get_stock、get_stock_news、get_price_history、screen_stocks、list_screener_filters、list_screener_signals。

2. 公開(例:Render)

  1. このフォルダを自分のGitリポジトリ(GitHub/GitLab)にプッシュします。

  2. Render → New + → Web Service → リポジトリを接続。

  3. RenderはDockerfileを自動的に認識します。個別の環境変数は不要です – サーバーはRenderが設定するPORT変数からポートを読み取ります。

  4. 公開後、https://finviz-mcp.onrender.comのようなURLが得られます。MCPエンドポイントはその後に/mcpが付き、つまりhttps://finviz-mcp.onrender.com/mcpです。

Railway、Fly.ioなども同様の原則で動作します(DockerfileベースのPythonホスティング、PORT環境変数)。

3. Claudeへの接続

Claude → Settings → Connectors → Add custom connector → MCP URL(https://<あなたのURL>/mcp)を貼り付け。

ClaudeはStreamable HTTPを介したリモートMCPサーバーをサポートしているため、そのまま動作します。

4. プロンプト例

  • "NVDAのFinvizファンダメンタルズを取得してください。"

  • "時価総額100億ドル以上の売られすぎたテクノロジー株を見つけてください。"

  • "利回り4%以上、P/E20未満の大型配当株を15銘柄表示してください。"

  • "TSLAの最新ニュースは何ですか?"

  • "本日トップゲイナーとしてフラグが立てられ、平均出来高が100万を超える銘柄を見つけてください。"

制限事項

  • screen_stocks(およびlist_screener_filters/list_screener_signals)は公開クラウドサーバーでは機能しません(Renderでテスト済み):FinvizはデータセンターIPアドレスからのスクリーナーエンドポイント(finviz.com/screener.ashx)に対して403 Forbiddenを返します。一方、get_stock/get_stock_news/get_price_historyは同じサーバーから完全に正常に動作します(これらは異なる、保護の少ないエンドポイントを使用します)。HTTPヘッダーの調整では修正できませんでした – これはFinvizによるスクリーナーに対する意図的なデータセンターIPブロックであると思われます。screen_stocks機能が必要な場合は、サーバーをローカルで実行し(python server.py)、cloudflared/ngrokトンネルなどを介して接続してください。これにより、リクエストは自宅ネットワークのIPから送信されます。

  • データはFinviz/Yahoo Financeのウェブサイトからスクレイピングされます(公式APIキーはありません)。そのため、サイトの構造が変更されると動作しなくなる可能性があります。

  • screen_stocksはデフォルトで結果を20行に制限し、最大50行までとすることでリクエストを高速に保ちます。

  • get_price_historyはdaysパラメータを最大365に制限します。

  • 認証は含まれていません – サービスがインターネット上で公開されている場合、URLを知っている誰でも呼び出すことができます。データは公開されていますが、後で有料/制限付き機能を追加する場合は注意してください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides comprehensive financial market data and news through the Finnhub API. Enables real-time stock quotes, company profiles, financial metrics, analyst recommendations, and market news access.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time stock quotes, historical price data, financial news, and multi-stock comparisons using Yahoo Finance data. Enables users to access comprehensive financial market information through natural language queries.
    243 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time stock market data through Yahoo Finance without requiring an API key. Get quotes, historical data, company information, financial statements, and ticker search capabilities.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides real-time stock quotes, historical data, and stock search via Yahoo Finance, enabling AI assistants to access and analyze financial market data.
    57 npm
    19
    MIT