mcp-indian-stocks
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., "@mcp-indian-stocksGet the latest price of Tata Motors"
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.
Indian Stock Market MCP Server
An MCP (Model Context Protocol) server built in Python that provides real-time and historical data from the Indian Stock Market (BSE and NSE).
🚀 Quick Start Guide
1. Get Your API Key
Sign up and copy your API key.
2. Set Up the .env File
Clone this repository to your computer.
In the root of the project folder, create a new file named exactly
.env.Open the
.envfile and paste your API key like this:
INDIAN_STOCK_API_KEY=your_api_key_here3. Connect to Claude Desktop
To use this with Claude Desktop, update your configuration file.
(On Windows, this is usually at %APPDATA%\Claude\claude_desktop_config.json)
Add this to the mcpServers section:
{
"mcpServers": {
"IndiaStockExchange": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"fastmcp",
"run",
"<file-path>\\main.py"
],
"env": {}
}
}
}Important: Replace
<file-path>with the actual path where you saved this repository (e.g.,C:\\Users\\yourname\\mcp-indian-stocks).
Related MCP server: Indian Stock Exchange API2 MCP Server
🛠️ Available Tools
get-market-news- Get the latest general market news.get-news- Get specific Indian Stock Exchange news.get-stock-details- Get comprehensive details for a specific stock.get-stock-history- Get historical pricing data for a stock.get-stock-price- Get the real-time stock price.get-stock-recommendations- Get stock recommendations based on market trends.get-top-gainers- Get a list of the top gaining stocks.get-top-losers- Get a list of the top losing stocks.
Available Tools
11 toolsget_commoditiesGet CommoditiesB
Get commodity futures and spot prices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the content of the response (futures and spot prices), but says nothing about auth requirements, rate limits, real-time vs delayed data, or pagination. An output schema exists, which lightens the return-value burden, keeping this at an adequate-but-thin 3.
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 front-loaded sentence with no filler and no redundancy. It is efficient, though extremely sparse given the tool's breadth.
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?
With no parameters and an output schema already defining the return shape, the description need not explain returns, but it also omits any usage context or constraints. It is minimally complete for a no-arg read tool but leaves real gaps around data freshness and intended scenarios.
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 tool takes zero parameters, so there are no parameter semantics to clarify; the baseline of 4 applies. Nothing in the description conflicts with the empty schema.
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 a specific verb (Get) and resource (commodity futures and spot prices), which is enough to distinguish it from sibling tools like get_stock_details or search_mutual_fund that cover other asset classes. It does not explicitly name a sibling it is not, so it falls short of 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?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. The asset-class scope only implicitly suggests usage, and nothing is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_corporate_actionsGet Corporate ActionsB
Get data on dividends, splits, and other corporate actions for a stock.
| Name | Required | Description | Default |
|---|---|---|---|
| stock_name | Yes | Name of the stock |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read operation, but the description does not state permissions, rate limits, data freshness, or other operational traits. It only lists data categories.
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?
The definition is one front-loaded sentence with zero wasted words. It states the resource and examples immediately.
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?
For a simple read tool with one fully documented parameter and an output schema, the description is largely complete. It states what data is returned at a high level, though it lacks explicit sibling routing or behavioral context.
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 description coverage is 100% for the single stock_name parameter. The description says 'for a stock' but adds no syntax, format, or meaning beyond what the schema already provides. Baseline 3 applies.
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 uses a specific verb ('Get') and resource ('corporate actions'), and gives concrete examples ('dividends, splits'). It does not explicitly differentiate the tool from siblings like get_stock_details or get_historical_data, which prevents 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?
Usage is only implied: an agent can infer this is for corporate action data on a specific stock. There is no explicit when-to-use guidance, no alternatives, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historical_dataGet Historical DataC
Get historical price and metric data for a stock.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Metric to filter by (options: 'price', 'pe', 'sm', 'evebitda', 'ptb', 'mcs') | price |
| period | Yes | Time period (options: '1m', '6m', '1yr', '3yr', '5yr', '10yr', 'max') | |
| stock_name | Yes | Name of the stock (e.g., 'RELIANCE') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and provides only a minimal restatement of purpose. It says nothing about whether data is delayed, how results are ordered, or any rate/permission constraints; the existence of an output schema offsets return-format concerns only partially.
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, front-loaded sentence with zero waste. It is arguably too terse for the information it omits, but as a structure it is clean and efficient.
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-value explanation is not required, and the parameter surface is simple (3 params, 2 required). Still, with no annotations and no usage context, the definition is only minimally viable for an agent trying to decide between this and the many sibling data-retrieval tools.
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 description coverage is 100%, so each of the three parameters is already fully documented including the enumerable filter and period options. The description's phrase 'price and metric data' loosely gestures at the filter dimension but adds no syntax or semantics beyond the schema, matching the baseline 3.
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 a specific verb ('Get') and resource ('historical price and metric data for a stock'), which is clear enough to distinguish it from siblings like get_stock_forecasts or get_stock_details. However, it does not explicitly contrast itself against those siblings, so it falls short of 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?
No guidance on when to use this versus get_stock_forecasts, get_stock_details, or get_price_shockers, and no prerequisites or exclusions stated. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ipo_dataGet Ipo DataB
Get ongoing and upcoming IPO data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no market/exchange coverage, no real-time vs. delayed data, no rate limits, no indication of whether the response is cached or filtered. For a data-retrieval tool with zero annotation coverage, this leaves significant gaps beyond the read-only nature implied by the name.
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, front-loaded sentence with no waste or filler, which is appropriate for a simple fetch tool. It is arguably too terse to be maximally useful, but nothing in it is redundant.
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 described, and with no input parameters the input side is trivially complete. However, with no annotations the description should still convey the data scope (which markets, freshness) to let an agent judge applicability, and that is absent.
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 tool takes no parameters, so there is no parameter semantics to explain; the schema is empty and the baseline for a zero-parameter tool is 4. The description does not need to compensate for anything in the input schema.
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 names a specific verb ('Get') and resource ('IPO data') and narrows scope to 'ongoing and upcoming', which no sibling tool covers (the siblings are stock, fund, news, commodity and corporate-action oriented). It is clear what the tool returns, though it does not explicitly contrast itself with siblings such as get_corporate_actions.
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, no stated prerequisites, and no mention of alternatives or related tools. The agent must infer that this is the correct tool whenever IPO information is needed, with nothing about frequency of refresh or whether it complements get_corporate_actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsGet NewsA
Get the latest stock market and financial news.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden, and it only implies read-only behavior via 'get' plus a recency trait ('latest'). It says nothing about rate limits, auth requirements, result volume, or whether the call is cached/stale. For a zero-parameter read tool the risk is low, but the disclosure is thin.
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 front-loaded sentence with no filler, hedging, or restatement of the name. Every word contributes to identifying the resource and its recency.
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-value structure need not be described, and there are no inputs to explain. The description is nearly sufficient, though it omits whether news is market-wide or tied to instruments/sectors, which an agent might reasonably want to know.
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 tool takes zero parameters, so there is nothing for the description to clarify beyond the schema; baseline for a parameterless tool applies. Input schema coverage is 100% and additionalProperties is false, making the input contract unambiguous.
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 states a specific verb and resource ('get ... news') with the domain scoped to stock market and financial news. It does not distinguish itself from siblings, but none of the listed siblings are news tools, so ambiguity risk is low.
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?
No guidance on when to use this tool versus alternatives, no stated prerequisites, and no indication of how fresh the 'latest' news is or whether it can be scoped. The agent is left to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_shockersGet Price ShockersB
Get stocks with significant intraday price/volume movements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the entire behavioral burden, and it discloses almost nothing: it does not define what threshold makes a movement 'significant,' whether results are real-time or delayed, how many stocks are returned, or whether it requires a live market session. 'Get' implies a read, but that is the only behavioral inference available.
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 front-loaded sentence with no filler or redundancy, which is appropriate for a no-argument tool. It is arguably too terse, but every word earns its place.
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?
Because an output schema exists, the return structure need not be explained, and the absence of parameters keeps the surface small. Still, for a tool whose value hinges on the undefined word 'significant' and on how it differs from get_trending_stocks, the description leaves meaningful ambiguity that a well-formed definition would resolve.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description does not need to compensate for any undocumented inputs.
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 states a specific verb and resource ('Get stocks') and narrows the subset to those with 'significant intraday price/volume movements,' which is more informative than a bare restatement of the name. However, it does not distinguish this from the sibling get_trending_stocks, which plausibly returns a similar set of movement-driven stocks, leaving the boundary between the two unclear.
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 statement of when to call this versus get_trending_stocks, get_stock_forecasts, or get_historical_data, and no mention of prerequisites or context such as market hours. Usage is only weakly implied by the phrase 'intraday price/volume movements.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_detailsGet Stock DetailsC
Get detailed company profiles, stock prices, and financials.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the stock (e.g., 'RELIANCE') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose auth requirements, rate limits, data freshness, or any other operational trait; it merely lists the categories of data returned.
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?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a one-parameter read tool, though it could be slightly more informative without becoming verbose.
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, and the parameter is fully documented in the schema. However, the description still omits usage context and behavioral traits, leaving clear gaps for a tool with many siblings and no annotations.
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 description coverage is 100%, so the schema already documents the single 'name' parameter with an example. The description adds no parameter-specific meaning beyond what the schema provides, so baseline 3 is appropriate.
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 names a specific verb ('Get') and resource ('stock details'), then enumerates contents: company profiles, stock prices, financials. It is clear at a glance but does not distinguish this tool from siblings like get_historical_data or get_stock_forecasts that also involve stock prices.
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, no alternatives named, and no prerequisites stated. The description only implies a generic retrieval scenario, leaving the agent to infer when this tool beats its many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_forecastsGet Stock ForecastsB
Get analyst forecasts and target prices for a stock.
| Name | Required | Description | Default |
|---|---|---|---|
| stock_id | Yes | ID of the stock |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read, but says nothing about data freshness, whether forecasts are consensus or individual analysts, coverage, or any rate/auth constraints, so the agent learns little beyond the scope of the return.
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 front-loaded sentence with no filler; every word contributes to defining the resource retrieved.
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, and the single required param is documented. However, for a no-annotation research tool, the description is thin on sourcing, freshness, and scope of the forecasts, leaving the agent with a minimal picture.
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?
Only one parameter (stock_id) and schema description coverage is 100%, so the schema already documents it fully. The description adds no format or sourcing detail beyond what the schema supplies, making the baseline 3 appropriate.
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 a specific verb and resource: analyst forecasts and target prices for a stock. This distinguishes it from siblings like get_stock_details and get_historical_data, though it does not explicitly name a contrasting sibling.
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?
No guidance on when to use this versus get_stock_details or other research tools, and no prerequisites or exclusions stated. The agent must infer usage from the purpose sentence alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trending_stocksGet Trending StocksB
Get a list of currently trending stocks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it discloses almost nothing: it does not define what 'trending' is measured by (volume, price move, mentions), over what window, or how fresh the data is. For a zero-parameter read tool the burden is light, but the core concept is left undefined.
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 front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is achieved by omitting information rather than by tight editing of richer content.
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, and the empty input schema is fully specified. The remaining gap is conceptual: the definition of 'trending' is absent, which is the one thing an agent cannot recover from the structured fields.
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 tool takes zero parameters, which is the rubric's baseline of 4. The schema's 100% coverage is moot here since there is nothing to document, and the description correctly implies no inputs are required.
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?
Names a specific verb ('Get') and resource ('trending stocks') with a temporal qualifier ('currently'), so the agent knows this is a read of a curated list. However, it offers no differentiation from siblings like get_price_shockers or get_stock_forecasts, which could plausibly surface similar 'hot' names.
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 statement of when this tool should be chosen over the ten siblings, nor any exclusions or prerequisites. The agent must infer that 'trending' is distinct from 'price shockers' or 'forecasts' entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_industrySearch IndustryC
Search for companies by industry.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Industry name or keyword (e.g., 'IT') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about permissions, rate limits, or result characteristics. For a search tool the read-only nature is implied but never stated, and no context beyond the one-line purpose is offered.
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 short sentence that is front-loaded with the verb and resource and contains no wasted words. It is efficient, though arguably under-specified rather than optimally concise.
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, and the single parameter is fully documented in the schema. However, the description omits any usage context or behavioral notes, leaving it merely adequate for a one-parameter search.
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 100% and the single query parameter is documented with an example ('IT') in the schema itself, so the description adds no meaning beyond it. Baseline 3 applies when the schema does the heavy lifting.
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 states a specific verb (Search) and resource (companies) with the scoping dimension (by industry), which is enough to distinguish it from siblings like get_stock_details or search_mutual_fund. It does not explicitly name a sibling, so it falls short of 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?
There is no guidance on when to use this tool versus the many sibling lookup tools, nor any stated prerequisites or exclusion conditions. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mutual_fundSearch Mutual FundA
Search for mutual funds by name or keyword.
IMPORTANT: Use short keywords (1-3 words), NOT full fund names. The API does not support long search strings.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Short keyword to search for (e.g., 'Nippon', 'multi cap', 'HDFC flexi') DO NOT pass full fund names like 'Nippon India Multi Cap Fund Direct Growth' |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present the description must carry the behavioral burden, and it does disclose one real API limitation: long search strings are unsupported. It omits other traits an agent might need (result limits, auth requirements, what happens when nothing matches), so the disclosure is partial.
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?
Three short lines, front-loaded with the purpose and then the critical constraint in emphasis. Every sentence carries information; nothing is padded.
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 the one parameter is fully documented. For a single-parameter search tool the description is nearly sufficient, with only result-count or match behavior left unstated.
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 100% and the schema already documents the query parameter with examples, but the description adds a quantified rule ('1-3 words') and flags the constraint as IMPORTANT, sharpening the schema's vaguer 'short keyword' wording. It goes modestly beyond the schema rather than merely restating it.
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 a clear verb+resource (search mutual funds) with the searchable dimension (name or keyword). No sibling tool covers mutual funds, so differentiation is implicit rather than explicit; nothing in the description rules out confusion with search_industry, but the resource is unambiguous.
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?
Gives a strong how-to constraint (use 1-3 word keywords, not full fund names) that shapes usage, but never states when this tool should be chosen over a sibling or what the results are suited for. Usage is implied by the resource rather than framed as guidance.
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.
11 tool updates
v0.1.0- First observed
get_commodities - First observed
get_corporate_actions - First observed
get_historical_data - First observed
get_ipo_data - First observed
get_news - First observed
get_price_shockers - First observed
get_stock_details - First observed
get_stock_forecasts - First observed
get_trending_stocks - First observed
search_industry - First observed
search_mutual_fund
TDQS
Scored across 11 tools
Each tool targets a distinct data category (mutual funds, IPOs, news, forecasts, corporate actions, commodities, etc.), so purposes are largely separable. Minor risk: get_price_shockers vs get_trending_stocks both surface 'notable stocks,' and get_stock_details vs get_historical_data both touch price data, but descriptions differentiate them adequately.
Strong get_* verb_noun pattern (get_ipo_data, get_news, get_stock_details, etc.) across most tools. Two tools deviate with search_* (search_mutual_fund, search_industry), which is a reasonable distinction for search semantics but breaks pure consistency.
11 tools is well within the ideal 3-15 range for a market-data server, with each tool covering a meaningful distinct data source. No redundant or filler tools are apparent.
Broad coverage spanning news, IPOs, forecasts, corporate actions, commodities, trending stocks, industry search, and historical data. A direct real-time stock quote or watchlist/portfolio operation is a minor gap, but agents can work around it via get_stock_details.
Related MCP Connectors
Provide access to Chinese stock market data including historical prices, real-time data, news, and…
Indian NSE/BSE research data and mechanically-computed ratios; read-only market tools.
Access real-time and historical market data for China A-shares and Hong Kong stocks, along with ne…
Fetch current stock prices and key data for symbols across global markets. Look up companies like…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides real-time and historical Indian stock market data from NSE and BSE exchanges with 66 tools covering quotes, options chains, corporate actions, IPOs, and market analytics for LLM-powered financial analysis.42 npm12MIT
- FlicenseCqualityDmaintenanceEnables access to comprehensive Indian stock market data from the NSE and BSE, including historical statistics, corporate actions, and IPO information. It also provides tools for mutual fund searches, analyst recommendations, and tracking market-active or trending stocks.16-
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to real-time Indian stock market data with 34 tools for search, screening, analysis, portfolio tracking, and market insights across all NSE and BSE stocks.136 npm65MIT
- AlicenseNot gradedqualityDmaintenanceProvides live market data from Indian Stock Exchanges (BSE & NSE) via MCP, powered by IndianAPI. Enables querying stock data, trending stocks, and more through natural language.11MIT