screener-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@screener-mcpshow fundamentals for TCS"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
screener-mcp
An MCP server exposing Screener.in data for Indian stocks (NSE/BSE) — fundamentals, financial statements, peers, and price/EPS time-series — as tools any MCP client (Claude, etc.) can call.
Screener.in is server-rendered (Django), so most data comes from a single HTML GET; the chart tool uses Screener's JSON chart API.
Tools
Tool | Args | Returns |
|
| Key ratio cards (P/E, P/B, ROE, ROCE, Market Cap, Book Value, Dividend Yield, etc.), pros/cons, about |
|
| Statement tables: Quarterly Results, P&L, Balance Sheet, Cash Flow, Ratios, Shareholding |
|
| Sector peer comparison table (CMP, P/E, Market Cap, Div Yield, NP, ROCE, sales growth) + sector median |
|
| Time-series from the chart API. |
symbol is the NSE/BSE trading symbol, e.g. TCS, RELIANCE, MTARTECH.
Related MCP server: sfinance-mcp-server
Install & build
npm install
npm run buildRun
npm start # node dist/index.js (stdio transport)
# or during development:
npm run dev # tsx src/index.tsUse from Claude Code
Add to your MCP config (.mcp.json or global), pointing at the built entry:
{
"mcpServers": {
"screener": {
"command": "node",
"args": ["/absolute/path/to/screener-mcp/dist/index.js"]
}
}
}Then an agent can call get_fundamentals, get_financials, get_peers, get_chart.
How peers works
Screener lazy-loads the peer table from GET /api/company/{warehouseId}/peers/ — note
this uses a separate warehouse id (from data-warehouse-id on the page), not the
company id, and requires the X-Requested-With: XMLHttpRequest header. get_peers
resolves the warehouse id from the company page, fetches that fragment, and parses the
comparison table plus the sector-median row.
Testing
npm testTests run the parsers against a captured Screener HTML fixture (test/tcs.fixture.html),
so they are deterministic and don't hit the network.
Notes / etiquette
Data is scraped from Screener.in for personal use. Respect their terms and don't hammer the site; cache results and rate-limit in your client.
Selectors target Screener's current DOM; if Screener changes markup, the parsers (
src/screener.ts) may need updating. The fixture test will catch regressions.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ashu017/screener-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server