Finance Tools MCP
finance-tools-mcp: 재무 분석 MCP 서버
개요
finance-tools-mcp는 대규모 언어 모델(LLM)에 포괄적인 재무 통찰력과 분석 기능을 제공하도록 설계된 모델 컨텍스트 프로토콜(MCP) 서버입니다. investor-agent 에서 수정된 이 서버는 다양한 데이터 소스 및 분석 라이브러리와 통합되어 상세한 재무 조사 및 분석을 위한 도구 모음을 제공합니다.
Related MCP server: Trading MCP Server
제공되는 도구
서버는 MCP를 통해 다양한 도구를 제공하여 연결된 클라이언트(LLM 등)가 특정 재무 데이터에 액세스하고 분석을 수행할 수 있도록 합니다.
티커 데이터 도구:
get_ticker_data: 개요, 뉴스, 주요 지표, 성과, 날짜, 분석가 추천, 업그레이드/다운그레이드 등을 포함하여 특정 티커에 대한 포괄적인 보고서를 제공합니다.get_options: 날짜 범위, 행사 가격, 옵션 유형(콜/풋)에 대한 필터링 옵션을 사용하여 티커에 대한 가장 높은 미결제 약정이 있는 옵션 데이터를 검색합니다.get_price_history: OHLCV 샘플, 기술 지표, 위험 지표 및 기타 양적 분석을 포함하여 특정 기간 동안의 과거 가격 데이터 다이제스트를 가져옵니다.get_financial_statements: 분기별 또는 연간으로 제공되는 티커의 재무 제표(수입, 잔액, 현금 흐름)에 액세스합니다.get_institutional_holders: 티커에 대한 주요 기관 및 뮤추얼 펀드 보유자를 나열합니다.get_earnings_history: 티커에 대한 추정치와 예상치를 포함한 수익 내역을 제공합니다.get_insider_trades: 티커의 최근 내부자 거래 활동을 검색합니다.get_ticker_news_tool: 특정 티커에 대한 최신 Yahoo Finance 뉴스를 가져옵니다.
두려움과 탐욕 지수 도구:
get_current_fng_tool: 현재 CNN 공포 & 탐욕 지수 점수와 평점을 가져옵니다.get_historical_fng_tool: 지정된 일수 동안의 과거 CNN 공포 및 탐욕 지수 데이터를 검색합니다.analyze_fng_trend: 특정 기간 동안 CNN 공포 & 탐욕 지수의 추세를 분석합니다.
계산 도구:
calculate: Python의 수학 구문과 NumPy를 사용하여 수학 표현식을 평가합니다.
매크로 데이터 도구:
get_current_time: 현재 시간을 제공합니다.get_fred_series: 특정 FRED 시리즈 ID에 대한 데이터를 검색합니다.search_fred_series: 키워드로 인기 있는 FRED 시리즈를 검색합니다.cnbc_news_feed: CNBC, BBC, SCMP에서 최신 세계 뉴스를 가져옵니다.
시계열 데이터 처리 및 최적화
이 서버는 yfinance 활용하여 티커의 과거 가격 데이터(OHLCV - 시가, 고가, 저가, 종가, 거래량)를 검색합니다. 이 원시 데이터는 상당한 처리 및 분석을 거쳐 LLM의 활용에 최적화된 귀중한 통찰력을 제공합니다.
시계열 데이터 처리의 주요 측면은 다음과 같습니다.
종합 분석:
ta-lib-python과 같은 라이브러리를 사용하여 데이터를 분석하여 다양한 기술 지표를 계산합니다. 또한, 사용자 정의 함수를 사용하여 기본 통계, 위험 지표를 계산하고, 일반적인 차트 패턴을 인식하고, 피보나치 되돌림 수준을 계산합니다.구조화된 다이제스트: 이 분석의 결과는 LLM이 쉽게 분석하고 이해할 수 있는 구조화된 다이제스트 형식(
generate_time_series_digest_for_LLM)으로 컴파일되며, 여기에는 통계, 요약, 기술 지표, 위험 지표, 패턴, 피보나치 수준 및 데이터 샘플에 대한 섹션이 포함됩니다.LLM을 위한 스마트 샘플링: LLM에게 맥락적 제약 없이 과거 데이터에 대한 대표성을 제공하기 위해 "스마트 샘플링" 전략(
get_latest_data_sample)을 사용합니다. 이 방법은 다양한 해상도로 데이터를 샘플링합니다.고해상도: 최신 데이터 포인트가 매일 포함됩니다.
중간 해상도: 중간 수준의 데이터 포인트가 매주 샘플링됩니다.
저해상도: 오래된 데이터 포인트는 매월 샘플링됩니다. 이러한 하이브리드 방식을 통해 LLM은 관리 가능한 수의 데이터 포인트 내에서 최근 가격 변동에 대한 자세한 정보를 얻는 동시에 장기적인 추세에 대한 맥락도 파악할 수 있습니다.
시계열 데이터의 최적화된 처리 및 표현을 통해 LLM은 주요 추세, 지표 및 패턴을 빠르게 파악하여 더욱 정보에 입각한 재무 분석을 수행할 수 있습니다.
샘플 보고서

