NSE-MCP
Click on "Install 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., "@NSE-MCPget quote 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.
NSE MCP
An MCP (Model Context Protocol) server that exposes live Indian stock market data from the National Stock Exchange (NSE) to LLM clients like Claude Desktop, Cursor, VS Code, and any other MCP-compatible host.
Modelled after OpenInsider-MCP but built entirely around NSE India's public data APIs.
What it provides
17 tools across five categories:
Category | Tools |
Bulk / Block / Insider deals |
|
Institutional flows |
|
Market data |
|
Corporate events |
|
Short data |
|
All tools return typed JSON. No scoring, no recommendations — pure data layer.
Related MCP server: finstack-mcp
Requirements
Requirement | Version |
Node.js | ≥ 20 |
npm | ≥ 8 (bundled with Node 20) |
Git | Any recent version |
Why Node 20? The server uses the native
fetchAPI andAbortSignal.timeout(), both of which require Node 18+. Node 20 is the active LTS and is recommended.
Installation
1. Clone the repository
git clone https://github.com/manitgupta/nse-mcp.git
cd nse-mcp2. Install dependencies
npm install3. Build
npm run buildThis compiles the TypeScript source in src/ to dist/. The entry point is dist/index.js.
4. Verify it starts
node dist/index.jsThe server communicates over stdio (standard input/output) — it will appear to hang because it is waiting for MCP messages. That is correct. Press Ctrl+C to exit.
Configuration
The server works out of the box with no required configuration. One optional environment variable is available:
Variable | Default | Description |
| Chrome 120 UA string | Override the User-Agent sent to NSE and Yahoo Finance. Useful if NSE starts blocking the default UA. |
Setting the environment variable
macOS / Linux
export NSE_MCP_UA="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/121.0.0.0 Safari/537.36"Windows (PowerShell)
$env:NSE_MCP_UA = "Mozilla/5.0 ..."You can also set it inline in your MCP client config (see below).
How NSE session auth works
NSE India's API requires browser-like cookies. On the first request the server automatically:
Fetches
https://www.nseindia.comto obtain initial cookies.Fetches the live-equity-market page with those cookies to complete the session.
Caches the session for ~7 minutes, then refreshes transparently.
No manual login or API key is needed.
Adding to an MCP client
In all configs below, replace /absolute/path/to/nse-mcp with the actual path where you cloned the repo.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"nse-mcp": {
"command": "node",
"args": ["/absolute/path/to/nse-mcp/dist/index.js"]
}
}
}With an env override:
{
"mcpServers": {
"nse-mcp": {
"command": "node",
"args": ["/absolute/path/to/nse-mcp/dist/index.js"],
"env": {
"NSE_MCP_UA": "Mozilla/5.0 ..."
}
}
}
}Restart Claude Desktop after saving.
VS Code (GitHub Copilot / Continue)
Add to .vscode/mcp.json in your workspace, or to your user settings:
{
"servers": {
"nse-mcp": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/nse-mcp/dist/index.js"]
}
}
}Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"nse-mcp": {
"command": "node",
"args": ["/absolute/path/to/nse-mcp/dist/index.js"]
}
}
}Any stdio-based MCP host
command: node
args: ["/absolute/path/to/nse-mcp/dist/index.js"]Tool reference
get_bulk_deals
Today's NSE bulk deals — single-client trades of ≥ 0.5% of a company's listed shares in one session.
Parameter | Type | Description |
| string | NSE symbol (e.g. |
|
| Direction filter. Default: |
get_block_deals
Today's NSE block deals — negotiated trades of minimum ₹10 crore executed in the Block Deal Window.
Parameter | Type | Description |
| string | NSE symbol. Omit for all. |
|
| Direction filter. Default: |
get_insider_trading
SEBI PIT (Prohibition of Insider Trading) disclosures — promoter and insider buy/sell transactions.
Parameter | Type | Description |
| string | NSE symbol. Omit for all companies. |
| string |
|
| string |
|
get_latest_bulk_deals
Today's bulk deals sorted by trade value.
Parameter | Type | Description |
|
| Direction filter. Default: |
get_top_bulk_buys
Largest bulk-deal purchases today, ranked by total value (quantity × price).
Parameter | Type | Description |
| number | Results to return. Default: |
| string | Restrict to one symbol. |
get_top_bulk_sells
Largest bulk-deal sales today, ranked by total value.
Parameter | Type | Description |
| number | Results to return. Default: |
| string | Restrict to one symbol. |
get_fii_dii_activity
Daily FII and DII net buy/sell figures in the Indian cash market.
Parameter | Type | Description |
| number | Number of recent trading days. Default: |
get_nse_announcements
Corporate announcements filed with NSE — board meetings, results, mergers, regulatory updates, etc. (equivalent to SEC 8-K filings).
Parameter | Type | Description |
| string | NSE symbol. Omit for all. |
| number | Announcements from the last N days. Omit for no date filter. |
| number | Maximum results. Default: |
get_market_status
Current open/closed status of NSE segments (Capital Market, F&O, Currency Derivatives, Commodity) plus live index levels.
No parameters.
get_nifty_indices
Live data for all NSE indices — price, change, 52-week range, advances/declines count.
Parameter | Type | Description |
| string | Partial, case-insensitive filter. E.g. |
get_top_gainers
Top gaining stocks by % change in the current session.
Parameter | Type | Description |
| string | NSE index to scan. Default: |
| number | Results to return. Default: |
get_top_losers
Top losing stocks by % change in the current session.
Parameter | Type | Description |
| string | NSE index to scan. Default: |
| number | Results to return. Default: |
get_most_active
Most actively traded stocks by total traded value (₹) in the current session.
Parameter | Type | Description |
| string | NSE index to scan. Default: |
| number | Results to return. Default: |
search_by_symbol
Aggregated view for one stock — returns today's bulk deals, block deals, recent insider trades, and recent announcements in a single call.
Parameter | Type | Description |
| string | NSE symbol. Required. |
| number | Look-back window for insider trades and announcements. Default: |
get_quote
Live stock quote via Yahoo Finance. Returns price, 52-week range, volume, market cap, P/E ratios, dividend yield, and next earnings date. Prices are in INR.
Parameter | Type | Description |
| string | NSE symbol (e.g. |
get_short_selling
Short-selling data as reported by brokers to NSE under SEBI's short-selling framework.
Parameter | Type | Description |
| string | NSE symbol. Omit for all. |
| number | Return top N stocks by short-sold quantity. |
get_corporate_actions
Upcoming and recent corporate actions — dividends, stock splits, bonus issues, rights issues, buy-backs.
Parameter | Type | Description |
| string | NSE symbol. Omit for all companies. |
| string |
|
| string |
|
Example prompts
Once configured, you can ask your LLM client things like:
"What are today's biggest bulk deals on NSE?"
"Show me insider trades for RELIANCE in the last 30 days."
"What is the live quote for TCS?"
"Which Nifty 50 stocks are up more than 2% today?"
"What's the FII/DII flow for the last 5 trading days?"
"Give me all corporate actions for INFY this quarter."
"Show everything you know about HDFC — deals, announcements, insider activity."
Development
# Watch mode — recompiles on every save
npm run dev
# One-shot build
npm run build
# Start the compiled server
npm startProject structure
src/
├── index.ts # MCP server entry point — tool list + dispatch
├── types.ts # Shared TypeScript interfaces
├── cache.ts # In-memory TTL cache
├── http.ts # Rate-paced HTTP fetcher with retry
├── nse/
│ ├── session.ts # NSE cookie session management
│ └── fetch.ts # NSE API client (wraps http.ts + session)
├── yahoo/
│ ├── fetch.ts # Yahoo Finance HTTP config
│ ├── parseQuote.ts # Quote JSON parser
│ └── quoteSummary.ts
└── tools/ # One file per tool
├── bulkDeals.ts
├── blockDeals.ts
├── insiderTrading.ts
├── latestBulkDeals.ts
├── topBulkBuys.ts
├── topBulkSells.ts
├── fiiDiiActivity.ts
├── announcements.ts
├── marketStatus.ts
├── indices.ts
├── topGainers.ts
├── topLosers.ts
├── mostActive.ts
├── searchBySymbol.ts
├── quote.ts
├── shortSelling.ts
└── corporateActions.tsData sources
Data | Source |
Bulk deals, block deals, insider trading, FII/DII, indices, market status, announcements, corporate actions, short selling | NSE India public API ( |
Live stock quotes | Yahoo Finance ( |
All data is fetched in real time. NSE endpoints are cached for 5 minutes; live quotes and market status for 60 seconds.
License
MIT
Available Tools
17 toolsget_block_dealsB
Fetch today's NSE block deals — large negotiated trades (minimum ₹10 crore) executed in the Block Deal Window. Shows counterparty, quantity, and trade price.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Filter by NSE symbol. Omit for all symbols. | |
| dealType | No | Filter by deal direction. Default: ALL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but does not disclose behavioral traits such as read-only nature, latency, rate limits, or data freshness beyond 'today's'. It mentions fetching but lacks explicit safety or performance context.
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?
Extremely concise: a single sentence with an appended clause provides all key information. No wasted words, front-loaded with the core action and context.
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?
Given the tool's simplicity (2 optional params, no output schema), the description covers the main purpose, data returned, and filters. It lacks mention of time precision (e.g., real-time vs. end-of-day) or pagination, but is mostly complete for its complexity.
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% with adequate descriptions for both parameters. The description adds marginal context (e.g., counterparty, quantity, trade price) beyond the schema, but does not significantly enhance parameter understanding. 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 clearly states the verb (Fetch) and resource (today's NSE block deals), with specific details about minimum value and data fields. While it does not explicitly distinguish from sibling tools like get_bulk_deals, the context of 'Block Deal Window' implies a distinct category.
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 when-not or prerequisites provided. The description only states the basic action, leaving the agent without context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bulk_dealsA
Fetch today's NSE bulk deals — trades where a single client buys or sells ≥0.5% of a company's listed shares in one session. Returns the buyer/seller, quantity, and weighted-average price.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Filter by NSE symbol (e.g. RELIANCE). Omit for all symbols. | |
| dealType | No | Filter by deal direction. Default: ALL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates the tool is read-only and time-bound ('today's'), but lacks details like rate limits, data availability, or error conditions. Misses some behavioral traits.
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?
Two sentences, front-loaded with key action, no extra words. Every sentence adds value.
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?
No output schema, but description lists returned fields (buyer/seller, quantity, price). For a simple tool, this is fairly complete; could mention pagination or limits.
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%, so baseline is 3. Description adds context about 'today's' but does not enrich parameter meaning beyond schema (e.g., date format for symbol filter).
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?
Description clearly states it fetches today's NSE bulk deals, explains the criteria (≥0.5% of listed shares), and distinguishes from siblings like get_block_deals. Verb is specific ('Fetch') and resource is well-defined ('NSE bulk deals').
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 vs alternatives such as get_block_deals or get_latest_bulk_deals. No explicit context on when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_corporate_actionsA
Upcoming and recent corporate actions — dividends, stock splits, bonus issues, rights issues, and buy-backs. Shows ex-date, record date, and payment date.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Filter by NSE symbol. Omit for all companies. | |
| toDate | No | End date in YYYY-MM-DD format. Default: today. | |
| fromDate | No | Start date in YYYY-MM-DD format. Default: 3 months ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral aspects. It discloses the types of actions and dates included but does not mention data freshness, response size, or any limitations. It is adequate but lacks depth; no contradictions.
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 concise (two sentences), front-loaded with the main purpose, and no redundant information. Every word contributes to understanding the tool's output and scope.
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?
Given no output schema, the description effectively explains the tool returns dates for corporate actions. It covers the main use case but does not describe the response format or how to interpret the data, which would be helpful for complex actions like splits. Still, it is relatively complete for a list 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?
The input schema has 100% description coverage for all three parameters (symbol, toDate, fromDate). The description adds no additional semantic value beyond the schema's own descriptions. Baseline 3 is appropriate as 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 clearly identifies the tool's purpose: retrieving upcoming and recent corporate actions. It lists specific action types (dividends, stock splits, etc.) and key dates (ex-date, record date, payment date), distinguishing it from sibling tools like get_quote or search_by_symbol.
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 description implies usage for fetching corporate actions but does not explicitly state when to use this tool versus alternatives. No guidance on when to omit or include the symbol parameter, though it is implied by the schema. Sibling tools are diverse, so more explicit differentiation would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fii_dii_activityA
Daily FII (Foreign Institutional Investor) and DII (Domestic Institutional Investor) net buy/sell figures in the Indian cash market. Key macro signal for market direction.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent trading days to return. Default: 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It mentions that data is daily for the Indian cash market, but it does not specify latency, authentication requirements, rate limits, or how missing data is handled. This lack of detail reduces transparency.
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 extremely concise, consisting of two short sentences that immediately convey the tool's purpose and context. No unnecessary words or redundant details are present.
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 tool with one optional parameter and no output schema, the description adequately covers the data source (FII/DII net figures) and its significance. It could be improved by mentioning the historical nature implied by the 'limit' parameter, but it is mostly complete.
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 has 100% coverage for the single 'limit' parameter, which is already well-documented in the schema. The description adds no additional parameter information, meeting the baseline score.
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 clearly identifies the tool's function: returning daily net buy/sell figures for FII and DII in the Indian cash market. It also highlights its relevance as a key macro signal, differentiating it from other sibling tools that focus on quotes, indices, or bulk deals.
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 description states that the tool provides a key macro signal for market direction, implying use for directional analysis. However, it does not explicitly mention when to avoid using it or compare it to alternatives, so a moderate score is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_tradingA
Fetch SEBI PIT (Prohibition of Insider Trading) disclosures — promoter and insider buy/sell transactions reported to the exchanges. Shows acquirer name, category, shares before/after, and mode of acquisition.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Filter by NSE symbol. Omit for all companies. | |
| toDate | No | End date in YYYY-MM-DD format. Default: today. | |
| fromDate | No | Start date in YYYY-MM-DD format. Default: 30 days ago. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes read-only fetch and output fields, but lacks info on pagination, rate limits, or data freshness.
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?
Two sentences, front-loaded with purpose, concise and no wasted words.
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?
Adequate for a simple fetch tool with no required params and no output schema. Missing some transparency details but covers key output 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?
Schema coverage is 100%, so baseline 3. Description adds minimal value beyond schema (e.g., 'Filter by NSE symbol' is already in schema). Does not explain defaults or format beyond 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?
Clearly states it fetches SEBI PIT disclosures with specific details (promoter/insider, buy/sell, acquirer name, category, shares before/after, mode). Distinguishes from sibling tools like bulk/block deals.
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 explicit when-to-use vs alternatives. Usage is implied by the tool name and description, but no guidance on when to choose over siblings like get_bulk_deals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_bulk_dealsA
Convenience wrapper — returns today's bulk deals sorted by trade value, optionally filtered by direction.
| Name | Required | Description | Default |
|---|---|---|---|
| dealType | No | Filter by deal direction. Default: ALL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool returns data, sorts by trade value, and optionally filters by direction. However, it does not explicitly state that it is read-only or idempotent, nor does it mention any potential side effects, rate limits, or pagination behavior. The transparency is adequate for a simple wrapper but could be improved.
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 sentence of 15 words, highly concise, and front-loaded with the key phrase 'Convenience wrapper'. Every word contributes meaning; there is no redundant or extraneous text.
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?
Given the tool's simplicity (one optional parameter, no output schema), the description adequately covers the core functionality: returning today's deals, sorted, optionally filtered. It could hint at the return structure (e.g., fields like symbol, value) but is largely complete for a wrapper. Sibling tools with more parameters may have richer descriptions.
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% with a description for 'dealType' that already explains the filtering. The description's mention of 'optionally filtered by direction' adds no new meaning beyond the schema. Thus, the description does not compensate further, scoring the baseline of 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?
The description clearly states it is a convenience wrapper that returns today's bulk deals sorted by trade value, optionally filtered by direction. This specific verb and resource combination distinguishes it from siblings like 'get_bulk_deals' (which likely returns all without sorting/filtering) and 'get_top_bulk_buys'/'get_top_bulk_sells' (which filter by direction already).
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 phrase 'Convenience wrapper' implies it is a simplified alternative to 'get_bulk_deals', but it does not explicitly state when to use this tool versus the more specific siblings like 'get_top_bulk_buys' or 'get_top_bulk_sells'. There is no guidance on when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_statusA
Current NSE market status — whether Capital Market, F&O, Currency Derivatives, and Commodity segments are open or closed, plus live index levels.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only states the output content, not behavioral traits like read-only nature, error handling when market closed, or rate limits. Full burden on description, which is insufficient.
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?
Single sentence, front-loaded with key information. No wasted words. Ideal conciseness.
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 output schema, the description provides general content but lacks specific structure details. For a simple status tool, this may be adequate, but it could be more complete by describing the output format.
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?
No parameters exist, so schema coverage is 100% trivially. The description doesn't need to add parameter info. Baseline score of 4 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 clearly states it returns NSE market status for specific segments (Capital Market, F&O, Currency Derivatives, Commodity) and live index levels. This distinguishes it from siblings like get_quote or get_nifty_indices.
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 description implies usage for checking overall market status, but no explicit guidance on when to use vs alternatives like search_by_symbol or get_quote. No 'when not to use' or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_most_activeA
Most actively traded NSE stocks by total traded value (₹) in the current session.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | NSE index to scan. Default: "NIFTY 500". | |
| limit | No | Number of results to return. Default: 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only mentions 'current session' but fails to clarify data freshness, rate limits, pagination, or return format, leaving significant gaps for an agent.
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, well-front-loaded sentence with no wasted words. It efficiently conveys the core function.
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?
Given the tool's simplicity (2 optional params, no output schema), the description adequately covers purpose and key metric. It lacks details on sorting order or update frequency, but remains sufficient for a basic list 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?
Since schema description coverage is 100% and both parameters have descriptions in the schema, the description adds no additional meaning beyond what is already provided. Baseline of 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 clearly states the verb 'get' and the specific resource 'most actively traded NSE stocks by total traded value (₹) in the current session', distinguishing it from sibling tools like get_top_gainers or get_top_losers which focus on different metrics.
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 description implies usage for retrieving actively traded stocks by value but does not provide explicit guidance on when to use this tool versus siblings, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nifty_indicesA
Live data for all NSE indices (Nifty 50, Nifty Bank, Nifty IT, Nifty Midcap 150, etc.) — price, change, 52-week range, advances/declines.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter by index name (partial, case-insensitive). E.g. "BANK" returns all bank indices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the data returned (price, change, etc.) and implies 'live' data, but does not disclose caching, authentication requirements, rate limits, or real-time nature. A 3 is appropriate as it offers some behavioral context but lacks depth.
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, efficient sentence that lists key examples and data fields. It is front-loaded with purpose, but could be more structured (e.g., separate lines for return fields). No wasted words.
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 tool with one optional parameter and no output schema, the description adequately explains what data is returned (price, change, 52-week range, advances/declines) and the scope (all NSE indices). It is missing details like default behavior with no filter, but overall sufficient.
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% (the sole parameter 'name' is fully described in the schema). The description does not add any additional semantic value beyond the schema, so it meets the baseline of 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?
The description clearly states 'Live data for all NSE indices' and lists specific examples (Nifty 50, Nifty Bank, etc.) and data fields (price, change, 52-week range, advances/declines). This distinguishes it from siblings like get_quote or search_by_symbol, which target individual symbols or different data.
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 description implies the tool is for retrieving index data, but it does not explicitly state when to use this tool versus alternatives like get_quote or search_by_symbol. No usage scenarios or exclusions are provided, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nse_announcementsB
Corporate announcements filed with NSE — board meetings, results, dividends, mergers, regulatory updates, etc. Equivalent to 8-K filings on SEC EDGAR.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results. Default: 20. | |
| symbol | No | Filter by NSE symbol. Omit for all companies. | |
| daysBack | No | Return announcements from the last N days. Omit for no date filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, rate limits, pagination, result ordering, or any side effects. The description only covers content, not behavior.
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?
Two informative sentences with no filler; purpose is front-loaded. Could be slightly improved by adding usage cues 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?
For a simple retrieval tool with no required parameters and no output schema, the description provides adequate purpose but lacks behavioral details and contextual completeness given the absence of 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 coverage is 100%, so the description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate as it does not repeat but also does not enhance parameter understanding.
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 clearly states it retrieves corporate announcements from NSE, listing types (board meetings, results, dividends, mergers, etc.) and draws an analogy to SEC EDGAR 8-K filings, making the tool's purpose immediately understandable and distinct from siblings.
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 is given on when to use this tool versus alternatives like search_by_symbol or get_corporate_actions. The description lacks usage context, prerequisites, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteA
Live stock quote from Yahoo Finance for any NSE-listed stock. Includes price, 52-week range, volume, market cap, P/E ratios, dividend yield, and next earnings date. Prices are in INR.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | NSE symbol (e.g. RELIANCE, TCS). The .NS exchange suffix is appended automatically. Pass RELIANCE.BO to query BSE instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the source (Yahoo Finance) and currency (INR), and implies 'live' data, but does not disclose data freshness, rate limits, or potential side effects. For a read-only quote tool, this is adequate but could be more explicit.
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?
Two sentences, no unnecessary words. Front-loaded with core purpose, then specifics, then currency. Every sentence adds value.
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?
Given the simplicity (1 param, no output schema, no annotations), the description covers the key use case and returned fields. It could mention error handling or possible delays in live data, but overall it is complete enough for an agent to use correctly.
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 lone parameter (symbol) is already well-documented in the schema (100% coverage). The description adds significant value by explaining that .NS is appended automatically and that .BO queries BSE, providing crucial usage context beyond the 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 clearly states it provides live stock quotes from Yahoo Finance for NSE-listed stocks, and lists specific data fields (price, 52-week range, volume, etc.). This distinguishes it from sibling tools like search_by_symbol or get_market_status.
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 description implies use for getting detailed quote data for NSE stocks, but does not explicitly state when to use this tool versus alternatives (e.g., search_by_symbol for just symbols, or get_nifty_indices for index data). No guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_short_sellingA
NSE short-selling data — quantity of shares sold short and second-leg (covering) quantities, as reported by brokers under SEBI's short-selling framework.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Return top N stocks by short-sold quantity. Omit for all. | |
| symbol | No | Filter by NSE symbol. Omit for all stocks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It mentions the data source and reporting framework but does not disclose behavioral traits such as data recency, update frequency, or any limitations (e.g., historical depth).
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, well-constructed sentence that efficiently conveys the tool's purpose and data source without any superfluous words.
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?
Given the tool's simplicity (two optional parameters, no output schema) and the context of 17 sibling tools, the description provides sufficient information for an AI agent to understand the tool's role. However, it could be more complete by noting the absence of time periods or units.
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% with descriptions for both parameters. The description adds minimal extra meaning beyond the schema, stating that 'limit' returns top N by short-sold quantity and 'symbol' filters by NSE symbol. This is adequate but does not significantly enhance understanding.
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 clearly identifies the tool as providing NSE short-selling data, including quantity of shares sold short and second-leg covering quantities, as reported under SEBI's framework. This is specific and distinguishes it from sibling tools like search_by_symbol, get_quote, and get_top_gainers.
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 description does not explicitly state when to use this tool versus alternatives. It implies it is for accessing short-selling data but provides no guidance on scenarios where other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_bulk_buysA
Today's largest bulk-deal purchases ranked by total trade value (quantity × price). Useful for spotting institutional accumulation.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return. Default: 10. | |
| symbol | No | Restrict to a single NSE symbol. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses ranking criterion and time scope ('today's'), and adds context about purpose. However, it does not mention mutability, rate limits, or data freshness, and could be more explicit about being read-only.
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?
Two sentences, front-loaded with core functionality in first sentence, second adds valuable context. No extraneous information.
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?
Given no output schema or annotations, description adequately explains what the tool returns (top buys, ranked by value, today-only) and its utility. Could be slightly more complete by explicitly noting NSE context and that it is only for purchases, but overall strong.
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?
Parameter descriptions in the schema already cover 'limit' and 'symbol' with default and NSE scope. The tool description adds no extra parameter information. Since schema coverage is 100%, baseline score of 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?
Description clearly states it returns 'today's largest bulk-deal purchases ranked by total trade value (quantity × price)', which is specific and distinguishes from sibling tools like get_top_bulk_sells by specifying 'purchases' and 'institutional accumulation'.
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?
Description provides a use case ('spotting institutional accumulation') but lacks explicit guidance on when not to use or how it compares to siblings like get_bulk_deals or get_top_bulk_sells. The usage is implied but not fully directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_bulk_sellsA
Today's largest bulk-deal sales ranked by total trade value. Useful for spotting institutional distribution.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return. Default: 10. | |
| symbol | No | Restrict to a single NSE symbol. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully cover behavioral traits. It only states the tool returns top bulk-deal sales, but does not disclose that it is read-only, the time horizon ('today's' is ambiguous), or any limitations like rate limits or authentication needs. The description is too sparse for a tool with no annotations.
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 two sentences with no extraneous information. It is front-loaded with the main purpose and adds a use case in the second sentence. Every word serves a purpose.
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?
Given the presence of sibling tools (e.g., get_bulk_deals, get_top_bulk_buys) and lack of output schema, the description is minimal. It does not explain the returned fields, data source, or whether 'today's' refers to the current trading day. The description is adequate for a simple list but lacks details needed for informed selection.
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 baseline is 3. The description adds no additional meaning beyond the schema for the parameters (limit and symbol). It does not explain how they affect the ranking or filtering beyond what the schema already says.
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?
Description clearly states the tool returns 'Today's largest bulk-deal sales ranked by total trade value.' It specifies the resource (bulk-deal sales), action (get top), and sorting (by total trade value), distinguishing it from related sibling tools like get_top_bulk_buys.
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 description includes 'Useful for spotting institutional distribution,' which gives a use case. However, it does not explicitly state when not to use this tool or compare it to alternatives like get_bulk_deals or get_top_bulk_buys. The guidance is implied but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_gainersA
Top gaining NSE stocks by percentage change for the current session within a given index.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | NSE index to scan. Default: "NIFTY 500". Options: "NIFTY 50", "NIFTY BANK", "NIFTY IT", etc. | |
| limit | No | Number of results to return. Default: 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It states 'current session' indicating real-time data, but does not mention data freshness, update frequency, or any limitations. No indication of read-only or destructive nature.
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 sentence with no wasted words. It is front-loaded with the key purpose and perfectly 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?
The tool has no output schema, so the description could be more complete by explaining the return format (e.g., list of stocks with percentage change). It is adequate for a simple list but leaves the agent to guess the output structure.
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 both parameters, so the schema already documents them fully. The description adds no additional meaning beyond what the schema provides. Baseline score of 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 clearly specifies the verb 'get', the resource 'top gaining stocks', the metric 'percentage change', the timeframe 'current session', and the scope 'within a given index'. It effectively distinguishes from sibling tools like 'get_top_losers' and 'get_most_active'.
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 description does not provide any guidance on when to use this tool versus alternatives. No explicit when-not or examples of preferred scenarios, despite having many sibling tools. The agent must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_losersB
Top losing NSE stocks by percentage change for the current session within a given index.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | NSE index to scan. Default: "NIFTY 500". Options: "NIFTY 50", "NIFTY BANK", "NIFTY IT", etc. | |
| limit | No | Number of results to return. Default: 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. Description discloses resource and metric but omits behavioral traits like output format, ordering, or limitations.
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?
Single sentence, front-loaded with key details, no extraneous words.
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?
Minimal description for a simple tool. No output schema provided, so description could elaborate on return values or sorting, but current session context is useful.
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% with parameter descriptions. The description adds temporal context ('current session') but does not significantly extend understanding of parameters.
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?
Clearly states the tool retrieves top losing NSE stocks by percentage change for the current session within a given index, distinguishing it from siblings like get_top_gainers.
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 explicit guidance on when or when not to use this tool relative to siblings. Usage is only implied by the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_symbolA
Aggregate view for a single NSE stock — returns today's bulk deals, block deals, recent insider trades, and recent announcements in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | NSE stock symbol (e.g. RELIANCE, TCS, HDFC). Required. | |
| daysBack | No | How many days back to look for insider trades and announcements. Default: 30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the tool returns today's deals and recent insider trades/announcements, but does not cover authentication, error behavior, or data freshness. Basic behavioral context is present but incomplete.
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, well-structured sentence that front-loads the key purpose ('Aggregate view for a single NSE stock') and efficiently lists the included data types. No wasted words.
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?
Given the tool has 2 parameters and no output schema, the description provides a clear list of what is returned. It does not explain the return format or pagination, but for an aggregate view tool, the stated coverage of deals and announcements is fairly complete for selection.
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 baseline is 3. The description adds no additional meaning beyond what is already in the schema (symbol required, daysBack optional). It does not clarify format or constraints beyond the 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 clearly states it returns an aggregate view for a single NSE stock, listing specific data types (bulk deals, block deals, insider trades, announcements). This distinguishes it from sibling tools that focus on individual data types.
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 description clearly indicates when to use: for an aggregate view of a single NSE stock. It implies that if only one data type is needed, sibling tools should be used, but it does not explicitly state exclusions or alternatives.
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. Dates show when Glama detected each change.
17 tool updates
v0.1.0- First observed
get_block_deals - First observed
get_bulk_deals - First observed
get_corporate_actions - First observed
get_fii_dii_activity - First observed
get_insider_trading - First observed
get_latest_bulk_deals - First observed
get_market_status - First observed
get_most_active - First observed
get_nifty_indices - First observed
get_nse_announcements - First observed
get_quote - First observed
get_short_selling - First observed
get_top_bulk_buys - First observed
get_top_bulk_sells - First observed
get_top_gainers - First observed
get_top_losers - First observed
search_by_symbol
TDQS
Tools are mostly distinct, covering different data types (quotes, indices, deals, insider trading, etc.). However, the multiple bulk-deal tools (get_bulk_deals, get_latest_bulk_deals, get_top_bulk_buys, get_top_bulk_sells) could cause confusion as they overlap in purpose but differ in sorting/filtering.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_quote, search_by_symbol, get_top_gainers). There is no mixing of conventions or ambiguous naming.
With 17 tools, the count is slightly above the typical well-scoped range, but each tool serves a clear purpose covering a breadth of NSE data. A few could be consolidated (e.g., the bulk-deal variants), but overall it's reasonable for the domain.
The tool set covers many essential NSE data points: quotes, indices, market status, top movers, bulk/block deals, insider trading, FII/DII activity, short selling, announcements, and corporate actions. Missing historical data and fundamental analysis, but the core real-time and regulatory data is well covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Indian NSE/BSE research data and mechanically-computed ratios; read-only market tools.
52 tools for Indian stock markets — NSE & BSE quotes, screener, financials, FII/DII, options
162Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.
Live US options chains with Greeks and IV, a screener, SQL, and FMP fundamentals.
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.8512MIT
- AlicenseAqualityDmaintenanceIndia-first financial data engine for MCP clients. Live NSE/BSE quotes, Nifty/Sensex indices, mutual fund NAV, earnings calendar, FII/DII activity, and daily market brief. 39 tools, no API key needed, free.109515MIT
- 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.12962MIT
- FlicenseNot gradedqualityDmaintenanceEnables real-time and historical Indian stock market data retrieval, including prices, news, recommendations, and top gainers/losers.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/icharshal/NSE-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server