india-stock-mcp
# india-stock-mcp
[](https://github.com/Akhilgovind02/india-stock-mcp/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/india-stock-mcp)
MCP server for Indian stock market data — NSE/BSE quotes, historical prices, fundamentals, mutual fund NAV, indices, corporate actions, F&O option chains, IPOs, and portfolio analysis.
Works with any MCP client: Claude Desktop, Claude Code, Cursor, etc. **No API keys, no auth, all free data sources.**
## Tools (16)
| Tool | What it does |
|---|---|
| `get_quote` | Live price, volume, 52-week range for NSE/BSE stocks and indices |
| `get_historical` | OHLCV history — daily / weekly / monthly |
| `search_symbol` | Find stock symbols by company name |
| `get_fundamentals` | P/E, EPS, ROE, margins, debt, growth rates |
| `compare_stocks` | 2–5 stocks side by side |
| `get_index` | Any NSE index (P/E, P/B, advances/declines) + SENSEX |
| `get_market_status` | Is the market open? Session info per segment |
| `get_gainers_losers` | Top NIFTY 50 movers ranked by % change |
| `get_corporate_actions` | Dividends, splits, bonuses — per stock or market-wide |
| `get_options_chain` | F&O chain around ATM: LTP, OI, OI change, IV, volume |
| `get_ipo_list` | Current / upcoming / recently listed IPOs |
| `search_funds` | Search 15,000+ Indian mutual fund schemes |
| `get_fund_nav` | NAV history for a scheme |
| `get_fund_details` | Fund house, category, current NAV |
| `compare_funds` | 2–4 funds: NAV + % return over any period |
| `portfolio_summary` | Holdings → current value, P&L, allocation breakdown |
## Requirements
- Node.js 22+
## Setup
### Via npm (recommended)
No clone, no build:
**Claude Code**
```bash
claude mcp add india-stock -- npx -y india-stock-mcp
```
**Claude Desktop** — add to `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`, Windows: `%APPDATA%\Claude\`):
```json
{
"mcpServers": {
"india-stock": {
"command": "npx",
"args": ["-y", "india-stock-mcp"]
}
}
}
```
### From source
```bash
git clone https://github.com/Akhilgovind02/india-stock-mcp.git
cd india-stock-mcp
npm install
npm run build
claude mcp add india-stock -- node /absolute/path/to/india-stock-mcp/dist/index.js
```
Restart Claude Desktop fully, then look for the tools icon in a new chat.
### Example prompts
- "Quote for RELIANCE and how far is it from its 52-week high?"
- "Compare HDFC Bank vs ICICI Bank vs SBI fundamentals"
- "Top 5 NIFTY 50 gainers today"
- "NIFTY option chain — where's the max open interest?"
- "Compare Parag Parikh Flexi Cap vs Quant Small Cap over 3 years"
- "Analyze my portfolio: 10 RELIANCE @ 1200, 5 TCS @ 3000"
## Development
```bash
npm run dev # run from TypeScript directly
npx tsx scripts/test-mcp.ts # end-to-end test of all 16 tools (live data)
npx tsx scripts/test-edge.ts # 24 edge-case assertions
npm run build # compile to dist/
```
### Sample test output
Real output from `npx tsx scripts/test-mcp.ts` (live data, market hours, June 2026 — trimmed):
```
TOOLS: get_quote, get_historical, search_symbol, search_funds, get_fund_nav,
get_fundamentals, compare_stocks, get_index, get_market_status, get_gainers_losers,
get_corporate_actions, get_options_chain, get_ipo_list, get_fund_details,
compare_funds, portfolio_summary
PASS get_quote: {"source":"Yahoo Finance","symbol":"RELIANCE.NS","name":"RELIANCE
INDUSTRIES LTD","price":1266,"changePct":0.23,"volume":6107188,...}
PASS get_index: {"source":"NSE","index":"NIFTY BANK","last":55915,"percentChange":1.34,
"yearHigh":61764.85,"pe":...}
PASS get_market_status: [{"market":"Capital Market","marketStatus":"Open",...}]
PASS get_gainers_losers: {"type":"gainers","universe":"NIFTY 50","data":[{"symbol":
"SHRIRAMFIN","changePct":3.17,...}]}
PASS get_corporate_actions: {"symbol":"RELIANCE","actions":[{"subject":"Dividend -
Rs 5.5 Per Share","exDate":"14-Aug-2025",...}]}
PASS get_options_chain: {"symbol":"NIFTY","underlyingValue":23331,"atmStrike":23350,
"availableExpiries":["16-Jun-2026",...],"data":[{"strikePrice":...,"CE":{"lastPrice":
130.95,"openInterest":144769,"impliedVolatility":12.26},...}]}
PASS get_ipo_list: {"type":"current","ipos":[{"companyName":"Utkal Speciality
Industries India Limited","status":"Active",...}]}
PASS compare_funds: {"comparison":[{"name":"Parag Parikh Flexi Cap Fund - Direct
Plan - Growth","latestNAV":88.484,...}]}
PASS portfolio_summary: {"summary":{"totalInvested":41000,"totalCurrentValue":38663,
"totalPnL":-2337,"totalPnLPct":-5.7,...}}
... all 16 tools PASS
```
## Data sources
| Source | Used for | Notes |
|---|---|---|
| Yahoo Finance (`yahoo-finance2`) | Quotes, history, fundamentals, search | Primary source, may be delayed a few minutes |
| NSE India (`nse-bse-api`) | Market status, indices, corporate actions, IPOs, option chains | Some NSE endpoints (quote, autocomplete) are no longer publicly accessible — the server falls back to Yahoo automatically |
| [mfapi.in](https://www.mfapi.in) | Mutual fund NAV and search | Free, occasionally flaky — requests retry once |
| [mfdata.in](https://mfdata.in) | Fund ratings / expense ratio | Often unreachable; falls back to mfapi.in |
### Known limitations
- `get_gainers_losers` ranks a built-in NIFTY 50 constituent list (verified June 2026). NSE reconstitutes the index ~2×/year — update `NIFTY50_SYMBOLS` in `src/index.ts` when that happens.
- Quotes may be delayed (Yahoo free feed); not suitable for live trading decisions.
- NSE may rate-limit or block heavy usage.
## Disclaimer
Data comes from free public sources and may be delayed, incomplete, or wrong. This is not financial advice and not a substitute for a licensed broker or advisor. Do your own research before trading or investing.
## License
[MIT](LICENSE)
TDQS
Scored across 16 tools
Each tool targets a distinct domain or action: compare functions for stocks vs funds are separate; get_* tools for different data types (fundamentals, historical, quote, etc.); search tools for symbols and funds; portfolio summary is unique. No overlap.
Most tools follow a verb_noun pattern (get_, compare_, search_) in lowercase snake_case. 'portfolio_summary' is the exception as it starts with a noun, but it remains descriptive and fits the overall style. The inconsistency is minor.
With 16 tools covering stocks, mutual funds, indices, IPOs, market status, options, and portfolio analysis, the count is slightly high but well-justified for the breadth. It feels comprehensive without being excessive.
The tool set covers core data retrieval and analysis for stocks and mutual funds, including fundamentals, historical prices, comparisons, and portfolio summary. Missing areas like technical analysis or trading are likely out of scope. Minor gaps exist (e.g., no direct tool for stock screener), but overall it's thorough.