LabscoMCP early access ↗
tradermontyMCP SERVER

Finviz MCP Server

Screen US equities on Finviz from a conversation — earnings dates, volume surges, trend reversals, dividend growth, ETFs — then pull fundamentals, SEC filings and sector performance for whatever comes back.

by tradermonty ↗Equity & Fund Market DataCommunity

LABSCO SUMMARY

One tool per screening strategy, which is what makes it usable from a chat.

Asking for "large caps reporting after the close today with a positive EPS revision" maps onto a named tool with named parameters, so the model does not have to reconstruct Finviz's filter syntax. The price of admission is the Finviz Elite subscription; the EDGAR filing-content tools also stay silent until you set a User-Agent string of your own.

What it is

An MCP server over Finviz's screener and data pages, aimed at equity research rather than order entry. Each screening strategy is its own tool with real filter parameters — earnings timing, market cap, relative volume, RSI, moving-average position — instead of one generic screen call you have to spell out. Separate tools return per-ticker fundamentals, news, SEC filings, and sector, industry and country performance. It runs over stdio by default and can serve SSE or Streamable HTTP in a container.

What you get

  • Stocks screened by upcoming or just-reported earnings, including the premarket and after-hours reaction — earnings_screener, earnings_premarket_screener, earnings_afterhours_screener, earnings_trading_screener, earnings_winners_screener, upcoming_earnings_screener
  • Unusual-volume, trend-reversal and uptrend candidates filtered by market cap, price, relative volume and moving-average position — volume_surge_screener, trend_reversion_screener, uptrend_screener, get_relative_volume_stocks, technical_analysis_screener
  • Dividend and ETF screens with yield range, dividend growth, ROE, asset class and expense-ratio limits — dividend_growth_screener, etf_screener
  • Fundamentals for a single ticker or a list, returning only the fields you name — get_stock_fundamentals, get_multiple_stocks_fundamentals
  • SEC filings for a ticker: everything, major forms only, insider forms only, or a period summary — get_sec_filings, get_major_sec_filings, get_insider_sec_filings, get_sec_filing_summary
  • Sector, industry, country and market-cap performance across 1d to 1y, plus a whole-market overview — get_sector_performance, get_industry_performance, get_country_performance, get_capitalization_performance, get_sector_specific_industry_performance, get_market_overview
  • News windows for one ticker, one sector, or the market — get_stock_news, get_sector_news, get_market_news
  • Distance from the 20-, 50- and 200-day SMAs in a single call — get_moving_average_position

Requirements

Python 3.11 or higher, and a Finviz Elite subscription — the README states the comprehensive screening and data features depend on it. FINVIZ_API_KEY carries the Elite key and raises rate limits; RATE_LIMIT_REQUESTS_PER_MINUTE defaults to 100. Install from a clone with pip install -e .; the pyproject (version 1.0.0) publishes the finviz-mcp-server command, which starts in stdio mode. The EDGAR tools — get_edgar_filing_content, get_multiple_edgar_filing_contents, get_edgar_company_filings, get_edgar_company_facts, get_edgar_company_concept — additionally need EDGAR_USER_AGENT, because the SEC rejects requests without a User-Agent header; the Finviz SEC listing tools do not. In Docker, MCP_TRANSPORT selects stdio, sse or streamable-http, and MCP_HOST defaults to 127.0.0.1 when run directly on the host.

Setup effort

Build from source — git clone https://github.com/tradermonty/finviz-mcp-server.git