Finviz MCP
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のfinvizfinance1.3.0がFinvizの更新されたページテンプレートにまだ対応していないことが判明しました:get_stockは完全にクラッシュし(古いquote-linksCSSクラスが現在は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)
このフォルダを自分のGitリポジトリ(GitHub/GitLab)にプッシュします。
Render → New + → Web Service → リポジトリを接続。
Renderは
Dockerfileを自動的に認識します。個別の環境変数は不要です – サーバーはRenderが設定するPORT変数からポートを読み取ります。公開後、
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を知っている誰でも呼び出すことができます。データは公開されていますが、後で有料/制限付き機能を追加する場合は注意してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Scrape stock quotes, historical prices, and financial statements from Yahoo Finance.
Analyze stocks with summaries, price targets, and analyst recommendations. Track SEC filings, divi…
Stock market data for AI agents: real-time quotes, financials, options, SEC filings and news.
Fetch current stock prices and key data for symbols across global markets. Look up companies like…
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides 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.1MIT
- AlicenseNot gradedqualityDmaintenanceProvides 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 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides 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.-
- AlicenseNot gradedqualityCmaintenanceProvides real-time stock quotes, historical data, and stock search via Yahoo Finance, enabling AI assistants to access and analyze financial market data.57 npm19MIT