Skip to main content
Glama
sanjeev0291

nse-research-mcp

by sanjeev0291

nse-research-mcp

Indian stock market research for Claude (or any MCP client), self-hosted. Quotes, fundamentals, financial statements, a screener, shareholding, corporate actions, announcements, FII/DII flows, option chains and index data, pulled straight from NSE India and Yahoo Finance by a small Python server running on your own machine. No API keys, no sign-up, no third-party service in between.

Pairs with Zerodha's official Kite MCP, so Claude can look at your real holdings and research them in the same conversation. A /portfolio-review skill for exactly that is included.

Why self-host

  • Your questions and your portfolio never leave your machine, except as plain requests to nseindia.com and finance.yahoo.com (the same requests a browser makes).

  • No per-day call quota. Responses are cached (60 s for live data, 1 h for filings) so NSE stays happy.

  • 23 tools, MIT licensed, ~800 lines of Python you can read in one sitting.

Related MCP server: Kite MCP Server

Requirements

  • uv (installs the right Python for you): curl -LsSf https://astral.sh/uv/install.sh | sh

  • Claude Code, Claude Desktop, or any MCP client. macOS and Linux tested; Windows should work.

The first start on a machine downloads about 100 MB of dependencies (numpy, pandas and friends), which can take longer than Claude Code's 30-second server timeout. Warm it up once from a terminal before the first session:

uvx --from git+https://github.com/sanjeev0291/nse-research-mcp nse-research-mcp --check

That prints the tool count and confirms both data sources respond. If you installed the Claude Code plugin, warm up its own environment instead (the plugin runs from its install folder):

uv run --directory "$(ls -d ~/.claude/plugins/cache/nse-research-mcp/nse-research/*/ | tail -1)" nse-research-mcp --check

After that the server starts in a second or two. If you skip this and the first connection times out, run /mcp and reconnect; the download continues where it left off.

Install

Easiest: let Claude do it

Open Claude Code (terminal, or the Code tab in Claude Desktop) and paste:

Set up https://github.com/sanjeev0291/nse-research-mcp on this machine. Read its README, install uv if it is missing, install the Claude Code plugin from that repo, run the --check warm-up command, add Zerodha's Kite MCP server, and apply the read-only permission rule for the Kite order tools. Then tell me how to start the Stock Desk dashboard.

Claude will run the steps below for you. You need a Zerodha account for the portfolio features; everything else works without one.

Claude Code, as a plugin (server + /portfolio-review skill)

claude plugin marketplace add sanjeev0291/nse-research-mcp
claude plugin install nse-research@nse-research-mcp

Restart Claude Code and run /mcp: nse-research should show as connected.

Claude Code, server only

claude mcp add --scope user nse-research -- uvx --from git+https://github.com/sanjeev0291/nse-research-mcp nse-research-mcp

Claude Desktop

Settings → Developer → Edit Config, then add (merge into an existing mcpServers block if you have one):

{
  "mcpServers": {
    "nse-research": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/sanjeev0291/nse-research-mcp", "nse-research-mcp"]
    }
  }
}

If Desktop cannot find uvx, replace it with the full path from which uvx (usually ~/.local/bin/uvx). Restart the app and look for the tools icon.

From a local clone (hackable)

git clone https://github.com/sanjeev0291/nse-research-mcp && cd nse-research-mcp
uv sync
claude mcp add --scope user nse-research -- uv run --directory "$PWD" nse-research-mcp

Stock Desk: the web dashboard

The same package ships a local web app that puts everything in one place: your Zerodha portfolio, orders and GTT triggers, research pages with charts, a screener, a market view, a watchlist, and an "Ask Claude" box that runs Claude Code on your machine with your holdings as context.

uvx --from git+https://github.com/sanjeev0291/nse-research-mcp nse-desk

or from a clone: uv run nse-desk. It opens http://127.0.0.1:8765 in your browser. Click Connect (top right) to log in to Zerodha through Kite's own login page; the session is remembered until Kite expires it. Orders and GTTs are sent through Zerodha's official Kite MCP server and every action asks for confirmation first. Ask Claude needs the Claude Code CLI installed; it never gets your Kite session, only a snapshot of your holdings.

The desk listens on localhost only. Nothing is stored except the Kite session id, the watchlist and NSE's daily CSVs, all under ~/.config/nse-research and ~/.cache/nse-research.

Pair with your Zerodha account (optional)

Zerodha hosts an official MCP server for Kite. Nothing to install:

claude mcp add --transport http --scope user kite https://mcp.kite.trade/mcp

Ask Claude anything about your holdings; it calls Kite's login tool and gives you a link. Complete the Kite 2FA in your browser and tell Claude you are done. Sessions expire every morning (around 6 AM IST), so expect to log in once a day.

The hosted Kite server can also place orders. To keep Claude read-only, add this to ~/.claude/settings.json:

{
  "permissions": {
    "deny": [
      "mcp__kite__place_order", "mcp__kite__modify_order", "mcp__kite__cancel_order",
      "mcp__kite__place_gtt_order", "mcp__kite__modify_gtt_order", "mcp__kite__delete_gtt_order"
    ]
  }
}

Then /portfolio-review (full), /portfolio-review quick (no research enrichment) or /portfolio-review TCS (deep-dive one holding).

Tools

Tool

What it returns

Source

search_stocks

Symbols by name or partial symbol, with ISIN, NSE industry, index membership

NSE

screen_stocks

