MCP server for real-time Indian stock market data from NSE and BSE exchanges
IndianMarkets is a financial data tool collection using FastMCP and HTTP transport. All 11 tools are present with descriptions and input schemas visible in the source code. Naming conventions are clear and action-oriented (all use 'get_' prefix). However, several tools lack comprehensive parameter descriptions, output schemas are not formally documented, and error handling is minimal with generic exception messages. The server provides basic financial data retrieval but lacks the polish and robustness expected of production-grade financial tools.
Get corporate actions (dividends, splits) for BSE-listed stocks.
Get real-time BSE quote with robust error handling.
Get historical data for Indian stocks.
Fetch component symbols for an NSE index.
Get options chain for NSE F&O stocks.
Unified stock info with automatic NSE/BSE detection and fallback.
Get buy/sell sentiment for major Indian indices and constituent breadth.
Output schemas not documented. Tools return dictionaries with undocumented fields, forcing LLMs to infer structure from response content. This violates pattern:tool and pattern:response-shaper, increasing hallucination risk.
Generic error handling with raw exception strings. Error responses like 'NSE quote failed: ...' do not guide LLM recovery. Missing actionable error messages, categorization (retryable vs fatal), or suggestions for next steps per pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 66 | 2026-07-28+ | v2 |
Get live market status for Indian exchanges.
Get real-time index values for NSE indices.
Return a quick snapshot of key NSE indices in one call.
Get real-time NSE quote with safer extraction and error handling.
Sparse parameter descriptions. Index parameter in get_nse_indices describes only the default but does not explain valid format, acceptable index names, or what happens with invalid input. Similarly, 'period' in get_historical_data lacks constraints on valid periods. Violates pattern:constrained-input.
No result pagination or limits enforced. get_nse_market_snapshot, get_index_constituents, and get_market_movers may return large arrays without documented caps. Missing limit parameter and pagination fields (total_count, next_cursor) violate pattern:paginated-result.
Missing tool composition patterns. get_indian_stock_info accepts both ticker and scrip_code via fallback logic internal to the tool, but the parameter description does not clarify this duality. Parameter naming should be explicit (ticker vs scrip_code) to match caller expectations per pattern:tool-chain.
No idempotency guarantees. Financial data tools should document whether repeated calls with the same input return identical results. External API dependencies (NSE, BSE) may change underlying data; tool descriptions do not acknowledge this or provide freshness semantics.