india-markets-mcp
Click on "Deploy 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., "@india-markets-mcpwhat's the RSI and trend regime for RELIANCE?"
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.
india-markets-mcp
An MCP server that lets AI agents (Claude, Cursor, any MCP client) look up Indian equities and get simple, transparent technical signals. Built on public data via yfinance — no API keys.
Not investment advice. Data comes from Yahoo Finance and can be delayed or wrong.
Tools
Tool | What it does |
| Latest close, daily change, 52-week range, volume |
| RSI(14), 30-day volatility, max drawdown, 12-1 momentum, and a rule-based trend regime |
| Rank 2-10 symbols by return, with volatility and drawdown |
Symbols: RELIANCE → RELIANCE.NS; TCS.BO and ^NSEI pass through; NIFTY, BANKNIFTY, SENSEX map to indices.
The regime label is deliberately a plain rule (close vs 50/200-day averages) and the output includes the rule text, so an agent can explain why a label was chosen.
Related MCP server: MCP YFinance Stock Server
Install and run
pip install -e .
india-markets-mcp # starts the server over stdioClaude Desktop / Claude Code config:
{
"mcpServers": {
"india-markets": { "command": "india-markets-mcp" }
}
}Develop
pip install -e ".[dev]"
pytestIndicator and tool logic is pure pandas (indicators.py, core.py) and tested offline; only data.py touches the network.
Roadmap
Fundamentals (P/E, P/B) and sector comparison
Optional alternative data sources behind the same interface
Caching to be kinder to the upstream API
License
MIT
Available Tools
3 toolscompare_symbolsCompare SymbolsA
Rank 2-10 symbols by return over a period (1mo, 6mo, 1y, 2y, 5y), with volatility and drawdown.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 1y | |
| symbols | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. It usefully discloses the exact set of valid periods and the symbol-count bound, which are behavioral constraints, but it says nothing about auth, rate limits, or handling of invalid periods. The presence of an output schema lowers the need to explain return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the scope constraint and metrics are front-loaded rather than buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and both input parameters are covered with meaningful constraints. What remains unstated is error behavior for out-of-range periods or symbol counts, a minor gap for a read-only comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description has to compensate, and it does: it enumerates the accepted period values (1mo through 5y) that the schema leaves as a free string, and it states the 2-10 cardinality constraint on the symbols array. It does not clarify the default of 1y or symbol format (ticker casing/styles).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (rank) plus resource (2-10 symbols) plus the metrics returned (return, volatility, drawdown), so the agent knows exactly what the tool produces. It doesn't name the siblings get_quote or get_signals, so the differentiation from those is only implicit, which keeps it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '2-10 symbols' bound and the period framing imply the multi-symbol comparison use case, which distinguishes it from a single-quote tool. However, there is no explicit when-to-use/when-not-to-use guidance and no mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteGet QuoteB
Latest close, daily change and 52-week range for an NSE symbol (e.g. RELIANCE, TCS, NIFTY).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, yet it says nothing about whether prices are delayed or real-time, auth requirements, rate limits, or what happens for an invalid/unknown symbol. Only the returned field names are disclosed, which is the bare minimum for a market-data read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence that front-loads the payload contents and ends with the scoping constraint and examples. Nothing is wasted, though leading with the verb would make the action even more immediate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure needn't be explained, and the single parameter is illustrated. However, for a zero-annotation tool the description leaves out data freshness and failure behavior, which materially affect how an agent should present and retry the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, but the description compensates partially with concrete examples (RELIANCE, TCS, NIFTY), showing that index names are valid and implying NSE ticker format. It still omits casing rules, exchange prefixes, or series suffixes, so an agent could still pass malformed symbols.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact fields returned (latest close, daily change, 52-week range) scoped to one NSE symbol, which is far more specific than a restatement of the name. It implies single-symbol scope, distinguishing it from compare_symbols, but never names the siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'symbol' plus the field list tells an agent this is a single-symbol snapshot tool. There is no explicit when-to-use, when-not-to-use, or alternative such as compare_symbols for multi-symbol work or get_signals for other data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signalsGet SignalsC
RSI, volatility, drawdown, 12-1 momentum and a rule-based trend regime for a symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing: no statement that it is a read-only computation, no data-window or history requirement (relevant for 12-1 momentum), no freshness/latency notes, and no hint about what happens for an invalid or untradeable symbol. Naming the metrics and calling the regime 'rule-based' is the only behavioral signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with no filler, and the metric inventory is front-loaded so an agent can judge relevance immediately. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a computation with a historical window (12-1 momentum) and an untyped symbol identifier, the description should at least cover symbol format and any lookback/data assumptions; those gaps keep it merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single required 'symbol' parameter, and the description only echoes it as 'for a symbol'. It adds no format guidance (ticker vs. exchange-suffixed, case sensitivity, supported universes), so the one input the agent must supply remains underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates exactly what is computed for a symbol (RSI, volatility, drawdown, 12-1 momentum, rule-based trend regime), which is far more concrete than 'Get Signals'. It never names the siblings get_quote or compare_symbols, so the boundary between a single-symbol signal panel and a price quote or multi-symbol comparison is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says to call this instead of get_quote for a raw price, or instead of compare_symbols when evaluating multiple names. The agent must infer the selection rule from the metric list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
compare_symbols - First observed
get_quote - First observed
get_signals
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: single-symbol quote data, technical/statistical signals, and multi-symbol comparison. An agent can easily select the right tool based on whether it needs current pricing, derived indicators, or cross-symbol ranking.
All tool names follow a consistent snake_case verb_noun pattern: get_quote, get_signals, compare_symbols. The verbs are appropriate and predictable for their actions.
Three tools is on the lean side but appropriate for a focused market-data analytics server. Each tool earns its place, though additional utility tools may be expected for broader workflows.
The surface covers core quote retrieval, signal analysis, and relative comparison well. Minor gaps exist around symbol discovery, historical time-series access, or broader market/index coverage, but the stated analytics purpose is largely served.
Maintenance
Related MCP Connectors
Yahoo Finance for AI agents: quotes, price history, options with Greeks, financials, news, movers.
Live crypto + IDX stock market intelligence for AI agents — 19 tools, no API key.
A Model Context Protocol server exposing real-time and historical Colombo Stock Exchange (CSE) data to AI agents and LLM applications. Provides quotes and OHLCV price history, full financial statements (income, balance sheet, cash flow), pre-computed technicals (moving averages, RS ratings, volume signals), macroeconomic indicators, corporate actions, and rule-based screening across CSE stocks and sector indices, everything needed to build CSE-aware trading assistants, research tools, and market-analysis agents. This is the official MCP server of www.ceyloncharts.com
Analyze any Nifty 500 stock with AI — price action, demand zones, technicals & screener.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides access to real-time and historical Indian stock data via Yahoo Finance API, enabling local LLMs to retrieve stock information through MCP-compatible agents like Claude Desktop and Cursor.2-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to retrieve real-time stock data, manage watchlists, and perform comprehensive technical analysis using Yahoo Finance API. Provides 18+ tools for stock price tracking, trend analysis, volatility assessment, and financial indicators through MCP integration.MIT
- FlicenseAqualityDmaintenanceEnables real-time and historical Indian stock market data retrieval, including prices, news, recommendations, and top gainers/losers.11-
- AlicenseAqualityBmaintenanceEnables LLM clients to perform fundamental analysis of NSE/BSE-listed Indian stocks, covering financial statements, ratios, valuation, screening, and investment memos using Yahoo Finance data.281MIT