Server-side screener over all NSE stocks: market cap, PE, PB, ROE, dividend yield, growth, 52-week change, sector

Yahoo

get_company_profile

Sector, industry, cap bucket, index membership, summary, headline valuation

Yahoo + NSE

get_stock_quote

Price, change, day range, volume vs average, 52-week range, SMA50/200, PE, PB

Yahoo

get_price_history

OHLCV candles plus returns (1w to 1y), SMA20/50/200, RSI14, drawdown, volatility

Yahoo

get_key_ratios

Valuation, margins, ROE/ROA, growth, leverage, cash flow, per-share, ownership

Yahoo

get_financials

Income statement, balance sheet, cash flow; annual or quarterly, in ₹ crore

Yahoo

get_shareholding

Promoter vs public trend by quarter from filings, plus institution split

NSE + Yahoo

get_corporate_actions

Dividends, bonus, splits, rights with ex/record dates; upcoming board meetings

NSE

get_announcements

Latest exchange filings with subject, text and PDF link

NSE

get_analyst_view

Consensus, targets and upside, recommendation trend, earnings dates and surprises

Yahoo

compare_stocks

Side-by-side metrics for up to 15 symbols

Yahoo

get_market_pulse

Market status, key indices, VIX, sector leaders/laggards, latest FII/DII

NSE

get_index_performance

Every NSE index with 1d/30d/1y change and index PE/PB/yield

NSE

get_index_constituents

Members of NIFTY 50/500, midcap, smallcap and sectoral indices with industries

NSE

get_top_movers

Gainers or losers in NIFTY, BANKNIFTY, NEXT 50, F&O or all stocks

NSE

get_most_active

Most traded by value or volume

NSE

get_52_week_breakouts

Stocks at new 52-week highs or lows today

NSE

get_fii_dii

Latest FII/FPI and DII cash buy/sell/net in ₹ crore

NSE

get_bulk_block_deals

Today's bulk, block and short-sale disclosures

NSE

get_option_chain

Chain for NIFTY/BANKNIFTY/F&O stocks: PCR, max pain, OI walls, IV, strikes around ATM

NSE

get_market_holidays

NSE trading holidays, upcoming first

NSE

manage_watchlist

Local watchlist (get with live quotes, add, remove, clear)

local + Yahoo

Things to ask

  • "Screen NSE for companies above ₹20,000 cr market cap with PE under 15 and ROE over 15%"

  • "Compare TCS, Infosys, Wipro and HCL Tech on valuation and growth"

  • "Has the promoter stake in Reliance changed over the last two years?"

  • "What did the FIIs do yesterday, and which sectors led?"

  • "NIFTY option chain for the nearest expiry: where are the OI walls and max pain?"

  • "Show me the last 5 announcements from Tata Motors"

  • "Which NIFTY 500 stocks are at a 52-week low today?"

  • "Run /portfolio-review" (with Kite connected)

Limits and caveats

  • NSE throttles automated traffic. The server uses a browser-like session and caching, but a burst of calls can still get a temporary block; wait a minute and retry. A few NSE endpoints refuse bots outright (per-stock quote page, historical candles); those come from Yahoo instead.

  • Yahoo fundamentals can lag filings by a few days and occasionally miss a field. Verify before acting.

  • Sector names in the screener are Yahoo's eleven sectors; NSE's own industry label is added where the stock is in NIFTY 500 / MIDCAP 150 / SMALLCAP 250 / MICROCAP 250.

  • Renamed or delisted symbols return "no data"; use search_stocks to find the current symbol.

  • Option chains exist only for F&O instruments.

  • Data, not investment advice.

Files on your machine

  • Cache: ~/.cache/nse-research/ (NSE constituent and equity-master CSVs, refreshed daily)

  • Watchlist: ~/.config/nse-research/watchlist.json

Override with the NSE_RESEARCH_CACHE and NSE_RESEARCH_HOME environment variables.

Troubleshooting

  • --check fails on Yahoo: your network blocks finance.yahoo.com, or Yahoo is rate limiting; retry.

  • --check fails on NSE with HTTP 403/503: NSE's bot protection is throttling you; wait a minute. Some corporate networks and VPNs are blocked outright by NSE.

  • Claude Code says the server timed out on first start: dependencies were still downloading. Run the --check command above, then /mcp → reconnect.

  • Claude Desktop shows no tools: GUI apps have a minimal PATH. Use the full path to uvx in the config.

  • uv complains it cannot install Python: install Python 3.11+ yourself (Homebrew, python.org, or your package manager) and uv will use it.

Development

uv sync
uv run python tests/smoke.py          # live checks of every tool (needs internet)
uv run python tests/mcp_roundtrip.py  # spawns the server over stdio like a real client

Layout: src/nse_research_mcp/server.py (tools), nse.py (NSE client), yahoo.py (Yahoo wrappers), symbols.py (search, index lists), indicators.py, cache.py. Plugin manifest in .claude-plugin/, MCP declaration in .mcp.json, the skill in skills/portfolio-review/.

License

MIT

Available Tools

23 tools
compare_stocksA

