Skip to main content
Glama
tynorn1

Indian Stock Analysis MCP Server

by tynorn1

Indian Stock Analysis MCP Server

A comprehensive Model Context Protocol (MCP) server for analyzing Indian stocks listed on BSE and NSE exchanges. Built with FastMCP and powered by Yahoo Finance API.

Features

  • Real-time Stock Data: Current prices, daily changes, volume, and market cap

  • Fundamental Analysis: P/E ratios, ROE, debt-to-equity, and other key metrics

  • Historical Data: OHLC data for technical analysis across multiple timeframes

  • Stock Discovery: Search Indian stocks by company name or ticker symbol

  • Market Overview: NIFTY 50, SENSEX, and other major Indian indices

  • News Integration: Recent news articles for sentiment analysis (handled by LLM)

  • Market Status: Real-time market hours and trading status

  • Indian Market Optimized: Specialized for NSE (.NS) and BSE (.BO) exchanges

Related MCP server: IndiaQuant MCP Server

Prerequisites

  • Python 3.13 or higher

  • uv (recommended package manager)

  • Claude Desktop (for MCP integration)

Installation

1. Clone the Repository

git clone <repository-url>
cd stock-analysis-mcp

2. Install Dependencies

# Using uv (recommended)
uv sync

# Or using pip
pip install -e .

3. Verify Installation

uv run python -c "import server; print('MCP server installed successfully')"

Claude Desktop Configuration

1. Locate Configuration File

Find your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

2. Add MCP Server Configuration

{
  "mcpServers": {
    "indian-stock-analysis": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/stock-analysis-mcp",
        "run",
        "server.py"
      ]
    }
  }
}

Important: Replace /ABSOLUTE/PATH/TO/stock-analysis-mcp with the actual absolute path to your project directory.

3. Restart Claude Desktop

Completely quit and restart Claude Desktop to load the new MCP server.

4. Verify Connection

Look for the tools icon in Claude Desktop. You should see the Indian stock analysis tools available.

Available Tools

1. stock_quote

Get current stock price and basic trading information.

Parameters:

  • ticker (required): Indian stock ticker symbol (e.g., "RELIANCE", "TCS", "INFY")

Example Usage:

What's the current price of Reliance Industries?
Show me the stock quote for TCS

Sample Output:

Current Stock Quote for RELIANCE (NSE):

Price Information:
* Current Price: ₹2,845.50
* Daily Change: +1.2% (₹33.80)
* Day's Range: ₹2,812.00 - ₹2,855.90
* Opening Price: ₹2,815.00
* Previous Close: ₹2,811.70

Trading Data:
* Volume: 15,234,567
* Market Cap: ₹19,82,123 Cr
* Currency: INR

2. company_fundamentals

Get comprehensive fundamental analysis data for a company.

Parameters:

  • ticker (required): Indian stock ticker symbol

Example Usage:

Show me the fundamentals for Infosys
What are the financial metrics for HDFC Bank?

Sample Output:

Fundamental Analysis for INFOSYS LTD (INFY):

Company Information:
* Name: Infosys Limited
* Sector: Technology
* Industry: IT Services
* Exchange: NSE
* Website: https://www.infosys.com

Valuation Metrics:
* P/E Ratio: 28.5
* P/B Ratio: 8.2
* Market Cap: ₹6,45,789 Cr

Financial Metrics:
* EPS: ₹68.5
* ROE: 29.8%
* Dividend Yield: 2.1%

3. stock_news

Get recent news articles for a specific stock.

Parameters:

  • ticker (required): Indian stock ticker symbol

  • limit (optional): Maximum number of articles (default: 5)

Example Usage:

Show me recent news about Tata Motors
What are the latest news articles for ICICI Bank?

4. search_indian_stocks

Search for Indian stocks by company name or ticker symbol.

Parameters:

  • query (required): Search query - company name or partial ticker

  • limit (optional): Maximum number of results (default: 10)

Example Usage:

Search for banking stocks
Find companies with "tata" in the name

5. market_overview

Get current Indian market indices and sector performance.

Example Usage:

What's the current market overview?
Show me NIFTY and SENSEX performance

Sample Output:

Indian Market Overview:

