Skip to main content
Glama
TuokkiCode

Finviz MCP

by TuokkiCode

Finviz MCP

MCP-Server, der Claude (oder jedem anderen MCP-Client) Zugriff auf Finviz-Aktiendaten gewährt: Kennzahlen einer einzelnen Aktie, Nachrichten und Screener-Suchen sowie korrekte historische Kursdaten (Yahoo Finance). Die Daten werden live mit den Bibliotheken finvizfinance und yfinance abgerufen, es sind keine API-Schlüssel erforderlich.

Werkzeuge

  • get_stock(ticker) – Finviz-Kennzahlen einer einzelnen Aktie (KGV, Marktkapitalisierung, Margen, Renditen usw.)

  • get_stock_news(ticker) – Aktuelle Nachrichtenüberschriften der Aktie

  • get_price_history(ticker, days=7) – Korrekte tägliche Verlaufsdaten (Eröffnung/Höchst/Tiefst/Schluss/Volumen) von Yahoo Finance für bis zu 365 Tage, sowie eine fertige Analyse, welcher Tag der beste Kauftag gewesen wäre (niedrigster Preis und beste Rendite im Vergleich zum letzten Schlusskurs). Finviz selbst hat keine Verlaufsdaten-API, nur eine aktuelle Momentaufnahme und ein statisches Chart-Bild.

  • screen_stocks(...) – Finviz-Screener mit natürlichen Parametern (market_cap, sector, pe_max, rsi, dividend_yield_min, signal, ...). Claude muss nicht die internen Filterbezeichnungen von Finviz erklären – der Server übersetzt die Parameter automatisch in den nächstgelegenen von Finviz unterstützten Wert. Funktioniert nur, wenn lokal ausgeführt, nicht auf einem gehosteten Cloud-Server – siehe Einschränkungen.

  • list_screener_filters(search=None) / list_screener_signals() – Hilfsmittel für Claude, falls es einen Filter benötigt, der von screen_stocks noch nicht mit einem benannten Parameter abgedeckt wird. Der gefundene Wert kann als Parameter screen_stocks(extra_filters={...}) übergeben werden.

Die Parameter von screen_stocks werden stets dem nächstgelegenen von Finviz bereitgestellten „Korb“ zugeordnet (z. B. pe_max=18 → „Unter 20“), da der Finviz-Screener nur vordefinierte Wertebereiche und keine beliebigen Zahlen unterstützt.

1. Lokales Testen

Erfordert Python 3.10+:

pip install -r requirements.txt
python server.py

Der Server startet unter http://localhost:8000/mcp (Streamable HTTP).

End-to-End getestet in dieser Umgebung (Installation, Start, initialize-Handshake und alle fünf Werkzeuge mit echten Finviz-Daten). Während des Tests stellte sich heraus, dass finvizfinance 1.3.0 von PyPI noch nicht auf dem neuesten Stand des überarbeiteten Finviz-Seitenlayouts war: get_stock stürzte vollständig ab (die alte CSS-Klasse quote-links heißt jetzt quote-header_categories, mit anderem Inhalt), und in der Tickerspalte von screen_stocks befand sich ein zusätzlicher Anfangsbuchstabe (z. B. „NVDA“ → „NNVDA“, aufgrund des neuen Logoplatzhalters von Finviz). server.py behebt beide Probleme direkt (siehe Kommentar am Anfang der Datei) – falls Finviz seine Seite erneut ändert, sollten diese Korrekturen zuerst überprüft werden.

Falls Python nicht auf dem Rechner installiert ist, aber Docker vorhanden ist, können Sie ohne lokale Python-Installation testen:

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

Ein schneller Funktionstest von der Befehlszeile aus (erfordert curl und dass der Server läuft):

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\"}"

In der Antwort sollten sechs Werkzeuge angezeigt werden: get_stock, get_stock_news, get_price_history, screen_stocks, list_screener_filters, list_screener_signals.

2. Veröffentlichung (z. B. Render)

  1. Übertragen Sie dieses Verzeichnis in Ihr eigenes Git-Repository (GitHub/GitLab).

  2. Render → Neu +Webdienst → Repository verbinden.

  3. Render erkennt die Dockerfile automatisch. Es sind keine separaten Umgebungsvariablen erforderlich – der Server liest den Port aus der von Render gesetzten PORT-Variable.

  4. Nach der Veröffentlichung erhalten Sie eine Adresse wie https://finviz-mcp.onrender.com. Der MCP-Endpunkt befindet sich dahinter unter /mcp, also: https://finviz-mcp.onrender.com/mcp.

Railway, Fly.io usw. funktionieren nach dem gleichen Prinzip (Dockerfile-basiertes Python-Hosting, Umgebungsvariable PORT).

3. Verbindung mit Claude

Claude → EinstellungenConnectorsBenutzerdefinierten Connector hinzufügen → MCP-URL einfügen (https://<eigene-adresse>/mcp).

Claude unterstützt Remote-MCP-Server über Streamable HTTP, daher funktioniert dies ohne Weiteres.

4. Beispielaufforderungen

  • „Hol mir die Finviz-Grunddaten für NVDA.“

  • „Finde überverkaufte Technologieaktien mit einer Marktkapitalisierung über 10 Mrd. USD.“

  • „Zeige mir 15 Large-Cap-Dividendenaktien mit einer Rendite über 4 % und einem KGV unter 20.“

  • „Was sind die neuesten Nachrichten zu TSLA?“

  • „Finde Aktien, die heute als Top-Gewinner markiert sind und ein durchschnittliches Volumen über 1 Mio. haben.“

Einschränkungen

  • screen_stocks (und list_screener_filters/list_screener_signals) funktioniert nicht auf einem gehosteten Cloud-Server (getestet auf Render): Finviz gibt einen 403 Forbidden speziell für den Screener-Endpunkt (finviz.com/screener.ashx) von Rechenzentrums-IP-Adressen zurück, obwohl get_stock/get_stock_news/get_price_history vom selben Server völlig normal funktionieren (diese verwenden andere, weniger geschützte Endpunkte). Dies ließ sich nicht durch Anpassen der HTTP-Header beheben – es scheint sich um eine bewusste Sperre von Finviz für Rechenzentrums-IPs speziell für den Screener zu handeln. Wenn Sie die Funktion screen_stocks benötigen, führen Sie den Server lokal aus (python server.py) und verbinden Sie sich z. B. über einen cloudflared/ngrok-Tunnel, sodass die Anfragen von der IP Ihres Heimnetzwerks ausgehen.

  • Die Daten werden von den Websites von Finviz/Yahoo Finance gescrapt (keine offiziellen API-Schlüssel), daher kann die Funktionalität beeinträchtigt werden, wenn diese die Struktur ihrer Seiten ändern.

  • screen_stocks begrenzt die Ergebnisse standardmäßig auf 20 und maximal 50 Zeilen, damit die Anfrage schnell bleibt.

  • get_price_history begrenzt den Parameter days auf maximal 365.

  • Enthält keine Authentifizierung – wenn der Dienst öffentlich im Internet verfügbar ist, kann jeder, der die URL kennt, darauf zugreifen. Die Daten sind öffentlich, aber denken Sie daran, falls Sie später kostenpflichtige/eingeschränkte Funktionen hinzufügen.

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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