MCP server for accessing National Stock Exchange of India (NSE) trading data, including Bhav Copy downloads, trade information, and top movers analysis
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. get_trades and get_top_movers lack descriptions for all parameters (ndays, symbol, date). get_todays_price description is misleading (mentions NASDAQ/NYSE/AMEX but tool is for NSEI/FMP data). No output schemas documented. Parameter descriptions are minimal (10-20 chars). No error handling guidance. Tool composition is reasonable but parameter naming could be more explicit (e.g., 'ticker' vs 'symbol' inconsistency across tools).
Get the latest available price for a given stock ticker from NASDAQ, NYSE, or AMEX. Prices are cached for the current day across exchanges.
Get top movers at the National Stock Exchange of India for a period of ndays upto the given date.
Get trades for a specific symbol or all symbols for a given date range.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract fields without knowing what get_trades, get_top_movers, and get_todays_price return. Violates pattern:tool requirement for documented return types.
Parameter descriptions missing or trivial. 'ndays' described as 'integer number of days leading up to date. default is 1' (50 chars) but lacks context: what is the valid range? Why would an LLM choose ndays=5 vs ndays=30? 'symbol' and 'date' similarly underdocumented.
get_todays_price description is factually incorrect/misleading. States 'Get the latest available price for a given stock ticker from NASDAQ, NYSE, or AMEX' but tool is for NSEI (National Stock Exchange of India) and uses FMP API. LLM will misunderstand when to call this tool.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Inconsistent parameter naming across tools. get_trades and get_top_movers use 'symbol' but get_todays_price uses 'ticker'. LLM must reason about field mappings when chaining tools, increasing error likelihood.
No error handling guidance. If symbol is invalid or date is out of range, what does the tool return? How should the LLM recover? No recovery hints provided.