Market Indices:
* NIFTY 50: ₹21,834.25 (+0.8%)
* SENSEX: ₹72,156.85 (+0.6%)
* NIFTY BANK: ₹46,789.30 (+1.2%)
* NIFTY IT: ₹29,456.20 (-0.3%)

Market Status: Open
Market is currently open for trading
Current Time: 2024-01-15 14:30:25 IST

Available Resources

1. indian-stock://market-status

Current Indian market status and trading hours.

Access through: MCP client resource interface

2. indian-stock://popular-stocks

List of frequently analyzed Indian stocks with basic information.

Access through: MCP client resource interface

Usage Examples

Portfolio Analysis Workflow

User: "Show me fundamentals of Reliance Industries"
[Uses company_fundamentals tool]

User: "What's current market status?"
[Uses market_overview tool]

User: "Get recent news about Reliance"
[Uses stock_news tool]

User: "How has Reliance performed technically over the past 6 months?"
[Uses technical_analysis tool]

Stock Discovery Workflow

User: "Search for technology companies"
[Uses search_indian_stocks tool]

User: "Show me the current price of TCS"
[Uses stock_quote tool]

User: "What are TCS's financial metrics?"
[Uses company_fundamentals tool]

Market Research Workflow

User: "What's today's market overview?"
[Uses market_overview tool]

User: "Find banking stocks with good fundamentals"
[Uses search_indian_stocks tool + company_fundamentals tool]

User: "Show me technical analysis for top performers"
[Uses technical_analysis tool]

Development

Project Structure

stock-analysis-mcp/
├── server.py              # Main MCP server with FastMCP tools
├── stock_analyzer.py      # Core data fetching and processing
├── pyproject.toml         # Project configuration and dependencies
├── main.py               # Entry point
└── README.md             # This file

Code Quality

  • Uses ruff for linting and code formatting

  • Follows Python type hints and async/await patterns

  • Comprehensive error handling

  • Structured logging to stderr (MCP-safe)

Running the Server Locally

# Start the MCP server
uv run python server.py

# The server will listen for JSON-RPC messages on stdin/stdout

Adding New Tools

  1. Add the data fetching function to stock_analyzer.py

  2. Create the tool function in server.py with @mcp.tool() decorator

  3. Follow the existing patterns for error handling and return formatting

Troubleshooting

Common Issues

Server not showing up in Claude Desktop

  • Verify the absolute path in claude_desktop_config.json

  • Completely quit and restart Claude Desktop

  • Check that dependencies are installed: uv sync

No data found for a ticker

  • Ensure the ticker is valid (try with .NS or .BO suffix)

  • Check if the market is open

  • Verify the stock is listed on NSE or BSE

Error fetching data

  • Check network connection

  • Yahoo Finance API may have rate limits

  • Try again after a few minutes

Market Timing Considerations

  • Market Hours: 9:15 AM - 3:30 PM IST, Monday to Friday

  • Pre-market: Data may be limited before 9:15 AM

  • Weekends: No real-time data available

  • Holidays: Indian market holidays affect data availability

Data Limitations

  • Real-time data is subject to Yahoo Finance API limitations

  • Some fundamental data may not be available for all stocks

  • Historical data accuracy depends on Yahoo Finance data quality

  • News article availability varies by stock and source

Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature-name

  3. Make your changes and ensure they pass linting: uv run ruff check .

  4. Commit your changes: git commit -m "feat: add new feature"

  5. Push to the branch: git push origin feature-name

  6. Open a pull request

Support

For issues and questions:

  • Check the troubleshooting section above

  • Open an issue on the repository

  • Review the MCP documentation for Claude Desktop integration


Disclaimer: This tool provides financial information for educational purposes only. Not financial advice. Always consult with qualified financial professionals before making investment decisions.

Available Tools

13 tools
analyst_recommendationsA

Get analyst recommendations and price targets for an Indian stock.

Provides professional market sentiment including:

  • Current analyst consensus (Buy/Sell/Hold)

  • Price targets and upside potential

  • Number of analysts covering the stock

  • Recent recommendation changes

Args: ticker: Indian stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY')

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys a read-only operation through 'Get' and enumerates the returned data categories. However, it does not mention data source, freshness, coverage limitations, or potential errors, which are meaningful gaps for a market-data tool.

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

Conciseness5/5

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

