Skip to main content
Glama
makiichikawa

stock-mcp-server

by makiichikawa

Stock MCP Server

A Model Context Protocol (MCP) server that provides real-time stock price information and profitability analysis using Yahoo Finance API.

Features

  • Get real-time stock prices for individual symbols

  • Fetch multiple stock prices at once

  • Comprehensive financial data and fundamental analysis

  • Profitability turnaround analysis - Identify stocks that have turned from loss to profit

  • Profit turnaround screening - Screen multiple stocks for recent profitability improvements

  • Returns comprehensive stock data including price, change, volume, and market cap

  • Built with TypeScript and Zod for type safety

Related MCP server: Financial Data MCP Server

Installation

npm install
npm run build

Usage

Development

npm run dev

Production

npm start

Tools Available

get_stock_price

Get real-time stock price information for a single stock symbol.

Parameters:

  • symbol (string): Stock symbol (e.g., "AAPL", "GOOGL", "TSLA")

get_multiple_stock_prices

Get real-time stock price information for multiple stock symbols.

Parameters:

  • symbols (array): Array of stock symbols (e.g., ["AAPL", "GOOGL", "TSLA"])

get_financial_data

Get comprehensive financial data and fundamental analysis metrics for a stock.

Parameters:

  • symbol (string): Stock symbol (e.g., "AAPL", "GOOGL", "TSLA")

analyze_profitability_turnaround

Analyze whether a stock has turned from loss to profit in recent quarters.

Parameters:

  • symbol (string): Stock symbol (e.g., "TSLA", "UBER")

Returns:

  • turnAroundStatus: "profit_turnaround", "loss_turnaround", "continued_profit", or "continued_loss"

  • currentQuarterNetIncome: Latest quarter's net income

  • previousQuarterNetIncome: Previous quarter's net income

  • quarterlyChange: Percentage change in net income

  • Company and market data

screen_profit_turnaround_stocks

Screen multiple stocks to find those that have recently turned profitable.

Parameters:

  • symbols (array): Array of stock symbols to analyze

  • minMarketCap (number, optional): Minimum market capitalization filter

  • maxMarketCap (number, optional): Maximum market capitalization filter

Returns: Array of stocks with turnAroundStatus: "profit_turnaround", sorted by quarterly improvement percentage.

Testing

# Test profitability analysis functionality
node test_profitability.js

Configuration for Claude Desktop

Add the following to your Claude Desktop configuration file:

{
  "mcpServers": {
    "stock-server": {
      "command": "node",
      "args": ["/path/to/stock-mcp-server/dist/index.js"]
    }
  }
}

Project Structure

stock-mcp-server/
├── src/
│   ├── services/
│   │   └── stockService.ts    # Stock price service
│   ├── types/
│   │   └── schema.ts          # Zod schemas and types
│   └── index.ts               # MCP server entry point
├── dist/                      # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

Dependencies

  • @modelcontextprotocol/sdk: MCP SDK for server implementation

  • yahoo-finance2: Yahoo Finance API client

  • zod: Runtime type validation and schema definition

Available Tools

12 tools
analyze_profitability_turnaroundC

Analyze whether a stock has turned from loss to profit in recent quarters

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., AAPL, GOOGL, TSLA)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations and no output schema, the description carries the full burden of behavioral disclosure, and it does not carry it. It does not explain what qualifies as 'recent quarters', what data source or methodology is used, or what the call returns (boolean verdict, report, or metrics). An agent cannot predict the outcome shape or the analytical assumptions behind the verdict.

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

Conciseness4/5

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

A single sentence with zero filler; the core analytical question is front-loaded and every word earns its place. It is efficient, though arguably so brief that it leaves behavioral and output questions unaddressed — that is a completeness issue rather than a conciseness problem.

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

Completeness2/5

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

The tool has no output schema and no annotations, so a complete description should state the result format and clarify how this differs from the closely related screen_profit_turnaround_stocks sibling. It does neither. While invocation is trivial (one well-documented parameter), the meaning of the result and the definition of 'turned from loss to profit' remain underspecified, making agent judgment unreliable.

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

Parameters3/5

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

Schema coverage is 100% — the symbol parameter is already described with concrete examples (AAPL, GOOGL, TSLA). The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies. The description's phrasing about 'a stock' does implicitly map to the symbol parameter, but it adds no format, constraints, or semantics.

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

Purpose4/5

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

