trade-mcp
Provides integration with NVIDIA AI models for portfolio insights and sentiment analysis
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., "@trade-mcpget the latest stock price for Microsoft"
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.
title: Trade MCP emoji: š colorFrom: blue colorTo: indigo sdk: docker app_port: 7860 pinned: false
š trade-mcp ā Advanced Stock Market MCP Server
An elite, high-performance Model Context Protocol (MCP) server providing real-time worldwide stock market data (including extensive US & Indian markets), technical indicators, historical data, company financials, news feeds, and native Python data-science sandboxing alongside Groq/NVIDIA AI models.
https://github.com/Techie03/trade-mcp/assets/assets/public/intro_video.mp4
Related MCP server: market-data-mcp
šļø System Architecture
trade-mcp acts as a unified bridge between your favorite AI hosts and multiple free market data sources, running on a dual-transport layer.
graph TD
%% AI Hosts
subgraph Hosts [MCP Client Hosts]
A[Cursor]
B[Claude Desktop]
C[Manus / SSE Clients]
D[Zed / Windsurf / Continue]
end
%% Transport Selector
subgraph Transport [Dual-Transport Layer]
E{MCP_TRANSPORT}
E1[Stdio Transport]
E2[HTTP / SSE Server]
end
A & B & D -->|stdio stdio/stderr| E1
C -->|HTTP POST /sse| E2
%% Main Server
subgraph Server [trade-mcp Core Node.js Engine]
F[Request Router]
G[(In-Memory Cache TTL)]
end
E1 & E2 --> F
F <--> G
%% Providers and Services
subgraph Providers [Data & Execution Providers]
H[Yahoo Finance <br> Free - No Key]
I[Alpha Vantage <br> Free Key - 25/day]
J[Finnhub <br> Free Key - 60/min]
K[NSE India <br> Session Handshake]
L[Python Sandbox <br> Exec-ChildProcess]
M[AI Intelligence <br> Groq / NVIDIA]
end
F --> H & I & J & K & L & M
%% Targets
subgraph DataTargets [Data Target Systems]
H1[US/Global Quotes & Summary]
I1[Forex & Technical Indicators]
J1[Crypto & News Feeds]
K1[Live Quotes / F&O Option Chain / Bhavcopy ZIPs]
L1[Matplotlib Plots / Pandas / NumPy Scripts]
M1[Portfolio Insights & Sentiment Analysis]
end
H --> H1
I --> I1
J --> J1
K --> K1
L --> L1
M --> M1
%% Styling
style Server fill:#f9f,stroke:#333,stroke-width:2px
style Transport fill:#bbf,stroke:#333,stroke-width:1px
style Providers fill:#bfb,stroke:#333,stroke-width:1pxā” Quick Start
Step 1 ā Clone & Install Dependencies
First, make sure you have Node.js >= 20 and Python >= 3 installed.
git clone https://github.com/Techie03/trade-mcp.git
cd trade-mcp
npm installStep 2 ā Configure Environment Variables
Copy .env.example to .env:
copy .env.example .envOpen the .env file and insert your API keys:
# āā Market Data (all free) āāāāāāāāāāāāāāāāāāāāāā
ALPHA_VANTAGE_KEY=your_alpha_vantage_key
FINNHUB_KEY=your_finnhub_key
# āā AI Intelligence (all free) āāāāāāāāāāāāāāāāāā
GROQ_API_KEY=your_groq_api_key
NVIDIA_API_KEY=your_nvidia_api_key
# āā Transport (stdio is default for local hosts)
MCP_TRANSPORT=stdio
PORT=3000Step 3 ā Compile the Server
Build the TypeScript files into compiled JavaScript:
npm run buildš Host Configurations
Configure the server in your favorite editor/client.
ā” Direct Remote SSE Connection (No Installation Required)
You can connect directly to the active remote server instance https://nishith374-stock-mcp.hf.space/sse immediately without cloning the code or compiling it locally!
1. Codex / Cursor (Via Settings UI)
Navigate to Cursor Settings ā Models ā MCP.
Click + Add New MCP Server.
Enter Name:
trade-mcpChoose Type:
Streamable HTTPPaste URL:
https://nishith374-stock-mcp.hf.space/sseClick Save.

2. Cursor (Via Config JSON)
Update your global mcp.json file (typically in %APPDATA%\Cursor\User\mcp.json or ~/.config/Cursor/User/mcp.json):
{
"mcpServers": {
"trade-mcp": {
"url": "https://nishith374-stock-mcp.hf.space/sse"
}
}
}3. Claude.ai (Via Custom Connectors UI)
Open your Claude.ai account settings ā Connectors.
Click Add custom connector.
Enter Name:
trade-mcpEnter URL:
https://nishith374-stock-mcp.hf.space/sseClick Add.