The description is well-structured: a clear one-line purpose, a concise bullet list of outputs, and a dedicated parameter explanation. No sentence is wasted, and the most important information is front-loaded.

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

Completeness4/5

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

For a low-complexity tool with one parameter and an output schema, the description is largely complete. It covers what the tool does, what data it returns, and how to specify the ticker. It lacks explicit alternative routing and behavioral caveats, but these are not critical for basic invocation.

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

Parameters4/5

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

Schema description coverage is 0%, but the description compensates with an Args section defining ticker as an 'Indian stock ticker symbol' and providing examples. This adds meaning beyond the bare schema property. It could be more precise about exchange suffixes or case, but it is sufficient for correct invocation.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Get analyst recommendations and price targets for an Indian stock.' It also lists concrete output categories (consensus, price targets, analyst count, recent changes), making the tool's function clear. It does not explicitly differentiate from sibling tools, but the domain is distinct enough to avoid major confusion.

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

Usage Guidelines4/5

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

The description clearly states the context: use it for analyst sentiment and price targets on Indian stocks. It provides example tickers and implies the tool is appropriate when professional market sentiment is needed. It does not mention alternatives or exclusions, but the usage context is clear.

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

arima_model_diagnosticsA

Perform comprehensive diagnostics on trained ARIMA model.

Provides:

  • Residual analysis with ACF/PACF plots

  • Normality tests and QQ plots

  • Ljung-Box test for autocorrelation

  • Model adequacy checks and recommendations

  • Visual diagnostic charts

Args: ticker: Stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY') period: Time period for analysis ('1mo', '3mo', '6mo', '1y', '2y', '5y') transform: Data transformation type ("log", "boxcox", or None for no transformation)

Returns: List containing text analysis and ImageContent with diagnostic plots

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo1y
tickerYes
transformNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden and does a solid job: it enumerates the diagnostic tests performed and states the return format as 'text analysis and ImageContent with diagnostic plots.' It does not fully clarify whether the tool trains the model internally or requires a previously trained model, but the core behavior is well disclosed.

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

Conciseness5/5

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

The description is well-structured with a one-line purpose, a 'Provides' bullet list, an Args section, and a Returns section. It is front-loaded and every section earns its place without unnecessary verbosity.

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

Completeness3/5

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

The description covers parameters and return values, but it leaves a notable gap: it does not explain the relationship to train_arima_model or whether the user must train a model first. Since there is no output schema and no annotations, this ambiguity about the model prerequisite makes the definition incomplete for confident invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does. It explains all three parameters with concrete examples: ticker symbols, allowed period values, and transform options including None. This adds meaning well beyond the bare input schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Perform comprehensive diagnostics on trained ARIMA model.' The bullet list of tests (residual analysis, normality tests, Ljung-Box, adequacy checks) clearly distinguishes it from siblings like train_arima_model and forecast_arima_model.

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

Usage Guidelines3/5

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

The phrase 'on trained ARIMA model' implies the tool is used after model training, and the diagnostics content suggests it is not for forecasting or training. However, it never explicitly says when to use it versus train_arima_model or forecast_arima_model, nor does it state any exclusions.

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

company_fundamentalsB

Get fundamental analysis data for an Indian company.

Args: ticker: Indian stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY')

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Get', which implies read-only, but it does not explicitly state that no data is modified, nor does it mention data source, coverage, rate limits, or any other behavioral traits. It adds minimal context beyond the operation itself.

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

Conciseness5/5

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

The description is two sentences with no filler, and the purpose is front-loaded. The Args line is structurally redundant with the schema but earns its place by adding Indian-market context and examples that the schema lacks.

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

Completeness3/5

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

For a one-parameter tool with an output schema, the core call contract is present: the purpose is clear and the ticker parameter is well illustrated. However, the absence of usage routing and explicit behavioral disclosure leaves the description adequate but not fully complete.

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

Parameters4/5

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

The schema provides 0% description coverage and only names the property 'ticker'. The description compensates by specifying 'Indian stock ticker symbol' and giving concrete examples like 'RELIANCE', 'TCS', and 'INFY', which is exactly the practical guidance an agent needs to supply the parameter correctly.

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

Purpose4/5

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

