Skip to main content
Glama
TuokkiCode

Finviz MCP

by TuokkiCode

Finviz MCP

MCP-сервер, который предоставляет Клоду (или любому MCP-клиенту) доступ к данным по акциям Finviz: фундаментальные показатели одной акции, новости и поиск по скринеру, а также реальные исторические данные о ценах (Yahoo Finance). Данные получаются в реальном времени с помощью библиотек finvizfinance и yfinance, то есть никакие API-ключи не требуются.

Инструменты

  • get_stock(ticker) – фундаментальные показатели одной акции из Finviz (P/E, рыночная капитализация, маржа, доходность и т.д.)

  • get_stock_news(ticker) – последние заголовки новостей по акции

  • get_price_history(ticker, days=7) – реальные дневные исторические данные (Open/High/Low/Close/Volume) из Yahoo Finance на срок до 365 дней, а также готовый анализ того, какой день был бы лучшим для покупки (самая низкая цена и лучшая доходность по сравнению с последней ценой закрытия). У самого Finviz нет API для исторических данных, только текущий снимок и статическое изображение графика.

  • screen_stocks(...) – скринер Finviz с естественными параметрами (market_cap, sector, pe_max, rsi, dividend_yield_min, signal, ...). Клоду не нужно объяснять внутренние имена фильтров Finviz – сервер автоматически преобразует параметры в ближайшее поддерживаемое Finviz значение. Работает только при локальном запуске, не в облаке – см. Ограничения.

  • list_screener_filters(search=None) / list_screener_signals() – вспомогательные инструменты для Клода, если ему нужен какой-то фильтр, который 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). Во время тестирования выяснилось, что PyPI-пакет finvizfinance 1.3.0 ещё не был обновлён под новую структуру страниц Finviz: get_stock полностью падал (старый CSS-класс quote-links теперь называется quote-header_categories с другим содержимым), а в колонке Ticker в screen_stocks появлялась лишняя начальная буква (например, «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\"}"

В ответе должно отобразиться шесть инструментов: 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. Отдельные переменные окружения не нужны – сервер считывает порт из переменной PORT, установленной Render.

  4. После публикации вы получите адрес вида https://finviz-mcp.onrender.com. MCP-эндпоинт находится по пути /mcp, то есть: https://finviz-mcp.onrender.com/mcp.

Railway, Fly.io и т.п. работают по тому же принципу (хостинг Python на основе Dockerfile, переменная окружения PORT).

3. Подключение к Клоду

Claude → Settings → Connectors → Add custom connector → вставьте MCP-URL (https://<ваш-адрес>/mcp).

Claude поддерживает удалённые MCP-серверы через Streamable HTTP, поэтому это работает напрямую.

4. Примеры запросов

  • «Get me the Finviz fundamentals for NVDA.»

  • «Find oversold technology stocks with market cap over $10B.»

  • «Show me 15 large-cap dividend stocks with yield over 4% and P/E under 20.»

  • «What's the latest news on TSLA?»

  • «Find stocks flagged as Top Gainers today with average volume over 1M.»

Ограничения

  • screen_stocks (и list_screener_filters/list_screener_signals) не работает при публикации в облаке (проверено на Render): Finviz возвращает 403 Forbidden именно для эндпоинта скринера (finviz.com/screener.ashx) с IP-адресов дата-центров, хотя get_stock/get_stock_news/get_price_history работают с того же сервера совершенно нормально (они используют другие, менее защищённые эндпоинты). Эту проблему не удалось исправить настройкой HTTP-заголовков – похоже, это целенаправленная блокировка IP дата-центров именно для скринера со стороны Finviz. Если вам нужна функция 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