Indian Market MCP
Enables live trading and portfolio management through Zerodha, including order placement, viewing holdings, margin, GTT orders, and open positions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Indian Market MCPWhat's the price of Reliance?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Covers NSE, BSE, MCX, Mutual Funds, F&O, ETFs, IPOs, Sovereign Gold Bonds, Commodities, Currency, Technical Analysis, Stock Screener, Company Financials, Candlestick Patterns, News & Sentiment — plus optional broker integration for live trading via Angel One or Zerodha.
Why this over other Indian market MCPs?
Feature | indian-market-mcp | Tapetide | bshada/nse-bse | NseKit | Zerodha Official |
Total tools | 68 | 26 | 60 | 100+ | ~20 |
API key required | No | No | No | No | Yes |
Stocks + History | Yes | Yes | Yes | Yes | Yes |
F&O / Option Chain | Yes | No | Yes | Yes | No |
PCR + Max Pain | Yes | No | No | No | No |
Mutual Funds | Yes | No | No | No | Partial |
Commodities (MCX) | Yes | No | No | No | No |
Currency (INR pairs) | Yes | No | No | No | No |
Sovereign Gold Bonds | Yes | No | No | No | No |
Stock Screener | Yes | Yes | No | No | No |
Company Financials | Yes | Yes | No | No | No |
Candlestick Patterns | Yes | Yes | No | No | No |
News & Sentiment | Yes | Yes | No | No | No |
Shareholding Pattern | Yes | Yes | No | No | No |
Technical Analysis | Yes | Yes | No | No | No |
Order Placement | Yes | No | No | No | Yes |
Portfolio / Holdings | Yes | No | No | No | Yes |
Market Depth | Yes | No | No | No | Yes |
Multi-broker support | Yes | No | No | No | No |
Quick Start
Option 1: Use the hosted server (zero install)
{
"mcpServers": {
"indian-market": {
"type": "url",
"url": "https://indian-market-mcp-wweh.onrender.com/mcp"
}
}
}Option 2: Install from PyPI
pip install indian-market-mcp
indian-market-mcpOption 3: Run without installing
uvx indian-market-mcpOption 4: Self-host HTTP
MCP_TRANSPORT=http uvx indian-market-mcp
# Server at http://localhost:8000/mcpOption 5: Docker
docker build -t indian-market-mcp .
docker run -p 8000:8000 indian-market-mcpRelated MCP server: india-stock-mcp
Connect to Your AI Tool
Claude Code
Add to ~/.mcp.json:
{
"mcpServers": {
"indian-market": {
"command": "uvx",
"args": ["indian-market-mcp"]
}
}
}Claude Desktop
Go to Settings > MCP Servers > Add. Use the hosted URL or local config:
{
"mcpServers": {
"indian-market": {
"type": "url",
"url": "https://indian-market-mcp-wweh.onrender.com/mcp"
}
}
}Cursor
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"indian-market": {
"command": "uvx",
"args": ["indian-market-mcp"]
}
}
}VS Code (Copilot)
Add to your VS Code settings.json:
{
"mcp": {
"servers": {
"indian-market": {
"command": "uvx",
"args": ["indian-market-mcp"]
}
}
}
}Windsurf / Cline / Any MCP Client
Use stdio config (command + args) or remote URL (https://indian-market-mcp-wweh.onrender.com/mcp) depending on what your client supports.
Examples
Ask your AI assistant in natural language:
Stocks
"What's the price of Reliance?"
"Show me top gainers today"
"Get historical data for TCS from Jan to June 2025"
"Which stocks hit 52-week high today?"
"Search for stocks related to EV"Derivatives & Options
"Show me NIFTY 50 option chain"
"What's the Put-Call Ratio for Bank Nifty?"
"Calculate max pain for NIFTY"
"Get futures data for Reliance"
"Show open interest across all expiries for NIFTY"Mutual Funds
"Search for SBI Bluechip mutual fund"
"Compare SBI Bluechip vs Axis Bluechip — 1Y returns"
"Get NAV history for scheme code 119598"
"Show me top equity mutual fund categories"MF Analysis & Recommendations
"I want to invest in a mutual fund for 3 years — suggest the best one"
"Find hidden gems in mid-cap mutual funds"
"Analyze SBI Bluechip Fund — risk, returns, consistency"
"If I did Rs 10,000 SIP in this fund for 3 years, what would be my returns?"
"Compare these 3 funds and tell me which is best for moderate risk"Screener
"Find stocks with PE < 15 and ROE > 20%"
"Screen for penny stocks under Rs 50"
"Show me large cap value stocks"
"Find stocks near their 52-week high"
"Screen IT sector stocks with high dividend yield"Technical Analysis
"Get technical indicators for RELIANCE — RSI, MACD, Bollinger"
"What are the support and resistance levels for TCS?"
"Detect candlestick patterns for INFY in the last 3 months"
"Scan RELIANCE, TCS, INFY for Bullish Engulfing patterns"Financials
"Show me TCS income statement"
"Get quarterly balance sheet for Reliance"
"What are the key financial ratios for HDFC Bank?"
"Compare TCS with its industry peers"Commodities & Currency
"What's the gold price right now?"
"Get silver price history for last 6 months"
"What's the USD/INR exchange rate?"
"Show me all commodity prices"Market & News
"Is the market open right now?"
"Show FII/DII data for today"
"Get latest market news"
"Show me news about Reliance"
"What's happening in the banking sector?"
"Get upcoming IPOs"Bonds
"Show all Sovereign Gold Bond prices"
"Get price history for SGBJAN30IX"Broker Mode (with credentials)
"Buy 10 shares of Reliance at market price"
"Show my portfolio holdings"
"What's my available margin?"
"Create a GTT order for TCS at Rs 3500"
"Show my open positions"All 68 Tools
Stocks (NSE/BSE) — 9 tools
Tool | Description |
| Live price, volume, day high/low, 52-week range, market cap |
| Fuzzy search stocks by name or symbol |
| Historical OHLC candle data with date range |
| Today's top gaining stocks on NSE |
| Today's top losing stocks on NSE |
| All stocks at their 52-week high |
| All stocks at their 52-week low |
| Most traded stocks by volume or value |
| Dividends, stock splits, bonus issues, rights |
Derivatives (F&O) — 5 tools
Tool | Description |
| Full option chain — strike prices, premiums, OI, change in OI, IV. Works for indices (NIFTY, BANKNIFTY) and stocks |
| Put-Call Ratio with bullish/bearish interpretation |
| Max pain strike price calculation — where option writers face minimum loss |
| Futures contracts with lot size, expiry dates, OI, price |
| Open Interest data across all expiries and strike prices |
Indices — 5 tools
Tool | Description |
| Live index value with advances/declines (NIFTY 50, BANK NIFTY, NIFTY IT, etc.) |
| All stocks in an index with live prices |
| Every NSE index with current value and change |
| Historical data for any index with date range |
| All sectoral indices ranked by performance |
Mutual Funds — 6 tools
Tool | Description |
| Search 47,000+ schemes by name, AMC, or category |
| Latest NAV for any mutual fund scheme |
| Full historical NAV data or filtered by date range |
| All fund categories — Equity, Debt, Hybrid, etc. |
| Side-by-side comparison — NAV, returns (1M, 3M, 6M, 1Y) |
| Top performing funds in any category |
ETFs — 3 tools
Tool | Description |
| Every ETF listed on NSE — Gold, Debt, Equity, International |
| Detailed quote for a specific ETF |
| Historical price data for any ETF |
Commodities (MCX) — 3 tools
Tool | Description |
| Live price for Gold, Silver, Crude Oil, Natural Gas, Copper, Aluminium, Zinc, Lead, Nickel, Cotton |
| All commodity prices in one call |
| Historical OHLC data. Periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, max |
Currency — 3 tools
Tool | Description |
| Live exchange rate for USDINR, EURINR, GBPINR, JPYINR |
| All INR currency pair rates |
| Historical exchange rate data with configurable period |
IPO — 2 tools
Tool | Description |
| Upcoming and ongoing IPOs with dates, price band, issue size |
| Recently listed IPOs with listing price and returns |
Bonds / SGBs — 3 tools
Tool | Description |
| All Sovereign Gold Bonds listed on NSE with maturity dates |
| Detailed quote for a specific SGB tranche |
| Historical price data for any SGB |
Market Overview — 3 tools
Tool | Description |
| Market open/closed/pre-market status for all segments |
| Foreign & Domestic Institutional Investor buy/sell data |
| Market breadth — advancing, declining, unchanged stocks |
Technical Analysis — 2 tools
Tool | Description |
| All-in-one: SMA (20/50/200), EMA (12/26/50), RSI 14, MACD, Bollinger Bands, VWAP, trend signal |
| Pivot point based support (S1/S2/S3) and resistance (R1/R2/R3) levels |
Stock Screener — 3 tools
Tool | Description |
| Custom screener with filters: price range, % change, volume, sector, near 52w high/low. Sortable results |
| Screen by PE, PB, ROE, market cap, dividend yield. Uses Yahoo Finance fundamentals |
| 8 pre-built strategies: |
News & Sentiment — 5 tools
Tool | Description |
| Latest Indian stock market news from Google News |
| News for a specific stock |
| News for a sector — IT, Banking, Pharma, Auto, FMCG |
| Official NSE corporate announcements and filings |
| Upcoming and past board meeting dates for any stock |
Company Financials — 6 tools
Tool | Description |
| P&L statement — revenue, expenses, net income, EPS. Annual or quarterly |
| Assets, liabilities, equity, debt. Annual or quarterly |
| Operating, investing, financing cash flows. Annual or quarterly |
| 30+ financial ratios: PE, PB, ROE, ROA, debt/equity, margins, growth, EPS, dividend yield, beta, etc. |
| Compare any stock with its industry peers on key metrics |
| Quarterly/annual results as filed with NSE |
Candlestick Patterns — 2 tools
Tool | Description |
| Detect 12+ patterns: Doji, Hammer, Inverted Hammer, Hanging Man, Shooting Star, Bullish Engulfing, Bearish Engulfing, Morning Star, Evening Star, Marubozu, Three White Soldiers, Three Black Crows. Includes bullish/bearish bias summary |
| Scan up to 20 stocks at once for specific patterns. E.g., find all stocks showing Bullish Engulfing |
MF Analysis — 5 tools
Tool | Description |
| Deep analysis — returns (1M to 10Y CAGR), risk metrics (Sharpe, Sortino, max drawdown, volatility), rolling returns, consistency score |
| Smart ranking by investment horizon + risk appetite. Weighted scoring across returns, consistency, and risk-adjusted performance |
| Discover overlooked funds with exceptional risk-adjusted returns. Explains WHY each fund is a gem |
| Backtest SIP — total invested, current value, XIRR, units accumulated, month-by-month log |
| Head-to-head comparison with risk metrics, rolling returns, and summary (best returns, most consistent, lowest risk) |
Shareholding & Profile — 3 tools
Tool | Description |
| Promoter, FII, DII, public holding percentages from NSE |
| Full company overview: sector, industry, employees, description, fundamentals |
| Recent bulk and block deals on NSE |
Broker Mode
Unlock 11 additional tools for live trading by adding your broker credentials. Both brokers are free for API access.
Angel One (Recommended — completely free)
{
"mcpServers": {
"indian-market": {
"command": "uvx",
"args": ["indian-market-mcp[angel]"],
"env": {
"ANGEL_API_KEY": "your-api-key",
"ANGEL_CLIENT_ID": "your-client-id",
"ANGEL_PASSWORD": "your-password",
"ANGEL_TOTP_SECRET": "your-totp-secret"
}
}
}
}To get credentials:
Open an Angel One account (free)
Go to SmartAPI and generate an API key
Set up TOTP in your Angel One app and note the secret
Zerodha Kite Connect
{
"mcpServers": {
"indian-market": {
"command": "uvx",
"args": ["indian-market-mcp[zerodha]"],
"env": {
"KITE_API_KEY": "your-api-key",
"KITE_ACCESS_TOKEN": "your-access-token"
}
}
}
}To get credentials:
Sign up at Kite Connect
Create an app and get your API key
Generate an access token through the login flow
Broker Tools (11 additional tools)
Tool | Description |
| Place buy/sell orders — MARKET, LIMIT, SL, SL-M. Supports DELIVERY, INTRADAY, MARGIN |
| Cancel any pending order by order ID |
| All orders placed today — pending, executed, cancelled |
| Good Till Triggered — auto-executes when price hits your target |
| View all active GTT orders |
| Complete portfolio — stocks owned, buy price, current price, P&L |
| Open intraday and overnight positions with live P&L |
| Available cash, used margin, and free margin for trading |
| Account details — name, client ID, registered exchanges |
| Level 2/3 order book — top 5/20 bid-ask with quantities |
| Fastest last traded price via broker API |
Remote HTTP Server
Host as a public URL so anyone can use it without installing anything — just like https://mcp.tapetide.com/mcp.
Use the hosted server
{
"mcpServers": {
"indian-market": {
"type": "url",
"url": "https://indian-market-mcp-wweh.onrender.com/mcp"
}
}
}Self-host with Docker
docker build -t indian-market-mcp .
docker run -p 8000:8000 indian-market-mcp
# Endpoint: http://localhost:8000/mcpSelf-host without Docker
MCP_TRANSPORT=http MCP_PORT=8000 uvx indian-market-mcpDeploy to cloud
Platform | How |
Railway | Connect GitHub repo, add env |
Fly.io |
|
Google Cloud Run |
|
AWS ECS / Fargate | Push Docker image, create service |
Render | Connect repo, select Docker, deploy |
Environment variables
Variable | Default | Description |
|
| Set to |
|
| Host to bind |
|
| Port to bind |
| — | Angel One API key (enables broker mode) |
| — | Angel One client ID |
| — | Angel One password |
| — | Angel One TOTP secret |
| — | Zerodha API key (enables broker mode) |
| — | Zerodha access token |
Data Sources
All public market data is free with no API keys or sign-ups:
Source | Data | Update Frequency |
Stocks, F&O, option chains, indices, ETFs, IPOs, SGBs, FII/DII, shareholding, corporate actions, announcements | Real-time (with 3-min cache) | |
Mutual fund NAVs for 47,000+ schemes, historical NAV | Daily | |
Commodities, currencies, historical OHLC, fundamentals, financials, technicals | Real-time | |
Market news, stock news, sector news | Real-time |
Rate limiting & caching
NSE aggressively rate-limits requests (~3 per minute). The server uses intelligent disk-based caching:
Data Type | Cache TTL |
Live quotes | 60 seconds |
Option chains, gainers/losers | 120 seconds |
Indices, ETFs, FII/DII | 300 seconds |
Historical data, MF NAVs | 300–3600 seconds |
IPOs, SGBs, shareholding | 600 seconds |
Cache is stored at ~/.cache/indian-market-mcp/ (configurable, max 500MB).
Architecture
indian-market-mcp/
├── src/indian_market_mcp/
│ ├── server.py # FastMCP entry point (stdio + HTTP)
│ ├── tools/ # 20 tool modules
│ │ ├── stocks.py # 9 tools — quotes, history, search, gainers/losers
│ │ ├── derivatives.py # 5 tools — option chain, PCR, max pain, futures, OI
│ │ ├── indices.py # 5 tools — indices, constituents, sectors
│ │ ├── mutual_funds.py # 6 tools — NAV, history, compare, categories
│ │ ├── etfs.py # 3 tools — ETF list, quotes, history
│ │ ├── commodities.py # 3 tools — gold, silver, crude, natural gas
│ │ ├── currency.py # 3 tools — USDINR, EURINR, GBPINR, JPYINR
│ │ ├── ipo.py # 2 tools — upcoming, past IPOs
│ │ ├── bonds.py # 3 tools — SGBs
│ │ ├── market.py # 3 tools — status, FII/DII, breadth
│ │ ├── technicals.py # 2 tools — indicators, support/resistance
│ │ ├── screener.py # 3 tools — custom, fundamental, preset screens
│ │ ├── news.py # 5 tools — market, stock, sector news
│ │ ├── financials.py # 6 tools — P&L, balance sheet, ratios, peers
│ │ ├── candlestick.py # 2 tools — pattern detection, bulk scan
│ │ ├── shareholding.py # 3 tools — holding pattern, profile
│ │ ├── mf_analysis.py # 5 tools — MF recommendations, hidden gems, SIP backtest
│ │ ├── trading.py # 5 tools — orders, GTT (broker mode)
│ │ ├── portfolio.py # 4 tools — holdings, positions, margins (broker mode)
│ │ └── market_depth.py # 2 tools — depth, LTP (broker mode)
│ └── sources/ # Data source layer
│ ├── nse.py # NSE India scraper with session management
│ ├── amfi.py # AMFI mutual fund data
│ ├── mcx.py # Commodities & currency via Yahoo Finance
│ ├── cache.py # Disk-based caching with TTL
│ └── broker/
│ ├── angel.py # Angel One SmartAPI integration
│ └── zerodha.py # Zerodha Kite Connect integration
├── Dockerfile # Production container
├── pyproject.toml # Dependencies and build config
└── LICENSE # MITDevelopment
# Clone
git clone https://github.com/afthabvp/indian-market-mcp.git
cd indian-market-mcp
# Install all dependencies including broker extras
uv sync --all-extras
# Run in stdio mode (for local MCP clients)
uv run indian-market-mcp
# Run as HTTP server
MCP_TRANSPORT=http uv run indian-market-mcp
# Run with broker mode
ANGEL_API_KEY=xxx ANGEL_CLIENT_ID=xxx ANGEL_PASSWORD=xxx ANGEL_TOTP_SECRET=xxx uv run indian-market-mcpRunning tests
# Full validation of all 68 tools against live data
uv run python test_all_tools.py
# Unit tests
uv run pytestCode formatting
uv run ruff check --fix .
uv run ruff format .Roadmap
Publish to PyPI (
pip install indian-market-mcp)Hosted public server (
https://indian-market-mcp-wweh.onrender.com/mcp)BSE-specific tools (more granular BSE data)
Options Greeks calculator
Backtesting tools
Watchlist management (persistent)
Alert system (price/volume triggers)
Tax calculator (STCG/LTCG for holdings)
Upstox / Groww broker integration
Contributing
Contributions welcome! Please open an issue first to discuss what you'd like to add.
Fork the repo
Create a feature branch (
git checkout -b feat/amazing-feature)Commit your changes
Push and open a PR
Disclaimer
This tool is for informational and educational purposes only. It does not constitute financial advice. Always do your own research before making investment decisions. The authors are not responsible for any financial losses incurred through the use of this tool.
Market data is sourced from publicly available APIs and may have delays. Broker mode executes real trades — use with caution.
License
MIT — use it however you want.
Available Tools
68 toolsanalyze_mutual_fundA
Deep analysis of a mutual fund — returns across all periods, risk metrics (Sharpe, Sortino, max drawdown, volatility), rolling returns, and a consistency score. Use search_mutual_funds first to get the scheme code. Example: analyze_mutual_fund("119598")
| Name | Required | Description | Default |
|---|---|---|---|
| scheme_code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry the burden. It lists what the tool returns (returns, risk metrics, etc.), implying it is a read-only analysis. Does not mention side effects or special behaviors, but given the nature, it's sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main purpose, followed by a prerequisite instruction and an example. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one simple parameter and no output schema, the description covers the tool's purpose, inputs, and outputs. Could add a note about the output structure or the consistency score definition, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add meaning. It mentions the parameter 'scheme_code' in the example and notes to get it from search_mutual_funds, providing context. However, it does not describe the expected format (e.g., string of digits) beyond the example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs 'Deep analysis of a mutual fund' and lists specific outputs: returns, risk metrics, rolling returns, consistency score. It distinguishes itself from sibling tools like search_mutual_funds (search) and compare_mf_detailed (comparison).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use search_mutual_funds first to get the scheme code, guiding the correct workflow. Provides an example call. Lacks explicit when-not-to-use scenarios or alternatives for similar analyses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_mf_detailedA
Deep comparison of multiple mutual funds — returns, risk, rolling returns, SIP performance, consistency score. Perfect for "which fund should I choose" questions. Example: compare_mf_detailed(["119598", "120503", "118989"])
| Name | Required | Description | Default |
|---|---|---|---|
| scheme_codes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the output dimensions (returns, risk, rolling returns, SIP performance, consistency score) and implies a read-only, non-destructive comparison, but lacks details on whether it modifies data or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded purpose, no wasted words. The example adds clarity without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description lists key output categories and includes an example, making it mostly complete. Could be enhanced by mentioning expected output format (e.g., table or JSON).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides an example showing array of scheme codes, but does not explain what scheme codes are or how to obtain them, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('compare') and resource ('multiple mutual funds') with detailed aspects (returns, risk, rolling returns, SIP performance, consistency score), clearly distinguishing it from siblings like 'compare_mutual_funds' by emphasizing depth.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear use case ('which fund should I choose') and an example, but does not explicitly state when not to use or mention alternatives like 'compare_mutual_funds'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_mutual_fundsC
Compare multiple mutual funds side by side. Pass a list of scheme codes. Example: compare_mutual_funds(["119598", "120503"])
| Name | Required | Description | Default |
|---|---|---|---|
| scheme_codes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It only states the action and parameter, omitting any details about what comparison metrics are shown, data source, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences and an example) with no fluff. It is front-loaded and efficient for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description need not detail returns. However, for a comparison tool, more context on the comparison dimensions would be helpful. The description is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the parameter. The description adds minimal value by repeating 'list of scheme codes' and giving an example, but does not explain what scheme codes represent or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it compares multiple mutual funds side by side, which is a clear verb-resource combination. It is easily distinguishable from siblings like analyze_mutual_fund (single fund) but does not explicitly differentiate from compare_mf_detailed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example of usage but no guidance on when to use this tool versus alternatives like compare_mf_detailed. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_candlestick_patternsA
Detect candlestick patterns for a stock — Doji, Hammer, Engulfing, Morning Star, Evening Star, Marubozu, Three White Soldiers, Three Black Crows, and more. Periods: 1mo, 3mo, 6mo, 1y. Example: detect_candlestick_patterns("RELIANCE", "3mo")
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 3mo | |
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists some patterns but says 'and more' without being exhaustive, and does not disclose the return format or whether patterns are detected per candle or as overall signals. Behavioral traits like read-only nature are implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence stating purpose, a list of periods, and an example. Every part adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description lacks details on what the tool returns (e.g., pattern names, timestamps, or probabilities). For a tool that detects multiple patterns, this omission is significant. The description only covers input parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates by listing valid period values ('1mo, 3mo, 6mo, 1y') and providing an example usage with symbol and period. Though symbol format is not explained, the example clarifies it expects a ticker like 'RELIANCE'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects candlestick patterns for a stock, listing specific patterns like Doji, Hammer, Engulfing, etc., and provides an example. This distinguishes it from sibling tools that focus on other technical indicators or bulk scanning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through an example and period options but does not explicitly state when to use this tool versus alternatives like scan_patterns_bulk for multiple stocks. No exclusions or prerequisite conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_best_mutual_fundsB
Find the best mutual funds based on investment horizon and risk appetite. Analyzes returns, consistency, risk-adjusted performance, and rolling returns to find hidden gems.
Parameters:
category: Fund category keyword (e.g. "Equity", "Large Cap", "Mid Cap", "Small Cap", "Flexi Cap", "ELSS", "Debt", "Hybrid"). Leave empty for all.
investment_horizon: "1Y", "3Y", "5Y", "7Y", "10Y"
risk_appetite: "low" (prefers low volatility), "moderate" (balanced), "high" (max returns)
top_n: Number of top funds to return
Example: find_best_mutual_funds("Mid Cap", "3Y", "moderate", 10) Example: find_best_mutual_funds("", "5Y", "high", 5)
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | ||
| category | No | ||
| risk_appetite | No | moderate | |
| investment_horizon | No | 3Y |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions analyzing returns, consistency, risk-adjusted performance, and rolling returns, which gives behavioral insight. However, it doesn't disclose what happens with invalid inputs or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and well-structured, with purpose first followed by parameter list and examples. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately explains purpose and parameters but doesn't cover output (though output schema exists) or prerequisites. Could be more complete for a tool with 4 parameters and many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description compensates by explaining each parameter with examples. But it lacks full details on allowed category values and does not mention defaults already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds the best mutual funds based on investment horizon and risk appetite, using specific criteria like returns and consistency. However, it does not explicitly differentiate from sibling tools like get_top_funds_by_category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. Examples show usage, but no when-not-to-use or comparison to similar tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_52week_highB
Get stocks at their 52-week high.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states the basic action without mentioning any limits, update frequency, or whether it returns a list. For a read operation, more detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is appropriately sized for a simple no-parameter tool, though it could be slightly expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema that likely describes return structure, the description is somewhat complete. However, it lacks context on what constitutes a 52-week high, time sensitivity, or any filtering criteria. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema description coverage is trivially 100%. The description does not need to explain parameters. Baseline for 0 params is 4, and the description meets that without adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get stocks at their 52-week high' which specifies the verb and resource. It is unambiguous and distinguishes from the sibling tool 'get_52week_low'. However, it could be more precise by indicating it returns current stocks at a new 52-week high.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'screen_stocks' or 'find_hidden_gems'. There is no context on when it is appropriate or when not to use it, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_52week_lowA
Get stocks at their 52-week low.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description implies a read operation ('Get') but does not explicitly state safety, side effects, or behavior beyond the basic query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single six-word sentence is concise and front-loaded, though it could add minor context without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 0-parameter tool with an output schema, the description adequately identifies the resource; return details are left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), so description adds no parameter info, but baseline 4 applies due to zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and resource 'stocks at their 52-week low', clearly distinguishing it from sibling tool 'get_52week_high'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_52week_high, get_top_gainers, or get_top_losers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_advances_declinesA
Get market breadth — number of advancing, declining, and unchanged stocks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It correctly implies a read-only operation but does not disclose any rate limits, data source, or response format. It is adequate but minimal, missing opportunities to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 11 words, front-loading the key information. Every word is essential, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple with no parameters, the absence of an output schema means the description could elaborate on the return format (e.g., object with counts). It provides the core idea but leaves room for interpretation about the exact output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0), and schema coverage is 100%. Per guidelines, baseline is 4. The description adds no parameter information because none exist, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('market breadth'), and explicitly lists the outputs (advancing, declining, unchanged stocks). It distinguishes itself from siblings as no other tool explicitly mentions 'market breadth'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_market_status. The description gives no context about prerequisites or suitable scenarios, which is a gap given the sibling list includes related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_commodity_pricesA
Get live prices for all supported commodities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It indicates a read operation but lacks details on data freshness, supported commodities list, or any behavioral traits beyond basic retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no wasted words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a parameterless tool with output schema, but could mention output format or update frequency to be more complete for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline score 4 applies. Description does not need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get') and resource ('live prices for all supported commodities'). It clearly distinguishes from sibling tools like get_commodity_price (single commodity) and get_commodity_history (historical).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as get_commodity_price. The description only states what it does, not when to choose it over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_currency_ratesA
Get live rates for all supported INR currency pairs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It only mentions 'live rates' but lacks details on update frequency, caching, rate limits, or any safety considerations. The behavioral traits are under-disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the exact purpose. It is front-loaded and contains no unnecessary words, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter nature and the presence of an output schema, the description is largely complete. It could mention that it returns a list of pairs and rates, but the output schema likely covers that. Thus, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema coverage is 100%. The description adds no parameter information, which is acceptable as there are none. According to guidelines, zero parameters warrant a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves live rates for all supported INR currency pairs. The verb 'get' and resource 'live rates' are specific, and it distinguishes itself from sibling tools like get_currency_rate which target a single pair.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. While it is implied that this tool is for bulk retrieval as opposed to get_currency_rate, no direct comparison or usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_etfsA
Get all ETFs listed on NSE with their prices and NAV — Gold ETFs, Debt ETFs, Equity ETFs etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly indicates a read-only operation ('get all ETFs') but does not disclose additional traits like data freshness, pagination, whether it includes delisted ETFs, or any rate limits. The description is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and resource, no wasted words. Efficient and directly communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with an output schema, the description is complete. It names the exchange (NSE) and content (prices, NAV), which is sufficient for an agent to decide when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the baseline is 4. The description adds no parameter information because none exist. This is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all ETFs listed on NSE with prices and NAV, providing examples (Gold, Debt, Equity ETFs). It uses a specific verb ('Get') and resource ('all ETFs'), distinctly differentiating it from sibling tools like 'get_etf_quote' or 'get_etf_history'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While no explicit 'when-to-use' or 'when-not-to-use' is stated, the description and name make it clear this is for a broad overview of all ETFs. Given the context of many sibling tools, a user can infer that this tool is appropriate when a comprehensive list is needed, not specific details. Lacks explicit 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_all_indicesA
Get all NSE indices with current values — Nifty 50, Bank Nifty, sectoral indices etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description honestly states it retrieves current values for all NSE indices. No side effects; behavior is transparent despite minimal detail on return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extra words. Front-loaded with action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and presence of output schema, description adequately covers purpose and output. Could mention that it returns a list, but examples suffice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist. Baseline is 4. Description adds value by specifying the indices are NSE and include current values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get', resource 'all NSE indices', and includes specific examples like Nifty 50 and Bank Nifty. Distinguishes from siblings like get_index which likely returns a single index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives (e.g., get_index). However, due to zero parameters and simple action, usage context is implicitly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balance_sheetA
Get balance sheet — assets, liabilities, equity, debt. Example: get_balance_sheet("INFY")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| quarterly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It indicates a read operation and mentions the output (balance sheet items) but lacks details on return structure, pagination, or authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the purpose and including a practical example with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description is adequate for a simple data retrieval tool but does not elaborate on the return format or nuanced behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage; the description only clarifies the 'symbol' parameter via example but does not explain the 'quarterly' parameter, leaving its meaning and effect unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get balance sheet' and lists key components (assets, liabilities, equity, debt), distinguishing it from sibling tools like get_cash_flow or get_income_statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example usage but does not explicitly state when to use this tool versus alternatives or mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_meetingsC
Get upcoming and past board meeting dates for a stock. Example: get_board_meetings("RELIANCE")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks details on data freshness, pagination, rate limits, or whether meetings include details beyond dates. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences and an example. No superfluous content, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is insufficient. It doesn't specify return format, whether dates are range-filtered, or include additional details (e.g., agenda, venue). The user may need to guess behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'symbol' is listed with a title but no description. The example with 'RELIANCE' implies it's a stock ticker, but the description does not explicitly define the parameter or its format. With 0% schema coverage, more explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves board meeting dates for a stock, with an example using a ticker symbol. It is specific and distinguishable from sibling tools which cover different financial data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives, such as other date-retrieval tools (e.g., get_stock_history). The example helps but does not provide situational context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bulk_dealsA
Get recent bulk and block deals on NSE.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. However, it only states the action without explaining what 'recent' means, whether data is real-time or delayed, or if any side effects exist. This leaves significant ambiguity for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is appropriately sized for a parameterless tool, though a bit more context would improve usability without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description does not explain what constitutes 'bulk and block deals,' the format of the response, or the recency of data. This lack of contextual completeness may hinder an agent's ability to correctly interpret the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema with 100% coverage already clarifies that no input is needed. The description adds no parameter info, but the baseline for zero parameters is 4, and the description implicitly confirms no required input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and clearly identifies the resource as 'recent bulk and block deals on NSE.' This effectively distinguishes it from sibling tools that deal with stocks, indices, mutual funds, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool should be used when the user wants bulk and block deals on the NSE, but it does not explicitly state when to use it versus alternatives or provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cash_flowA
Get cash flow statement — operating, investing, financing cash flows. Example: get_cash_flow("HDFCBANK")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| quarterly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It discloses the tool retrieves cash flow statements but omits details like data source, coverage, or limitations, making it adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences, no redundancy, and front-loads the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is minimal. It covers basic purpose but does not describe return format or data fields, which is adequate for a straightforward financial statement tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should explain parameters. Only 'symbol' is illustrated in an example, while 'quarterly' is not described, leaving its purpose unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a cash flow statement with operating, investing, and financing cash flows, distinguishing it from siblings like get_balance_sheet and get_income_statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example but lacks explicit guidance on when to use this tool versus alternatives or any prerequisites, though the name and context imply its use for cash flow data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commodity_historyB
Get historical price data for a commodity. Periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, max. Example: get_commodity_history("GOLD", "6mo")
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 1mo | |
| commodity | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states the tool retrieves historical price data and lists periods, but fails to mention read-only nature, data source, output structure, or any rate limits, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is three sentences: purpose, parameter details, and example. No unnecessary words, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should explain the return format (e.g., array of objects with date, price, etc.). It does not, leaving the agent uninformed about what data to expect. Additionally, no prerequisites or limitations are noted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It lists valid period values and gives an example showing commodity format, but does not explain what each period means or describe the commodity parameter's expected format beyond the example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name 'get_commodity_history' combined with the description 'Get historical price data for a commodity' clearly states the action and resource, distinguishing it from siblings like 'get_commodity_price' and 'get_all_commodity_prices'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists valid periods and provides an example, implying usage for historical data. However, it does not explicitly state when to use this tool versus alternatives like 'get_commodity_price' for current prices, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commodity_priceA
Get live price for a commodity — GOLD, SILVER, CRUDE_OIL, NATURAL_GAS, COPPER, ALUMINIUM, ZINC, LEAD, NICKEL, COTTON. Example: get_commodity_price("GOLD")
| Name | Required | Description | Default |
|---|---|---|---|
| commodity | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description states 'live price' implying real-time data and lists acceptable commodities. Does not disclose additional behavioral traits such as rate limits, update frequency, or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second provides example. No extraneous information; every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one enum-like parameter and no output schema, the description is complete. It specifies input values and implies output (live price) without needing elaboration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (commodity) with 0% schema coverage. The description lists all valid values (GOLD, SILVER, etc.) and provides an example, fully compensating for schema's lack of enum or description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get live price for a commodity' and lists specific commodities (GOLD, SILVER, etc.), distinguishing it from sibling tools like get_all_commodity_prices or get_commodity_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an example call (get_commodity_price('GOLD')) demonstrating usage. Does not explicitly state when to use vs. alternatives, but the example and enumerated values guide correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_profileA
Get comprehensive company profile — sector, industry, fundamentals, and current quote in one call. Example: get_company_profile("TCS")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool returns multiple data types in one call, which is useful. However, it does not disclose any behavioral traits like data freshness, error conditions, or whether it is read-only, though the verb 'get' implies safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with a relevant example. No wasted words. The key information (what is returned and how to use it) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently lists the returned data components (sector, industry, fundamentals, current quote). The example aids understanding. Could mention if the response is from a single resource, but not a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'symbol' is explained by the example 'TCS', but the description adds no semantic detail beyond the schema. Since schema coverage is 0%, a baseline of 3 is appropriate because the parameter is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a comprehensive company profile including sector, industry, fundamentals, and current quote. It distinguishes from siblings like get_stock_quote and detailed financial tools by positioning itself as a one-call aggregate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for quick company overviews but does not explicitly state when to use this vs alternatives like get_stock_quote or get_key_ratios. No when-not-to-use guidance is 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
Get corporate actions (dividends, splits, bonus) for a stock. Example: get_corporate_actions("TCS")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions the types of corporate actions but fails to disclose whether the operation is read-only, any side effects, rate limits, or response structure. For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus an example. No superfluous content. Front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter, but no output schema means the description should hint at return format. It lists types of corporate actions but not the fields or structure. Adequate for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage; the description adds context that 'symbol' is a stock symbol and shows an example. However, it does not clarify symbol format (e.g., exchange suffix) or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves corporate actions (dividends, splits, bonus) for a stock, and provides a concrete example. This distinguishes it from sibling tools like get_stock_history or get_stock_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., when to use get_stock_history instead). No context on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_currency_historyA
Get historical exchange rate data. Periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, max. Example: get_currency_history("USDINR", "6mo")
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | ||
| period | No | 1mo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses available periods but omits details like return format (e.g., daily close, timestamps) or behavior on weekends/holidays. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus an example. Every element is necessary and efficiently conveys the tool's purpose and usage. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the basic usage and valid values. However, it lacks explanation of the returned data structure, error conditions, or rate limits, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but the description adds meaning: it shows a concrete pair example ('USDINR') and enumerates valid period values. This goes beyond the bare schema, though it doesn't explain the pair format in detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get historical exchange rate data' and lists valid periods. The example clarifies input structure. This clearly distinguishes it from siblings like get_stock_history or get_commodity_history by specifying 'exchange rate'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_currency_rate (for current rate) or other history tools. The description fails to indicate context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_currency_rateA
Get live exchange rate — USDINR, EURINR, GBPINR, JPYINR. Example: get_currency_rate("USDINR")
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description indicates a read-only operation but does not disclose any behavioral traits such as authentication needs, rate limits, or error conditions, which could be useful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no unnecessary words, and includes an example, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool without output schema, the description covers the purpose and parameter usage adequately, though it could optionally mention the return format for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds examples ('USDINR, EURINR, GBPINR, JPYINR') that clarify the expected format, compensating for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get live exchange rate' and lists specific currency pairs (USDINR, EURINR, GBPINR, JPYINR), distinguishing it from sibling tools like get_all_currency_rates or get_currency_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a specific pair but does not explicitly mention when to use alternatives like get_all_currency_rates for all rates or get_currency_history for historical data, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_historyC
Get historical data for an ETF. Dates in DD-MM-YYYY format. Example: get_etf_history("GOLDBEES", "01-01-2025", "01-06-2025")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| to_date | No | ||
| from_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only discloses date format (DD-MM-YYYY) and provides an example. Missing details: output structure, pagination, rate limits, range restrictions, or error behavior. The example is helpful but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences plus example), efficiently stating purpose and key format. It could be more structured but avoids unnecessary verbosity. The example is well-placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no parameter descriptions, and no annotations, the description is incomplete. It fails to explain what data is returned, any constraints, or how to interpret results. Users may need to infer from sibling tools like get_stock_history, which is risky.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions). The description does not explain each parameter's meaning beyond the example's implied usage. Default values for dates are not clarified, and symbol format is assumed. The example provides some context but is not a substitute for explicit documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get historical data for an ETF.' It uses a specific verb+resource and differentiates from sibling tools like get_etf_quote (current data) and other history tools for different asset classes. However, 'historical data' is slightly vague (e.g., not specifying OHLCV).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided on when to use this tool versus alternatives (e.g., get_etf_quote for current data, or other history tools). The description lacks any context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_quoteA
Get detailed quote for a specific ETF. Example: get_etf_quote("GOLDBEES") or get_etf_quote("NIFTYBEES")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It only mentions 'detailed quote' without explaining what 'detailed' includes, whether data is real-time, or any limitations. This is insufficient for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of one sentence and a code example, which is highly concise and front-loaded. No extraneous information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (1 param, no output schema), the description is mostly adequate but lacks details about the return structure of the 'detailed quote'. An agent might need to infer what is included.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines 'symbol' as a string without description. The description adds concrete examples ('GOLDBEES', 'NIFTYBEES'), which clarifies expected values beyond the schema. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed quote for a specific ETF.' The verb 'get' and resource 'ETF' are specific, and it distinguishes from sibling tools like get_stock_quote or get_commodity_price.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides examples but does not specify when to use this tool versus alternatives (e.g., get_etf_history for historical data). No explicit conditions or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fii_dii_dataA
Get Foreign Institutional Investor (FII) and Domestic Institutional Investor (DII) buy/sell data for today.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only states what data it returns but does not disclose aspects like data freshness, potential delays, or what happens on non-trading days.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the verb and resource, containing no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters or output schema, the description is adequate but lacks details about data source, update frequency, or return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the description accurately reflects that. According to guidelines, baseline is 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('Get') and resource ('FII/DII buy/sell data') with a well-defined scope ('for today'). It distinguishes itself from sibling tools that cover stocks, indices, mutual funds, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for today's data but provides no explicit guidance on when not to use it or alternatives. For a simple tool with no parameters, the context is reasonable but could be improved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_futures_dataB
Get futures data — lot size, expiry, OI, price for a stock or index. Example: get_futures_data("NIFTY") or get_futures_data("RELIANCE")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It states the data returned but does not mention read-only nature, rate limits, or any side effects. The transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus an example, front-loaded with the core purpose. No wasted words; every sentence contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and no output schema, the description is adequate but incomplete. It does not specify if multiple contracts are returned, how data is ordered, or any limitations (e.g., only current expiry). Could be more thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'symbol' has 0% schema description coverage. The description adds examples (NIFTY, RELIANCE) implying it expects a ticker, but no format, validation, or additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides futures data (lot size, expiry, OI, price) for a stock or index, with concrete examples. This distinguishes it from sibling tools that focus on options, stocks, or other instruments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_oi_data or get_option_chain. The description implies use for futures data but does not provide exclusion criteria or comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_income_statementA
Get income statement (P&L) — revenue, expenses, net income, EPS. Set quarterly=True for quarterly results. Example: get_income_statement("TCS") or get_income_statement("RELIANCE", quarterly=True)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| quarterly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits such as data freshness, error handling, or required permissions. Lacks essential context beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: one sentence for purpose, one for parameter hint, and two examples. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for making a basic call, but lacks details on return format, error behavior, or data range. The tool has no output schema, so description could have compensated with expected output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning by explaining symbol as a stock ticker (via example) and the quarterly boolean flag. It provides concrete examples that clarify usage beyond bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves an income statement (P&L) and lists key components (revenue, expenses, net income, EPS), which distinguishes it from sibling tools like get_balance_sheet or get_cash_flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides example usage for both parameters, but does not explicitly state when to use this tool versus alternatives (e.g., balance sheet, cash flow). No guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indexA
Get live data for an NSE index — value, change, advances/declines. Common indices: NIFTY 50, NIFTY BANK, NIFTY NEXT 50, NIFTY IT, NIFTY FINANCIAL SERVICES. Example: get_index("NIFTY 50")
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It indicates 'live data' but does not mention read-only nature, authentication requirements, rate limits, or any side effects. This is minimal behavioral disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the core action and data returned. Every sentence adds value: purpose, common indices, and an example. No redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers purpose, parameter examples, and returned data. It lacks explicit mention of the return format (e.g., JSON fields), but otherwise is fairly complete for a live data query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single 'name' parameter with no description (0% coverage). The description compensates by listing common indices and providing an example ('NIFTY 50'), adding meaning beyond the schema. However, it does not clarify case sensitivity or exact format requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'live data for an NSE index', specifying the returned data (value, change, advances/declines). It lists common indices and provides an example, making the tool's purpose distinct from siblings like get_index_constituents or get_index_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving live NSE index data but does not explicitly state when to use this tool versus alternatives. No exclusions or conditions are provided, though the example and common indices list offer some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_constituentsB
Get all stocks in an index with their live prices. Example: get_index_constituents("NIFTY 50")
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'live prices,' implying real-time or near-real-time data, but lacks details on update frequency, rate limits, or whether the output is cached. With no annotations, the description carries the full burden and only minimally discloses behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with the core purpose. However, it could add slight details like valid index name formats without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single required parameter and the existence of an output schema, the description is adequate but not complete. It omits any mention of input validation or output structure details, which are partially covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 'name' parameter has no description in the schema, and the description only provides an example ('NIFTY 50') without explaining valid values, case sensitivity, or format. This fails to compensate for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves all stocks in an index along with live prices, using a specific verb ("Get") and resource ("stocks in an index"). It distinguishes itself from siblings like 'get_index' and 'get_index_history' which focus on the index itself rather than its constituents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as 'get_stock_quote' for individual stocks or 'get_index' for index details. The example is helpful but does not clarify context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_historyB
Get historical data for an NSE index. Dates in DD-MM-YYYY format. Example: get_index_history("NIFTY 50", "01-01-2025", "01-06-2025")
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| to_date | No | ||
| from_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must disclose behavior. It does not mention read-only nature, rate limits, data range restrictions, or response size. Only states it 'gets' data, leaving safety and side effects ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences and an example are concise and front-loaded with the verb and resource. The example is somewhat redundant with the description but aids clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal for a history tool with no output schema and no annotations. Missing details on returned data fields, date range behavior (e.g., default if omitted), and pagination. Should describe what historical data includes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds date format specification and an example illustrating parameter usage. However, it does not explain that 'from_date' and 'to_date' are optional, nor their expected values beyond format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets historical data for an NSE index, distinguishing from stock, commodity, and currency history tools. However, does not specify what data fields (e.g., OHLCV) are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides date format instruction and an example, implying usage for index history. No exclusion criteria or alternatives mentioned, such as when to use get_index_constituents or get_index.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_key_ratiosB
Get key financial ratios — PE, PB, ROE, ROCE, debt/equity, dividend yield, EPS, market cap. Example: get_key_ratios("RELIANCE")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only lists ratios but does not disclose data source, update frequency, or limitations (e.g., whether all ratios are always available). This is insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff: one listing the ratios, one providing an example. Every sentence adds value, and the structure is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool without output schema, the description covers the return content (list of ratios) but misses context like data scope (latest vs. historical) and any prerequisites (e.g., valid symbol). It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the example 'get_key_ratios("RELIANCE")' adds meaning, indicating symbol is a stock ticker. However, it does not specify format (e.g., NSE/BSE suffix) or case sensitivity, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves key financial ratios and lists specific ratios (PE, PB, etc.), identifying the resource and action. However, it does not explicitly distinguish from sibling tools like get_company_profile or get_income_statement that might also provide some ratios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention when this is appropriate (e.g., for fundamental analysis) or when to prefer other tools like get_balance_sheet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_newsB
Get latest Indian stock market news from Google News. Example: get_market_news(15)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for disclosure. It only states the data source (Google News) but does not mention any behavioral traits like rate limits, caching, update frequency, or the format of returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences including an example. It is front-loaded with purpose. Slightly more structure (e.g., breaking out parameter explanation) could improve it, but it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and has an output schema (not shown). The description lacks details about return structure or any caveats. Given low complexity, it is minimally adequate but could be more complete with output format hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is 'limit', which lacks a description in the input schema (0% coverage). However, the description's example 'get_market_news(15)' clearly indicates that the parameter controls the number of news items returned, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the latest Indian stock market news from Google News. It includes an example usage. This distinguishes it from sibling tools like get_stock_news and get_sector_news by specifying the source and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example but does not offer guidance on when to use this tool over alternatives such as get_stock_news or get_sector_news. No explicit when-to-use or when-not-to-use instructions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_statusA
Get current market status — open, closed, or pre-market for all segments (equity, derivatives, currency).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool returns market status with possible values (open, closed, pre-market) for multiple segments. It does not specify real-time nature or limitations, but for a simple read operation this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose and is very concise, containing no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and simple behavior, the description adequately conveys what the tool does. It could mention return format, but it's not essential for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds no parameter information, which is acceptable since none exist. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves current market status (open/closed/pre-market) for all segments (equity, derivatives, currency). This is a specific verb+resource that distinguishes it from sibling tools focused on individual instruments or indices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool versus alternatives. While the purpose is clear, there is no guidance on when to avoid it or alternative tools for more specific market data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_max_painA
Calculate max pain strike price for an index option. Max pain is the strike price where option writers (sellers) face minimum losses. Example: get_max_pain("NIFTY")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It describes the tool as a calculation (read-only) but does not disclose potential behaviors like rate limits, data freshness, or required permissions. The description is adequate for a simple query tool but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of two sentences and an example. It front-loads the purpose immediately ('Calculate max pain strike price for an index option') and avoids unnecessary text. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description should explain what the tool returns (e.g., a strike price number, a table with details). It does not describe the output format or any additional context like data sources or limitations. This omission significantly reduces completeness for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines a single required parameter 'symbol' with no description (0% coverage). The description's example implies symbol is an index ticker (e.g., 'NIFTY'), but does not explicitly explain that the symbol must be an index option or specify valid symbols. This adds some meaning but not full clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates 'max pain strike price for an index option', using a specific verb ('calculate') and resource. It distinguishes itself from sibling tools like get_option_chain or get_pcr by focusing on the max pain calculation, which is a unique metric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit example ('get_max_pain("NIFTY")') and explains the concept of max pain. However, it does not explicitly state when not to use this tool or mention alternative tools for related analysis, such as get_option_chain for full option data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mf_categoriesA
Get all mutual fund categories — Equity, Debt, Hybrid, Solution Oriented etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It states it returns categories but does not mention output format or any side effects. However, since an output schema exists, the format is defined elsewhere. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. It front-loads the purpose. Could be slightly more structured but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero parameters and an existing output schema, the description is sufficiently complete. It conveys the essence without missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100% (empty). The description does not add parameter info, but none is needed. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves mutual fund categories, listing examples (Equity, Debt, etc.). It is specific and accurate, but does not differentiate from siblings like get_top_funds_by_category which also relate to categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: when you need all categories. No explicit when-to-use or when-not, nor alternatives mentioned. For a simple tool this is adequate but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mf_historyA
Get historical NAV data for a mutual fund. Dates in YYYY-MM-DD format. Returns full history if no dates specified. Example: get_mf_history("119598", "2025-01-01", "2025-06-01")
| Name | Required | Description | Default |
|---|---|---|---|
| to_date | No | ||
| from_date | No | ||
| scheme_code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It mentions returning full history if no dates specified, but does not cover rate limits, authentication, error handling, or output structure. Partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences plus an example. No wasted words, purpose is first. Efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple data retrieval tool with no annotations and no output schema, the description covers purpose, parameter format, and default behavior. It lacks explicit output description, but the example sufficiently conveys usage. Could mention output structure briefly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no parameter descriptions (0% coverage), so the description adds value by specifying date format (YYYY-MM-DD) and giving an example call. However, it does not explain the meaning of scheme_code, and defaults are only implied. Still, it improves understanding significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves historical NAV data for a mutual fund. It differentiates from siblings like get_mf_nav (current NAV) and analyze_mutual_fund (analysis). The verb and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies usage for historical data but does not mention when not to use or contrast with similar tools like get_mf_nav or get_mf_categories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_most_active_stocksA
Get most active stocks by volume or value. Example: get_most_active_stocks("volume") or get_most_active_stocks("value")
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | volume |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or side effects. The description only states what the tool does, not how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loaded with the core action, and includes a helpful example. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema present, the description is complete. It explains the main functionality and parameter usage without needing to describe return values, as the output schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description adds meaning by providing concrete examples of accepted parameter values ('volume' or 'value'), clarifying the 'by' parameter beyond the schema's default. It could be more explicit about allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves most active stocks by volume or value, with a specific verb and resource. It distinguishes itself from sibling tools like get_top_gainers or get_52week_high by focusing on trading activity metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via an example but provides no explicit guidance on when to use this tool over alternatives, nor does it mention exclusions or context. Usage is implied through the tool's name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nse_announcementsA
Get official NSE corporate announcements/filings. If symbol is provided, get announcements for that stock. Otherwise get latest announcements across all stocks. Example: get_nse_announcements("TCS")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, auth requirements, or rate limits. It is implied to be a read operation, but lacks explicit transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences plus an example. Every word is informative and front-loaded. No wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one optional parameter, no output schema), the description provides a bare minimum. It lacks details on what constitutes an announcement, the structure of the response, or any pagination/limits. For a straightforward get tool, it is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has only one parameter ('symbol') with no description. The tool description adds crucial meaning: if symbol is provided, get announcements for that stock; otherwise get latest across all stocks. This adds significant value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the function: 'Get official NSE corporate announcements/filings'. It specifies behavior based on the symbol parameter and provides an example, making the tool's purpose distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use with or without the symbol parameter, but does not provide guidance on when to choose this tool over similar siblings like 'get_market_news' or 'get_stock_news'. No exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nse_financial_resultsC
Get quarterly/annual financial results filed with NSE. Example: get_nse_financial_results("RELIANCE")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose any behavioral traits (e.g., data freshness, number of quarters returned, rate limits). Only states basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with an example. Concise and front-loaded. Could benefit from a slightly more structured format (e.g., bullet points) but is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is adequate but lacks information about return format, data granularity, or pagination. Leaves some uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description adds minimal meaning beyond 'symbol'. The example shows 'RELIANCE' but no explanation of format, case sensitivity, or what constitutes a valid symbol. Does not compensate for lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves quarterly/annual financial results filed with NSE, with a specific example. It distinguishes itself from sibling tools focused on specific financial statements (e.g., get_balance_sheet) by aggregating results. Could be more explicit about what data points are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_income_statement or get_key_ratios. No mention of prerequisites or context. Minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oi_dataC
Get Open Interest data for all expiries of a derivative. Example: get_oi_data("NIFTY")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as rate limits, data freshness, or whether it is read-only. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two sentences and an example, front-loaded with purpose. However, conciseness trades off with informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a financial data tool with one parameter, no output schema, and no annotations, the description is incomplete. It does not explain what the output contains (e.g., OI values, expiry dates) or any constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, and the description only adds an example ('NIFTY') without explaining the expected format or allowed values for the symbol parameter. This barely adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: getting Open Interest data for all expiries of a derivative. The verb 'get' and resource are specific. However, it does not explicitly differentiate from sibling tools like get_option_chain, which may also provide OI data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives. An example is provided, but no when-to-use or when-not-to-use context. Given the many sibling tools, this is a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_option_chainA
Get full option chain for an index or stock — strike prices, premiums, OI, change in OI, IV. For indices: NIFTY, BANKNIFTY, FINNIFTY. For stocks: any NSE symbol. Example: get_option_chain("NIFTY") or get_option_chain("RELIANCE", is_index=False)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| is_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states what data is returned (strike prices, premiums, OI, change in OI, IV) but does not disclose any limitations, performance characteristics, or potential errors. The transparency is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. It includes a helpful example in a single paragraph. Minor improvement could be making it even more succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description lists key fields but does not detail the return structure or any nested data. For a tool returning a full option chain, more detail on the response format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds meaning by explaining the 'symbol' parameter (indices vs. stocks) and the default for 'is_index' through examples. However, it does not provide formal parameter descriptions, so the compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the full option chain with specific fields like strike prices, premiums, OI, etc. It specifies valid inputs (indices like NIFTY, BANKNIFTY, FINNIFTY; stocks as NSE symbols) and provides examples, effectively distinguishing it from related tools like get_oi_data or get_pcr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (for indices or NSE stocks) and includes example calls. However, it does not explicitly mention when not to use it or suggest alternative tools for related data (e.g., get_max_pain).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_past_iposA
Get recently listed IPOs with listing price and performance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the data returned (listing price and performance) but does not disclose additional behavioral traits such as data freshness, rate limits, or whether it returns all available IPOs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. Every word is meaningful, with no wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless tool, the description adequately covers the purpose. It could be slightly more complete by specifying that it returns a list, but given the lack of parameters and output schema, the current description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With no parameters, the description need not explain param details. However, it adds value by mentioning 'listing price and performance', which clarifies the output beyond the schema-less tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves recently listed IPOs with listing price and performance. It distinguishes from the sibling tool 'get_upcoming_ipos' by specifying 'past IPOs', making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when past IPO data is needed, but lacks explicit guidance on when to use versus alternatives like 'get_upcoming_ipos'. No when-not-to-use or prerequisite information provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pcrB
Get Put-Call Ratio for an index. Example: get_pcr("NIFTY")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the action without addressing any side effects, data freshness, or permissions needed. The example is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, the second being a helpful example. No unnecessary words, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is fairly complete: it states what it does and gives an example. It could mention the return format or data source, but overall it suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The example 'get_pcr("NIFTY")' implies the symbol parameter takes an index name, which adds value. However, no additional details on format or valid values are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the Put-Call Ratio for an index using the verb 'Get'. It distinguishes itself from sibling tools like get_oi_data and get_option_chain by specifying the exact metric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example but offers no guidance on when to use this tool versus alternatives, nor any prerequisites or limitations. It is missing explicit context for when or when not to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_peer_comparisonA
Compare a stock with its industry peers — PE, PB, market cap, ROE side by side. Example: get_peer_comparison("TCS")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the output includes side-by-side metrics but fails to disclose important behavioral traits such as data freshness, peer selection logic, or any potential limitations. This is insufficient for a tool with no other behavioral hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences including an example, with no extraneous information. Every word serves a purpose, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter) and presence of an output schema, the description is moderately complete. However, it omits context on how peers are determined (e.g., industry classification) and the scope of the comparison, which could lead to ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides an example usage ('get_peer_comparison("TCS")') implying symbol is a stock ticker. This adds minimal semantics beyond the schema. For a single parameter, this is adequate but not thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares a stock with its industry peers and lists specific metrics (PE, PB, market cap, ROE). The verb 'Compare' and resource 'stock with industry peers' are precise, distinguishing it from sibling tools like get_key_ratios or get_stock_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for peer comparison but provides no explicit guidance on when to use this tool versus alternatives like get_key_ratios or get_stock_quote. No when-not or context exclusions are given, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_newsA
Get latest news for a sector — IT, Banking, Pharma, Auto, FMCG etc. Example: get_sector_news("Banking", 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| sector | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates a read-only operation fetching news, but lacks detail on output format, pagination, rate limits, or time range. With no annotations, the description partially carries the transparency burden but remains somewhat vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus a clear example. Every sentence serves a purpose with no redundancy, front-loaded with core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and an output schema, the description covers core purpose and parameter usage. It could mention output format but output schema exists. Missing details like rate limits or required authentication but acceptable given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage, so description adds value by providing example usage and listing possible sector values (IT, Banking, Pharma, etc.). The example clarifies the limit parameter's role, though a full list of sectors is absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves latest news for a sector, with examples of sectors like IT and Banking. It effectively distinguishes from siblings such as get_market_news and get_stock_news by specifying sector focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage for sector-specific news but does not explicitly contrast with alternatives like get_market_news or get_stock_news. No 'when-not-to-use' or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_performanceB
Get performance of all sectoral indices — IT, Bank, Pharma, Auto, FMCG etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits such as data freshness, source, or what 'performance' specifically entails (e.g., daily returns, price changes). The description carries the full burden but provides minimal insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that gets straight to the point. It is front-loaded with the verb and resource. While more detail could be added, the brevity is not detrimental given the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. However, the description is thin for a tool that returns sectoral performance data; it could mention the time period, frequency, or how sectors are defined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is effectively 100%. Per guidelines, zero parameters warrant a baseline score of 4. The description does not need to add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get performance' and the resource 'sectoral indices' with examples. However, it does not explicitly differentiate from similar tools like get_all_indices, which might also return index performance data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sgb_historyC
Get historical price data for a Sovereign Gold Bond. Example: get_sgb_history("SGBJAN30IX", "01-01-2025", "01-06-2025")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| to_date | No | ||
| from_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It states 'Get historical price data' and gives an example, but does not disclose behavior such as date range limits, data frequency (daily?), or what happens with invalid dates. The return format is not described, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—one sentence plus an example—and front-loaded with the purpose. However, it is too sparse, missing important details about parameters and behavior. Every sentence earns its place, but more content is needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, no annotations, and siblings with similar patterns, the description is incomplete. It lacks information about the output structure, date format requirements, error handling, and data scope. The example mitigates slightly but does not provide sufficient context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides an example showing three parameters (symbol, from_date, to_date) with a specific date format, but does not explain their meanings, required formats, or defaults. The example is helpful but insufficient for full parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get historical price data for a Sovereign Gold Bond'. The verb 'Get' and resource 'historical price data' are specific, and the target 'Sovereign Gold Bond' distinguishes it from sibling tools like get_stock_history or get_etf_history. The example reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as get_sgb_quote or get_sovereign_gold_bonds. The description only implies usage for historical data but lacks when-not-to-use or alternative recommendations. The example provides context but no comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sgb_quoteA
Get detailed quote for a specific Sovereign Gold Bond. Example: get_sgb_quote("SGBJAN30IX")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description implies a read-only operation but does not explicitly state safety or side effects. Adequate for a simple quote retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, including an example, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a simple 1-parameter tool without output schema; covers purpose and provides an example, though it doesn't detail the quote contents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; the example symbol 'SGBJAN30IX' provides format hints but the description does not explain the parameter's meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states it gets a detailed quote for a specific Sovereign Gold Bond, clearly distinguishing from siblings like get_sgb_history and get_sovereign_gold_bonds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes an example usage but no explicit guidance on when to use vs. alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sovereign_gold_bondsA
Get all Sovereign Gold Bonds (SGBs) listed on NSE with prices and maturity dates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It indicates a read operation returning prices and maturity dates, but does not mention data freshness, pagination, or any side effects. The description is adequate but lacks detail beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is very simple (no parameters, no nested objects). Although there is no output schema, the description mentions the return values (prices and maturity dates) adequately. For this low complexity, the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% coverage. The description adds no parameter information because there are none. According to the rubric, zero parameters warrant a baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all Sovereign Gold Bonds listed on NSE, including prices and maturity dates. It uses a specific verb ('Get') and resource ('Sovereign Gold Bonds'), and the result distinguishes this tool from siblings like get_sgb_history (history of a specific bond) and get_sgb_quote (quote for one bond).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. However, the context of sibling tools (e.g., get_sgb_history, get_sgb_quote) implies this is for a broad overview, while others are for specific bonds or historical data. Usage is implied but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_historyB
Get historical OHLC data for a stock. Dates in DD-MM-YYYY format. Example: get_stock_history("TCS", "01-01-2025", "01-06-2025")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| to_date | No | ||
| from_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only mentions the date format and gives an example, but fails to disclose rate limits, data sources, error handling (e.g., invalid symbol), or any side effects. Significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus an example, with no wasted words. The first sentence immediately conveys the core purpose, making it efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should cover return values, error cases, and parameter constraints. It only provides a basic example and date format, omitting what the response looks like (e.g., OHLC columns) and how to handle invalid inputs. Completeness is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. While it does add meaning through the date format ('DD-MM-YYYY') and an example usage, it does not explicitly describe each parameter (e.g., what 'symbol' accepts). The example partially covers semantic gaps but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get historical OHLC data for a stock', using a specific verb ('get') and indicating the resource ('historical OHLC data for a stock'). This clearly distinguishes it from sibling tools like get_stock_quote (current data) or get_etf_history (historical ETF data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., other history tools for different asset types) or any prerequisites/conditions. It only states what it does, leaving the agent without explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_newsA
Get latest news for a specific stock. Example: get_stock_news("RELIANCE", 10)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| symbol | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear full transparency. It only says 'Get latest news' and provides an example, but does not disclose authentication needs, rate limits, the nature of returned data (e.g., headlines, sources), or behavior regarding the limit parameter. Minimal insight beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences: one stating the purpose and one providing an example. No unnecessary words or redundancy. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with an output schema, the description provides sufficient context to understand the basic function. It lacks details about return format (e.g., news articles metadata) but is adequate given the output schema's presence. The example aids understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides an example ('get_stock_news("RELIANCE", 10)') which clarifies that 'symbol' is a stock ticker and 'limit' controls count, but does not explicitly define these parameters. The description adds marginal value over the schema's property names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get latest news for a specific stock.' It distinguishes from sibling tools like get_market_news (for market-wide news) and get_sector_news. The example reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a single stock's news via the example and phrasing, but does not explicitly state when to use this tool versus alternatives like get_market_news or get_sector_news. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_quoteA
Get live stock quote from NSE — price, volume, day high/low, 52-week range, market cap. Example: get_stock_quote("RELIANCE")
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions 'live' and specific output fields, but lacks details on data source, latency, rate limits, authentication, or error handling. It does not contradict annotations (none provided), but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines purpose and outputs, second gives a concrete example. No extraneous information, front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers essential information: what data is returned. It does not detail return structure or error scenarios, but given no output schema, it is adequately complete. A minor gap is not specifying the format of the returned data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It provides an example ('RELIANCE') suggesting the symbol is a stock ticker, but does not explain valid formats, case sensitivity, or if additional prefixes are needed. Adds partial meaning but not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a live stock quote from NSE, listing specific fields: price, volume, day high/low, 52-week range, market cap. It uses a specific verb 'Get' and resource 'stock quote', and the example ('RELIANCE') reinforces the purpose. It distinguishes from siblings like get_stock_history (historical) and get_stock_news (news).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies use for current real-time data, it does not explicitly state when to use it versus siblings or provide exclusions. The example provides context, but no direct comparison or guidance on alternatives like get_stock_history for historical data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_support_resistanceC
Get support and resistance levels for a stock based on pivot points. Example: get_support_resistance("RELIANCE")
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 3mo | |
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the behavioral burden. It mentions 'based on pivot points' but does not disclose whether the operation is read-only, if it requires authentication, or any potential side effects. The description is insufficient for an AI agent to assess impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: purpose and example. It front-loads the action. However, it sacrifices essential details for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is incomplete for practical use. It does not describe the format of support/resistance levels, return type, or edge cases like invalid symbols.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description neither explains the 'symbol' parameter (e.g., stock ticker format) nor the 'period' parameter (e.g., valid ranges). The example only shows symbol usage, leaving the agent to guess parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets support and resistance levels based on pivot points for a stock. It distinguishes from siblings like get_stock_history or get_technical_indicators by specifying the specific calculation method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_technical_indicators, get_52week_high). Only an example is provided, but no when/when-not or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_indicatorsA
Get key technical indicators for an NSE stock — SMA, EMA, RSI, MACD, Bollinger Bands, VWAP. Periods: 1mo, 3mo, 6mo, 1y, 2y. Example: get_technical_indicators("RELIANCE", "6mo")
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | 6mo | |
| symbol | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses the tool is a read operation returning indicators, but lacks details on data freshness, rate limits, or any side effects. It is adequate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences and an example. No fluff, with the purpose stated upfront and key details immediately following. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 2 parameters, the description covers the what (indicators) and periods but not the output structure (e.g., how values are returned, timeframe). It is functional but not fully comprehensive for a tool computing indicators.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists valid periods for the 'period' parameter and provides an example for 'symbol' (RELIANCE). However, it does not specify the symbol format (e.g., NSE ticker without suffix) nor the default period (given in schema as '6mo').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves key technical indicators for NSE stocks, listing specific indicators (SMA, EMA, RSI, etc.) and valid periods. This differentiates it from siblings like detect_candlestick_patterns and get_support_resistance, which focus on patterns or levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. While it implicitly covers technical indicators, it does not state exclusions or provide context for choosing between this and other technical analysis tools (e.g., get_support_resistance).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_funds_by_categoryC
Get top mutual funds in a category. Example: get_top_funds_by_category("Equity Scheme")
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| category | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral transparency. It fails to disclose any behavioral traits such as read-only nature, authentication requirements, rate limits, or data source specifics. The description adds no value beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence plus an example) and front-loaded, but it is under-specified. Every sentence earns its place, but the brevity sacrifices completeness, making it insufficient for effective tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, no annotations, no schema descriptions), the description is severely incomplete. It does not define 'top', valid categories, or sorting order. The output schema exists but the description offers no context about return values. The tool is poorly documented relative to its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on the parameters. The example only uses 'category' but does not explain valid values or constraints. The 'limit' parameter is not mentioned at all. The description adds no semantic value beyond what the schema property names imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get top mutual funds in a category' with a specific verb and resource. The example reinforces the meaning. However, it does not define what 'top' means (e.g., by returns or rating), which leaves some ambiguity. It is distinct from sibling tools like find_best_mutual_funds but lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The example provides a concrete usage instance but no context about prerequisites, valid categories, or exclusions. No when-to-use or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_gainersA
Get today's top gaining stocks on NSE.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, and description does not disclose data freshness, number of results, or any behavioral traits beyond the obvious fetch operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no wasted words; every word adds meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with no parameters, but could mention result count like 'top 10 gainers' for better completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, baseline is 4; description adds market (NSE) and timeframe (today) beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'today's top gaining stocks on NSE', distinguishing it from siblings like get_top_losers and get_most_active_stocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives; usage is implied from the name and description, but lacks when-not-to-use or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_losersA
Get today's top losing stocks on NSE.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states the output is 'top losing stocks'. It does not disclose data sources, update frequency, or whether results are by percentage or absolute loss.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous words. Front-loaded verb and resource. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While simple and with an output schema, the description lacks definition of 'top' (e.g., daily percentage loss). It is adequate but could be more complete by clarifying the ranking metric.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100%. The rubric baseline for 0 parameters is 4, and no additional semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and clearly identifies the resource: 'today's top losing stocks on NSE'. It is unambiguous and distinguishes itself from sibling tools like get_top_gainers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_most_active_stocks or get_stock_news. The description assumes implicit understanding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcoming_iposA
Get all upcoming and ongoing IPOs on NSE with dates, price band, and issue size.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the return content (dates, price band, issue size) and scope (NSE). No annotations are provided, so the description carries the full burden. It does not mention any side effects or prerequisites, but for a simple read-only tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 15 words, no redundant information. Front-loaded with the action and resource, achieving maximum efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is fairly complete: specifies exchange (NSE), data scope (upcoming and ongoing), and returned fields (dates, price band, issue size). Lacks mention of output format or ordering but sufficient for agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no additional meaning. The description fully specifies what the tool returns and the scope (NSE, upcoming/ongoing IPOs), adding all necessary context for an agent to understand the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get', the resource 'upcoming and ongoing IPOs on NSE', and the specific data returned ('dates, price band, and issue size'). Distinguishes from sibling tool 'get_past_ipos' which targets past IPOs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context by specifying 'upcoming and ongoing IPOs on NSE', implying it is not for past IPOs. However, it does not explicitly state when to use this tool vs alternatives like 'get_past_ipos' or other financial data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mf_sip_returnsA
Calculate what your SIP returns would have been if you had invested in this fund. Shows month-by-month investment, units accumulated, and final value.
Example: mf_sip_returns("119598", 10000, 3) Means: Rs 10,000/month SIP for 3 years in scheme 119598
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | ||
| scheme_code | Yes | ||
| monthly_amount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses output components (month-by-month investment, units accumulated, final value) but lacks information on data assumptions, historical NAV usage, or error handling. With no annotations, the description carries full burden but remains superficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with no fluff. Three sentences plus an example, front-loading the purpose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions output components. But lacks details on return format, error responses, or edge cases. Adequate for a simple tool with default parameters but incomplete for robust agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. The example explains scheme_code, monthly_amount, and years via demonstration, but does not provide formal parameter descriptions or constraints. Partial compensation but insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool calculates SIP returns for a given fund, showing month-by-month details and final value. Distinguished from siblings like get_mf_history and analyze_mutual_fund by focusing specifically on SIP simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete example with default values, implicitly showing typical usage. However, does not explicitly state when to use this tool versus alternatives like compare_mf_detailed or analyze_mutual_fund.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_preset_screenA
Run a pre-built screener strategy. Presets:
"top_gainers" — stocks up > 3% today
"top_losers" — stocks down > 3% today
"high_volume" — unusual volume (top 20)
"near_52w_high" — within 5% of 52-week high
"near_52w_low" — within 5% of 52-week low
"penny_stocks" — price < 50, sorted by change
"large_cap_value" — large caps with PE < 20
"high_dividend" — dividend yield > 2% Example: run_preset_screen("top_gainers")
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It describes the tool as a read-only screening operation with no side effects, but does not mention pagination, limits, or return format. Since an output schema exists, the agent can infer structure, but the description adds limited behavioral context beyond listing presets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, listing presets efficiently, and includes an example call. Every sentence adds value, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (one parameter, no nested outputs), the description is fully complete. It covers all presets, their meanings, and provides an example, enabling correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'preset' has no enum values in the schema, but the description exhaustively lists all valid presets with explanations, fully compensating for the lack of schema enumeration. This gives the agent complete guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a pre-built screener strategy and lists all preset options with their meanings. This distinguishes it from sibling tools like screen_by_fundamentals or screen_stocks, which are more customizable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit presets and an example, but does not indicate when to use this tool over alternatives (e.g., for more complex screening). It gives clear guidance on using the presets but lacks when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_patterns_bulkA
Scan multiple stocks for candlestick patterns. Optionally filter by pattern name. Example: scan_patterns_bulk(["RELIANCE", "TCS", "INFY"], "Bullish Engulfing")
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | ||
| pattern_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It does not mention whether the operation is read-only, any rate limits, data freshness, or other behavioral traits beyond the action of scanning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences and an example. Every word adds value, no redundancy or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the basic scanning functionality and an output schema exists, it omits details like supported pattern names, prerequisites (e.g., valid exchanges), and return format characteristics. It is adequate but not fully complete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It explains the symbols array and pattern_filter parameter, with an example showing usage. This provides context that the schema lacks, though it could detail symbol format more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scans multiple stocks for candlestick patterns, with a specific verb ('scan') and resource. The example reinforces this purpose and implicitly distinguishes it from sibling detect_candlestick_patterns which likely handles single stocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional filtering by pattern name but does not provide explicit guidance on when to use this tool vs alternatives like detect_candlestick_patterns. No advice on when not to use it is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_by_fundamentalsB
Screen stocks by fundamental metrics using Yahoo Finance data. Filters: PE ratio, PB ratio, market cap (in Cr), dividend yield (%), ROE (%). Example: screen_by_fundamentals(min_pe=5, max_pe=20, min_roe=15, limit=10) Note: This is slower as it fetches data per stock. Works best with sector filter.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| max_pb | No | ||
| max_pe | No | ||
| min_pb | No | ||
| min_pe | No | ||
| sector | No | ||
| min_roe | No | ||
| min_market_cap | No | ||
| min_dividend_yield | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions the tool is slow and fetches data per stock, which is useful. However, it fails to describe the return format, pagination, or any potential side effects. For a screening tool with no annotations, more detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: three sentences plus an example. It is front-loaded with the main purpose. The example is illustrative. No unnecessary information is present. Could be slightly more structured by grouping parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters, no annotations, and an output schema, the description provides a moderate level of completeness. It explains what the tool does, gives a usage example, and warns about performance. However, it lacks explanation of the output, default behavior, and differentiation from similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by listing the fundamental metrics (PE, PB, market cap, dividend yield, ROE) and providing an example with specific parameter names. However, it does not explain the meaning of default values (e.g., 0 meaning no filter), nor does it detail the range or format of each parameter. It adds value but not comprehensively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool screens stocks by fundamental metrics (PE, PB, market cap, dividend yield, ROE) using Yahoo Finance. It is not a tautology and provides a specific verb and resource. However, it does not explicitly distinguish from sibling tools like 'screen_stocks' or 'run_preset_screen' which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a note about performance ('slower as it fetches data per stock') and a suggestion ('works best with sector filter'), which provides some usage guidance. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_stocksA
Screen stocks with multiple filters. Works on any NSE index. Filters:
min_price/max_price: price range
min_change_percent/max_change_percent: % change range
min_volume: minimum traded volume
sector: filter by sector keyword (e.g. "IT", "Bank", "Pharma")
near_52w_high: stocks within 5% of 52-week high
near_52w_low: stocks within 5% of 52-week low
sort_by: change_percent, price, volume (default: change_percent)
sort_order: asc or desc Example: screen_stocks(min_price=100, max_price=500, min_change_percent=2, sort_by="change_percent")
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | NIFTY 500 | |
| limit | No | ||
| sector | No | ||
| sort_by | No | change_percent | |
| max_price | No | ||
| min_price | No | ||
| min_volume | No | ||
| sort_order | No | desc | |
| near_52w_low | No | ||
| near_52w_high | No | ||
| max_change_percent | No | ||
| min_change_percent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Lists available filters and default behaviors (e.g., near 52w high = within 5%), but does not mention limit and index parameters, rate limits, authentication needs, or what happens with no results. Output schema exists, reducing some need, but missing behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficient: one intro sentence, bulleted filters, and an example. No redundant content. Slightly long list but well-organized. Could integrate missing parameters succinctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, no annotations, and an output schema, the description is mostly adequate. It explains filters and scope but omits two parameters (index, limit) and any prerequisites or limitations. Example helps, but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage; description compensates by covering 10 of 12 parameters with clear explanations (e.g., near_52w_high meaning within 5%). Adds value beyond schema titles and defaults, but misses index and limit parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Screen stocks with multiple filters. Works on any NSE index.' Uses a specific verb and resource, and distinguishes from siblings like screen_by_fundamentals or run_preset_screen by focusing on multi-filter screening on NSE indices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Provides an example but does not direct the agent to alternatives for specific use cases (e.g., fundamental screening). Implicit usage from filter list, but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mutual_fundsB
Search mutual funds by name, AMC, or category. Example: search_mutual_funds("SBI Bluechip") or search_mutual_funds("axis flexi cap")
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose whether the tool is read-only, what side effects exist, or any behavioral traits beyond the search action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences plus an example. However, it could be slightly expanded to cover parameter details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (not shown), the description does not explain the return format or pagination. It feels incomplete for a search tool that likely returns multiple results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for parameter descriptions is 0%. The description vaguely indicates 'query' can be a name, AMC, or category, but lacks format requirements or constraints. Examples provide some guidance but are insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches mutual funds by name, AMC, or category, with concrete examples. It distinguishes itself from sibling tools like analyze_mutual_fund or compare_mutual_funds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides search criteria (name, AMC, category) and examples, but does not explicitly state when to use this tool versus alternatives like find_best_mutual_funds or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stocksB
Search stocks by name or symbol on NSE. Example: search_stocks("reliance") or search_stocks("INFY")
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavior beyond the basic search function. It omits details like case sensitivity, partial matching, result limits, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences plus examples. Every word is functional with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, likely covering return fields, but the description lacks context on pagination, result ordering, or handling of no results. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It provides examples ('reliance', 'INFY') but does not specify allowed formats, wildcards, or exact match behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches stocks by name or symbol specifically on NSE. It distinguishes itself from sibling tools like screen_stocks (screening) and get_stock_quote (quote retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes example queries but does not explicitly explain when to use this tool versus alternatives, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is some overlap (e.g., multiple mutual fund comparison tools like compare_mutual_funds and compare_mf_detailed, and separate top gainers tools vs. preset screeners). Agents may occasionally confuse similar tools.
Tools consistently use a verb_noun pattern with underscores (e.g., get_stock_quote, search_mutual_funds, detect_candlestick_patterns). While verbs vary (get, search, analyze, find), the pattern is uniform and predictable.
With 68 tools, the count is high but reasonable given the broad scope covering stocks, mutual funds, commodities, derivatives, and more. However, some tools could be consolidated, and the sheer number may overwhelm agents.
The tool set is exceptionally comprehensive, covering almost all aspects of Indian markets: stock fundamentals, technicals, derivatives, news, mutual funds, IPOs, and more. There are no obvious gaps for the intended domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Open-source MCP server for Zerodha Kite Connect. Portfolio, market data, backtesting, alerts.
Stock analysis MCP: 38 indicators, 7 optimizers, 8 backtests, US + India sectors.
Hosted MCP for stocks, options, Greeks, brokers, order previews, alerts, and workflows.
MCP server for stocksense-ai documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides comprehensive Indian stock market data from the NSE and BSE, including live quotes, historical trends, and fundamental analysis. Users can compare stock performance, track major indices, and access financial statements without the need for an API key.2MIT
- AlicenseAqualityDmaintenanceMCP server for Indian stock market data. Provides 16 tools for quotes, history, fundamentals, mutual funds, indices, corporate actions, options, IPOs, and portfolio analysis.16995MIT
- AlicenseBqualityBmaintenanceComprehensive MCP server for Indian stock market with 60 tools covering NSE/BSE, derivatives, mutual funds, technicals, and more, requiring no API keys. Enables users to access live market data, analyze indicators, and manage investments through natural language.1260MIT
- AlicenseNot gradedqualityDmaintenancePublic MCP server for Indian stock market analysis covering Nifty 500 stocks with 12 tools (quotes, technical indicators, patterns, screening) across daily, 15-minute, and 5-minute timeframes.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/afthabvp/indian-market-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server