The description clearly states a specific verb ('Get') and resource ('fundamental analysis data'), and the phrase 'fundamental analysis' helps differentiate it from siblings like technical_analysis and stock_quote. It does not enumerate what specific fundamentals are included, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as technical_analysis, analyst_recommendations, or stock_quote. No context is given about whether this is for long-term investing, what data it covers, or when a sibling would be more appropriate.

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

forecast_arima_modelA

Generate ARIMA model forecasts with confidence intervals and validation.

Provides:

  • Multi-period forecasting with confidence bands

  • Model validation and quality checks

  • Visual forecast charts with historical data

  • Performance metrics and accuracy indicators

  • Error handling with fallback strategies

Args: ticker: Stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY') periods: Number of periods to forecast (default: 20 trading days) confidence: Confidence interval level (0.8-0.99, default: 0.95) p: AR order (None for auto-selection) d: Differencing order (default 1 for stock prices) q: MA order (None for auto-selection) auto_select: Use pmdarima auto_arima for parameter selection (True) or manual (False) lags: Number of lags for analysis (default 40, used for fallback ACF/PACF) period: Time period for training data ('1mo', '3mo', '6mo', '1y', '2y', '5y') transform: Data transformation type ("log", "boxcox", or None for no transformation)

Returns: List containing text analysis and ImageContent with forecast plot

ParametersJSON Schema
NameRequiredDescriptionDefault
dNo
pNo
qNo
lagsNo
periodNo1y
tickerYes
periodsNo
transformNo
confidenceNo
auto_selectNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does this well by stating that the tool returns a list containing text analysis and an ImageContent plot, includes validation and quality checks, and has error handling with fallback strategies. It stops short of detailing what those fallback strategies are or how validation behaves, but the disclosed behavior is substantial and useful.

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

Conciseness4/5

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

The description is well-structured with a purpose statement, a bulleted feature list, an Args section, and a Returns section. It is longer than minimal, but the length is justified by the need to document 10 parameters. Minor redundancy exists between 'Model validation and quality checks' and 'Performance metrics and accuracy indicators,' but overall it is organized and front-loaded.

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

Completeness4/5

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

For a complex tool with 10 parameters, no annotations, and no output schema, the description is largely complete: it documents all parameters, explains the return format, and mentions error handling. It could be improved by clarifying prerequisites like data availability or how to interpret the returned metrics, but nothing essential for invoking the tool correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. It does so thoroughly: every parameter is explained with defaults, ranges, examples, and options (e.g., confidence 0.8-0.99, period choices like '1mo'/'1y', transform types). This adds significant meaning beyond the bare schema definitions.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Generate ARIMA model forecasts with confidence intervals and validation.' It clearly distinguishes this tool from siblings like forecast_prophet_model by naming ARIMA as the modeling approach, and from train_arima_model/arima_model_diagnostics by emphasizing forecasting output rather than training or diagnostics.

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

Usage Guidelines2/5

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

The description explains what the tool does but provides no explicit guidance on when to choose it over alternatives such as forecast_prophet_model, train_arima_model, or arima_model_diagnostics. There are no stated exclusions or conditions that would route an agent to a sibling tool, leaving the selection decision to inference.

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

forecast_prophet_modelA

Train Prophet model and generate forecasts with confidence intervals.

Provides:

  • Automatic seasonality detection (yearly, weekly patterns)

  • Trend changepoint identification

  • Holiday effects support (Indian market holidays)

  • Component decomposition (trend + seasonality)

  • Multi-period forecasting with confidence bands

  • Model validation and quality checks

  • Visual forecast charts with historical data

Args: ticker: Stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY') periods: Number of periods to forecast (default: 20 trading days) confidence: Confidence interval level (0.8-0.99, default: 0.95) period: Time period for training data ('1mo', '3mo', '6mo', '1y', '2y', '5y') yearly_seasonality: Enable yearly seasonality (default True) weekly_seasonality: Enable weekly seasonality (default True) seasonality_mode: 'additive' or 'multiplicative' (default 'additive') changepoint_prior_scale: Flexibility of trend changes (default 0.05) seasonality_prior_scale: Flexibility of seasonality (default 10.0) holidays_prior_scale: Flexibility of holiday effects (default 10.0) validation_split: Train-validation split ratio (default 0.2) include_holidays: Include Indian market holidays (default False)