Side-by-side key metrics for up to 15 NSE symbols: valuation (PE, PB, EV/EBITDA), ROE, margins, growth, leverage, dividend yield, 52-week performance and analyst consensus.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbols_listYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavior. It adds meaningful constraints: NSE-only symbols, a 15-symbol limit, and a defined set of metrics. It does not disclose output structure, input formatting, or operational details such as rate limits, but for a read-only comparison tool this is a moderate gap rather than a severe one.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that front-loads the core concept ('side-by-side'), scope ('up to 15 NSE symbols'), and the most important metric categories. There is no filler or redundant repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter, no output schema, and no annotations, the description provides the essential purpose and constraints. It is missing explicit return-format details and routing guidance versus sibling tools, but it gives enough information to make a reasonable first call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It partially does by clarifying that symbols_list refers to NSE symbols and that at most 15 can be supplied. However, it doesn't specify ticker format (e.g., whether to use exchange suffixes like .NS or plain tickers), leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a side-by-side comparison of key metrics for NSE symbols and lists the specific metrics included (valuation, ROE, margins, growth, leverage, dividend yield, 52-week performance, analyst consensus). It is distinguishable from single-symbol siblings like get_key_ratios or get_stock_quote, though it doesn't explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'side-by-side' phrasing and 'up to 15 NSE symbols' scope imply the tool is for multi-symbol comparison, giving useful context for when to use it. However, it does not explicitly state when to prefer siblings like screen_stocks or get_key_ratios, nor does it provide exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_52_week_breakoutsA

Stocks that hit a new 52-week high or low today (NSE). which: high | low.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
whichNohigh

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral disclosure. It reveals the 'today (NSE)' time/market scope and the 'which' selection, but does not describe default behavior for the high/low choice, limit handling, sorting, or output format. Adequate for a simple list but with meaningful gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler; the core resource and the key parameter are front-loaded. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential selection and market, but with no output schema and no annotations it omits return shape and limit behavior. Enough for an agent to attempt the call, but not fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It adds meaning to 'which' by specifying high | low, but it never explains 'limit' or how it affects results. Only one of two parameters receives semantic support.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource (stocks hitting new 52-week highs/lows on NSE) and the selection parameter (which: high | low). The verb and market scope distinguish it clearly from siblings like get_top_movers or screen_stocks, so an agent can tell what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for when to call it: when you need today's NSE 52-week breakout stocks. It does not explicitly name alternatives or exclusion criteria, but the scope is specific enough that confusion with siblings is unlikely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_analyst_viewB

Analyst consensus (buy/hold/sell), price targets with upside, recommendation trend over recent months, and past/upcoming earnings dates with EPS estimates and surprises.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

B3.2/5.0
Behavior3/5

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 discloses the type of data returned (consensus, targets, trend, earnings) but does not mention any caveats like data freshness, latency, or whether the results are read-only (though 'get' implies it). The description adds value by specifying the output content, but it doesn't go beyond what the name suggests in terms of behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently lists all key data points. It has no superfluous words and is well-structured for quick parsing. The use of commas and 'with' to link related items creates a clear flow. It earns high marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description serves as the sole specification of return values. It comprehensively lists the major components of the analyst view, which is sufficient for an agent to understand what it will get. The only minor gap is the lack of detail on which symbol is used, but that is covered by the parameter name. Overall, the description is nearly complete for a simple one-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not mention the 'symbol' parameter at all. While the parameter name is self-explanatory in a stock tool context, the rubric requires the description to compensate for low schema coverage. The description fails to add any additional meaning about the parameter beyond its name, which is a gap for a single-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides analyst consensus (buy/hold/sell), price targets with upside, recommendation trend, and earnings dates with EPS estimates and surprises. This distinguishes it from siblings like get_stock_quote or get_financials, though it lacks an explicit verb like 'retrieve' or 'get'. The resource is clearly identified through the content list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives. The description does not mention any specific scenarios, prerequisites, or exclusions. With 22 sibling tools, the absence of usage context forces the agent to infer the tool's role solely from the content, which is insufficient for optimal selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_announcementsC

Latest corporate announcements filed with NSE (results, orders, resignations, investor presentations…) with subject, short text and PDF link.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
symbolYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It does add meaningful context by describing the source (NSE), the nature of the announcements, and the returned fields. However, it does not mention ordering, pagination limits, or the meaning of the PDF link.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-organized sentence that front-loads the core purpose and then lists supporting detail (announcement types and output fields). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but the description omits parameter semantics and usage guidance, which are essential given no annotations and no output schema. The provided content information is helpful, but the definition is not complete enough for an agent to confidently invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It never mentions the required 'symbol' parameter or the 'limit' parameter, leaving the agent to infer their roles from the parameter names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource ('corporate announcements filed with NSE') and the content included (subject, short text, PDF link). It is understandable and distinct enough from most siblings, though it does not explicitly contrast with related tools like 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as get_corporate_actions or get_analyst_view. The description implies it is for the latest announcements, but no explicit when or when-not conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bulk_block_dealsB

Today's bulk deals, block deals and short-selling disclosures on NSE (who bought/sold what, at what price).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It only states the data content and time scope ('Today's'), but doesn't disclose behavior like pagination, limit handling, rate limits, or any side effects. The description is minimal and adds little beyond the obvious read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the main purpose. It is efficient and easy to read, though it could be slightly more structured with a clear breakdown of included deal types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter that is not explained, no output schema, and no annotations. The description provides the data scope but leaves the agent without knowledge of how the limit parameter affects results or any output format expectations. This is inadequate for a tool that should be easily callable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, 'limit', is completely undocumented in the description. Schema description coverage is 0%, so the agent has no hint about what limit controls (e.g., number of results returned). The description adds no value to parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific resource (bulk deals, block deals, short-selling disclosures on NSE) and the information returned (who bought/sold what at what price). It is distinct from siblings like get_market_pulse or get_top_movers by naming a specialized data type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for today's bulk/block deals on NSE, but provides no explicit when-to-use vs alternatives or exclusions. An agent can infer the use case from the resource type, but there is no guidance on when not to use it or how it differs from other market data tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_company_profileA

