MCP Yahoo Finance
MCP 야후 파이낸스
Yahoo Finance 상호작용을 위한 모델 컨텍스트 프로토콜 (MCP) 서버입니다. 이 서버는 가격, 회사 정보, 재무 시각화 생성 도구를 제공합니다.
이 프로젝트는 maxscheijen/mcp-yahoo-finance 의 포크이자 확장 프로젝트로, 시각화 기능이 추가되었습니다.
특징
재무 데이터 : 현재 주가, 과거 주가, 배당금, 손익 계산서 등을 확인하세요.
시각적 분석 : 시장 심리, 포트폴리오 추적 및 기술 분석을 위한 아름다운 시각화를 생성합니다.
간편한 통합 : Claude Desktop, VS Code, Cursor 및 기타 MCP 클라이언트와 호환됩니다.
Related MCP server: Yahoo Finance MCP Server
설치 지침
1. 저장소 복제
이 저장소를 로컬 컴퓨터에 복제하세요.
지엑스피1
2. 종속성 설치
pip를 사용하여 필요한 종속성을 설치합니다.
pip install -r requirements.txtrequirements.txt 파일이 없으면 종속성을 직접 설치할 수 있습니다.
pip install mcp yfinance pandas matplotlib seaborn plotly kaleido numpy pillow base64io3. MCP 클라이언트 구성
클로드 데스크탑
claude_desktop_config.json 에 다음을 추가하세요(존재하지 않으면 만드세요).
macOS/Linux :
~/Library/Application Support/Claude/claude_desktop_config.json윈도우 :
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"yahoo-finance": {
"command": "uvx",
"args": ["mcp-yahoo-finance"]
}
}
}docker를 사용할 수도 있습니다.
{
"mcpServers": {
"yahoo-finance": {
"command": "docker",
"args": ["run", "-i", "--rm", "IMAGE"]
}
}
}VS코드
.vscode/mcp.json 에 다음을 추가하세요:
{
"servers": {
"yahoo-finance": {
"command": "uvx",
"args": ["mcp-yahoo-finance"]
}
}
}커서
커서 MCP 구성에 다음을 추가하세요.
{
"mcp-servers": {
"yahoo-finance": {
"command": "uvx",
"args": ["mcp-yahoo-finance"]
}
}
}4. MCP 클라이언트를 다시 시작하세요
구성 후 Claude Desktop이나 선호하는 MCP 클라이언트를 다시 시작하여 서버를 로드하세요.
사용 가능한 도구
기본 재무 데이터
get_current_stock_price : 특정 심볼의 현재 주가를 가져옵니다.
get_stock_price_by_date : 특정 날짜의 주가를 가져옵니다
get_stock_price_date_range : 특정 날짜 범위의 주가를 가져옵니다.
get_historical_stock_prices : 사용자 정의 가능한 기간으로 과거 주식 데이터 가져오기
get_dividends : 주식에 대한 배당금 정보를 가져옵니다.
get_income_statement : 손익계산서 데이터 가져오기
get_cashflow : 현금 흐름 명세서 데이터 가져오기
get_earning_dates : 수입 날짜 정보 받기
get_news : 주식에 대한 최신 뉴스를 받아보세요
시각화 도구
generate_market_dashboard : 실시간 지수 성과를 보여주는 시장 심리 대시보드를 만듭니다.
generate_portfolio_report : 포트폴리오 성과 추적 보고서 생성
generate_stock_technical_analysis : 주식에 대한 기술 분석 보고서를 생성합니다.
시각화 예
시장 심리 대시보드

포트폴리오 추적

주식 기술적 분석