Returns: List containing text analysis and ImageContent with forecast plot

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo1y
tickerYes
periodsNo
confidenceNo
include_holidaysNo
seasonality_modeNoadditive
validation_splitNo
weekly_seasonalityNo
yearly_seasonalityNo
holidays_prior_scaleNo
changepoint_prior_scaleNo
seasonality_prior_scaleNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses automatic seasonality detection, changepoint identification, holiday support, validation checks, and the return format of text analysis plus an ImageContent forecast plot. It does not cover potential errors or data requirements, but the core behavior is clearly described.

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

Conciseness4/5

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

The description is well-organized with an intro, feature bullets, Args, and Returns. It is longer than necessary due to the 12 parameters, but each section serves a purpose and the main purpose is front-loaded.

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

Completeness4/5

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

For a 12-parameter tool with no annotations and no output schema, the description is quite complete: it covers all parameters, defaults, and return content. It could add example usage or explicit guidance on when Prophet is preferred over ARIMA, but an agent can invoke the tool correctly with the provided information.

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

Parameters5/5

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

Schema description coverage is 0%, but the description lists all 12 parameters with meaningful explanations and defaults, such as 'Number of periods to forecast', 'Time period for training data', and 'Flexibility of trend changes'. This fully compensates for the schema's lack of descriptions.

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

Purpose5/5

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

The opening sentence states a specific verb and resource: 'Train Prophet model and generate forecasts with confidence intervals.' This clearly distinguishes it from sibling ARIMA tools by naming Prophet explicitly and describing the forecasting output.

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

Usage Guidelines3/5

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

The description implies use for Prophet-based forecasting with features like seasonality, holidays, and confidence bands, but it never explicitly states when to choose this over train_arima_model or forecast_arima_model. No alternatives or exclusions are mentioned.

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

market_overviewA

Get current Indian market indices and sector performance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. 'Get' indicates a read operation and 'current' suggests freshness, but it does not disclose potential delays, data source limitations, or whether any side effects exist. This is adequate for a simple read-only overview but not richly transparent.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word adds meaning, and it is appropriately sized for a zero-parameter tool.

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

Completeness4/5

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

Given the zero-parameter input and the presence of an output schema, the description is nearly complete. It identifies the domain (Indian market), the scope (indices and sector performance), and the temporal nature (current). It does not enumerate which indices or sectors, but the output schema likely covers that.

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

Parameters4/5

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

The tool has zero parameters, so there is no parameter ambiguity. The baseline of 4 applies because there is nothing for the description to clarify beyond the empty schema.

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

Purpose4/5

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

The description clearly states a specific action ('Get') and resource ('current Indian market indices and sector performance'). It is distinct from the stock-specific sibling tools, though it does not explicitly name or contrast them.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description implies it is for market-level data, but it does not state exclusions or mention that stock-specific tools should be used for individual securities.

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

search_indian_stocksA

Search for Indian stocks by company name or ticker symbol.

Args: query: Search query - company name or partial ticker symbol limit: Maximum number of results to return (default: 10)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose that matching supports partial ticker symbols and that limit controls result count, which is useful. However, it does not mention result ordering, empty-result behavior, or any other runtime characteristics beyond the basic search semantics.

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

Conciseness5/5

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

The description is compact and well-structured: a one-sentence purpose statement followed by concise parameter documentation. Every sentence earns its place, and the most important information is front-loaded.

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

Completeness4/5

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

For a simple two-parameter search tool with an output schema, the description covers the essential purpose and parameter semantics. It does not discuss trade-offs versus sibling tools, but that gap is already reflected in the usage guidelines score. Overall, an agent has enough information to invoke the tool correctly.

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

Parameters5/5

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

Schema description coverage is 0%, but the Args section fully compensates by explaining both parameters: query accepts a company name or partial ticker symbol, and limit caps the number of results with a default of 10. This adds real meaning beyond the bare schema titles.

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

Purpose5/5

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

The description states a specific verb ('Search'), a clear resource ('Indian stocks'), and the two search dimensions (company name or partial ticker symbol). This makes the tool's purpose immediately distinct from siblings like stock_quote, which returns a specific quote, and market_overview, which provides a broader market snapshot.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: when you need to find Indian stocks by company name or partial ticker symbol. It does not explicitly mention alternatives or exclusions, but the intended use case is unambiguous and easy for an agent to act on.

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