Company overview for an NSE symbol: sector, industry (Yahoo and NSE classifications), market-cap bucket, index membership, business summary, employees, website, headline valuation.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosure. It discloses the return content but does not mention error handling, authentication, rate limits, or explicitly confirm read-only behavior (though 'get' implies it). This is a minor gap for a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the purpose and efficiently lists the returned fields without redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description adequately describes the return content and parameter meaning. It does not cover edge cases like invalid symbols, but that is not critical for a straightforward profile fetch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that the symbol is an NSE symbol, adding meaningful context beyond the raw 'string' type. It does not provide format examples, but the exchange qualifier is helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a company overview for an NSE symbol and enumerates specific data points (sector, industry, market-cap bucket, index membership, business summary, employees, website, valuation). This verb+resource statement distinguishes it from price/quote tools and financial statement tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it is used when a company overview is needed, but it does not explicitly state when to use it over alternatives like get_financials or get_key_ratios. No exclusions or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_corporate_actionsB

Dividends, bonus, splits, rights and buybacks with ex-dates and record dates (NSE), plus upcoming and recent board meetings (results dates etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It usefully scopes the data to NSE and distinguishes upcoming versus recent board meetings, but it does not state return format, time windows, pagination, or any limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with no filler; every listed item carries meaning. It could be more structured with an explicit verb, but it is appropriately concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool, the description conveys the main content well and notes the NSE scope. However, it omits any mention of the symbol parameter, and with no output schema it only partially substitutes for return-value documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one required symbol parameter with no description and 0% schema coverage, and the description never mentions the symbol parameter or how it filters the corporate actions. The meaning of 'symbol' is standard, but the description adds no parameter-level semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource concretely: dividends, bonus, splits, rights, buybacks, and board meetings with ex-dates and record dates. It is clearly distinct from generic siblings like get_announcements or get_stock_quote, though it lacks an explicit verb such as 'Retrieves'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, and there are no exclusions or references to related tools. The description defines the content but leaves the selection conditions to the agent's inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fii_diiA

Latest day's FII/FPI and DII cash-market buy, sell and net flows in ₹ crore (NSE).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the transparency burden. It discloses the key behavioral scope: latest-day only, cash-market, NSE source, and rupee-crore units. It does not describe the response shape or edge cases such as missing data, but this is a simple zero-parameter read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence packs the key facts: recency, instrument types, market segment, metric, units, and exchange. There is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description gives enough to know what the tool returns and its scope. It could briefly clarify the response format, but the named fields (buy, sell, net) make the returned data predictable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the schema confirms this with an empty properties object. The description does not need to explain parameter meanings, so the baseline score of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description precisely identifies the resource: the latest day's FII/FPI and DII cash-market buy, sell, and net flows in ₹ crore from NSE. It is immediately distinguishable from all sibling tools, none of which cover this specific data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is clear: call this tool when the agent needs the most recent FII/FPI and DII cash-market flow figures. It does not name alternatives or exclusions, but no sibling tool offers comparable data, so explicit routing guidance is less necessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_financialsA

Financial statements in ₹ crore. statement: income | balance | cashflow | all. period: annual (last 4-5 fiscal years, FY ends 31 Mar) | quarterly (last 5 quarters).

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoannual
symbolYes
statementNoall

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden, and it adds meaningful details: currency unit (₹ crore), fiscal year end (31 Mar), and data window lengths for annual and quarterly periods. It does not describe the full return format or the exact meaning of 'all', but as a read-oriented financial data tool it conveys the key behavioral scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loads the core meaning, and uses a readable pipe-separated format for allowed values. Every sentence adds information; there is no filler or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers parameter choices and data ranges but lacks guidance on when to use this tool versus sibling tools and does not clarify what the output looks like, especially for 'all'. Since there is no output schema and no annotations, a bit more context about expected return structure or exclusions would make it more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does for the two optional parameters by listing allowed values and period ranges. It adds meaning beyond the bare schema, especially around annual vs quarterly windows. The required 'symbol' parameter is left to inference, though its meaning is fairly obvious from the tool name and context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource as financial statements and adds the unit (₹ crore), which gives concrete meaning. It enumerates statement types and period options, making the tool's scope specific. However, it does not explicitly differentiate this tool from close siblings like get_key_ratios or get_company_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context about available periods (annual last 4-5 fiscal years, quarterly last 5 quarters) and statement types, which implies when it would be used. It does not explicitly state when to choose this tool over alternatives or mention exclusions. Usage guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_index_constituentsB

Constituent stocks of an NSE index with industry labels (from NSE's official lists). Supports NIFTY 50/NEXT 50/100/200/500, MIDCAP 50/100/150, SMALLCAP 100/250, MICROCAP 250 and sectoral indices (BANK, IT, AUTO, PHARMA, FMCG, METAL, REALTY, ENERGY, FINANCIAL SERVICES, HEALTHCARE, OIL & GAS…).

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoNIFTY 50

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the data source (NSE official lists) but does not disclose read-only nature, error behavior, return format, or any limitations. This is a significant gap for a data retrieval tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core function. It contains no fluff and lists supported inputs compactly, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the purpose and supported inputs adequately. However, it omits return structure, error handling, and any special conditions, which would be valuable for an agent calling it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It provides concrete examples of valid index values (NIFTY 50, BANK, IT, etc.), which helps the agent populate the 'index' parameter. However, the list is non-exhaustive and the description doesn't explain the default behavior beyond the schema's default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns constituent stocks of an NSE index with industry labels, and lists a wide range of supported indices. It distinguishes itself from siblings like get_index_performance, which focus on performance metrics rather than constituents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any exclusions or conditions. The description only states function and supported indices, leaving the agent to infer appropriate 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_index_performanceA

All NSE indices with last value, 1-day/30-day/1-year % change, PE, PB, dividend yield. group: all | broad | sectoral | thematic | strategy.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoall

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It is transparent about the output content and the grouping scope, which is helpful, but it does not mention response size, sorting, pagination, or any operational constraints. For a read-only snapshot tool this is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact lines with no filler: one line states the output, the other states the filter options. It is front-loaded, scannable, and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one optional parameter and no output schema, the description supplies the essential call semantics: the return metrics, scope, and group filter. The only notable gap is that the group categories are not explained, but this is minor for constructing a valid call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only a bare string parameter with 0% coverage, so the description must compensate. It does enumerate the allowed group values (all, broad, sectoral, thematic, strategy), which lets an agent form a valid call, but it does not define what each group category means.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource ('All NSE indices') and the exact data returned (last value, % changes, PE, PB, dividend yield). This is enough to distinguish it from siblings like get_index_constituents, though it does not explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'group: all | broad | sectoral | thematic | strategy' line provides useful filtering context and implies this is the tool for index-level performance snapshots. However, it does not explicitly say when to use it versus related tools such as get_index_constituents or get_market_pulse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_key_ratiosC

Valuation, profitability, growth, leverage, cash flow, per-share and ownership ratios for a stock.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It communicates that the tool provides ratio data, which implies a read operation, but it does not disclose output structure, data vintage, coverage limitations, or whether all listed ratio categories are always present. For a tool with no annotation safety signals, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that front-loads the full scope of ratio categories without filler. It could be improved by adding a verb and a brief usage hint, but as written it is appropriately compact and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-symbol read-only lookup tool, the category list gives an agent a reasonable idea of what to expect, and the only required parameter is obvious. However, with no annotations, no output schema, and no explanation of the return shape or time period, the description is only minimally adequate for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for its single parameter, symbol, and the tool description does not compensate by explaining symbol format, exchange suffix, or expected value examples. The description adds no meaning beyond the schema field name, so this dimension falls to the lowest score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a clear resource (key ratios) and enumerates the specific categories returned: valuation, profitability, growth, leverage, cash flow, per-share and ownership ratios. It lacks an explicit verb like 'returns' or 'fetches', but the tool name and category list make the purpose understandable. It partially differentiates from siblings by naming ratio-focused content, though not explicitly naming alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus siblings like get_financials, get_shareholding, or get_analyst_view. It merely lists what the tool returns. There are no exclusions, prerequisites, or alternative tool mentions, leaving the agent to infer usage from the name and category list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_holidaysA

NSE equity (capital market) trading holidays for the current year, upcoming ones first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It usefully states that results are limited to the current year and sorted upcoming-first, but it does not describe output format, update cadence, or explicitly confirm that this is a read-only operation beyond what the tool name suggests.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no filler. It front-loads the most important facts—what the tool returns, the market segment, the time scope, and the sort order—and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, simple list retrieval with no output schema, this description is largely complete: it states the resource, scope, and ordering. The main gap is that the exact return structure/date format is left to inference, but the expected data is self-evident enough for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters to document, so the baseline is 4. The description adds a small amount of context by specifying the scope ('current year') and ordering, which clarifies that no user input is needed for this tool's operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource: NSE equity (capital market) trading holidays, with the scope limited to the current year and a defined ordering (upcoming first). It is distinguishable from sibling market-data tools, though it lacks an explicit action verb like 'retrieves' or 'lists'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No alternatives or when-not-to-use conditions are mentioned, but the description implies usage: when the agent needs NSE trading holiday information. The uniqueness of this zero-parameter tool among siblings makes the intended context reasonably clear, but it does not explicitly route the agent away from other market-data tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_pulseA

One-call market snapshot: market status, key broad and sectoral indices with % change and index PE/PB, India VIX, sector leaders and laggards today, and the latest FII/DII cash flows.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosing behavior. The description is content-focused and implies a read-only retrieval through 'snapshot', but it does not explicitly state that it is a safe read, mention any data latency, or describe what 'market status' precisely means. There is no contradiction, but the behavioral disclosure is only adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads its value proposition ('One-call market snapshot') and then lists all components with no filler or redundancy. Every listed item is relevant and informative, making the description both concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description does the essential work of enumerating the return categories, which it does comprehensively. Minor ambiguity remains around 'market status' (open/closed vs. trend) and the exact number or format of sector leaders/laggards, but these are not critical gaps for an agent deciding whether to call this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is fully covered and there is nothing for the description to explain about parameter semantics. The baseline for 0-parameter tools is 4, and the description appropriately focuses on the output rather than inventing parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource (market snapshot) and enumerates its specific contents: market status, indices with % change and PE/PB, India VIX, sector leaders/laggards, and FII/DII cash flows. This clearly distinguishes it from siblings like get_index_performance, get_top_movers, and get_fii_dii, which cover only subsets of this data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening phrase 'One-call market snapshot' gives clear usage context: use this tool when you want a broad overview of multiple market data points in a single request. It does not explicitly name alternatives or exclusion conditions, but the context is strong enough for an agent to choose it over composing multiple separate calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_most_activeC

Most actively traded stocks today by traded value or volume (NSE).

ParametersJSON Schema
NameRequiredDescriptionDefault
byNovalue
limitNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that data is for today and NSE, but does not explain whether the data is real-time, end-of-day, how 'most active' is computed, or any limits/quirks. This is a short read-only-type query, but behavioral details are minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that wastes no words. It could be more structured by adding parameter guidance, but for an overview it is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and zero parameter descriptions, this description is too thin for reliable invocation. An agent missing the schema and defaults would not know exact parameter values or what response to expect. It is minimally useful but not complete for autonomous use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% parameter description coverageage, so the description must compensate. It partially does: 'by traded value or volume' explains the purpose of the 'by' parameter. However, 'limit' is not described, and the exact accepted values for 'by' are not spelled out. The defaults help but do not fully clarify semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource: most actively traded stocks today, by traded value or volume, limited to NSE. This is a clear verb+resource pairing, though it doesn't explicitly distinguish itself from sibling tools like get_top_movers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 siblings such as get_top_movers or get_market_pulse. The description implies a use case (most active stocks) but does not state conditions, exclusions, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_option_chainA

Option chain from NSE for an index (NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY) or an F&O stock. Returns spot, expiry list, put-call ratio (OI), max-pain strike, top OI strikes for calls (resistance) and puts (support), and a compact table of strikes around the money with OI, OI change, IV, LTP, volume. expiry format DD-Mon-YYYY (e.g. 29-Sep-2026); defaults to the nearest expiry.

ParametersJSON Schema
NameRequiredDescriptionDefault
expiryNo
symbolNoNIFTY
strikes_aroundNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the return format (including expiry format DD-Mon-YYYY and default to nearest expiry), and lists the specific data returned. It implies a read-only operation without stating it, and does not mention error handling or edge cases, but the provided details are sufficient for a data-retrieval tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, composed of three sentences, and front-loaded with the core purpose. It efficiently lists return items without fluff, and places the expiry format note at the end. Every sentence adds value, making it well-structured and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description enumerates the returned data in detail (spot, expiry list, PCR, max pain, top OI strikes, and a table with specific fields). It covers the expiry parameter and valid symbols, but omits an explanation of 'strikes_around', which is a key parameter. The overall coverage is strong but not exhaustive, warranting a 4.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions (0% coverage), so the description must compensate. It explains the expiry parameter's format and default, and enumerates valid symbols (NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY) for the symbol parameter. However, it does not explain the 'strikes_around' parameter, leaving its purpose and effect ambiguous. Thus, only partial parameter semantics are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: retrieving an option chain from NSE for indices or F&O stocks. It specifies the resource (NSE option chain) and enumerates the returned data (spot, expiry list, PCR, max pain, top OI strikes, and a compact table with fields). It is immediately distinguishable from sibling tools, none of which relate to options.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use it (for NSE indices or F&O stocks) and specifies the expiry format and default behavior. However, it does not explicitly contrast it with alternative tools or state conditions when not to use it. The absence of explicit alternatives is minor given the uniqueness of the tool, but it prevents a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_price_historyA

Historical OHLCV plus computed stats. period: 1mo 3mo 6mo 1y 2y 5y 10y max (or 5d/1d for intraday intervals). interval: 1d 1wk 1mo (intraday: 5m 15m 1h, max 60 days). Daily data also returns returns over 1w/1m/3m/6m/1y, SMA20/50/200, RSI14, max drawdown and annualised volatility. candles = how many most-recent bars to include (≤ 400).

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo1y
symbolYes
candlesNo
intervalNo1d

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and mostly meets it. It reveals the return scope (return calculations, SMA20/50/200, RSI14, max drawdown, annualized volatility) and hard constraints (candles ≤ 400, intraday max 60 days). It stops short of describing response shape or error conditions, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A dense, single-paragraph description that front-loads the core purpose before diving into parameter details. Parameter names are consistently backticked and constraints are stated economically. Every sentence earns its place, though the indicator list is long by necessity rather than brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must convey the response, and it covers the data categories (OHLCV, returns, indicators). However, it never states the response shape, ordering, units, or how bars are structured, which an agent would need given the absent output schema. Constraints and data content are solid, but response format is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does for three of four parameters: it lists valid period values, valid interval values with the intraday distinction, and explains the meaning of candles with a cap. The required symbol parameter is left undocumented, but its meaning is self-evident, and the coverage gap for the tricky parameters is well addressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific resource and action ('Historical OHLCV plus computed stats'), making the tool's function unmistakable. The enumeration of technical indicators (SMA, RSI, drawdown) further clarifies what it returns. It does not explicitly name or contrast siblings like get_stock_quote, so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool versus the many siblings (get_stock_quote, get_top_movers, compare_stocks, etc.). No exclusions, prerequisites, or scenario-based instructions appear anywhere. The content is purely parameter-value documentation, so the agent must infer the fitting use case on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_shareholdingB

Promoter vs public shareholding trend from NSE filings (quarterly), plus Yahoo's insider/institution split. Rising promoter stake and falling pledge are usually read as positive.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
quartersNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It adds useful source context ('NSE filings (quarterly)', 'Yahoo's insider/institution split') and an interpretive note about promoter stake and pledge, but it omits output shape, rate limits, or caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no wasted words. The core resource is front-loaded, and the second sentence adds a meaningful interpretive insight about rising promoter stake and pledge rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a simple getter with no output schema, the description is adequate for recognizing the tool's general return content, but it leaves key invocation details unexplained, such as how 'quarters' maps to the parameter and what the exact output fields are.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The phrase 'quarterly' hints that 'quarters' may relate to the time span, but it does not clarify the symbol format, what the integer represents, or that the default is 8. This is minimal compensation for the two parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 a promoter vs. public shareholding trend from NSE filings and Yahoo's insider/institution split. It uses a specific verb and resource, making the tool's function evident, though it does not explicitly contrast it with sibling tools like get_fii_dii or get_company_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives. The description implies the tool is for shareholding analysis, but it does not state conditions, prerequisites, or exclusions, leaving the agent to infer usage context on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stock_quoteA

Latest quote for an NSE symbol: price, change, day range, volume vs 3-month average, 52-week range and distance from it, 50/200-day averages, market cap, PE, PB, dividend yield.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It only lists the returned data fields and does not disclose whether the quote is real-time or delayed, whether authentication is required, how invalid symbols are handled, or that this is a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence that front-loads the core purpose and follows with a clearly structured list of return fields. Every word earns its place; no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description clearly enumerates the return values, which is the main contextual gap. It remains short of complete because it omits symbol format and error behavior, but for a simple one-parameter read tool it is adequate for selection and basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds 'NSE symbol' context that the schema lacks, and schema coverage is 0%, so some compensation is needed. But it does not specify symbol format, case sensitivity, or examples, leaving the agent to guess how to supply the symbol.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: retrieving the latest quote for an NSE symbol, then enumerates the exact data fields included. This clearly distinguishes it from siblings like get_price_history, get_key_ratios, or get_top_movers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies when to use it: whenever a current NSE quote snapshot is needed. However, it provides no explicit when-not-to-use guidance or alternatives, leaving the agent to infer distinctions from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_moversA

Today's top gainers or losers. index: NIFTY | BANKNIFTY | NIFTYNEXT50 | FNO (all F&O stocks) | ALL (all securities). direction: gainers | losers.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoNIFTY
limitNo
directionNogainers

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the disclosure burden. It explains the temporal window ('Today's'), the ranking concept ('top'), and the filtering dimensions. It does not specify the exact ordering basis, return fields, or pagination behavior, but core behavior is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence with the purpose front-loaded and parameter options compactly listed in pipe notation. Every word earns its place with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple all-optional, read-only list tool, and the description covers its core behavior and accepted inputs well. No output schema exists, so an exact return format would be useful, but an agent can infer the result is a ranked list of securities; the gaps are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description meaningfully compensates by defining valid values for index and direction. Two of the three parameters gain semantics beyond the bare schema; limit remains undocumented but has a clear default and intuitive meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose: retrieving today's top gainers or losers. It clearly names the resource type and scope, though it doesn't explicitly differentiate from siblings like get_most_active or screen_stocks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete input context by enumerating supported values for index and direction, which implies when the tool should be used. However, it does not mention alternatives, exclusions, or compare itself to similar tools such as get_most_active.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_watchlistA

Personal watchlist stored locally (~/.config/nse-research/watchlist.json). action: get (returns symbols with live quotes) | add | remove | clear.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoget
symbols_listNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the local storage path and the action behavior (get returns live quotes), which is helpful. However, it does not specify side effects of add/remove/clear, error handling, or any limitations (e.g., max symbols). The description adds some transparency but not comprehensive behavior details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. It front-loads the primary purpose (personal watchlist stored locally) and then succinctly lists all actions. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is incomplete. It does not specify which parameters are required for each action, the return format for add/remove/clear, or any constraints. For a tool with two parameters and multiple actions, this leaves critical gaps that an agent would need to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the action parameter values but does not clarify which actions require symbols_list (e.g., add and remove presumably need it, clear does not). It also does not elaborate on the format of symbols beyond the schema's array of strings. The description adds minimal value beyond the schema for symbols_list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages a personal watchlist stored locally, with a specific set of actions (get, add, remove, clear). It distinguishes itself from sibling tools by focusing on personal watchlist management rather than market data retrieval, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for personal watchlist operations but does not explicitly state when to use it versus alternatives like search_stocks or get_stock_quote. It lacks exclusions or guidance on context, though the nature of the tool makes its use case fairly obvious. No direct mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_stocksA

Screen all NSE-listed stocks by fundamentals and price action (server-side, fast). Filters: market cap in ₹ crore, PE (ttm), PB, ROE %, dividend yield %, quarterly revenue growth %, EPS growth %, 52-week change %, price, 3-month average volume, Yahoo sector (one of: Basic Materials, Communication Services, Consumer Cyclical, Consumer Defensive, Energy, Financial Services, Healthcare, Industrials, Real Estate, Technology, Utilities) or industry. sort_by: market_cap | pe | dividend_yield | change_1d | change_52w | volume | price. limit ≤ 250.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
max_pbNo
max_peNo
min_peNo
sectorNo
sort_byNomarket_cap
industryNo
ascendingNo
max_priceNo
min_priceNo
min_roe_pctNo
min_avg_volumeNo
max_market_cap_crNo
min_market_cap_crNo
max_52w_change_pctNo
min_52w_change_pctNo
min_eps_growth_pctNo
min_dividend_yield_pctNo
min_revenue_growth_pctNo

TDQS

A4.2/5.0
Behavior3/5

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 does disclose useful behavioral context ('server-side, fast', 'limit ≤ 250') but does not explicitly state that this is a read-only query, how results are returned, or how filters combine. 'Screen' semantically implies non-mutating behavior, but the safety profile is implicit rather than stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but focused: the first sentence states the core behavior and performance trait, then the second sentence enumerates filters and the sort/limit contract. There is no filler, and the most important scoping information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 19 optional parameters, no output schema, and no annotations, the description covers nearly all invocation-critical information: scope, filter domains, units, allowed sector values, sort options, and a hard limit. It does not describe the output shape or the default sort ordering beyond what the schema already provides, but those gaps are minor for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does add real meaning: units ('₹ crore', 'PE (ttm)', '3-month average volume'), the allowed Yahoo sector enum, valid sort_by values, and the result cap. It does not fully map every schema field (for example, 'ascending' and the min/max pairs) but the parameter names in the schema are largely self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Screen'), a clear resource ('all NSE-listed stocks'), and a well-defined operation ('by fundamentals and price action'). Sibling search tools like search_stocks and get_top_movers are clearly different because this is a market-wide fundamental/price screener, not a name search or a pre-computed movers list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when the agent needs to filter across the entire NSE-listed universe on fundamentals and price metrics. It does not explicitly name search_stocks as an alternative for name/symbol lookup, so it stops short of a full when-not-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_stocksB

Find NSE symbols by company name or partial symbol (e.g. "tata motors", "hdfc", "INFY"). Returns symbol, name, ISIN, listing date, NSE industry and index membership (NIFTY 50/500 etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral transparency burden. It usefully discloses NSE scope and return fields, but it does not explain search behavior such as case sensitivity, partial vs exact matching, handling of multiple matches, or empty result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loads the core purpose, and uses concrete examples to illustrate valid inputs. The second sentence succinctly lists the expected return fields without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup tool with one required parameter, the description plus schema is largely sufficient to invoke it correctly. The main gap is the lack of explicit limit semantics, but the default value and parameter name make it reasonably inferable. The presence of an output schema also reduces the need to describe return values in detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for both parameters. It adds meaning to 'query' by explaining that it accepts company names or partial symbols, but it says nothing about 'limit' beyond what the parameter name and default value already imply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Find NSE symbols by company name or partial symbol.' It provides concrete examples and enumerates return fields (symbol, name, ISIN, listing date, industry, index membership), making the tool's role clear. However, it does not explicitly distinguish itself from sibling tools like screen_stocks or get_company_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies a lookup use case: finding NSE symbols by company name or partial symbol. It does not explicitly state when to prefer this tool over alternatives like screen_stocks or get_company_profile, nor does it mention exclusions such as unsupported exchanges or exact-match requirements.

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.

  1. 23 tool updatesv0.1.0
    • First observedcompare_stocks
    • First observedget_52_week_breakouts
    • First observedget_analyst_view
    • First observedget_announcements
    • First observedget_bulk_block_deals
    • First observedget_company_profile
    • First observedget_corporate_actions
    • First observedget_fii_dii
    • First observedget_financials
    • First observedget_index_constituents
    • First observedget_index_performance
    • First observedget_key_ratios
    • First observedget_market_holidays
    • First observedget_market_pulse
    • First observedget_most_active
    • First observedget_option_chain
    • First observedget_price_history
    • First observedget_shareholding
    • First observedget_stock_quote
    • First observedget_top_movers
    • First observedmanage_watchlist
    • First observedscreen_stocks
    • First observedsearch_stocks

TDQS

B3.4/5.0

Scored across 23 tools

Disambiguation4/5

Most tools are cleanly separated by data category: quotes, financials, indices, flows, options, etc. A few pairs like get_top_movers vs get_most_active or get_company_profile vs get_key_ratios could be momentarily confused, but the descriptions make the boundaries clear.

Naming Consistency5/5

All tools follow a consistent snake_case action_object pattern: get_* for data retrieval, plus search_stocks, screen_stocks, compare_stocks, and manage_watchlist. Even get_52_week_breakouts fits predictably despite the numeric prefix.

Tool Count3/5

At 23 tools, the set is on the heavy side, though each tool maps to a distinct NSE research need and no tool feels redundant. The breadth is coherent for a full research server, but the count is high enough that an agent may have to scan many options before selecting the right one.

Completeness4/5

The server covers the NSE research lifecycle well: discovery, screening, quotes and history, fundamentals, corporate actions, market breadth, index/options data, and watchlists. Minor gaps exist, such as limited historical bulk-deal data and no futures data, but core equity research workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides access to real-time and historical Indian stock data via Yahoo Finance API, enabling local LLMs to retrieve stock information through MCP-compatible agents like Claude Desktop and Cursor.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for integrating with Zerodha Kite API that provides Claude with tools to interact with your Kite trading account, enabling portfolio management, market data access, and order execution.
    9 npm
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language access to Zerodha trading accounts for retrieving portfolio holdings, positions, orders, funds, and real-time market prices. Supports secure authentication for Indian stock market trading operations via Claude, Cursor, and other MCP-compatible AI tools.
    1
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for screening Indian stocks and mutual funds by wrapping screener.in and Morningstar India, enabling fundamental queries from Claude or Cursor.
    -