The description names a specific verb and resource ('Analyze whether a stock has turned from loss to profit in recent quarters') and makes the analytical question concrete. It is clear and unambiguous about the single-stock scope, but it never explicitly distinguishes itself from the overlapping sibling screen_profit_turnaround_stocks, which shares the same profit-turnaround theme.

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 — no mention of screen_profit_turnaround_stocks for screening a universe, or get_financial_data for raw metrics. The use case (analyzing a single stock's profitability trajectory) is only weakly implied by the phrasing and the single symbol parameter; the agent must infer the boundary between this tool and the similarly named sibling.

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

extract_local_pdfB

Extract text from a local PDF file

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., AAPL, 7203)
countryYesCountry of the company (US or JP)
filePathYesLocal file path to the PDF document
documentTypeYesType of IR document

TDQS

B3.1/5.0
Behavior2/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 of disclosing behavior. It only states that text is extracted; it omits whether the file is only read, what happens with unreadable or scanned PDFs, and how the required metadata parameters affect processing.

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 one-sentence description is efficient and front-loaded with the key action. It is not padded, though it is so minimal that it sacrifices useful behavioral context.

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?

With no output schema and no annotations, the description should clarify what the agent receives and any limitations. It does not explain return format, prerequisites for the local file, or the role of the required metadata parameters, leaving meaningful gaps for correct invocation.

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

Parameters3/5

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

The schema documents all four parameters with descriptions and 100% coverage, so the baseline is 3. The description adds no parameter-level meaning, such as why symbol/country/documentType are required for local PDF extraction.

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 uses a specific verb ('extract') and a clear resource ('local PDF file'), making the operation immediately understandable. It is also clearly distinct from the sibling tools, none of which perform raw PDF text extraction.

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 when-to-use guidance, prerequisites, or mention of alternatives. The agent has to infer that this tool is for pulling raw text before IR summarization or analysis; the description does not state that context.

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

get_10k_earnings_guidanceA

Get detailed management guidance information specifically from 10-K filings (annual reports)

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., AAPL, GOOGL, TSLA)

TDQS

A3.9/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 behavioral transparency burden. 'Get' clearly implies a read-only retrieval operation, and the 10-K source is explicit. However, it does not disclose limitations such as whether only the latest filing is used, what format the guidance takes, or what happens when no 10-K guidance is available.

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 or redundancy. It states the action, resource, and source efficiently, earning its place without any wasted words.

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

Completeness3/5

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

For a one-parameter read tool, the description says what is returned and from where, which is mostly adequate. But it is vague on whether it retrieves the most recent 10-K only, and since there is no output schema, the shape of the 'detailed management guidance information' is left unspecified.

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

Parameters3/5

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

The schema already documents the single `symbol` parameter with helpful examples, and schema description coverage is 100%. The description adds no parameter-specific meaning, but with full schema coverage the baseline of 3 is appropriate.

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 ('Get'), a concrete object ('detailed management guidance information'), and a clear source ('10-K filings (annual reports)'). This distinguishes it from the sibling get_earnings_guidance, which presumably covers guidance from other sources, without requiring the agent to inspect schemas.

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 phrase 'specifically from 10-K filings' clearly signals when this tool is appropriate: when guidance from annual reports is needed. However, it never names the alternative get_earnings_guidance or explicitly states when not to use this tool, so it provides context but not full exclusion guidance.

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

get_annual_earnings_forecastA

Get annual earnings forecast and analyst estimates for a stock

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., AAPL, GOOGL, TSLA)

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It correctly indicates a read operation and names the returned information, but it does not disclose data source, currency, period definition, or return format. For a one-symbol lookup this is acceptable but incomplete.

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

Conciseness5/5

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

The description is a single focused sentence with no filler or redundancy. It front-loads the core action and relies on the schema for parameter details.

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

Completeness3/5

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

For a simple one-parameter read tool, the description plus schema is enough to invoke it correctly. However, with no output schema and no annotations, return structure and precise forecast semantics remain undocumented, making the definition adequate but not complete.

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 100%, and the one parameter, symbol, is already clearly described with examples. The tool description adds no additional parameter-level meaning, so the baseline schema-driven score applies.

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

Purpose5/5

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

The description uses a precise verb and resource: 'Get annual earnings forecast and analyst estimates for a stock.' The 'annual' qualifier clearly distinguishes it from sibling get_quarterly_earnings_forecast without needing to inspect schemas.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus get_quarterly_earnings_forecast, get_earnings_guidance, or get_10k_earnings_guidance. The word 'annual' implies a use case, but no explicit context or alternative boundaries are provided.

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

get_earnings_guidanceB

Get management guidance information from SEC filings and earnings calls

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., AAPL, GOOGL, TSLA)

TDQS