stock_actionsA

Get corporate actions (dividends, stock splits) for an Indian stock.

Provides information about:

  • Recent dividend payments and yields

  • Dividend history and frequency

  • Stock split history and ratios

  • Dividend stability analysis

Args: ticker: Indian stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY')

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

Annotations are absent, so the description must carry the full burden of behavioral disclosure. It lists the types of information returned (dividends, splits, stability) but does not state whether the operation is read-only, whether authentication is required, any rate limits, or data freshness. For a retrieval tool this is a moderate gap.

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

Conciseness5/5

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

The description is compact and front-loaded with the main purpose, followed by a scannable bullet list of data categories, then an Args section. Every line adds information and there is no redundant filler.

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

Completeness3/5

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

The tool has a single required parameter, an output schema, and a clear purpose. The description covers the parameter and the data categories. However, it omits usage guidance and behavioral context (e.g., data freshness, read-only nature), which are important when no annotations are present. Overall it is mostly complete but has clear gaps.

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

Parameters4/5

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

The schema provides no description for the ticker parameter (0% coverage). The description compensates by defining it as an 'Indian stock ticker symbol' and providing examples ('RELIANCE', 'TCS', 'INFY'), giving the agent concrete usage guidance. It does not mention case sensitivity or exchange suffixes, but for a single parameter this is adequate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get corporate actions (dividends, stock splits) for an Indian stock.' The bullet list further specifies the scope (dividend payments, yields, history, splits, stability). This clearly distinguishes it from sibling tools like stock_quote or company_fundamentals by the unique resource it targets.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool instead of alternatives such as stock_quote or company_fundamentals. The description only states what it does, leaving the agent to infer usage. No exclusions, prerequisites, or conditions are mentioned.

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

stock_holdersA

Get major holders and institutional ownership information for an Indian stock.

Provides insights into:

  • Major shareholder categories and percentages

  • Top institutional holders and their positions

  • Insider ownership and trading activity

  • Ownership concentration analysis

Args: ticker: Indian stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY')

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It does communicate that the tool returns shareholder categories, institutional holders, insider ownership, and concentration analysis, which is useful. However, it does not mention data source, update frequency, limitations, or whether this is strictly a read-only operation beyond the word 'Get.'

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

Conciseness4/5

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

The description is concise and front-loaded with the core purpose, followed by a scannable bullet list of insights and a clear Args section. It avoids unnecessary fluff, though the bullet list could be slightly tighter without losing meaning.

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

Completeness3/5

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

The tool is simple with one documented parameter and an output schema, so return values do not need explanation. However, the description lacks usage guidance and behavioral context such as data source or limitations, leaving an agent to infer when and how reliably to use this tool relative to its siblings.

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

Parameters4/5

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

The input schema has 0% description coverage, but the description compensates by documenting the ticker parameter with an explicit definition ('Indian stock ticker symbol') and concrete examples ('RELIANCE', 'TCS', 'INFY'). For a single-parameter tool, this is sufficient guidance for correct invocation.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get major holders and institutional ownership information for an Indian stock.' The bullet list further clarifies the exact data categories, and this focus on ownership clearly distinguishes it from siblings like stock_quote, company_fundamentals, and analyst_recommendations.

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

Usage Guidelines3/5

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

The description implies the tool should be used when ownership or holder information is needed, but it does not explicitly state when to prefer this over alternatives like company_fundamentals or when not to use it. No exclusions or alternative routing are provided.

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

stock_newsA

Get recent news articles for a specific Indian stock.

Args: ticker: Indian stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY') limit: Maximum number of news articles to return (default: 5)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description carries the behavioral disclosure burden. It uses the read-only verb 'Get' and mentions 'recent' and a limit, which conveys basic behavior, but it does not disclose error handling, rate limits, or data source caveats. There is no contradiction, but the behavioral context is minimal.

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

Conciseness5/5

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

The description is a single purpose sentence followed by a compact Args list. Every line adds value, including examples and default behavior, with no redundant filler.

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

Completeness4/5

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

For a two-parameter read tool with an output schema, the description covers the essential invocation details: required ticker, optional limit, and default. It lacks usage guidance and edge-case behavior, but the core calling contract is complete.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates by explaining ticker as an Indian stock ticker symbol with concrete examples and defining limit as the maximum number of articles with its default. This adds meaningful semantics beyond the bare schema.

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