4. Claude Desktop (Config JSON)
Update your claude_desktop_config.json file:
{
"mcpServers": {
"trade-mcp-remote": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://nishith374-stock-mcp.hf.space/sse"
]
}
}
}š» Local Installation & Config
If you choose to clone, compile, and run the server locally on your machine:
1. Cursor (Local)
Copy the configuration block to your global Cursor configuration file:
Windows:
%APPDATA%\Cursor\User\mcp.jsonmacOS/Linux:
~/.config/Cursor/User/mcp.json
{
"mcpServers": {
"trade-mcp": {
"command": "node",
"args": ["C:/Users/nishi/Desktop/trade-mcp/dist/index.js"],
"env": {
"ALPHA_VANTAGE_KEY": "your_alpha_vantage_key",
"FINNHUB_KEY": "your_finnhub_key",
"GROQ_API_KEY": "your_groq_api_key",
"NVIDIA_API_KEY": "your_nvidia_api_key"
}
}
}
}(Note: Replace the absolute path "C:/Users/nishi/Desktop/trade-mcp/dist/index.js" with the actual folder path on your system, using forward slashes /.)
2. Claude Desktop
Add to your Claude Desktop config file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"trade-mcp": {
"command": "node",
"args": ["C:/Users/nishi/Desktop/trade-mcp/dist/index.js"],
"env": {
"ALPHA_VANTAGE_KEY": "your_alpha_vantage_key",
"FINNHUB_KEY": "your_finnhub_key",
"GROQ_API_KEY": "your_groq_api_key",
"NVIDIA_API_KEY": "your_nvidia_api_key"
}
}
}
}3. Zed Editor
Add to ~/.config/zed/settings.json:
{
"context_servers": {
"trade-mcp": {
"command": {
"path": "node",
"args": ["C:/Users/nishi/Desktop/trade-mcp/dist/index.js"],
"env": {
"ALPHA_VANTAGE_KEY": "your_alpha_vantage_key",
"FINNHUB_KEY": "your_finnhub_key",
"GROQ_API_KEY": "your_groq_api_key",
"NVIDIA_API_KEY": "your_nvidia_api_key"
}
}
}
}
}4. Continue.dev
Merge the following into ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "node",
"args": ["C:/Users/nishi/Desktop/trade-mcp/dist/index.js"],
"env": {
"ALPHA_VANTAGE_KEY": "your_alpha_vantage_key",
"FINNHUB_KEY": "your_finnhub_key",
"GROQ_API_KEY": "your_groq_api_key",
"NVIDIA_API_KEY": "your_nvidia_api_key"
}
}
}
]
}
}š ļø Complete Tools Reference (28 Tools)
š Market Data (4)
Tool Name | Key Parameters | Description |
|
| Returns real-time equity quotes with high/low/close and volume metrics. |
|
| Returns OHLCV historical time series (1d to 10y ranges). |
| None | Returns quick global indices scoreboard (S&P500, NIFTY50, Nasdaq, FTSE). |
|
| Fuzzy search for stocks across worldwide exchanges. |
š¢ Fundamentals (3)
Tool Name | Key Parameters | Description |
|
| Detailed capital metrics (Beta, P/E, EPS, Profit Margins, Sector). |
|
| Pulls balance sheet, cash flows, and income statement. |
|
| Earnings history, consensus estimates, and surprise metrics. |
š° News Feeds (2)
Tool Name | Key Parameters | Description |
|
| Pulls recent market and corporate news articles for a specific stock. |
|
| Global general financial news stream. |
š Technical Indicators (2)
Tool Name | Parameters | Description |
|
| SMA, EMA, RSI, MACD, Bollinger Bands, VWAP, ADX indicators. |
| None | Real-time performance breakdown of standard US market sectors. |
š®š³ India-Specific (6)
Tool Name | Parameters | Description |
|
| Official quote with VWAP, circuit filters, delivery quantities, and margins. |
| None | Real-time index tracker for Nifty50, Banknifty, Midcap, VIX, etc. |
|
| Live derivatives option chain (Call/Put Open Interest, strike prices). |
|
| Unzips and extracts EOD historical Bhavcopy for any listed stock. |
|
| Board meetings, dividends, splits, announcements. |
|
| Pulls delayed Bombay Stock Exchange pricing. |
š± Forex & Crypto (2)
Tool Name | Parameters | Description |
|
| Real-time conversion rates (e.g., USD to INR, EUR to USD). |
|
| Captures USD coin quotes using exchange socket data. |
š¤ AI Market Intelligence (8)
Tool Name | Description | Engine |
| Bullish/Bearish/Neutral score with confidence. | Groq LLaMA 3.3 -> NVIDIA NIM |
| Deep dashboard: metrics, technicals, news, and rating. | Groq LLaMA 3.3 -> NVIDIA NIM |
| Summarizes recent news articles into a concise brief. | Groq LLaMA 3.3 -> NVIDIA NIM |
| Analyses EPS surprises, revenue growth, and guidance. | Groq LLaMA 3.3 -> NVIDIA NIM |
| Side-by-side comparison of 2-5 tickers with verdict. | Groq LLaMA 3.3 -> NVIDIA NIM |
| Generates a buy/sell rating based on RSI & moving averages. | Groq LLaMA 3.3 -> NVIDIA NIM |
| Analyzes portfolio diversification, risk, and sectors. | Groq LLaMA 3.3 -> NVIDIA NIM |
| Explains technical outputs in plain language. | Groq LLaMA 3.3 -> NVIDIA NIM |
š Python Data-Science Sandbox (1)
Tool Name | Parameters | Description |
|
| Runs dynamic analysis code in the |
š Web Search (1)
Tool Name | Parameters | Description |
|
| Performs a real-time financial or general web search using the Tavily API, returning concise text snippets optimized for LLM context. |
š Live Verification Results
The server contains an automated verification suite verifying all primary functions:
node --env-file=.env test.mjsPassing Output:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā trade-mcp ā Live API Test Results ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā ā
PASS Yahoo Finance (RELIANCE.NS) ā
ā ā¹1263 | 0.33% | NSI ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā ā
PASS Yahoo Finance (AAPL) ā
ā $295.63 | 1.39% ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā ā
PASS Finnhub News (TCS) ā
ā 0 articles returned ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā ā
PASS Alpha Vantage (AAPL overview) ā
ā P/E: 35.83 | Sector: TECHNOLOGY ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā ā
PASS NSE Bhavcopy (CSV/ZIP) ā
ā RELIANCE close ā¹1258.8 | 2660 stocks ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā ā
PASS Groq AI (LLaMA 3.3) ā
ā Bullish | score:80 | Groq ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā ā
PASS Python Execution (run_python) ā
ā Pandas loaded & executed | stdout: MEAN: 2.0 ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā Result: 7/7 tests passed ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāš Remote Deployment
To connect remote hosts (like Manus or other cloud agents), you can deploy the Docker container to a cloud provider:
Cloud Hosting (Hugging Face Spaces, Koyeb, Render, etc.)
This repository is equipped with a production-ready Dockerfile listening on port 7860.
Fork or push this repository to GitHub or Hugging Face.
Setup a Docker-based app/Space.
Configure your API keys (
ALPHA_VANTAGE_KEY,FINNHUB_KEY,GROQ_API_KEY,NVIDIA_API_KEY,TAVILY_API_KEY) securely as environment variables/secrets.Get your public HTTPS server endpoint (e.g.
https://your-app.hf.space/sse).
š”ļø Rate Limits & Cache
To prevent rate-limit bans on free keys:
Yahoo Finance: Public endpoint uses browser headers & session rotation.
NSE India: Custom 2-step handshake (initializes session cookie by visiting homepage, then requests endpoint).
Alpha Vantage: Auto-stops fetching and switches to caches once the 25 req/day limit is hit.
Finnhub: Hard rate checking (resets every minute).
Groq: LLaMA 3.3 fallback to NVIDIA NIM when hits
429 Too Many Requests.
š Disclaimer & License
Disclaimer: This server is meant strictly for educational and informational purposes. None of the data or responses produced constitute financial advice.
Licensed under the MIT License.
Available Tools
29 toolsanalyze_earningsA
AI analysis of earnings history: trend, EPS surprise quality, forward outlook. Returns: trend assessment, average surprise %, earnings quality rating, key insights. Uses Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol (e.g. AAPL, GOOGL, INFY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses use of Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback, adding behavioral context. But it omits authentication needs, rate limits, or failure behavior, which are important given no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three lines, efficiently covering purpose, outputs, and technical backend. No redundant information, each 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?
The description lists return outputs (trend assessment, surprise %, quality rating, insights), compensating for missing output schema. However, it lacks prerequisites like data availability or limitations on time periods.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the 'symbol' parameter with examples. The description adds no additional parameter meaning beyond what the schema provides.
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 performs AI analysis of earnings history, listing specific outputs (trend, EPS surprise quality, forward outlook). It distinguishes from siblings like 'get_earnings' by emphasizing AI interpretation rather than raw data 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 implies usage when AI-driven earnings analysis is needed, contrasting with 'get_earnings' for raw data. However, no explicit when-to-use, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_portfolioA
AI portfolio health check for a list of stocks. Returns: overall sentiment, diversification score, risk level, sector exposure, and recommendations. Mix US and Indian stocks freely. Uses Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | List of stock symbols in portfolio (e.g. ["AAPL", "RELIANCE.NS", "HDFCBANK.NS"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It discloses the AI backend (Groq with fallback) and lists return fields, adding value. However, it does not mention potential latency, cost, or error handling for invalid symbols, which would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three short sentences covering purpose, returns, mixing guidance, and AI model. Every sentence is necessary and adds unique information 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?
Given no output schema, the description adequately explains return values. It covers the input requirement (list of symbols) and usage context (mix US/Indian stocks). It lacks explicit error conditions or validation notes, but for a simple tool it 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?
Schema description coverage is 100%, so baseline is 3. The description adds value by noting that US and Indian stocks can be mixed freely, which goes beyond the schema's example list. It also clarifies the overall purpose and return 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 the tool performs an AI portfolio health check for a list of stocks, specifying the outputs (sentiment, diversification, risk, etc.). This distinguishes it from siblings like analyze_earnings (single-stock earnings) or compare_stocks (comparison), as it covers a holistic portfolio view.
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 needing a portfolio-level analysis and explicitly allows mixing US and Indian stocks. However, it does not provide explicit guidance on when to avoid this tool or compare it directly to alternatives like analyze_sentiment or get_stock_insight.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_sentimentA
AI-powered sentiment analysis of news text or recent news for a ticker. Returns: Bullish/Bearish/Neutral/Mixed with a 0-100 score and key factors. Uses Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Custom text to analyze (overrides symbol news fetch) | |
| symbol | No | Stock symbol to fetch and analyze news for (e.g. AAPL, TCS) |
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 discloses the AI models used (Groq with NVIDIA NIM fallback) and output format, but does not discuss potential limitations such as rate limits, token caps, latency, or error handling for invalid inputs. It partially discloses behavioral traits but lacks comprehensive context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise with three well-structured sentences: first states purpose and input, second states output, third states technology. Every sentence is informative and earns its place, with no waste.
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 (AI-powered, two parameters, no output schema, no annotations), the description covers purpose, input, output, and underlying model. However, it lacks details on edge cases, precision of score, error handling, or additional constraints. It is nearly complete but has minor 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 description coverage is 100%, and the description adds value by clarifying that 'text' overrides the symbol news fetch and providing examples for 'symbol'. This enhances understanding beyond the schema, which is a baseline 3, so a 4 is justified.
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 sentiment analysis on news text or recent news for a ticker, specifying the output format (Bullish/Bearish/Neutral/Mixed with 0-100 score and key factors). It distinguishes itself from siblings like 'summarize_news' and 'analyze_earnings' by focusing on sentiment, with clear verb+resource.
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 sentiment analysis but does not explicitly state when to use this tool over alternatives (e.g., summarize_news, analyze_earnings) or when not to use it. It lacks explicit guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_stocksA
Side-by-side AI comparison of 2-5 stocks with pros, cons, and recommendation. Returns a ranked comparison with a clear winner and reasoning. Mix US and Indian stocks freely (e.g. ["AAPL", "RELIANCE.NS", "TCS.NS"]). Uses Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | List of 2-5 stock symbols to compare |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description fully carries the burden. It discloses the use of Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback, the output format (ranked comparison with winner and reasoning), and the limitation of 2-5 stocks. 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?
Three sentences, each covering a distinct aspect: purpose, output, and technology/example. No redundant or extraneous text; 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 tool's simplicity (one parameter, no output schema, no annotations), the description is fully adequate. It explains input constraints, output format, and underlying technology, leaving no critical 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 coverage is 100% for the single parameter 'symbols', which is well-described in the schema. The description adds example values (e.g., AAPL, RELIANCE.NS) reinforcing usage, but does not provide substantial additional semantic content 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 performs a side-by-side AI comparison of 2-5 stocks, detailing output (pros, cons, recommendation, ranked winner) and explicitly distinguishes from siblings like get_quote or analyze_earnings.
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 when-to-use guidance (comparing stocks) and includes practical usage examples (US and Indian stocks). It lacks explicit when-not-to-use or alternative tools, but the context is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_indicatorA
Plain-English AI explanation of any technical indicator value. Tells you what the reading means, if it's bullish/bearish, and what traders typically do. Great for learning or explaining technical analysis to non-experts. Uses Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The indicator value to explain (e.g. 72.5 for RSI) | |
| symbol | No | Stock context for the explanation | the stock |
| indicator | Yes | Indicator name (e.g. RSI, MACD, Bollinger Bands, VWAP) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, but the description discloses the underlying AI model (Groq LLaMA 3.3-70B with NVIDIA NIM fallback) and implies a read-only, non-destructive action. It adds useful context beyond the schema.
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 focused sentences plus a technical note. It front-loads the main purpose and every sentence contributes value 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 simple explanation tool with no output schema, the description adequately covers input parameters, use case, and technology. It could optionally describe the output format, but the current level is sufficient for an AI 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?
Schema coverage is 100% and each parameter has a description. The tool description does not add further semantic detail beyond what is already in the schema, meeting the baseline for full 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 provides a plain-English AI explanation of any technical indicator value, including meaning and bullish/bearish interpretation. This distinctly separates it from sibling tools like get_technical_indicators which likely return numeric 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 specifies it is 'great for learning or explaining to non-experts', giving a clear use case. However, it does not explicitly state when not to use it or mention alternative tools for different contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bse_quoteA
Get BSE (Bombay Stock Exchange) stock quote. Use the .BO suffix for BSE stocks (e.g. RELIANCE.BO, TATASTEEL.BO). If you only have the company name, try the NSE symbol with .BO suffix. Data via Yahoo Finance.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | BSE symbol with .BO suffix (e.g. RELIANCE.BO, HDFCBANK.BO) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it's a read operation from Yahoo Finance. Lacks details on error handling, rate limits, or return format, but adequate for a simple quote 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?
Three concise sentences, each providing essential information: what the tool does, how to use the suffix, and a fallback tip. No redundant or unclear phrasing.
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 1-parameter tool with no output schema, the description covers usage, data source, and syntax. Could mention that it returns a price quote, but not critical given the name and context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage describing the symbol parameter. The description reinforces the .BO suffix requirement and provides examples, adding context but not essential new info 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 explicitly states 'Get BSE stock quote' with exchange name, examples of symbols, and data source. It clearly differentiates from siblings like get_nse_quote (NSE) and get_quote (generic).
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 explicit syntax rule (use .BO suffix) and a fallback strategy for company names. However, it does not explicitly mention when to avoid this tool in favor of siblings like get_nse_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_overviewA
Get comprehensive company fundamentals: P/E ratio, EPS, market cap, sector, industry, 52-week range, beta, dividend yield, profit margins, ROE, analyst target price, and more. Best for US stocks. For Indian stocks, some fields may be limited.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker (e.g. AAPL, MSFT, RELIANCE.NS for US-listed Indian ADRs) |
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 discloses the data fields returned and a coverage limitation for Indian stocks, but does not mention side effects, authentication needs, rate limits, or data freshness. This is partially transparent 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 concise, consisting of two sentences that are front-loaded with the field list. Every sentence adds value: the first lists the return data, the second gives usage guidance. 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 a single required parameter and no output schema, the description effectively explains the return data and a key limitation (Indian stocks). It does not detail return format or error conditions, but these are minor gaps. The description is mostly complete for practical 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 schema description coverage is 100%, so the schema already documents the 'symbol' parameter. The tool description adds an example (e.g., RELIANCE.NS) and context about Indian stock limitations, which adds modest value beyond the schema, justifying a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get' with the resource 'company overview' and lists specific fundamentals (P/E ratio, EPS, market cap, etc.), making the purpose clear. It distinguishes from sibling tools like get_quote (price only) and get_financials (financial statements) by specifying the scope, though not explicitly naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by stating 'Best for US stocks. For Indian stocks, some fields may be limited,' which gives usage guidance. However, it does not explicitly state when to use this tool over alternatives (e.g., get_financials) or when not to use it, limiting the guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crypto_quoteA
Get cryptocurrency price quotes in USD. Supported coins: BTC, ETH, DOGE, SOL, XRP, ADA, MATIC, DOT, AVAX, LINK, and many more. Data from Finnhub via Binance USDT pairs.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Crypto symbol (e.g. BTC, ETH, DOGE, SOL, XRP) |
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 discloses the data source (Finnhub via Binance USDT pairs) but does not mention rate limits, error behavior, or data freshness. For a read-only tool, this 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 with three sentences: purpose, supported coins, and data source. It is front-loaded with the core action and contains no filler.
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?
There is no output schema, and the description does not explain the return format or fields. For a simple quote tool, this is a gap. More details on the response structure 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?
The schema has 100% coverage with a single parameter 'symbol' described as 'Crypto symbol (e.g. BTC, ETH, DOGE, SOL, XRP)'. The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'cryptocurrency price quotes in USD', supported coins are listed, and it distinguishes from stock quote tools like get_quote and forex tools like get_forex.
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 crypto quotes but does not explicitly state when not to use it versus sibling tools. However, the context of supported coins provides some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earningsB
Get earnings history with EPS actuals, estimates, surprise amounts and percentages. Also returns the next scheduled earnings date and consensus estimate. Data from Finnhub (free tier: 60 req/min).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker (e.g. AAPL, GOOGL, INFY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description adds useful behavioral info: data source (Finnhub) and rate limit (60 req/min). Does not discuss authentication, side effects, or response size.
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 covering purpose and data source. Could be more structured but wastes no 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 one parameter and no output schema, description adequately explains return fields (EPS, surprise, next date) and data limitations. Sufficient for a simple lookup 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 100% with clear description for 'symbol'. Description adds no further parameter semantics beyond what the schema already provides.
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 gets earnings history with specific fields (EPS actuals, estimates, surprise, next date). It distinguishes from siblings implicitly but does not explicitly differentiate from 'analyze_earnings'.
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 'analyze_earnings' or other financial tools. No context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financialsA
Get financial statements: income statement, balance sheet, or cash flow statement. Returns annual or quarterly data with up to 5 years of history. Data from Alpha Vantage (counts toward 25 req/day free quota).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Statement type: income, balance, or cashflow | |
| symbol | Yes | Stock ticker (e.g. AAPL, TSLA) | |
| frequency | No | annual or quarterly (default: annual) | annual |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses data granularity (annual/quarterly), historical depth (up to 5 years), and source with rate limit (Alpha Vantage, 25/day). With no annotations, this provides useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, no redundancy. Front-loaded with the core purpose, then details. 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?
For a retrieval tool with no output schema, the description covers inputs, output granularity, history limit, and rate constraint. It lacks mention of response structure but is sufficiently complete given tool 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 coverage is 100%, so baseline is 3. Description adds minimal new meaning beyond the schema's enum descriptions; it only notes the source and time horizon, not parameter-specific details.
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 financial statements and enumerates the three types (income, balance, cashflow), differentiating from sibling tools like get_earnings or get_company_overview. Verb+resource is 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 guidance on when to use this tool versus alternatives such as get_earnings or compare_stocks. The description implies usage for financial statements but does not provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forexA
Get currency exchange rates for any currency pair. Common pairs: USD/INR, EUR/USD, GBP/INR, JPY/USD, USD/SGD, AUD/USD. Data from Alpha Vantage (counts toward 25 req/day free quota).
| Name | Required | Description | Default |
|---|---|---|---|
| to_currency | Yes | Target currency code (e.g. INR, USD, EUR) | |
| from_currency | Yes | Source currency code (e.g. USD, EUR, GBP, JPY) |
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 discloses the data source (Alpha Vantage) and quota, but lacks details on return format, real-time vs delayed, or error handling. Adds some value beyond schema.
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 (2 sentences plus a list and note), with the main purpose front-loaded. The list of common pairs is helpful but could be omitted; overall 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?
Without an output schema, the description should explain the return structure. It states 'currency exchange rates' but doesn't specify format (e.g., rate, date, bid/ask). For a simple tool, it's acceptable but could be more 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 100% with descriptions for both currency code parameters (3-letter codes). The description adds context like common pairs and data source but doesn't enhance parameter 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 'Get currency exchange rates for any currency pair' using a strong verb and resource. It distinguishes from stock-focused siblings by specifying forex, and lists common pairs for quick understanding.
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 context for usage, mentioning common pairs and the data source's rate limit (25 req/day). It doesn't explicitly state when not to use it, but since no other forex tool exists among siblings, guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historicalA
Get OHLCV historical price data for any stock or index globally. Supports US stocks (AAPL), NSE stocks (RELIANCE.NS), BSE stocks (HDFCBANK.BO), and indices (^NSEI, ^GSPC). Range: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max Interval: 1m, 5m, 15m, 30m, 1h, 1d, 1wk, 1mo
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Time range (default: 3mo) | 3mo |
| symbol | Yes | Ticker symbol (e.g. TCS.NS, AAPL, ^NSEI) | |
| interval | No | Bar interval (default: 1d) | 1d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only lists input options and does not mention data sources, rate limits, error handling, or what happens with invalid symbols.
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) and front-loaded with the primary purpose. Every sentence adds value 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?
Given the absence of an output schema, the description does not specify the structure of the returned OHLCV data (e.g., columns, timestamp format). It covers input well but lacks output details, which is a gap for a data retrieval 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 schema already covers all parameters with descriptions. The description adds value by providing real-world examples of supported stock suffixes and index prefixes, which clarifies how to use the symbol parameter 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 OHLCV historical price data for stocks and indices globally. It distinguishes itself from sibling tools like get_quote (current price) and get_nse_historical (NSE-specific) by its broad coverage and focus on historical 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 clear context on when to use this tool: for historical price data with specific range and interval options. However, it does not explicitly state when not to use it or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_newsA
Get general market news feed by category. Categories: general (all markets), forex (currency), crypto (digital assets), merger (M&A deals). Returns top 20 articles with headlines, summaries, and URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | News category (default: general) | general |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses return structure (top 20 articles with headlines, summaries, URLs) and category meanings, but lacks details on rate limits, authentication, or pagination.
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 concise sentences: purpose, category list, return format. No superfluous information; front-loaded with key action.
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 tool, description covers purpose, category options, and return format. Lacks mention of errors or prerequisites, but adequate for a news feed 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 100% with one parameter. Description adds meaning by explaining each enum value (e.g., 'forex (currency)'), going beyond the schema's basic 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?
Description clearly specifies 'Get general market news feed by category' with a list of categories. It distinguishes from siblings like 'get_news' by implying a broader market scope, but does not explicitly differentiate.
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 similar tools like 'get_news' or 'summarize_news'. The description only states what it does, not when 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.
get_market_summaryA
Get a snapshot of major world indices including NIFTY50, SENSEX, BANKNIFTY, S&P500, NASDAQ, DOW, FTSE, Nikkei, Hang Seng, and DAX. Optionally filter by region: India, US, UK, Japan, HongKong, Germany
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Filter by region: India, US, UK, Japan, HongKong, Germany (optional, returns all if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It clearly indicates that the tool returns a snapshot of indices and allows optional region filtering, which is sufficient for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The information is front-loaded and efficiently presented.
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 optional parameter and no output schema, the description adequately covers the tool's purpose and scope. It lists indices and valid regions, but does not mention the return format or data timeliness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already describes the region parameter with the same options listed in the description. The description does not add significant 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 explicitly states it provides a snapshot of major world indices and lists specific examples (e.g., NIFTY50, S&P500). This clearly distinguishes it from siblings like get_nse_indices or get_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 usage for obtaining an overview of major indices, but does not provide explicit guidance on when to use this tool versus alternatives 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.
get_newsA
Get latest news articles for a specific stock or ticker. Returns headlines, summaries, URLs, and publication timestamps. Covers US stocks, Indian companies (use their NSE symbol), global equities. Data from Finnhub (free tier).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days of news to fetch (1-30, default: 7) | |
| symbol | Yes | Stock ticker (e.g. AAPL, TCS, RELIANCE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions data source (Finnhub free tier) and return fields but lacks details on rate limits, error handling, or permission requirements. 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?
Three sentences with no fluff, each serving a purpose: purpose, return fields, and coverage/source. Could be slightly more compact but efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists return fields. Covers parameter details and data source. Missing error handling and ordering, but sufficient for a simple news 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 100%, so baseline is 3. The description adds context for 'symbol' (mentioning NSE for Indian stocks) but does not significantly enhance the schema's own 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?
The description uses specific verb 'get' with resource 'news articles' and states the tool returns headlines, summaries, URLs, and timestamps. It distinguishes from siblings like 'get_market_news' by focusing on a specific stock/ticker.
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 stock and covers US stocks, Indian NSE symbols, and global equities. It does not explicitly compare with sibling tools or state when not to use it, but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nse_corporate_actionsA
Get NSE India corporate actions including: - Dividends (ex-date, record date, amount) - Bonus issues (ratio) - Stock splits (ratio) - Rights issues - Board meeting dates - AGM / EGM notices Data sourced from NSE India JSON API with XML/RSS fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | NSE symbol (e.g. RELIANCE, INFY). Omit for all recent corporate actions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must cover behavior. It mentions data source and the types of actions included, but lacks details on rate limits, caching, error handling, or whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and uses a bullet-style list to present information efficiently. Every sentence adds value, though a clearer structure could improve readability.
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 one-parameter tool with no output schema, the description adequately explains the returned data types and source. It could mention pagination or time range, but overall it 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?
Schema coverage is 100% for the single parameter 'symbol'. The description adds the context that omitting symbol returns all recent actions, but this is already in the schema description. No additional parameter 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 verb 'Get' and the resource 'NSE India corporate actions', listing specific types like dividends, bonus issues, stock splits, etc. This distinguishes it from sibling tools such as get_nse_quote or get_nse_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 explicit guidance on when to use this tool vs. alternatives. Sibling tools like get_earnings or get_company_overview may overlap, but no exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nse_historicalA
Get NSE India End-of-Day (EOD) historical data from the official NSE Bhavcopy files (CSV/ZIP format). This fetches the official CM-UDiFF Bhavcopy archive from nsearchives.nseindia.com. Returns full EOD data for all ~2000 NSE equity stocks for a given date. If no symbol is provided, returns the full Bhavcopy for that date. Date format: YYYYMMDD (e.g. 20240115). Defaults to the last business day.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date in YYYYMMDD format. Defaults to last business day. | |
| symbol | No | NSE symbol to filter (e.g. RELIANCE, TCS). Omit for full Bhavcopy. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the data source (nsearchives.nseindia.com) and scope (~2000 stocks), but does not cover rate limits, error handling for invalid dates, or whether the response is parsed or raw. More behavioral details would improve 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 concise (5 sentences) and front-loaded with the core purpose. Every sentence adds necessary information 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?
Given no output schema, the description explains what data is returned (full EOD data for all stocks). It covers date handling and symbol omission. However, it does not specify the output format (CSV, ZIP, parsed JSON) which could impact tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are documented in the schema with 100% coverage. The description adds value by clarifying date format ('YYYYMMDD'), default behavior, and the effect of omitting symbol. This goes beyond the 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?
The description specifies the exact verb ('Get'), resource ('NSE India End-of-Day historical data'), and source ('official NSE Bhavcopy files'). It clearly distinguishes from siblings that may cover other exchanges or quote 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 explains when to use the tool (to fetch NSE EOD data) and provides usage details like date format and default behavior. However, it does not explicitly state when not to use it or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nse_indicesA
Get live data for all NSE India indices including: NIFTY 50, BANKNIFTY, NIFTY IT, NIFTY PHARMA, NIFTY AUTO, NIFTY FMCG, NIFTY MIDCAP 150, NIFTY SMALLCAP 250, NIFTY NEXT 50, INDIA VIX, and more. Returns open, high, low, last price, change, and advance/decline counts. Data from the official NSE India API.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter indices by name (e.g. "NIFTY", "BANK", "IT"). Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description acknowledges it provides live data from the official NSE API and lists return fields. However, it lacks details on rate limits, freshness, or error handling, but is sufficient for basic understanding.
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 a bullet list, highly concise and front-loaded. No extraneous information; every sentence is useful.
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 schema (one optional param, no output schema), the description is sufficiently complete. It clarifies return fields and data source, though it omits potential timeout or pagination 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?
Schema coverage is 100% with a single 'filter' parameter described as filtering by name. The description adds value by providing example filter values (e.g., 'NIFTY', 'BANK'), enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns live data for all NSE indices, lists specific index names, and specifies returned fields (open, high, low, etc.). This distinguishes it from sibling tools like get_nse_quote (single stock) or get_market_summary (broader market).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for accessing all indices or filtering by name, but it does not explicitly state when to use this over alternatives (e.g., get_nse_quote for a single stock) 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_nse_option_chainA
Get the full F&O option chain for NSE stocks and indices. Returns all strike prices with Call (CE) and Put (PE) data: - Open Interest and Change in OI - Implied Volatility - Last Traded Price, Bid/Ask - Volume Works for: NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY, and individual stocks. Data from the official NSE India API.
| Name | Required | Description | Default |
|---|---|---|---|
| expiry | No | Filter by expiry date (e.g. "30-Jan-2025"). Omit for all expiries. | |
| symbol | Yes | NSE F&O symbol (e.g. NIFTY, BANKNIFTY, RELIANCE, TCS) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It states the tool returns data from the official NSE India API and lists the returned fields. However, it does not disclose whether the tool is read-only, error handling, or rate limits. With no annotations, this is adequate but not fully 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?
The description is two concise paragraphs, front-loading the purpose and data fields. It avoids unnecessary words and is well-structured. Could be slightly more structured with bullet points for the data fields, but it is efficiently written.
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 does a good job listing the data fields and supported symbols. However, it does not explain the return structure (e.g., array of strike objects), pagination, or the behavior of the expiry parameter when omitted. There is room for more completeness given the complexity of option chains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds context about the output fields and valid symbols, which helps parameter understanding. However, it does not add extra detail beyond the schema for the parameters themselves, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the full F&O option chain for NSE stocks and indices, listing specific data fields and supported symbols. It distinguishes itself from sibling tools like get_nse_quote or get_market_summary by specifying the exact resource and verb.
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 what symbols work but does not explicitly guide when to use this tool vs alternatives. No mention of when not to use or comparison with similar tools like get_nse_quote. The context is implied but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nse_quoteA
Get live NSE India quote with exchange-specific data not available elsewhere: - VWAP (Volume Weighted Average Price) - Circuit breaker limits (Upper/Lower Circuit Price) - Delivery quantity and delivery-to-traded ratio - Face value and market lot Uses the official NSE India REST API (no API key required).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | NSE symbol (e.g. RELIANCE, TCS, INFY, HDFCBANK ā without .NS suffix) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses API source (official NSE India REST API) and authentication requirement (no API key). Does not mention rate limits, latency, or error handling, but covers key data fields and source adequately.
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: one sentence stating purpose, followed by bullet list of key data fields, then one sentence on API source. No wasted words, front-loaded with main action.
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 adequately covers purpose, available data fields, and source. Could mention output format or example response, but the listed fields give enough context for an 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?
Only one parameter (symbol) with schema description coverage 100%. Schema already explains that symbols are without .NS suffix and gives examples. Description adds no further parameter semantics beyond what schema provides, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get live NSE India quote' with resource 'NSE India exchange-specific data'. Lists distinct data fields (VWAP, circuit breakers, etc.) and explicitly distinguishes from other quote tools like get_quote and get_bse_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?
Specifies when to use: when exchange-specific data (VWAP, circuit limits, delivery ratio) is needed. Does not explicitly state when not to use or name alternatives, but the context of NSE-specific data implies its niche.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteA
Get live/delayed stock quote for any symbol worldwide. - US stocks: AAPL, TSLA, MSFT - NSE India: RELIANCE.NS, TCS.NS, INFY.NS - BSE India: TATASTEEL.BO, HDFCBANK.BO - Indices: ^NSEI (NIFTY), ^BSESN (SENSEX), ^GSPC (S&P 500)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol (e.g. RELIANCE.NS, AAPL, ^NSEI) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It mentions 'live/delayed' but fails to disclose rate limits, authentication needs, error handling for invalid symbols, or whether the data is real-time or delayed by default. 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 is concise, using bullet points for examples and avoiding unnecessary words. Every sentence provides useful information, and the structure is front-loaded with 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?
For a simple tool with one parameter and no output schema, the description covers the main function and input formatting. It lacks error handling details or performance notes, but overall it is adequately complete for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter. The description adds substantial value by providing concrete symbol examples and format rules (e.g., .NS suffix for NSE, ^ for indices), which helps the agent construct valid inputs beyond the schema's generic 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 the tool retrieves live/delayed stock quotes for any symbol worldwide. It lists examples for US stocks, NSE India, BSE India, and indices, effectively distinguishing from sibling tools like get_bse_quote and get_nse_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 this tool is for general quotes via examples, but it does not explicitly state when to use this versus siblings like get_crypto_quote or get_forex. No exclusions or alternative guidance is provided, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_performanceA
Get real-time performance of US market sectors. Returns percentage change for sectors like Technology, Financials, Energy, Healthcare, Consumer Discretionary, Industrials, Materials, Real Estate, Utilities, Communication Services. Data from Alpha Vantage Sector Performance API.
| 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 bears the full burden. It describes the output as percentage change from an API but doesn't mention update frequency, limits, or error handling. For a simple read-only tool with no parameters, this is minimally 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?
Three sentences: first states purpose, second lists sectors, third cites data source. No redundancy, front-loaded with key 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?
With no parameters, no output schema, and no annotations, the description covers the essential purpose and output. It could mention the data source reliability or refresh rate, but for a simple sector performance tool, 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?
The tool has zero parameters, and schema coverage is 100%. Per guidelines, baseline is 4. Description adds no extra parameter info, 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 returns real-time performance of US market sectors, listing specific sectors like Technology and Energy. It distinguishes itself from sibling tools that focus on individual stocks, earnings, or other specific 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 explicit guidance on when to use or alternatives, but the context is clear: for sector-level performance. The sibling tools cover different areas, so usage is implicit but lacks explicit when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_insightA
Full AI analysis combining price data, fundamentals, recent news, and technical indicators. Returns: sentiment, signal (Buy/Hold/Sell), key positives, key risks, target range. Best tool for a comprehensive view of any stock. Uses Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol (e.g. RELIANCE.NS, AAPL, TCS.NS) |
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 discloses the use of Groq with NVIDIA NIM fallback, which adds transparency about dependencies. However, it does not mention data freshness, limitations, or any behavioral traits like rate limits or required permissions, leaving some 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 four sentences that efficiently convey the tool's function, output, use case, and technology. Every sentence adds value without redundancy, making it concise and well-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 low complexity (single parameter, no nested objects, no output schema, no annotations), the description covers all key aspects: what it does, what it returns, when to use it, and the underlying technology. It fully compensates for the absence of an output schema by listing return fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for the only parameter 'symbol,' which matches the tool description. The description does not add new meaning beyond what the schema already provides, so it meets the baseline for high 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 provides a full AI analysis combining price, fundamentals, news, and technical indicators, listing specific return fields. It distinguishes itself from specialized sibling tools like get_technical_indicators and get_news by emphasizing it as the 'best tool for a comprehensive view.'
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 explicitly says 'Best tool for a comprehensive view of any stock,' providing clear guidance on when to use it. However, it does not explicitly state when not to use it or list alternatives for specific needs, though the sibling context implies those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_indicatorsA
Calculate technical indicators for any stock. Available indicators: - RSI: Relative Strength Index (overbought >70, oversold <30) - MACD: Moving Average Convergence Divergence (trend/momentum) - SMA: Simple Moving Average - EMA: Exponential Moving Average - BBANDS: Bollinger Bands (volatility bands) - STOCH: Stochastic Oscillator - ADX: Average Directional Index (trend strength) - CCI: Commodity Channel Index - AROON: Aroon Indicator (trend direction) - OBV: On-Balance Volume
Note: Uses Alpha Vantage (25 req/day free limit). Choose indicators wisely.| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker (e.g. AAPL, RELIANCE.NS ā use without .NS for AV) | |
| interval | No | Time interval (default: daily) | daily |
| indicator | Yes | Technical indicator to calculate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It reveals the data source (Alpha Vantage) and rate limits, but lacks details on error handling, caching, required authentication, or response format. The indicator thresholds are helpful but not tool 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 structured as a bulleted list with brief explanations per indicator, plus a note on rate limits. It is relatively concise with no extraneous content, though the indicator list is lengthy.
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?
Despite good schema coverage, the description fails to explain what the output contains (e.g., numeric values, timestamps). Without an output schema, this is a significant gap. Also, it does not mention that some indicators may require additional parameters (e.g., period) not in 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?
Schema description coverage is 100%, but the description adds significant value by explaining each indicator's purpose and typical thresholds (e.g., RSI overbought/oversold), which is not in the schema. This helps an agent choose the right indicator.
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 calculates technical indicators for any stock, lists all 10 indicators with concise explanations, and is easily distinguishable from sibling tools that focus on earnings, sentiment, or market 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?
The description mentions the Alpha Vantage rate limit (25 req/day) and advises choosing indicators wisely, but does not explicitly state when to use this tool over alternatives like 'explain_indicator' or 'get_stock_insight', nor 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.
get_trade_signalB
AI-generated trade signal based on technical analysis + fundamentals. Returns: Buy/Hold/Sell signal with confidence %, support/resistance levels, stop loss, target. NOT financial advice ā for educational and analytical purposes only. Uses Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol (e.g. NIFTY, BANKNIFTY, AAPL, RELIANCE.NS) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses AI model (Groq with NVIDIA NIM fallback) and that it is not financial advice. However, no operational details like latency, rate limits, or error handling are provided. Without annotations, the description partially covers behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences that front-load purpose and return fields. 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 low complexity (1 param, no output schema), the description explains what is returned and the model used. However, it lacks details on the format of levels and confidence, and no error handling notes.
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 (symbol) with full schema coverage (100%). The description does not add additional meaning beyond the schema's example list.
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 Buy/Hold/Sell signal with confidence and levels. It is unambiguous but does not explicitly differentiate from sibling tools like get_technical_indicators.
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 disclaimer 'for educational and analytical purposes only' is not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_python_analysisA
Execute dynamic Python code for financial analysis, quantitative backtesting, calculations, or generating charts/plots. The code will be executed in a dedicated 'analysis' folder inside the project. Standard libraries like pandas, numpy, and matplotlib are fully supported. Any files generated (such as PNG charts or CSV files) will be saved in the 'analysis' folder.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The Python code to execute. Can write files (e.g. plt.savefig("plot.png")) in the current working directory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses execution in a dedicated folder, standard library support, and file-saving capability. However, it omits the return value (e.g., stdout/stderr), error handling behavior, and security restrictions (e.g., no network access, time limits). These are critical for a code execution 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?
Four short sentences, all essential. Front-loaded with purpose, followed by operational details. No redundant or irrelevant information. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains execution context and file output, but given no output schema or annotations, it should also describe the tool's return value (e.g., execution result, errors) and limitations. This gap makes it incomplete for agents to use reliably without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description says the code can write files in cwd. The tool description adds that execution happens in the 'analysis' folder and lists supported libraries, which is valuable context beyond the schema. Score above baseline 3 due to added 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 clearly states it executes dynamic Python code for financial analysis, quantitative backtesting, calculations, and generating charts/plots. This distinguishes it from all sibling tools, which are specific data retrieval or analysis functions. The verb 'execute' and resource 'Python code for financial analysis' are specific and 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 for custom analysis, backtesting, or charting not covered by other tools. It lists supported libraries and the execution folder. However, it does not explicitly state when NOT to use it (e.g., for simple data retrieval) or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_symbolA
Search for stock symbols by company name or keyword. Returns matching symbols with exchange and type information. Useful for finding: - Indian companies (e.g. search "Reliance" ā RELIANCE.NS, RELIANCE.BO) - US companies (e.g. search "Apple" ā AAPL) - ETFs, mutual funds, indices Combines results from Yahoo Finance and Finnhub.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company name or keyword to search (e.g. "Reliance", "HDFC Bank", "Apple") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions that results include exchange and type information and that it combines data from Yahoo Finance and Finnhub. However, it omits details on rate limits, authentication, or potential delays.
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 (4 sentences) and well-structured. It front-loads the action and uses bullet points for examples, avoiding 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 tool's simplicity (one parameter, no output schema, no annotations), the description is fairly complete. It explains the return type and data sources. Minor missing details like result limits or pagination would improve 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?
The input schema covers 100% of the parameters, with a clear description for 'query'. The tool description adds value through concrete examples and context on what to search for, enhancing understanding 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's purpose: search for stock symbols by company name or keyword. It provides specific examples for Indian and US companies, ETFs, mutual funds, and indices, making it distinct from sibling tools like search_web or market data tools.
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 by showing examples for different markets (Indian, US) and asset types (stocks, ETFs, funds). However, it does not explicitly state when not to use this tool or contrast with alternatives like search_web.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_webB
Perform a financial or general web search using the Tavily search engine. Optimized for LLM context, returning concise and relevant web snippets. Useful for looking up: - Real-time stock news and breaking corporate announcements - Earnings releases, financial consensus, and company reports - Macroeconomic events, interest rate decisions, and policy updates
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query (e.g. "Reliance Q3 results 2026", "NVDA stock surge reason today") | |
| max_results | No | Maximum number of results to return (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It mentions optimization for LLM context and returning snippets, but lacks details on limitations, rate limits, or output 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?
The description is concise, with a few sentences and bullet points. It front-loads the primary function and covers key use cases without unnecessary details.
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 parameter set and no output schema, the description adequately covers the tool's purpose and usage. Adding note about result 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?
Schema coverage is 100%, so the description adds value by providing example queries for the 'query' parameter and stating the default for 'max_results'. However, it doesn't elaborate beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs financial/general web search using Tavily, with specific use cases listed. It distinguishes from sibling tools by implying a broader scope, but doesn't explicitly differentiate from specific news or quote tools.
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 useful scenarios but provides no explicit guidance on when not to use it or what alternatives exist among sibling tools. The context is implied but not directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_newsA
AI-powered concise briefing of the latest news for a stock. Returns: overall sentiment, key themes, narrative summary, upcoming catalysts, risk events. Uses Groq (LLaMA 3.3-70B) with NVIDIA NIM fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days of news to summarize (default: 7) | |
| symbol | Yes | Stock symbol (e.g. TSLA, INFY, WIPRO) |
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 discloses the AI model used (Groq/LLaMA with NVIDIA NIM fallback) and lists the return fields. However, it does not mention potential limitations like hallucination risk, cost, or rate limits, which would improve 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 three sentences: first states purpose, second lists returns, third mentions tech stack. It is concise and front-loaded, but could be more structured (e.g., bullet points for return fields improve scannability).
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 two-parameter tool with no output schema, the description adequately explains what the tool does and returns. It covers the AI model, input parameters, and output fields. Missing details like error handling or behavior on invalid symbols, but complete enough for an agent to 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 description coverage is 100%, so the schema already documents both parameters. The description adds minimal extra meaningāonly example symbols in parentheses and a default value mention. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'AI-powered concise briefing of the latest news for a stock.' It lists specific return fields (sentiment, themes, narrative, catalysts, risks), and distinguishes from sibling tools like get_news (which likely returns raw news) and get_market_news (broader market 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?
The description implies usage for stock news summarization but provides no explicit guidance on when to use this tool versus alternatives such as get_news or get_market_news. 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.
TDQS
Multiple analysis tools (e.g., analyze_earnings, analyze_sentiment, get_stock_insight, get_trade_signal) have overlapping purposes, and there are several quote/quote-like tools (get_quote, get_bse_quote, get_nse_quote, get_crypto_quote). While descriptions help differentiate, the boundaries are not always clear, especially between AI analysis tools.
Most tools follow a clear verb_noun pattern (e.g., analyze_earnings, get_quote, search_symbol). However, there is slight inconsistency with different prefixes for quote tools (get_bse_quote, get_nse_quote, get_quote) and one tool (run_python_analysis) that deviates from the pattern.
With 29 tools, the server covers a broad range of financial data and analysis needs. While slightly high, each tool serves a distinct purpose and the count is justified for the scope (US/Indian markets, fundamentals, technicals, news, AI analysis).
The tool set is extremely comprehensive, covering quotes, fundamentals, technical indicators, options, news, corporate actions, historical data, AI analysis, and even web search and Python execution. It supports both US and Indian markets, crypto, forex, and indices, leaving few gaps for an analysis-focused MCP.
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
MCP server for stocksense-ai documentation, generated by doc2mcp.
MCP server giving AI agents one-connection access to China A-share market intelligence: financials,
MCP server for OpenMM ā exposes market data, account, trading, and strategy tools to AI agents
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that provides comprehensive financial insights and analysis by leveraging real-time market data, news, and advanced analytics for stocks, options, financial statements, and economic indicators.1751PythonMIT
- -licenseNot gradedqualityNot gradedmaintenanceReal-time financial market data MCP server. Stocks, crypto, technicals, sentiment, FDA calendar. No API keys required.
- 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
- AlicenseAqualityCmaintenanceComprehensive MCP server for real-time stock, cryptocurrency, options, and fundamental analysis, including SEC filings and insider trading data.2628MIT
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/Techie03/trade-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server