B3.1/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. It indicates a 'get' operation and names the sources, but it does not disclose coverage limitations, recency, whether results combine both sources, or error behavior when no guidance exists.

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. It states the action and source efficiently, and every word contributes to the 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?

For a one-parameter tool with no output schema, the description is minimally sufficient to make a call. However, the close sibling tools create ambiguity around which tool to select, and the description does not resolve that overlap.

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 100%, with the only parameter symbol clearly documented via examples. The description adds no extra semantic detail beyond the schema, so the baseline of 3 applies.

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: it retrieves management guidance from SEC filings and earnings calls. It is clear about the action and data source, but it does not differentiate itself from close siblings like get_10k_earnings_guidance or get_quarterly_earnings_forecast.

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 the many overlapping siblings, such as get_10k_earnings_guidance or the forecast tools. The description implies a general use case but provides no exclusions, prerequisites, or alternative routing.

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

get_financial_dataC

Get comprehensive financial data and fundamental analysis metrics for a stock

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., AAPL, GOOGL, TSLA)

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description bears the full burden of behavioral disclosure. Saying 'Get' implies a read operation, but the description does not disclose output structure, data scope, time period, data source, potential delays, or any special behaviors. It is not contradtory, but it provides only minimal 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.

Conciseness5/5

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

The description is one clean, front-loaded sentence with no filler. It earns its place by stating the operation and general scope. There is no unnecessary detail or repetition of schema fields.

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?

With no output schema and no annotations, the description should explain what 'comprehensive financial data and fundamental analysis metrics' actually includes or returns. It is vague enough that an agent cannot predict whether it returns price history, ratios, financial statements, or all of the above. The presence of many specialized sibling tools makes this ambiguity more costly.

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

Parameters3/5

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

The schema already covers the single parameter 'symbol' with a clear description and examples, so schema coverage is 100%. The tool description adds little beyond referring to 'a stock', and the schema already conveys that. Baseline 3 is appropriate because no additional parameter nuance is needed, but the description also contributes no extra meaning.

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

Purpose4/5

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

The description states a clear verb ('Get') and resource ('financial data and fundamental analysis metrics for a stock'), so the agent understands the general operation. However, it does not explicitly differentiate this from siblings like get_stock_price, get_earnings_guidance, or get_10k_earnings_guidance beyond using the word 'comprehensive', so it misses the full sibling-distinguishing specificity.

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 this tool versus alternatives. The description only says what the tool retrieves, not when it is preferred over get_stock_price or get_earnings_guidance, nor when it should not be used. This leaves the agent to infer usage entirely from the name and vague scope.

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

get_market_environmentB

現在の市場環境とマクロ経済指標を取得 (金利、ドル円、NYダウ、VIX等)

ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes対象地域 (US: 米国中心、JP: 日本中心、GLOBAL: 世界)
timeframeNo分析期間 (オプション)

TDQS

B3.3/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; it does state that the tool retrieves current market environment data and gives examples, implying a read-only operation. However, it lacks detail about output structure, data vintage, or any limitations.

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

Conciseness5/5

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

A single senence with the action first and concrete examples in parentheses—no filler, easy to parse.

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

Completeness3/5

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

For a simple 2-parameter getter with clear enum schemas, the description plus schema cover the essentials. Yet with no output schema, it could mention what kind of values or shape the agent should expect.

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

Parameters3/5

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

Schema coverage is 100% with enums already describing region and timeframe. The description lists example indicators but doesn't add meaning beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

The description clearly identifies a specific action ('現在の市場環境...を取得') and lists concrete indicators (金利、ドル円、NYダウ、VIX). It communicates the tool's domain but does not explicitly distinguish it from broader siblings like get_financial_data, so it misses the 5 criteria.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over get_financial_data, get_stock_price, or others. The description implies macro-market use but doesn't state its specific role or exclusions.

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

get_multiple_stock_pricesA

Get real-time stock price information for multiple stock symbols

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesArray of stock symbols (e.g., ["AAPL", "GOOGL", "TSLA"])

TDQS

A4/5.0
Behavior3/5

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

The description is straightforward for a read operation but doesn't disclose expected behavior like rate limits, response format, or data source. There are no annotations provided, so the description carries the full burden of behavioral disclosure, but 'real-time' hints at the nature of the data.

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

Conciseness5/5

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

The description is a single, efficient sentence that states purpose without waste. It is front-loaded with the verb and resource, followed by the scope qualifier 'multiple'.

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

Completeness4/5

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

For a tool with only one parameter, high schema coverage, and no output schema, the description is adequately complete. It covers what the tool does and the parameter semantics are clear from the schema.

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