Purpose4/5

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

The description opens with 'Get recent news articles for a specific Indian stock,' which clearly identifies the verb, resource, and domain. It is distinguishable from sibling tools like technical_analysis and stock_quote, though it does not explicitly differentiate itself by name.

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

Usage Guidelines2/5

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

No guidance is provided about when to use stock_news versus alternatives such as market_overview or analyst_recommendations. The only implied context is 'specific Indian stock,' but there are no explicit use cases, exclusions, or alternative tool references.

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

stock_quoteC

Get current stock price and basic trading information for Indian stocks.

Args: ticker: Indian stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY')

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It does not mention whether the quote is real-time or delayed, which exchange or market hours apply, or how errors or unknown tickers are handled. The word 'current' is unqualified.

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

Conciseness5/5

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

The description is extremely concise and front-loaded, with no filler. The Args section repeats the schema but earns its place by adding concrete examples and clarifying the Indian-stock scope.

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

Completeness2/5

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

Although an output schema exists and the tool is simple, the description lacks usage guidance and behavioral caveats. An agent still does not know when to prefer this over sibling tools or what limitations apply, leaving meaningful gaps for a tool with no annotations.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning by defining ticker as an 'Indian stock ticker symbol' with examples like RELIANCE, TCS, and INFY. However, it omits format details such as exchange suffix, case sensitivity, or validation rules.

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

Purpose4/5

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

The description clearly states a specific verb and resource: 'Get current stock price and basic trading information for Indian stocks.' It distinguishes this quote-focused tool from analysis, forecasting, and fundamentals siblings, though 'basic trading information' is somewhat vague and it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus siblings like technical_analysis, company_fundamentals, or forecast_arima_model. The only implied usage is for current price lookups, but no exclusions or alternative routing are provided.

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

technical_analysisA

Get comprehensive technical analysis indicators for an Indian stock.

Provides key technical indicators including:

  • RSI (Relative Strength Index) for momentum

  • MACD (Moving Average Convergence Divergence) for trend signals

  • SMA/EMA (Simple/Exponential Moving Averages) for trend direction

  • Rate of Change for momentum analysis

  • Bollinger Bands for volatility and price position

Args: ticker: Indian stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY') period: Time period for analysis (1mo, 3mo, 6mo, 1y, 2y)

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo3mo
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does disclose the set of indicators returned and the Indian-stock scope, which is useful. However, it does not mention data source, limitations, or any special behavior such as how invalid tickers are handled or whether data is real-time or historical.

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

Conciseness4/5

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

The description is well-structured: purpose first, then a bulleted list of indicators, then parameter definitions. It is slightly longer than strictly necessary but every part adds useful information and the format is scannable.

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

Completeness4/5

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

For a two-parameter tool with an output schema present, the description covers the essential invocation details: what the tool returns and how to specify ticker and period. It lacks some behavioral context like data source or error behavior, but the core information an agent needs to call it correctly is present.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so well by explaining ticker with concrete examples ('RELIANCE', 'TCS', 'INFY') and listing valid period values ('1mo, 3mo, 6mo, 1y, 2y'). It does not explicitly mention the default period, but the schema already provides that.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get comprehensive technical analysis indicators for an Indian stock.' It then enumerates the exact indicators (RSI, MACD, SMA/EMA, ROC, Bollinger Bands), making its purpose unmistakable and clearly distinct from siblings like stock_quote or company_fundamentals.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: when technical indicators for an Indian stock are needed. It does not explicitly mention alternatives or exclusions, but the context is clear enough that an agent can route to it without confusion.

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

train_arima_modelA

Train ARIMA model with intelligent parameter selection using pmdarima auto_arima.

Provides:

  • Model training with automated ARIMA order selection via pmdarima

  • Data transformation support (log, Box-Cox) for improved normality

  • Performance metrics and validation on holdout set

  • Model persistence with caching capability

  • Error handling and graceful fallbacks

