Finviz + SEC EDGAR MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Host for remote MCP server (optional) | 0.0.0.0 |
| MCP_PORT | No | Port for remote MCP server (optional) | 8000 |
| SEC_EMAIL | Yes | Your email address (required by SEC EDGAR API) | |
| MCP_STREAMABLE_HTTP_PATH | No | Path for remote MCP server (optional) | /mcp |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| screen_stocksA | Screen stocks using Finviz filter codes. Primary tool for finding investment candidates. Uses Finviz current snapshot data (~15-20 min delayed). Returns a filtered list with the metric columns selected by the 'table' parameter. Use list_filter_options to discover all valid filter codes. Args: filters: Comma-separated Finviz filter codes. VALUE INVESTING EXAMPLES: "cap_largeover,fa_pe_u20,fa_roe_o15" → Large cap, P/E < 20, ROE > 15% "fa_pb_u2,fa_curratio_o1.5,fa_debteq_u0.5" → P/B < 2, current ratio > 1.5, debt/equity < 0.5 "fa_div_o3,fa_payoutratio_u60,fa_roe_o15" → Dividend > 3%, payout < 60%, ROE > 15% "fa_pfcf_u15,fa_opermargin_o15,fa_epsyoy1_o10" → P/FCF < 15, op margin > 15%, EPS growth > 10% Returns: Formatted screening results with key metrics. |
| screen_value_stocksA | Quick value stock screener with sensible defaults. Convenience wrapper around screen_stocks — use that tool for full control over filters. Useful for fast idea generation. Args: min_market_cap: Minimum market cap — "small", "mid", "large", "mega". Maps to: small=cap_smallover, mid=cap_midover, large=cap_largeover, mega=cap_mega max_pe: Max P/E — e.g. "u20" for under 20, "u15" for under 15. min_roe: Min ROE — e.g. "o10" for over 10%, "o15" for over 15%. max_debt_equity: Max debt/equity — e.g. "u1" for under 1, "u0.5". additional_filters: Extra raw filter codes (comma-separated). e.g. "fa_div_o2,sec_consumerdefensive" |
| screen_from_urlA | Run a Finviz screener from a URL copied directly from finviz.com. Useful when the user has built a custom screen in the Finviz UI and wants to replicate it here without translating filter codes manually. Args: url: Full Finviz screener URL, e.g. "https://finviz.com/screener.ashx?v=111&f=cap_largeover,fa_pe_u20" |
| list_filter_optionsA | List all available Finviz screener filter categories and their codes. Call this whenever you need to look up a valid filter code before calling screen_stocks or screen_industry. Returns ~67 categories with valid code values (e.g. cap_largeover, fa_pe_u20, sec_technology). |
| get_stock_fundamentalsA | Get comprehensive fundamental data for a stock from Finviz. Returns a current snapshot (~15-20 min delayed) covering valuation ratios, profitability metrics, balance sheet highlights, ownership, and technical indicators across 90+ fields. Data source: Finviz (current snapshot). For historical time-series data use get_financial_history or get_financial_ttm. Args: ticker: Stock ticker symbol (e.g. "AAPL", "BRK-B"). |
| compare_stocksA | Compare fundamental metrics across multiple stocks side-by-side. Uses Finviz current snapshot data (~15-20 min delayed). All values are point-in-time — for historical comparisons across years use compare_financials (SEC XBRL actuals) instead. Args: tickers: Comma-separated tickers, e.g. "AAPL,MSFT,GOOGL" metrics: Optional comma-separated metric names to compare. If empty, uses default value-investing metrics: P/E, Forward P/E, P/B, P/FCF, PEG, ROE, ROA, Profit Margin, Oper. Margin, Debt/Eq, Current Ratio, Dividend %, EPS (ttm), EPS next Y, EPS past 5Y, Market Cap, Price |
| get_sec_filingsA | List recent SEC filings for a company with EDGAR links. Use this to find filing dates and document URLs before calling get_filing_text. Data source: SEC EDGAR via edgartools. Args: ticker: Stock ticker symbol. form_type: Filter by form type. Common options: "10-K" — Annual report (full financials, risk factors, MD&A) "10-Q" — Quarterly report "8-K" — Current report (material events) "DEF 14A" — Proxy statement (executive comp, governance) "4" — Insider trading (Form 4) "S-1" — IPO registration "" — All forms (default) max_results: Number of filings to return (default 15). |
| get_filing_textA | Fetch specific narrative sections from the most recent SEC filing. For 10-K and 10-Q filings, uses edgartools' structured TenK/TenQ objects to pull named items directly — no iXBRL overhead, no wasted character budget on table-of-contents boilerplate. For 20-F filings, uses edgartools markdown extraction from the primary filing HTML and slices by 20-F item headings. For other form types (8-K, etc.), falls back to full-text extraction. Args: ticker: Stock ticker symbol. form_type: Form to fetch — "10-K", "10-Q", "8-K", etc. sections: Comma-separated list of items to retrieve. Default "Item 7,Item 1A" returns MD&A + Risk Factors for 10-K / 10-Q. For 20-F, useful sections include: "Item 3.D", "Item 4", "Item 5", "Item 18", plus aliases like "risk_factors", "business", "mda", "financial_statements". Supported formats: Full: "Item 1", "Item 1A", "Item 7", "Item 7A", "Item 8" Short: "1", "1A", "7", "7A" Aliases: "mda", "risk_factors", "business" Pass sections="" to get Item 7 + Item 1A (same as default). Use get_sec_filings first to confirm available items. max_chars_per_section: Max characters per section (default 8000). Each section is truncated independently. |
| get_financial_historyA | Get historical financial data from SEC XBRL filings. Returns actual reported values — not estimates or scraped data. Args: ticker: Stock ticker symbol. metric: XBRL concept name. Common value-investing metrics: "Revenues" — Total revenue "NetIncomeLoss" — Net income "GrossProfit" — Gross profit "OperatingIncomeLoss" — Operating income "EarningsPerShareBasic" — Basic EPS (use unit "USD/shares") "EarningsPerShareDiluted" — Diluted EPS (use unit "USD/shares") "Assets" — Total assets "Liabilities" — Total liabilities "StockholdersEquity" — Shareholder equity "CashAndCashEquivalentsAtCarryingValue" — Cash on hand "LongTermDebt" — Long-term debt "CommonStockSharesOutstanding" — Shares outstanding (unit "shares") "ResearchAndDevelopmentExpense" — R&D expense "SellingGeneralAndAdministrativeExpense" — SG&A expense "InterestExpense" — Interest expense "IncomeTaxExpenseBenefit" — Income tax expense "DepreciationDepletionAndAmortization" — D&A "CapitalExpenditure" — Capital expenditures "NetCashProvidedByUsedInOperatingActivities" — Operating cash flow "Goodwill" — Goodwill (balance sheet) "IntangibleAssetsNetExcludingGoodwill" — Intangible assets net of goodwill "WeightedAverageNumberOfDilutedSharesOutstanding" — Diluted shares (unit "shares") periods: Number of recent periods to show (default 8). period_type: Controls which filings are included: "annual" — Annual filings (10-K / 20-F / 40-F). Clean year-over-year series. RECOMMENDED for financial modeling. "quarterly" — 10-Q only. Clean quarter-over-quarter series, useful for recent trend analysis. "interim" — Interim filings (10-Q / 6-K). Includes foreign private issuer interim XBRL when present. May include both ~3-month and ~6-month periods. "all" — Annual + interim filings mixed (not recommended for modeling). |
| get_insider_filingsA | Get insider trading SEC filings (Form 3, 4, 5) with structured data. Returns filing dates, insider names, positions, trade details, and direct EDGAR links. Powered by edgartools' Form4 parser. For a human-readable summary of recent buys/sells with dollar values, use get_insider_activity (Finviz) instead. Args: ticker: Stock ticker symbol. max_results: Number of filings to return. |
| compare_financialsA | Compare a financial metric across multiple companies using SEC XBRL data. Returns actual reported values from SEC filings. Companies with non-December fiscal year ends are automatically handled — no ticker is silently dropped. Args: tickers: Comma-separated ticker symbols, e.g. "AAPL,MSFT,GOOGL". metric: XBRL concept name. Common metrics: "Revenues" — Total revenue "NetIncomeLoss" — Net income "GrossProfit" — Gross profit "OperatingIncomeLoss" — Operating income "EarningsPerShareBasic" — Basic EPS "EarningsPerShareDiluted" — Diluted EPS "Assets" — Total assets "Liabilities" — Total liabilities "StockholdersEquity" — Shareholder equity "CashAndCashEquivalentsAtCarryingValue" — Cash on hand "LongTermDebt" — Long-term debt "CommonStockSharesOutstanding" — Shares outstanding "ResearchAndDevelopmentExpense" — R&D expense "SellingGeneralAndAdministrativeExpense" — SG&A expense year: Calendar year to compare (e.g. 2024). Defaults to previous year if not specified. quarter: Optional quarter (1-4). 0 = full year (default). |
| get_financial_ttmA | Get Trailing Twelve Months (TTM) value for one or more companies. Sums the four most recent quarterly filings for income statement / cash flow metrics, or returns the latest quarter for balance sheet items. Useful for up-to-date analysis without waiting for the next annual filing. Args: tickers: Comma-separated ticker symbols, e.g. "AAPL,MSFT,GOOGL". metric: XBRL concept name. Income statement / cash flow metrics (summed over 4 quarters): "Revenues" — Total revenue "NetIncomeLoss" — Net income "GrossProfit" — Gross profit "OperatingIncomeLoss" — Operating income "ResearchAndDevelopmentExpense" — R&D expense "SellingGeneralAndAdministrativeExpense" — SG&A "InterestExpense" — Interest expense "IncomeTaxExpenseBenefit" — Income tax "DepreciationDepletionAndAmortization" — D&A "CapitalExpenditure" — CapEx "NetCashProvidedByUsedInOperatingActivities" — Operating FCF Balance sheet metrics (latest quarter, no summing): "Assets", "Liabilities", "StockholdersEquity", "CashAndCashEquivalentsAtCarryingValue", "LongTermDebt" |
| get_financial_snapshotA | Get a complete financial snapshot from the latest SEC filing: income statement, balance sheet, and cash flow statement with multi-period comparison. Also includes quick-access metrics (revenue, net income, FCF, etc.). This is the best starting point for company financial analysis. Returns actual XBRL-tagged data from SEC filings — not estimates. Powered by edgartools' Financials API. Args: ticker: Stock ticker symbol. |
| get_per_share_fundamentalsA | Get historical per-share fundamentals from SEC XBRL filings. Returns annual series of key valuation inputs computed from actual reported values — replaces paid data services like SimFin. Metrics returned per year:
Args: ticker: Stock ticker symbol. periods: Number of annual periods (default 10, max ~10 years of data). |
| compare_sectorsA | Compare all market sectors with aggregate metrics from Finviz. Returns sector-level aggregates (median P/E, total market cap, etc.) for all 11 sectors in a single view. Data source: Finviz groups page (current snapshot). Args: view: Data view to return. Options: "overview" — Stocks, Market Cap, Dividend, P/E, Fwd P/E, PEG, LTDebt/Eq, Debt/Eq, Float Short, Recom, Change, Volume "valuation" — Market Cap, P/E, Fwd P/E, PEG, P/S, P/B, P/C, P/FCF, EPS past 5Y, EPS next 5Y, Sales past 5Y, Change, Volume "performance" — Perf Week, Perf Month, Perf Quart, Perf Half, Perf Year, Perf YTD, Avg Volume, Rel Volume, Change, Volume order: Sort column — e.g. "name", "marketcap", "pe", "change", "volume", "dividendyield". |
| compare_industriesA | Compare all industries with aggregate metrics from Finviz. Returns industry-level aggregates for all ~144 industries. Data source: Finviz groups page (current snapshot). To screen stocks within a specific industry, use screen_industry. Args: view: Data view — "overview", "valuation", or "performance". See compare_sectors for column details per view. order: Sort column — e.g. "name", "marketcap", "pe", "change", "volume", "dividendyield". |
| stock_vs_industryA | Get a stock's valuation and fundamentals relative to its industry. Compares the stock's metrics against industry aggregates across overview (P/E, PEG, Debt, Dividend), valuation (P/S, P/B, P/FCF, EPS growth), and performance (weekly through YTD returns). Shows absolute stock value, industry median, and delta for each metric. Data source: Finviz (current snapshot for both stock and industry). Args: ticker: Stock ticker symbol (e.g. "AAPL", "BRK-B"). |
| screen_industryA | Screen stocks within a specific industry using Finviz. Convenience wrapper around screen_stocks that pre-applies the ind_ filter. Useful for peer group analysis or sector deep-dives. Use list_filter_options to look up valid industry codes. Args: industry: Finviz industry code, e.g.: "banksregional", "biotechnology", "semiconductors", "softwareinfrastructure", "oilgasep", "drugmanufacturers", "insurancelife", "medicaldevices", "reitsdiversified", "aerospacedefense", "automanufacturers" |
| get_analyst_ratingsB | Get analyst price targets and ratings for a stock from Finviz. Shows date, analyst firm, rating action, and price target (from/to). Useful for gauging sell-side sentiment and consensus target price. Args: ticker: Stock ticker symbol. count: Number of recent ratings to return (default 10). |
| get_insider_activityA | Get recent insider trading activity (buys/sells) from Finviz. Shows insider name, relationship to company, transaction type, date, share count, and dollar value. Useful for gauging management conviction. For SEC Form 3/4/5 filings with EDGAR links, use get_insider_filings. Args: ticker: Stock ticker symbol. |
| get_stock_newsA | Get recent news headlines for a stock from Finviz. Returns headlines with source, timestamp, and URL. For earnings-specific headlines only, use get_earnings_news. Args: ticker: Stock ticker symbol. count: Number of headlines to return (default 10). |
| get_earnings_newsA | Get earnings-related headlines for a stock from Finviz. Filters the full news feed to only headlines containing keywords: earnings, results, guidance, conference call, webcast, transcript. Use this for post-earnings analysis or when building an earnings update. For all news (not just earnings), use get_stock_news. Args: ticker: Stock ticker symbol. count: Number of matching headlines to return (default 10). |
| get_annual_price_historyA | Get annual high, low, and average close prices for a stock. Returns one row per calendar year with the highest intraday price, lowest intraday price, and mean daily closing price. Data source: Yahoo Finance (free, no API key). Prices are split-adjusted. Args: ticker: Stock ticker symbol (e.g. "AAPL", "MSFT"). years: Number of years of history to fetch (default 11). |
| get_inputs_tab_dataA | Get a structured extraction package for the valuation workbook INPUTS tab. This tool consolidates the key MCP data needed for the workbook into one response, covering:
Conventions:
Args: ticker: Stock ticker symbol. price_years: Number of years for annual price history. fundamentals_years: Number of annual periods for per-share fundamentals. peg_basis: Currently supports "industry" only. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Tools are mostly distinct, with detailed cross-references preventing misselection. However, several clusters (screen_stocks vs screen_value_stocks vs screen_from_url vs screen_industry, and get_financial_history vs get_financial_ttm vs get_financial_snapshot vs get_stock_fundamentals) require careful reading to distinguish, so one or two pairs could be confused.
The set follows a mostly consistent snake_case verb_noun pattern (screen_*, get_*, compare_*). Minor deviations like stock_vs_industry (noun_vs_noun) and screen_from_url (verb_preposition) break the pattern slightly, but overall the naming is predictable and readable.
24 tools is on the heavier side but reasonable for a combined Finviz + SEC EDGAR server covering screening, fundamentals, filings, comparisons, insider data, news, and price history. Many tools are purposeful wrappers rather than redundant additions, though a few (screen_value_stocks, screen_from_url) could be considered optional conveniences.
The tool surface is remarkably complete for value-investing workflows: screening, industry/sector comparisons, SEC filing lookup and section extraction, historical/trailing financials, per-share metrics, insider activity, analyst ratings, news, and price history are all covered. There are no obvious dead ends; even niche needs like TTM calculation and workbook input assembly have dedicated tools.