Parameters3/5

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

The schema provides 100% coverage with a clear description of the symbols parameter and a concrete example. The description doesn't add additional meaning beyond the schema, but the example in the schema is sufficient for correct parameter usage.

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 uses a specific verb ('get'), names the resource ('real-time stock price information'), and clearly distinguishes this from siblings like get_stock_price by emphasizing 'multiple' symbols. It establishes that this tool handles batch queries.

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 this is for fetching price data for multiple symbols at once, distinguishing it from get_stock_price which handles a single symbol. However, it doesn't explicitly state when to prefer this over get_financial_data or other siblings.

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

get_quarterly_earnings_forecastB

Get quarterly earnings forecast and analyst estimates for a stock

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., AAPL, GOOGL, TSLA)

TDQS

B3.1/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 describes a read operation but does not disclose data source, update frequency, units, or any limitations. For a tool with no annotation cover, this is a material 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 a single, efficiently worded sentence with no filler. It front-loads the core object and presents the key scope ('quarterly') immediately.

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

Completeness3/5

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

For a simple one-parameter getter, the description is minimally adequate. However, with no annotations and no output schema, it leaves out useful context such as time horizon, data provider, or what 'analyst estimates' means, and does little to disambiguate from closely named siblings.

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

Parameters3/5

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

The input schema already covers the only parameter (symbol) with a descriptive example. The description does not add any extra parameter-level meaning, but with 100% schema coverage, the baseline of 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb ('Get') and resource ('quarterly earnings forecast and analyst estimates') for a stock. It is clear but does not explicitly differentiate itself from sibling tools like get_annual_earnings_forecast or get_earnings_guidance, relying mostly on the word 'quarterly' to distinguish.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. The word 'quarterly' implies a seasonality filter, but it does not explicitly state that annual forecasts or earnings guidance should be handled by sibling tools.

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

get_stock_priceB

Get real-time stock price information for a given stock symbol

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., AAPL, GOOGL, TSLA)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'real-time stock price information', which implies a read operation but does not specify the exact fields returned (e.g., price, change, volume), error handling, latency, or any constraints like market hours. The lack of an output schema means the agent has no idea of the response structure, making this a considerable gap for an otherwise simple tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero waste. It states the action and object immediately, making it easy to parse. No filler or redundant words.

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?

Given the low complexity (one required parameter, no output schema), the description is minimally sufficient: an agent can infer it expects a single symbol and returns price info. However, it lacks details on what 'information' includes and any caveats (e.g., delayed data, currency). Without an output schema, the response shape is unknown, so the description is adequate but not complete for a robust call.

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

Parameters3/5

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

Schema coverage is 100%: the parameter 'symbol' is described with examples (AAPL, GOOGL, TSLA). The description adds no extra meaning beyond the schema—it just restates 'given stock symbol'. Since the schema already documents the parameter well, the baseline of 3 is correct; the description neither adds nor detracts.

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

Purpose4/5

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

The description clearly states the verb ('get'), the resource ('real-time stock price information'), and the target ('a given stock symbol'). It is specific and distinguishes from siblings implicitly: get_multiple_stock_prices is obviously different because the singular symbol is explicit in the parameter, and the description uses 'a given' which implies single. However, it does not explicitly name the sibling or contrast itself, so a 4 is appropriate rather than 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus the alternatives. It does not mention that get_multiple_stock_prices should be used for multiple symbols, nor does it clarify when get_financial_data or other tools are more appropriate. The agent is left to infer usage from the name and schema, which is a significant gap.

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

screen_profit_turnaround_stocksC

Screen multiple stocks to find those that have turned from loss to profit

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesArray of stock symbols to screen (e.g., ["AAPL", "GOOGL", "TSLA"])
maxMarketCapNoMaximum market capitalization filter (optional)
minMarketCapNoMinimum market capitalization filter (optional)

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 must carry the full behavioral disclosure burden. It does not state whether the operation is read-only, what output format is returned, how 'loss to profit' is defined or computed, what time period is considered, or whether there are any limits or side effects.

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

Conciseness5/5

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

The description is a single, focused sentence with no redundant wording. The core action and objective are front-loaded, and every word earns its place.

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

Completeness2/5

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