예시 프롬프트
클로드에게 시도해 볼 수 있는 몇 가지 프롬프트 예시는 다음과 같습니다.
기본 재무 데이터
"애플의 현재 주가는 얼마인가요?"
"애플과 구글의 주가 차이는 얼마입니까?"
"2025년 1월 1일부터 2025년 3월 31일까지 Apple 주가는 얼마나 변동했나요?"
시각화 요청
주요 지수의 성과를 보여주는 시장 심리 대시보드를 생성합니다.
"AAPL, MSFT, GOOGL, AMZN, NVDA 등 기술 주식에 대한 포트폴리오 추적 보고서를 만들어 보세요."
"이동 평균선과 지지/저항 수준을 포함한 테슬라 주식의 기술적 분석 차트를 보여주세요."
"S&P 500, Dow Jones, NASDAQ를 활용한 시장 심리 대시보드를 생성하세요."
"XOM, CVX, BP, COP, SLB 등 에너지 주식에 대한 포트폴리오 보고서를 만들어 주실 수 있나요?"
"RSI와 거래량 패턴을 보여주는 NVDA 주식에 대한 자세한 기술적 분석이 필요합니다."
테스트
시각화 기능을 테스트하려면:
cd tests
python test_visualization.py이렇게 하면 examples 디렉토리에 예제 시각화 이미지가 생성됩니다.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
감사의 말
Max Scheijen 의 오리지널 프로젝트
tooyipjee 에서 영감을 받은 시각화 기능으로 확장됨
Available Tools
10 toolsget_cashflowC
Get cashflow for a given stock symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. | |
| freq | No | At what frequency to get cashflow statements. Defaults to "yearly". Valid freqencies: "yearly", "quarterly", "trainling" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the basic action without mentioning data freshness, rate limits, authentication needs, or error handling. For a financial data tool, this lack of context on reliability and constraints is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the cashflow data includes (e.g., operating, investing, financing activities), format of return values, or any prerequisites. For a financial data retrieval tool, this leaves critical gaps in understanding the tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents both parameters ('symbol' and 'freq'). The description adds no additional meaning beyond implying cashflow is retrieved per stock symbol, which is already clear from the schema. Baseline 3 is appropriate as the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('cashflow for a given stock symbol'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings like 'get_income_statement' or 'get_dividends', which are also financial data retrieval tools for stocks, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_income_statement' and 'get_dividends' available, it doesn't specify scenarios where cashflow data is preferred over other financial metrics, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_stock_priceC
Get the current stock price based on stock symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. |
TDQS
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 states the tool's function but doesn't describe traits such as rate limits, authentication needs, data freshness, error handling, or return format. This leaves significant gaps for a tool that likely interacts with external data sources.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It is appropriately sized for a simple tool and front-loads the key information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like data source reliability, potential errors, or return structure. For a tool fetching real-time financial data, more context on limitations or usage constraints would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'symbol' fully documented in the schema as 'Stock symbol in Yahoo Finance format.' The description adds no additional meaning beyond what the schema provides, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('current stock price') with the specific condition ('based on stock symbol'). It distinguishes from siblings like get_historical_stock_prices and get_stock_price_by_date by specifying 'current', but doesn't explicitly contrast them in the description text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_stock_price_by_date or get_historical_stock_prices. It lacks any mention of prerequisites, exclusions, or comparative contexts with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dividendsC
Get dividends for a given stock symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. |
TDQS
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 but offers minimal information. It does not mention if this is a read-only operation, potential rate limits, authentication needs, error handling, or the format of returned data. This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to grasp quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not explain what the tool returns (e.g., dividend amounts, dates, frequency), potential limitations, or how it integrates with sibling tools. For a financial data tool with no structured output, more context is needed to ensure proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the input schema provides. The schema has 100% coverage with a clear description for the 'symbol' parameter, so the baseline is 3. The description does not compensate with additional details like examples or constraints, but it doesn't need to given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('dividends for a given stock symbol'), making the purpose immediately understandable. It does not explicitly differentiate from siblings like 'get_earning_dates' or 'get_historical_stock_prices', which might also involve financial data retrieval, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not specify if this is for current dividends, historical dividends, or how it differs from other financial data tools like 'get_cashflow' or 'get_income_statement'. The description lacks context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earning_datesC
Get earning dates.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. | |
| limit | No | max amount of upcoming and recent earnings dates to return. Default value 12 should return next 4 quarters and last 8 quarters. Increase if more history is needed. |
TDQS
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 but offers minimal information. It implies a read-only operation ('Get'), but doesn't address critical aspects like rate limits, authentication needs, error handling, or what the return format looks like (e.g., structured data vs. raw text). For a tool with no annotation coverage, this leaves significant gaps in understanding how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core purpose, though this brevity comes at the cost of completeness. Every word earns its place by directly stating the tool's function, making it efficient despite being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of financial data tools and the lack of both annotations and an output schema, the description is incomplete. It doesn't explain what earning dates are, how they're structured, or what the tool returns, forcing the agent to infer from context. While the schema covers parameters well, the overall context for effective tool use is insufficient, especially compared to sibling tools that might overlap in purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what's already in the schema, which has 100% coverage with detailed descriptions for both 'limit' and 'symbol'. Since the schema fully documents the parameters, the baseline score is 3. The description doesn't compensate with additional context like examples or edge cases, but it also doesn't contradict the schema, so it meets the minimum viable standard.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get earning dates.' is a tautology that essentially restates the tool name without adding meaningful context. It specifies the verb 'Get' and resource 'earning dates', but doesn't clarify what earning dates are (e.g., earnings announcement dates for stocks) or how they differ from other financial data tools. While it's clear this retrieves earning dates, it lacks the specificity needed to distinguish it from sibling tools that also retrieve financial data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like get_historical_stock_prices or get_news, nor does it explain why one would choose earning dates over other financial metrics. There's no context about use cases, prerequisites, or exclusions, leaving the agent with no basis for tool selection beyond the name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historical_stock_pricesC
Get historical stock prices for a given stock symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. | |
| period | No | The period for historical data. Defaults to "1mo". Valid periods: "1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "ytd", "max" | |
| interval | No | The interval beween data points. Defaults to "1d". Valid intervals: "1d", "5d", "1wk", "1mo", "3mo" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'Get historical stock prices' but doesn't disclose behavioral traits such as rate limits, authentication requirements, data freshness, error handling, or response format. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with every word contributing to understanding what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of financial data tools, no annotations, and no output schema, the description is incomplete. It doesn't explain what the return values look like (e.g., data format, structure), nor does it address important context like data sources (Yahoo Finance implied by parameter but not stated), limitations, or error cases. For a tool with 3 parameters and no structured output documentation, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters ('symbol', 'interval', 'period') well-documented in the schema including defaults and valid values. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'historical stock prices for a given stock symbol', making the purpose unambiguous. However, it doesn't explicitly differentiate from siblings like 'get_stock_price_by_date' or 'get_stock_price_date_range', which likely offer similar functionality with different parameter approaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools related to stock prices (e.g., 'get_current_stock_price', 'get_stock_price_by_date', 'get_stock_price_date_range'), there's no indication of which tool is appropriate for different scenarios like real-time vs. historical data or single-date vs. range queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_income_statementC
Get income statement for a given stock symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. | |
| freq | No | At what frequency to get cashflow statements. Defaults to "yearly". Valid freqencies: "yearly", "quarterly", "trainling" |
TDQS
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 states the tool retrieves data ('Get'), implying a read-only operation, but doesn't specify whether it requires authentication, has rate limits, returns real-time or historical data, or handles errors. For a data-fetching tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose, making it easy to parse quickly. Every word earns its place, and there's no redundant or verbose language, achieving optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (financial data retrieval), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the income statement includes (e.g., revenue, expenses), the data format returned, or any limitations (e.g., symbol availability, time ranges). For a tool with no structured output information, this leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the input schema provides. The schema has 100% description coverage, clearly documenting both parameters (symbol and freq) with details like valid frequencies and defaults. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate or add extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get income statement for a given stock symbol,' which includes a specific verb ('Get') and resource ('income statement'). It distinguishes from siblings like get_cashflow and get_historical_stock_prices by specifying the financial statement type. However, it doesn't explicitly contrast with all siblings (e.g., get_earning_dates), keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer get_income_statement over other financial data tools like get_cashflow or get_historical_stock_prices, nor does it specify any prerequisites or exclusions. This lack of contextual direction limits its utility for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsC
Get news for a given stock symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. |
TDQS
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 states the action ('Get news') but doesn't describe behavioral traits such as data sources, rate limits, authentication needs, or what 'news' entails (e.g., recent articles, headlines). This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of a single sentence that directly states the tool's purpose. There is no wasted language or unnecessary elaboration, making it efficient and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of fetching news data, the lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'news' includes (e.g., format, recency, sources) or behavioral aspects like error handling. For a tool with no structured support, this description leaves too many unanswered questions for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the input schema, which has 100% coverage and clearly documents the 'symbol' parameter. The description implies the parameter is used to fetch news but doesn't provide additional context like format examples or constraints. Since the schema does the heavy lifting, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('news for a given stock symbol'), making it immediately understandable. However, it doesn't explicitly differentiate from siblings like 'get_recommendations' or 'get_earning_dates', which might also provide news-related information, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for use, or compare it to sibling tools like 'get_recommendations' or 'get_earning_dates', which could overlap in functionality. This lack of usage context leaves the agent without clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recommendationsC
Get analyst recommendations for a given symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. |
TDQS
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 states the action ('Get') but doesn't describe any traits like whether it's a read-only operation, potential rate limits, data freshness, or what the output format looks like (e.g., list of recommendations, summary). This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of financial data tools, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'analyst recommendations' entail (e.g., buy/sell ratings, target prices), how results are returned, or any behavioral aspects, leaving the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'symbol' fully documented in the schema as 'Stock symbol in Yahoo Finance format.' The description adds no additional meaning beyond this, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('analyst recommendations'), specifying it's for a given symbol. However, it doesn't differentiate from sibling tools like get_news or get_current_stock_price, which might also provide related financial data, so it doesn't reach the highest clarity level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone among many financial data siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_price_by_dateB
Get the stock price for a given stock symbol on a specific date.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. | |
| date | Yes | The date in YYYY-MM-DD format. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool's function but lacks details on error handling, data sources (e.g., Yahoo Finance implied by schema but not confirmed), rate limits, or authentication needs. For a read operation with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. It uses minimal words to convey the essential action and inputs, making it easy for an agent to parse quickly. Every word earns its place, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks behavioral context and usage guidelines. Without annotations or output schema, the description should ideally add more about return values or error cases, but it's sufficient for a simple lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters ('date' and 'symbol'). The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Given the high schema coverage, a baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the stock price for a given stock symbol on a specific date.' It specifies the verb ('Get'), resource ('stock price'), and key constraints ('on a specific date'). However, it doesn't explicitly differentiate from siblings like 'get_current_stock_price' or 'get_historical_stock_prices', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'get_current_stock_price' (for current prices) or 'get_historical_stock_prices' (for multiple dates), leaving the agent to infer usage from context alone. This lack of explicit comparison or exclusion criteria limits its utility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_price_date_rangeC
Get the stock prices for a given date range for a given stock symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol in Yahoo Finance format. | |
| start_date | Yes | The start date in YYYY-MM-DD format. | |
| end_date | Yes | The end date in YYYY-MM-DD format. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action 'Get' but does not specify whether this is a read-only operation, if it requires authentication, rate limits, error handling, or the format of returned data. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It is appropriately sized for the tool's complexity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not explain what data is returned (e.g., price types, structure), potential errors, or behavioral traits like rate limits. For a tool with no structured support, more contextual detail is needed to adequately inform an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all three parameters with details like format (YYYY-MM-DD) and source (Yahoo Finance). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'stock prices' with scope 'for a given date range for a given stock symbol', making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'get_historical_stock_prices' or 'get_stock_price_by_date', which likely serve similar purposes, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'get_historical_stock_prices' or 'get_stock_price_by_date', nor does it mention any prerequisites or exclusions. It only states what the tool does, leaving usage context implied at best.
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.
10 tool updates
- First observed
get_cashflow - First observed
get_current_stock_price - First observed
get_dividends - First observed
get_earning_dates - First observed
get_historical_stock_prices - First observed
get_income_statement - First observed
get_news - First observed
get_recommendations - First observed
get_stock_price_by_date - First observed
get_stock_price_date_range
TDQS
Scored across 10 tools
Most tools are clearly distinct, focusing on specific financial data types like cashflow, dividends, or news. However, there is some overlap between get_current_stock_price, get_stock_price_by_date, and get_stock_price_date_range, which could cause confusion about which to use for price queries, though their descriptions help clarify the differences.
All tools follow a consistent verb_noun pattern with 'get_' prefix and snake_case, such as get_cashflow and get_historical_stock_prices. This predictability makes it easy for agents to understand and navigate the tool set without naming conflicts or inconsistencies.
With 10 tools, the server is well-scoped for financial data retrieval, covering key aspects like prices, financial statements, news, and recommendations. Each tool serves a distinct purpose without being overly broad or sparse, fitting typical needs in this domain.
The tool set provides comprehensive coverage for retrieving financial data, including core elements like prices, statements, and news. A minor gap is the lack of tools for updating or managing data (e.g., no create or delete operations), but this is reasonable for a read-only finance server focused on data access.
Maintenance
Related MCP Connectors
Deterministic profitability and market-value analysis tools for AI agents — margins, ROA, ROE, ROCE, ROIC, EPS, P/E, P/B, dividend yield and payout ratio via Model Context Protocol. Useful for corporate finance, equity analysis, financial analysis, quantitative analysis, financial formulas and financial modeling.
Deterministic company valuation and corporate finance tools for AI agents — IRR, NPV, MOIC, DCF, WACC, enterprise value, EV multiples, CAPM, beta and sensitivity analysis via Model Context Protocol. Useful for financial analysis, equity analysis, quantitative analysis, financial projections, financial formulas and financial modeling.
Financial data MCP server for Claude, ChatGPT, Cursor and Codex. Real-time stock quotes, financial statements, options flow, SEC filings, insider trades, 13F holdings, macro data and market news from gloom.sh, the open-source Bloomberg Terminal alternative.
Deterministic liquidity and leverage ratio tools for AI agents — current, quick and cash ratios, defensive interval, debt-to-equity, debt-to-assets, equity multiplier and interest coverage via Model Context Protocol. Useful for corporate finance, credit analysis, financial analysis, financial formulas and financial modeling.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides real-time financial data from Yahoo Finance to Large Language Models through the Model Context Protocol, enabling AI models to access stock prices, historical data, and company information.1MIT
- AlicenseAqualityBmaintenanceProvides access to real-time stock prices, financial statements, news, and options data via the Model Context Protocol. It enables AI assistants to retrieve comprehensive market data, including historical prices and analyst recommendations, through a standardized interface.991 PyPI2MIT
- FlicenseAqualityDmaintenanceProvides financial data tools including stock prices, news, forex, fundamentals, and corporate actions via the Tiingo API through the Model Context Protocol.115-
- AlicenseNot gradedqualityBmaintenanceEnables LLMs and agentic workflows to access real-time and historical stock market data through the Model Context Protocol.218MIT