Skip to main content
Glama
shivamg194-lab

screener-mcp-server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort number when TRANSPORT=http (default 3000?).
TRANSPORTNoTransport mode: 'stdio' (default) or 'http'. Use 'http' to run as a remote server.
SCREENER_SESSION_COOKIENoOptional session cookie for logged-in Screener account to get more screen results. Format: 'csrftoken=...; sessionid=...'

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
screener_search_companiesA

Search Screener.in for listed Indian companies by name or ticker symbol.

Use this first when you're not sure of a company's exact ticker or how Screener.in identifies it — the result's "id" or "url" can be passed as the identifier to the other screener_* tools.

Args:

  • query (string): Company name or ticker, e.g. "TCS", "Infosys", "HDFC Bank"

Returns: JSON with a "results" array, each item having: { "id": string, "name": string, "url": string (relative screener.in path) }

Examples:

  • Use when: "Find the ticker for Tata Consultancy Services" -> query="Tata Consultancy"

  • Don't use when: You already have the exact ticker (just call screener_get_company_overview directly)

Error Handling:

  • Returns an empty "results" array if nothing matches

screener_get_company_overviewA

Fetch a company's snapshot from its Screener.in page: key ratios (Market Cap, Current Price, Stock P/E, Book Value, Dividend Yield, ROCE, ROE, Face Value, etc.), a short "About" description, and Screener's machine-generated Pros/Cons list.

This does NOT include multi-year financial statements — use screener_get_financial_statement for those, or screener_get_peer_comparison for peer benchmarking.

Args:

  • identifier (string): Ticker (e.g. "TCS"), company name (e.g. "Tata Consultancy Services"), or a screener.in company URL/path. If unsure of the exact match, call screener_search_companies first.

  • consolidated (boolean, default true): Consolidated (with subsidiaries) vs standalone financials.

Returns: JSON: { "name": string, "screenerUrl": string, "aboutText": string|null, "topRatios": [{name, value}], "pros": string[], "cons": string[] }

Examples:

  • Use when: "What's TCS's current P/E and ROE?" -> identifier="TCS"

  • Don't use when: You need 10 years of quarterly revenue (use screener_get_financial_statement instead)

Error Handling:

  • Returns an error if no matching company is found — try screener_search_companies to confirm the right name/ticker first.

screener_get_financial_statementA

Fetch a multi-period financial statement table for a company from Screener.in: quarterly results, annual profit & loss, balance sheet, cash flow, or per-year efficiency ratios.

Args:

  • identifier (string): Ticker, company name, or screener.in URL/path.

  • statement (enum): One of "quarters", "profit-loss", "balance-sheet", "cash-flow", "ratios".

  • consolidated (boolean, default true): Consolidated vs standalone.

Returns: JSON: { "section": string, "periods": string[], "rows": [{ "label": string, "values": string[] }] } Each row's values align positionally with "periods".

Examples:

  • Use when: "Show me TCS's last few years of profit & loss" -> identifier="TCS", statement="profit-loss"

  • Use when: "What's Infosys's debtor days trend?" -> identifier="INFY", statement="ratios"

  • Don't use when: You just want current P/E or market cap (use screener_get_company_overview)

Error Handling:

  • Returns an error if the statement section isn't present for that company (e.g. some companies don't report all statements) or if the company can't be found.

screener_get_peer_comparisonA

Fetch the peer-comparison table Screener.in shows on a company's page — the same industry peers, compared on CMP, P/E, market cap, ROE, and other columns Screener selects.

Args:

  • identifier (string): Ticker, company name, or screener.in URL/path.

  • consolidated (boolean, default true): Consolidated vs standalone.

Returns: JSON: { "columns": string[], "peers": [{ "name": string, "values": { [column]: string } }] }

Examples:

  • Use when: "How does TCS compare to its industry peers on P/E and ROE?" -> identifier="TCS"

  • Don't use when: You want a custom peer set with your own filter criteria (use screener_run_custom_screen instead)

Error Handling:

  • Returns an error if no peer table is found for the company (uncommon, but can happen for delisted or very niche companies).

screener_run_custom_screenA

Run a custom stock screen using Screener.in's query-builder syntax against 10+ years of financial data for all listed Indian companies, and return the matching companies.

This is the core "screener" feature — filter the whole market by fundamental criteria in one call, instead of checking companies one by one.

Args:

  • query (string): Screener query syntax. Combine conditions with AND/OR. Examples: "Market Capitalization > 500 AND Return on capital employed > 22" "Price to Earning < 15 AND Debt to equity < 0.5 AND Sales growth 3Years > 10" Common fields: Market Capitalization, Current Price, Price to Earning, Return on equity, Return on capital employed, Debt to equity, Sales growth, Profit growth, Dividend yield, Book value, Promoter holding.

  • limit (number, 1-100, default 25): Max rows to return. Note: without a logged-in session (SCREENER_SESSION_COOKIE env var), Screener itself caps guest results to a small number regardless of this limit.

Returns: JSON: { "columns": string[], "rows": [{name, values}], "totalFound": number|null, "truncated": boolean }

Examples:

  • Use when: "Find small-cap companies with ROE > 20% and low debt" -> query="Market Capitalization < 5000 AND Return on equity > 20 AND Debt to equity < 0.3"

  • Don't use when: You want data for one specific known company (use screener_get_company_overview instead)

Error Handling:

  • Returns "Error: Screener rejected this query: ..." if the query syntax is invalid — check field names and operators.

  • If truncated=true and totalFound is much larger than what's returned, note that a logged-in session would unlock more rows.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/shivamg194-lab/screener-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server