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スクリーナーが事前定義された値の範囲のみをサポートし、任意の数値をサポートしないためです。
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Real-time market data, screeners, technical analysis & backtesting for stocks, crypto and forex.
Real-time news with bias scoring, live market data, and AI-powered options pricing
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TuokkiCode/finviz-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server