필수 조건
Python: 3.10 이상
패키지 관리자: uv
설치
먼저, 아직 uv를 설치하지 않았다면 설치하세요.
지엑스피1
그런 다음 uvx 사용하여 finance-tools-mcp MCP 서버를 실행할 수 있습니다.
uvx finance-tools-mcp자신의 FRED API 키를 사용하려면 환경 변수로 설정할 수 있습니다.
FRED_API_KEY=YOUR_API_KEY uvx finance-tools-mcpSSE(Server-Sent Events) 전송을 사용하여 서버를 실행할 수도 있습니다.
uvx finance-tools-mcp --transport sse또는 FRED API 키와 SSE 전송을 사용하면:
FRED_API_KEY=YOUR_API_KEY uvx finance-tools-mcp --transport sseMCP 클라이언트와 함께 사용
finance-tools-mcp를 MCP 클라이언트(예: Claude Desktop)와 통합하려면 claude_desktop_config.json 에 다음 구성을 추가합니다.
{
"mcpServers": {
"investor": {
"command": "path/to/uvx/command/uvx",
"args": ["finance-tools-mcp"],
}
}
}디버깅
MCP 검사기를 활용하여 서버를 디버깅할 수 있습니다.
npx @modelcontextprotocol/inspector uvx finance-tools-mcp또는
npx @modelcontextprotocol/inspector uv --directory ./ run finance-tools-mcp로그 모니터링을 위해 다음 디렉토리를 확인하세요.
macOS:
~/Library/Logs/Claude/mcp*.logWindows:
%APPDATA%\Claude\logs\mcp*.log
개발
로컬 개발 및 테스트를 위해:
디버깅 섹션에 설명된 대로 MCP 검사기를 사용하세요.
다음 구성으로 Claude Desktop을 사용하여 테스트해 보세요.
{
"mcpServers": {
"investor": {
"command": "path/to/uv/command/uv",
"args": ["--directory", "path/to/finance-tools-mcp", "run", "finance-tools-mcp"],
}
}
}특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 라이선스 파일을 참조하세요.
샘플
할 일
[ ] 주식에 대한 지지 수준과 저항 수준을 추가합니다.
[x] 주식에 대한 피보나치 수정 수준 추가
[ ] 주식에 대한 이동 평균 합류 수준 추가
[ ] 예측을 위한 옵션 모델 추가
[ ] 재무 시트 및 기타 기능을 사용하여 예측 모델 추가
데이터 소스
핀텔닷컴
인베스팅닷컴
야후닷컴
fred.stlouisfed.org
CNN, CNBC, 레딧
Available Tools
17 toolsanalyze_fng_trendA
Analyze trends in CNN Fear & Greed Index over specified days.
Parameters:
days (int): Number of days to analyze (limited by available data).
Returns:
str: A string containing the analysis results, including latest value,
average value, trend direction, and number of data points analyzed.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the analysis output format (latest value, average, trend direction, data points) which is valuable, but doesn't mention rate limits, data freshness, or error conditions. It adequately describes what the tool produces but lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter and return sections. Every sentence adds value: the first defines scope, the parameter explanation clarifies constraints, and the return details specify output content without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no annotations and no output schema, the description provides good coverage: it explains the tool's purpose, parameter meaning, and return format. The main gap is lack of explicit usage guidance versus siblings, but otherwise it's reasonably complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage (parameter 'days' has no description in schema), but the description compensates by explaining the parameter's purpose ('Number of days to analyze') and constraint ('limited by available data'). This adds meaningful context beyond the bare schema type.
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 specific action ('Analyze trends') and resource ('CNN Fear & Greed Index') with temporal scope ('over specified days'). It distinguishes from siblings like 'get_historical_fng_tool' by emphasizing trend analysis rather than raw data retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for trend analysis of the Fear & Greed Index, but provides no explicit guidance on when to use this versus alternatives like 'get_historical_fng_tool' or 'get_overall_sentiment_tool'. The context is clear but lacks comparative direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculateB
Calculate the result of a mathematical expression. Support python math syntax and numpy. > calculate("2 * 3 + 4") {'result': 10} > calculate("sin(pi/2)") {'result': 1.0} > calculate("sqrt(16)") {'result': 4.0} > calculate("np.mean([1, 2, 3])") {'result': 2.0}
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes |
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 performs calculations but does not cover important traits like error handling (e.g., for invalid expressions), performance considerations (e.g., complexity or rate limits), or security aspects (e.g., safe evaluation). The examples imply it returns a dictionary with a 'result' key, but this is not explicitly stated in the description text.
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 appropriately sized and front-loaded, starting with a clear purpose statement followed by illustrative examples. Each example earns its place by demonstrating usage, but the formatting with code blocks and quotes could be slightly more streamlined for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is partially complete. It covers the purpose and parameter semantics well but lacks usage guidelines and behavioral details. For a computation tool, more context on limitations or error cases would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds significant meaning by explaining that the 'expression' parameter accepts mathematical expressions using Python math syntax and numpy, with examples illustrating valid inputs. This goes beyond the schema's basic string type, though it could be more explicit about constraints or formats.
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 ('calculate') and resource ('result of a mathematical expression'), distinguishing it from sibling tools that focus on financial data, news, or time retrieval. It explicitly mentions support for Python math syntax and numpy, which further clarifies its mathematical computation role.
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 does not mention any prerequisites, exclusions, or comparisons with sibling tools, leaving the agent to infer usage based on the purpose alone. This lack of explicit context reduces its effectiveness in tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cnbc_news_feedB
Get the latest breaking world news from CNBC, BBC, and SCMP. Useful to have an overview for the day. Include the Fed rate prediction from Fed watch and key macro indicators.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions what content is included (news from specific sources, Fed predictions, macro indicators) but doesn't cover critical aspects like rate limits, freshness of data, authentication needs, or potential costs. For a tool fetching real-time news without annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, stating the core purpose in the first sentence. The second sentence adds context about daily overviews and specific content inclusions. There's no wasted text, though it could be slightly more structured (e.g., bullet points for content types).
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 (fetching real-time news from multiple sources) and lack of annotations or output schema, the description is moderately complete. It specifies sources and content types but omits details on output format, data freshness, or error handling. For a news tool with no structured output documentation, this leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain parameters, so it appropriately focuses on the tool's function without redundant information. A baseline of 4 is justified as it efficiently handles the parameter-less case.
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 latest breaking world news from CNBC, BBC, and SCMP' with specific sources and content types (Fed rate prediction, key macro indicators). It distinguishes itself from sibling tools like 'get_ticker_news_tool' by focusing on general world news rather than ticker-specific news, though it doesn't 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance: 'Useful to have an overview for the day' suggests it's for daily news summaries. However, it doesn't specify when to use this versus other news-related tools (e.g., 'get_ticker_news_tool' or 'social_media_feed'), nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_timeA
Get the current time in ISO 8601 format.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the output format (ISO 8601) which is useful behavioral context, but does not mention timezone behavior, latency, or error conditions. It adequately describes the core behavior but lacks depth on operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately states the tool's purpose and output format without any wasted words. It is perfectly front-loaded and appropriately sized for this simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless tool with no annotations and no output schema, the description provides sufficient context about what the tool does and its output format. However, it could be more complete by mentioning timezone handling or potential limitations, though not strictly necessary for basic functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage. The description appropriately doesn't discuss parameters since none exist, and instead focuses on the output format. This meets the baseline expectation for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get') and resource ('current time'), with precise output format ('ISO 8601 format'). It distinguishes from all sibling tools which are finance-related, making its purpose unambiguous and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool (to obtain current time in a specific format), but does not explicitly mention when not to use it or name alternatives. Given the distinct nature of this tool compared to finance-focused siblings, the context is clear but lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_historyC
Get earnings history with estimates and surprises.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states what data is retrieved but doesn't disclose behavioral traits like whether this is a read-only operation, requires authentication, has rate limits, returns historical vs real-time data, or error conditions. 'Get' implies read-only, but this isn't explicitly confirmed.
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 6 words, front-loading the core purpose with zero wasted words. Every element ('earnings history', 'estimates', 'surprises') contributes directly to understanding the tool's function.
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, no output schema, and minimal schema coverage, the description is incomplete. It doesn't explain what 'estimates and surprises' means in practice, return format, time range covered, or data sources. For a financial data tool with behavioral unknowns, this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what the schema provides. With 0% schema description coverage and 1 parameter, the baseline is 3 since the schema documents the ticker parameter minimally. The description doesn't compensate by explaining ticker format, valid values, or examples.
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 'earnings history', specifying it includes 'estimates and surprises'. This distinguishes it from siblings like get_financial_statements or get_price_history by focusing on earnings data. However, it doesn't explicitly differentiate from all possible earnings-related tools that might exist.
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, appropriate contexts, or compare with siblings like get_financial_statements which might overlap. The agent must infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_statementsC
Get financial statements. Types: income, balance, cash. Frequency: quarterly, annual.
| Name | Required | Description | Default |
|---|---|---|---|
| frequency | No | quarterly | |
| statement_type | No | income | |
| ticker | Yes |
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 what types of statements can be retrieved and frequency options, but doesn't describe critical behavioral aspects: whether this requires authentication, rate limits, what format the data returns (e.g., raw numbers, structured JSON), whether it's a read-only operation, or any potential errors. 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 concise and front-loaded with the core purpose in the first two words. The additional details about types and frequency are efficiently presented in a single sentence. There's no wasted text, though it could benefit from slightly more structure (e.g., bullet points) for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of financial data retrieval (3 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., structured financial data, raw text), any authentication requirements, error handling, or how it differs from sibling tools. For a tool with no structured support, the description should provide more context to guide effective 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 some semantic context beyond the schema: it explicitly lists the statement types (income, balance, cash) and frequency options (quarterly, annual), which correspond to the enum values in the schema. However, with 0% schema description coverage, it doesn't explain the 'ticker' parameter or provide additional details like format examples or constraints. The description partially compensates but doesn't fully address the coverage gap for all three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get financial statements' with specific types listed (income, balance, cash), which is a clear verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_earnings_history' or 'get_ticker_data', which might also provide financial data, leaving some ambiguity about when to use this specific tool versus alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_earnings_history' or 'get_ticker_data'. It lists frequency options (quarterly, annual) but doesn't explain when to choose one over the other or any prerequisites for usage. There's no mention of context or exclusions, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fred_seriesB
Get a FRED series by its ID. However the data is not always the latest, so use with caution!!!
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes |
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 a critical limitation ('data is not always the latest'), which is valuable context beyond the basic operation. However, it lacks details on other behavioral traits such as error handling, response format, rate limits, or authentication needs, leaving significant gaps for a tool that fetches data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste: the first states the core purpose, and the second adds a crucial caution. It is front-loaded with the main action and appropriately sized for the tool's complexity, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low schema coverage, the description is incomplete. While it covers the basic purpose and a key limitation, it misses essential context such as return values, error conditions, and operational details. For a data retrieval tool with these gaps, more information is needed to be fully helpful.
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 1 parameter with 0% description coverage, so the schema provides no semantic information. The description adds meaning by specifying that the parameter is a 'FRED series ID', which clarifies the purpose of 'series_id'. However, it doesn't elaborate on format, examples, or constraints, leaving the parameter only partially documented.
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 'FRED series by its ID', which is specific and unambiguous. It distinguishes from sibling 'search_fred_series' by focusing on retrieval by ID rather than search. However, it doesn't explicitly contrast with other data-fetching siblings like 'get_price_history' or 'get_ticker_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 includes a caution about data freshness ('not always the latest, so use with caution'), which implies usage context for when timeliness matters. However, it doesn't provide explicit guidance on when to choose this tool over alternatives like 'search_fred_series' or other data retrieval tools, nor does it specify 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_historical_fng_toolB
Get historical CNN Fear & Greed Index data for a specified number of days.
Parameters:
days (int): Number of days of historical data to retrieve (limited by the API).
Returns:
str: Historical Fear & Greed Index values for the specified period.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes |
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 that the number of days is 'limited by the API,' which hints at potential constraints, but doesn't specify rate limits, authentication needs, error conditions, or what happens if the limit is exceeded. For a data retrieval tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized, with a clear purpose statement followed by parameter and return sections. Every sentence adds value, and there's no redundant information. It could be slightly more front-loaded by emphasizing key constraints earlier, but overall it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is adequate but has gaps. It explains the parameter and return type, but lacks details on behavioral aspects like error handling or API limits. Without annotations or output schema, it should ideally provide more context on what the returned data looks like (e.g., format, structure).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'days' by explaining it represents 'Number of days of historical data to retrieve' and noting it's 'limited by the API.' Since schema description coverage is 0% (the schema only provides type and title), this compensates well by clarifying the parameter's purpose and constraints, though it doesn't specify exact limits or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get historical CNN Fear & Greed Index data for a specified number of days.' It specifies both the verb ('Get') and resource ('historical CNN Fear & Greed Index data'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_current_time' or 'get_price_history' that might also retrieve time-series 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 'analyze_fng_trend' (which might process this data) or 'get_current_time' (which might provide different temporal data), nor does it specify prerequisites or exclusions. The only implicit usage hint is the parameter description mentioning API limits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_tradesC
Get recent insider trading activity.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does ('Get recent insider trading activity') without any details on traits like data freshness, rate limits, authentication needs, error handling, or what 'recent' means. This is inadequate for a tool with potential complexity in financial data retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence: 'Get recent insider trading activity.' It is front-loaded and wastes no words, making it easy to parse quickly. Every word contributes directly to the core purpose 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 tool's complexity (financial data retrieval), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't cover behavioral aspects, parameter details, or output expectations, leaving the agent with insufficient information to use the tool effectively in context with its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter ('ticker') with 0% description coverage, meaning the schema provides no semantic details. The description does not mention the parameter at all, failing to add any meaning beyond the schema. For a tool with undocumented parameters, this is a significant gap, as it doesn't explain what 'ticker' represents or how it should be formatted.
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 recent insider trading activity' clearly states the verb ('Get') and resource ('insider trading activity'), making the purpose understandable. However, it lacks specificity about scope (e.g., time frame, data source) and doesn't distinguish from siblings like 'get_ticker_data' or 'get_financial_statements', which might also provide financial data. It's not tautological but remains somewhat vague.
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 such as 'get_ticker_data' or 'get_financial_statements' that might overlap in financial data retrieval, there's no indication of when this specific tool is appropriate, nor any prerequisites or exclusions mentioned. This leaves the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_overall_sentiment_toolB
Get comprehensive market sentiment indicators including:
- CNN Fear & Greed Index (score and rating)
- Market RSI (Relative Strength Index)
- VIX (Volatility Index)
Returns:
str: Formatted string containing all three indicators with their current values
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses what data is returned (three specific indicators) and the return format (formatted string), which is helpful. However, it doesn't mention behavioral aspects like data freshness, rate limits, authentication requirements, or error conditions that would be important for a financial 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by a bulleted list of indicators and a returns section. Every sentence earns its place by providing essential information without redundancy. The formatting with bullet points enhances readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, no annotations, and no output schema, the description provides adequate coverage of what the tool does and what it returns. However, it lacks important context about data sources, update frequency, and potential limitations that would help an agent use it effectively in financial analysis scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and instead focuses on what the tool returns, which adds value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get comprehensive market sentiment indicators' and lists three specific indicators (CNN Fear & Greed Index, Market RSI, VIX). It distinguishes from siblings like 'get_historical_fng_tool' by focusing on current comprehensive sentiment rather than historical data. However, it doesn't explicitly contrast with all relevant siblings like 'analyze_fng_trend'.
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 this comprehensive sentiment view is preferable over individual indicators from siblings like 'get_historical_fng_tool' or 'analyze_fng_trend', nor does it specify any prerequisites or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_historyA
Get historical price data digest for specified period. There're two kinds of response mode: 1. The period mode. It will generate a digest for LLM consumption. Usually get at least 3 months, 6 months or more. The response includes OCHLCV samples, Technical Indicators (by ta-lib) , Risk Metrics, and other quantitative analysis. 2. The start_date and end_date mode. Once the start_date (yyyy-mm-dd) and end_date (yyyy-mm-dd) are specified, it will generate a raw OCHLCV data in the slot. And no digest will be generated in this mode. Useful for checking the price history of a specific short date range.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| period | No | 6mo | |
| start_date | No | ||
| ticker | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits: two distinct response modes with different outputs (digest vs raw data), what each mode includes (OCHLCV samples, technical indicators, risk metrics for digest mode), and format expectations (yyyy-mm-dd for date mode). However, it doesn't mention rate limits, authentication needs, error conditions, or data freshness.
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 appropriately sized but could be more front-loaded. The first sentence states the purpose, but the detailed mode explanations follow. Some sentences could be tightened (e.g., 'There're two kinds of response mode:' could be 'Two response modes:'). Overall efficient but not perfectly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description provides good context about modes and outputs but leaves gaps. It explains what the tool returns in each mode but doesn't describe the structure of the 'digest' or 'raw OCHLCV data.' Given the complexity of financial data analysis, more detail about output formats would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining the semantic relationship between parameters: two distinct modes (period mode vs start_date/end_date mode), format requirements for dates (yyyy-mm-dd), and practical guidance (get at least 3 months for period mode). It clarifies that ticker is required and how period/enum values relate to the 'period mode'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'gets historical price data digest for specified period' with specific mention of response modes. It distinguishes from siblings like get_ticker_data or get_earnings_history by focusing specifically on price history with digest/raw data outputs. However, it doesn't explicitly contrast with all possible siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use each mode: 'period mode' for LLM consumption with digest (recommending 3+ months) and 'start_date/end_date mode' for raw data of specific short date ranges. It doesn't explicitly mention when NOT to use this tool versus alternatives like get_ticker_data or analyze_fng_trend.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticker_dataB
Get comprehensive report for ticker: overview, news, metrics, sector / industry valuation, performance, dates, analyst recommendations, and upgrades/downgrades.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It describes what data is retrieved but lacks critical behavioral details such as whether this is a read-only operation, rate limits, authentication needs, data freshness, or error handling. The description is functional but misses key operational context needed for safe and effective use.
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 action ('Get comprehensive report for ticker') and lists key components without unnecessary words. Every part earns its place by clarifying scope, making it highly concise and well-structured.
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 (fetching diverse financial data) and lack of annotations or output schema, the description is moderately complete. It outlines the report components but doesn't cover behavioral aspects like data sources, update frequency, or response format. For a tool with no structured metadata, it provides a functional overview but leaves gaps in operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 1 parameter and 0% schema description coverage, the description compensates well by specifying that the parameter is a 'ticker' and implying it's for fetching a comprehensive report. It adds meaning beyond the bare schema, though it doesn't detail format constraints (e.g., ticker symbol conventions) or examples.
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 ('comprehensive report for ticker'), listing detailed components like overview, news, metrics, etc. It distinguishes from obvious siblings like get_ticker_news_tool (which focuses only on news) and get_price_history (which focuses only on price data), but could be more explicit about differentiation from other data-fetching tools like get_financial_statements.
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 with siblings like get_financial_statements or get_earnings_history, leaving the agent to infer usage based on the broad scope implied by 'comprehensive report'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticker_news_toolB
For getting yahoo financial news of a ticker. Useful for getting latest news, especially for doing deep research.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the source (Yahoo) and general use case (latest news, deep research), but fails to disclose critical behavioral traits such as rate limits, authentication needs, error handling, or the format/scope of returned news (e.g., number of articles, time range). This leaves significant gaps for an AI agent to understand operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that directly state the tool's function and use case, with no redundant information. It is front-loaded by starting with the core purpose. However, it could be slightly more structured by separating functional details from usage advice for better clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (news retrieval with potential variability in output) and the lack of annotations and output schema, the description is incomplete. It does not explain what the return values include (e.g., headlines, dates, links), how results are formatted, or any limitations (e.g., news recency, source reliability). This inadequately supports an AI agent in invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'ticker' with 0% schema description coverage, meaning the schema provides no details about this parameter. The description adds some meaning by specifying it's for 'a ticker' in the context of Yahoo financial news, but does not elaborate on format (e.g., stock symbol conventions), validation, or examples. This partially compensates for the low coverage but remains minimal.
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: 'getting yahoo financial news of a ticker' and 'getting latest news', which specifies the verb (get), resource (Yahoo financial news), and scope (for a ticker). However, it does not explicitly distinguish this from sibling tools like 'cnbc_news_feed' or 'social_media_feed', which might also provide news but from different sources or with different focuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating it's 'useful for getting latest news, especially for doing deep research', suggesting it's best for recent news and in-depth analysis. However, it does not provide explicit guidance on when to use this tool versus alternatives like 'cnbc_news_feed' or 'social_media_feed', nor does it specify any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top25_holdersC
Get top 25 institutional holders and their changes for a given stock ticker.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden 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 details the format of 'changes' (e.g., percentage, absolute values). 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: 'Get top 25 institutional holders and their changes for a given stock ticker.' It is front-loaded with the core action and resource, with no unnecessary words or redundancy. Every part of the sentence contributes directly to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (financial data retrieval), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'changes' entail, the data source, update frequency, or error handling. For a tool that likely returns structured financial data, more context is needed to use it effectively without trial and error.
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 one parameter ('ticker') with 0% description coverage, meaning the schema provides no semantic details. The description adds value by clarifying that 'ticker' refers to a 'stock ticker', which is useful context. However, it doesn't elaborate on format constraints (e.g., uppercase, validation) or examples, so it only partially compensates for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get top 25 institutional holders and their changes for a given stock ticker.' It specifies the verb ('Get'), resource ('top 25 institutional holders and their changes'), and scope ('for a given stock ticker'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_ticker_data' or 'get_financial_statements', which might also provide holder-related information.
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, exclusions, or compare it to sibling tools such as 'get_ticker_data' or 'get_financial_statements' that might offer similar or overlapping functionality. The user is left to infer usage based on the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_fred_seriesC
Search for the most popular FRED series by keyword. Useful for finding key data by name. Like GDP, CPI, etc. However the data is not always the latest.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that results show 'most popular' series and data may not be latest, adding useful behavioral context. However, it misses critical details like response format, pagination, error handling, or authentication needs, which are essential for a search tool with no structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose. Each sentence adds value: first states the action, second clarifies utility, third gives examples, fourth notes a limitation. There is no wasted text, though it could be more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, and no output schema, the description is incomplete. It covers basic purpose and a limitation but lacks details on parameters, return values, error cases, or integration with siblings. For a search tool with minimal structured data, 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?
Schema description coverage is 0%, so the description must compensate. It mentions 'keyword' which aligns with the 'query' parameter, but provides no additional semantics (e.g., format, examples beyond GDP/CPI, or search scope). With one undocumented parameter and minimal elaboration, it fails to adequately supplement the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for FRED series by keyword, specifying the resource (FRED series) and verb (search). It distinguishes from siblings like 'get_fred_series' by focusing on keyword-based search rather than direct retrieval. However, it doesn't explicitly contrast with all siblings, keeping it at 4 instead of 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 implies usage by mentioning 'useful for finding key data by name' and provides examples like GDP and CPI. It hints at limitations ('data is not always the latest'), but lacks explicit when-to-use vs. alternatives (e.g., 'get_fred_series' for specific series) or clear exclusions, leaving usage context somewhat vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
super_option_toolB
Analyzes and summarizes option data for a given ticker.
This function retrieves option indicators and Greeks for the specified ticker,
generates a digest summarizing key metrics, and formats a table of key option
data including last trade date, strike, option type, open interest, volume,
and implied volatility.
Args:
ticker: Stock ticker symbol.| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions retrieving option indicators and Greeks, generating a digest, and formatting a table, but lacks details on permissions, rate limits, data sources, or error handling. For a tool with no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose in the first sentence and details following. It avoids redundancy, but the Args section repeats parameter info that could be integrated more seamlessly.
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, 0% schema coverage, and no output schema, the description is moderately complete. It covers the purpose and parameter semantics but lacks behavioral details and output information, which is a gap for a tool performing analysis and summarization.
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 meaning beyond the input schema by specifying that 'ticker' is a 'Stock ticker symbol,' which clarifies its semantics. With 0% schema description coverage and only 1 parameter, this compensates well, though it doesn't detail format constraints (e.g., uppercase).
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: 'Analyzes and summarizes option data for a given ticker.' It specifies the verb (analyzes, summarizes) and resource (option data), and distinguishes it from siblings like get_ticker_data or get_price_history by focusing on options. However, it doesn't explicitly differentiate from all possible option-related tools that might be added later.
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, when not to use it, or compare it to sibling tools like get_ticker_data for general data or calculate for other calculations. Usage is implied by the purpose but not explicitly stated.
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.
17 tool updates
v1.0.0- First observed
analyze_fng_trend - First observed
calculate - First observed
cnbc_news_feed - First observed
get_current_time - First observed
get_earnings_history - First observed
get_financial_statements - First observed
get_fred_series - First observed
get_historical_fng_tool - First observed
get_insider_trades - First observed
get_overall_sentiment_tool - First observed
get_price_history - First observed
get_ticker_data - First observed
get_ticker_news_tool - First observed
get_top25_holders - First observed
search_fred_series - First observed
social_media_feed - First observed
super_option_tool
TDQS
Scored across 17 tools
Most tools have distinct purposes, but there is some overlap that could cause confusion. For example, get_historical_fng_tool and analyze_fng_trend both deal with Fear & Greed Index data, and get_ticker_data includes news while get_ticker_news_tool is specifically for news. However, descriptions help clarify differences, such as analyze_fng_trend focusing on trend analysis versus get_historical_fng_tool for raw data retrieval.
The naming follows a consistent snake_case pattern with a verb_noun structure for most tools, like get_price_history and search_fred_series. There are minor deviations, such as calculate being a single verb and cnbc_news_feed using a noun_verb_noun pattern, but overall, the naming is predictable and readable.
With 17 tools, the count is slightly high but reasonable for a finance domain that covers diverse areas like market data, news, sentiment, and analysis. It provides comprehensive coverage without being overwhelmingly large, though it borders on the heavy side for typical MCP server scopes.
The tool set offers broad coverage for financial analysis, including data retrieval (e.g., price history, financial statements), sentiment indicators, news feeds, and specialized tools like options analysis. Minor gaps exist, such as no explicit tools for portfolio management or trading actions, but agents can work around this with the available tools for core financial workflows.
Maintenance
Related MCP Connectors
The Octagon MCP server provides specialized AI-powered financial research and analysis by integrating with the Octagon Market Intelligence API. It enables users to analyze public market data (SEC filings, earnings transcripts, financial metrics, and stock data for 8000+ companies), private market data (3M+ companies, 500k+ funding rounds, 2M+ M&A/IPO transactions), and conduct deep research including web scraping capabilities. The server also features autonomous research agents that search hundreds of sources and return fully cited reports in approximately one minute.
7-factor stock scoring MCP server. US/HK/CN, 74 stocks. Free + Premium (USDC/Base). x402 ready.
Production MCP server for US equity and options intelligence: real-time IV radar, Monte Carlo simulation, options pressure, strategy backtesting, AI prediction, pre-trade risk analysis, and automated stock research reports.
Research-only MCP server: your AI as a quant research desk. 90 tools, no trades, no brokers.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server that provides comprehensive access to real-time stock quotes, financial statements, analyst estimates, and technical indicators via the Financial Modeling Prep API. It enables users to conduct in-depth financial analysis and track market performance through specialized tools, resources, and prompt templates.2642 npm1MIT
- AlicenseAqualityFmaintenanceA comprehensive MCP server for stock analysis and trading insights, including stock screening, fundamental analysis, insider trading, options analysis, social media research, and news analysis.1075MIT
- AlicenseAqualityCmaintenanceComprehensive MCP server for real-time stock, cryptocurrency, options, and fundamental analysis, including SEC filings and insider trading data.26124 npmMIT
- FlicenseAqualityCmaintenanceAn advanced MCP server for real-time worldwide stock market data, technical indicators, financials, news, and Python sandboxing with AI models, supporting US and Indian markets.291-
social_media_feedA
Get most discussed stocks and investments opinions from reddit. Useful to know what investors are talking about. keywords is optional. Set keywords to match the specific topic you are interested in, by 'OR' operator, e.g. ['tsla', 'tesla'], ['tesla', 'spacex'], ['AAPL', 'apple', 'tim cook', 'cook'] No keywords will return the most discussed stocks and investments.
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 describes the tool's function and parameter usage but lacks critical behavioral details such as rate limits, authentication requirements, data freshness, pagination, or error handling. For a tool fetching real-time social media data, these omissions are significant gaps that could impact agent decision-making.
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 appropriately sized and front-loaded, with the core purpose stated first. Each sentence adds value: the first defines the tool, the second gives usage context, and the remaining sentences detail parameter behavior with examples. There's no redundant information, though the structure could be slightly improved by separating the examples into a bullet list for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (fetching social media data), no annotations, and no output schema, the description is partially complete. It covers the purpose and parameter usage well but lacks details on output format, data recency, limitations, or error cases. This leaves gaps that could hinder an agent's ability to use the tool effectively in varied contexts.
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 0%, so the description must compensate. It effectively explains the 'keywords' parameter: it's optional, used to match specific topics via 'OR' operator, and provides concrete examples like ['tsla', 'tesla']. This adds meaningful semantics beyond the bare schema, clarifying how the parameter influences the tool's behavior and output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get most discussed stocks and investments opinions from reddit.' It specifies the verb ('Get'), resource ('stocks and investments opinions'), and source ('from reddit'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'cnbc_news_feed' or 'get_ticker_news_tool', which might also provide financial content from different sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: 'Useful to know what investors are talking about.' It explains the optional parameter behavior: 'No keywords will return the most discussed stocks and investments.' However, it doesn't explicitly state when NOT to use this tool or mention alternatives among the sibling tools, such as using 'cnbc_news_feed' for professional news instead of social media opinions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.