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)
Requirements
- Node.js 22+
Setup
Via npm (recommended)
No clone, no build:
Claude Code
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\):
{
"mcpServers": {
"india-stock": {
"command": "npx",
"args": ["-y", "india-stock-mcp"]
}
}
}
From source
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
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
Known limitations
get_gainers_losersranks a built-in NIFTY 50 constituent list (verified June 2026). NSE reconstitutes the index ~2×/year — updateNIFTY50_SYMBOLSinsrc/index.tswhen 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.