screener-mcp-server
An MCP server for Screener.in to search Indian companies, fetch financial ratios, statements, peer comparisons, and run custom screens.
README
screener-mcp-server
An MCP server for Screener.in — search Indian listed companies, pull key ratios, multi-year financial statements, peer comparisons, and run custom fundamental screens, all from Claude (or any MCP client).
Important: no official API
Screener.in explicitly states they don't provide an API — only CSV export from the UI. This server works by reading the same public, signed-out pages a browser would see (search, company pages, and the /screen/raw/ query endpoint). It does not require login for the core tools.
Because this isn't an official API:
- Please keep request volume reasonable — the server throttles and caches requests for you (5 min cache, ~600ms min gap between requests), don't work around that.
- Guest (logged-out) access to custom screens is capped by Screener to a small number of result rows. If you want more rows or CSV-export-only data, set
SCREENER_SESSION_COOKIE(see below) to a cookie from your own logged-in session. - Screener's HTML structure can change without notice; if a tool starts erroring, the CSS selectors in
src/services/scraper.tslikely need a small update. - Review Screener's Terms before heavy or commercial use.
Tools
| Tool | What it does |
|---|---|
screener_search_companies |
Look up a company's Screener ID/URL by name or ticker |
screener_get_company_overview |
Key ratios (Market Cap, P/E, ROE, ROCE, etc.), About text, Pros/Cons |
screener_get_financial_statement |
Quarterly results, P&L, balance sheet, cash flow, or ratios — multi-year table |
screener_get_peer_comparison |
The peer-comparison table shown on a company's page |
screener_run_custom_screen |
Run a Screener query-builder screen (e.g. Market Capitalization > 500 AND Return on equity > 22) across the whole market |
technical_get_indicator |
RSI, SMA, EMA, or MACD for an NSE/BSE stock, via Alpha Vantage |
Why compute indicators ourselves instead of using Groww or Alpha Vantage?
- Groww's official MCP (
mcp.groww.in) is account-linked via OAuth (it's built to read your portfolio/trades). Folding it into this server would mean building a full OAuth pass-through proxy — a much bigger project, and unnecessary for public technicals like RSI. - Alpha Vantage's NSE/BSE coverage (
NSE:TICKERformat) turned out to be unreliable in practice — it often only returns NASDAQ data despite documentation claiming Indian exchange support.
Instead, technical_get_indicator pulls raw historical close prices from Yahoo Finance's public chart endpoint (ticker + .NS/.BO suffix — the same data source most community NSE tooling, like yfinance, relies on) and computes RSI (Wilder's method), SMA, EMA, and MACD (12/26/9) server-side using standard formulas. No API key, no OAuth, no external rate limits — just one more tool in the same connector.
Since this is an unofficial-but-widely-used endpoint (not a documented Yahoo API), if it ever breaks, check src/services/yahoo.ts — the fix is usually just adjusting the URL or response shape to match Yahoo's current chart endpoint.
Setup
npm install
npm run build
Run locally (stdio) — for Claude Desktop / Claude Code
Add to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"screener": {
"command": "node",
"args": ["/absolute/path/to/screener-mcp-server/dist/index.js"]
}
}
}
Run as a remote HTTP server
TRANSPORT=http PORT=3000 npm start
Then point your MCP client at http://localhost:3000/mcp.
Optional: logged-in session for more screen results
export SCREENER_SESSION_COOKIE="csrftoken=...; sessionid=..."
Grab this from your browser's DevTools → Network tab → any request to screener.in → Cookie request header, while logged into your own Screener account. Never share this value; it's your personal session.
Development
npm run dev # tsc --watch
If Screener changes their page markup and a tool starts failing, check the selectors in src/services/scraper.ts (#top-ratios, .pros/.cons, #profit-loss/#balance-sheet/etc. table sections, #peers table) against the current HTML.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.