Args: ticker: Stock ticker symbol (e.g., 'RELIANCE', 'TCS', 'INFY') p: AR order (None for auto-selection) d: Differencing order (default 1 for stock prices) q: MA order (None for auto-selection) validation_split: Train-validation split ratio (default 0.2) auto_select: Use pmdarima auto_arima for parameter selection (True) or manual (False) lags: Number of lags for analysis (default 40, used for fallback ACF/PACF) period: Time period for training data ('1mo', '3mo', '6mo', '1y', '2y', '5y') transform: Data transformation type ("log", "boxcox", or None for no transformation)

Returns: List containing text analysis and ImageContent with training plot

ParametersJSON Schema
NameRequiredDescriptionDefault
dNo
pNo
qNo
lagsNo
periodNo1y
tickerYes
transformNo
auto_selectNo
validation_splitNo

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses auto-selection, data transformations, holdout validation, model persistence/caching, error handling/fallbacks, and the return format. Some details, such as what exactly gets cached or what fallbacks occur, remain vague, but the overall behavioral profile is well covered.

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

Conciseness4/5

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

The description is well-structured with a summary line, capability bullets, an Args list, and a Returns section, making it easy to scan. The first bullet partially repeats the opening sentence, but overall every section earns its place and the content is appropriately sized for a 9-parameter tool.

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

Completeness4/5

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

For a complex training tool with no annotations and no output schema, the description covers parameters, behavior, and return type sufficiently. It does not deeply explain how p/d/q interact with auto_select or what the validation metrics are, but an agent has enough context to invoke the tool correctly.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does by explaining all nine parameters with purpose and defaults. It clarifies auto_select, validation_split, lags, period, and transform beyond the raw schema. Minor ambiguity remains around p/q 'None for auto-selection' versus the schema defaults of 1.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Train ARIMA model with intelligent parameter selection using pmdarima auto_arima.' It clearly distinguishes itself from siblings like forecast_arima_model and arima_model_diagnostics by focusing on training, parameter selection, and validation.

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

Usage Guidelines3/5

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

The description makes it clear this tool is for training an ARIMA model, not forecasting or diagnostics, but it never explicitly names alternatives or states when not to use it. An agent must infer the appropriate use case from sibling tool names rather than being given direct routing guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv0.1.0
    • First observedanalyst_recommendations
    • First observedarima_model_diagnostics
    • First observedcompany_fundamentals
    • First observedforecast_arima_model
    • First observedforecast_prophet_model
    • First observedmarket_overview
    • First observedsearch_indian_stocks
    • First observedstock_actions
    • First observedstock_holders
    • First observedstock_news
    • First observedstock_quote
    • First observedtechnical_analysis
    • First observedtrain_arima_model

TDQS

A3.6/5.0

Scored across 13 tools

Disambiguation4/5

Tools are largely distinct, but forecast_arima_model and forecast_prophet_model overlap in purpose and output style, potentially confusing agents. Other tools like stock_quote vs market_overview and technical_analysis vs arima_model_diagnostics have clear boundaries.

Naming Consistency3/5

Naming conventions are mixed: some tools use stock_* prefixes, some use model-related prefixes like train_arima_model, and others are bare nouns like market_overview. While all are readable snake_case, the lack of a consistent prefix/verb pattern reduces predictability.

Tool Count5/5

With 13 tools, the count is within the ideal range and each tool serves a distinct analytical function, from market overview and fundamentals to ARIMA/Prophet forecasting and diagnostics. No tool feels redundant.

Completeness4/5

The toolkit covers a broad range of Indian stock analysis needs, but there is no direct tool for retrieving raw historical price data, which is a common prerequisite for custom analysis or model building. Otherwise, the surface is fairly comprehensive.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    Enables access to comprehensive Indian stock market data from the NSE and BSE, including historical statistics, corporate actions, and IPO information. It also provides tools for mutual fund searches, analyst recommendations, and tracking market-active or trending stocks.
    16
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time Indian stock market analysis, including live price tracking, technical indicators, and options Greeks calculations for NSE/BSE securities. It also enables news-based sentiment analysis, market scanning for NIFTY 50 stocks, and virtual portfolio management.
    -
  • F
    license
    A
    quality
    D
    maintenance
    Enables real-time and historical Indian stock market data retrieval, including prices, news, recommendations, and top gainers/losers.
    11
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables NSE stock market research with screening, quotes, peer comparison, watchlists, alerts, and strategies using natural language.
    -