There is no output schema and no annotation context, yet the description does not explain return values, screen criteria details, or edge cases. An agent can infer the basic purpose, but it lacks enough context to know what the tool will return or how to interpret the results.

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 100%, so the schema already documents all three parameters. The description adds no meaningful detail beyond the schema, such as how market cap filters interact with the screening logic or what units are expected, 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.

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 ('Screen'), a resource ('multiple stocks'), and the intended outcome ('find those that have turned from loss to profit'). It is understandable on its own, but it does not explicitly differentiate from the similarly named sibling analyze_profitability_turnaround, so it loses a point for sibling distinction.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention analyze_profitability_turnaround or other screening/analysis siblings, and it provides no exclusions or conditions that would help an agent choose this tool over another.

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

summarize_ir_informationC

Generate comprehensive IR summary from local PDF documents for Japanese and US stocks

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., 9202 for ANA, AAPL for Apple)
languageNoOutput languageja
companyNameNoCompany name (optional)
marketRegionNoMarket region for environment dataUS
documentTypeFilterNoFilter by specific document type (optional)
includeMarketEnvironmentNoInclude market environment data in the summary

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 burden. It reveals that local PDF documents are the data source and the output is a summary, but it does not state prerequisites, side effects, failure modes, document selection behavior, or output format. This is under-disclosed for a tool with no annotation safety profile.

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?

One short sentence front-loads the main function and is appropriately compact. 'Comprehensive' is somewhat vague filler, but the description earns its place without unnecessary bulk.

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?

For a tool with no output schema and 6 parameters, the description is thin. It omits what the summary contains, how local PDFs are discovered/selected, how language/documentTypeFilter affect behavior, and what an agent should prepare before invoking. Schema fills parameter meaning but not operational context.

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?

All six parameters have schema descriptions, so the baseline is 3. The tool description does not add parameter-level guidance; 'Japanese and US stocks' broadly aligns with symbol/marketRegion but does not explain parameter behavior.

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?

States a specific verb ('Generate') and resource ('comprehensive IR summary') and scopes the source to local PDF documents for JP/US stocks, which distinguishes it from sibling data-retrieval tools. However, 'IR' is never expanded and it does not name the sibling it complements, such as extract_local_pdf.

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 choose this tool instead of get_financial_data, get_10k_earnings_guidance, or extract_local_pdf. The only usage signal is the description's own semantics, leaving an agent to infer context.

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. 12 tool updatesv1.0.0
    • First observedanalyze_profitability_turnaround
    • First observedextract_local_pdf
    • First observedget_10k_earnings_guidance
    • First observedget_annual_earnings_forecast
    • First observedget_earnings_guidance
    • First observedget_financial_data
    • First observedget_market_environment
    • First observedget_multiple_stock_prices
    • First observedget_quarterly_earnings_forecast
    • First observedget_stock_price
    • First observedscreen_profit_turnaround_stocks
    • First observedsummarize_ir_information

TDQS

B3.3/5.0

Scored across 12 tools

Disambiguation3/5

Several tools target closely related concepts—earnings guidance vs. 10-K guidance, quarterly vs. annual forecasts, single vs. multiple stock prices, and PDF extraction vs. IR summarization—so an agent could select the wrong one. The descriptions provide enough qualifiers to disambiguate most pairs, but the boundaries are not always crisp.

Naming Consistency4/5

All tool names are snake_case and verb-first (get_, analyze_, screen_, summarize_, extract_), so there is no stylistic chaos. However, the set mixes many get_ tools with non-get analytical/utility actions and uses slightly inconsistent modifier forms like profitability_turnaround vs. profit_turnaround_stocks.

Tool Count5/5

12 tools is within the ideal 3-15 range and each tool maps to a distinct stock-research workflow: prices, fundamentals, forecasts, guidance, turnaround analysis, IR PDF handling, and macro context. The count feels intentionally scoped rather than bloated or thin.

Completeness3/5

For a broad stock server, the set covers prices, fundamentals, forecasts, guidance, screening, and IR files, but it lacks obvious common needs like historical price series, company profile or symbol lookup, and news/analyst data. These gaps are workable around but still noticeable for an agent trying to perform general stock analysis.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    Provides real-time stock market data and financial analysis through Yahoo Finance integration. Enables users to get quotes, historical prices, fundamentals, dividends, analyst forecasts, and growth projections for any stock symbol.
    4
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time stock data analysis, portfolio management, technical analysis with EMA/MACD indicators, and automated trading recommendations with confidence levels using Yahoo Finance API.
    -
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides real-time financial data from Yahoo Finance, enabling stock price lookups, historical data analysis, company information retrieval, and multi-stock comparisons through natural language queries.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Provides comprehensive financial analysis and real-time market data including stock information, options chains, technical indicators, financial statements, earnings calendars, and market sentiment indicators through integration with yfinance and other financial APIs.
    14
    MIT