agentladle/financial-reports
Server Details
This tool empowers MCP-compatible clients (like Cursor and Claude Desktop) with professional-grade capabilities for financial data extraction, and report analysis.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The four tools have distinct purposes: company resolution, keyword search, page reading, and date-based discovery. There is minor overlap between financialKeywordSearch and getFinancialReportPages for locating content, but the strategy notes clarify when to use each.
Tool names are descriptive and mostly follow a verb_noun pattern (searchCompanyInfo, searchReportsByPublishDate, getFinancialReportPages), but financialKeywordSearch breaks the pattern by leading with a noun and using a different verb style. The inconsistency is minor but noticeable.
Four tools is a reasonable, focused set for a financial report retrieval server. It is slightly thin for the breadth of functionality (search, read, company lookup, date lookup), but each tool covers a distinct workflow step and the count feels appropriate.
The server covers the core workflow: resolve company, search by keyword, read pages, and discover by publish date. Minor gaps exist, such as no direct way to list available report types for a company or fetch a table of contents as a structured object, but agents can work around these with the existing tools.
Available Tools
4 toolsfinancialKeywordSearchfinancialKeywordSearchADestructiveInspect
Full-text keyword search across financial reports.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Number of fragments to return, default 5, max 1000 | |
| market | No | Market: 'CN-A' | 'HK'. Optional. Omit to search all markets. | |
| pageMax | No | Maximum page number (inclusive), optional | |
| pageMin | No | Minimum page number (inclusive), optional | |
| keywords | Yes | 1-5 keywords for full-text search | |
| matchMode | No | Match mode: ANY (default) / ALL / MOST (at least 70%) | |
| stockCode | No | Stock code from searchCompanyInfo. CN-A: 6 digits; HK: 5 digits. Omit for cross-company search. | |
| reportType | No | Report type, e.g. 2025a4 (annual), 2026h2 (interim). Required when stockCode is omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation Contradiction: the description presents the tool as a pure read/search operation ('Full-text keyword search', 'read that page'), while annotations declare destructiveHint=true. The description never clarifies whether the search can modify or delete data, so the agent receives conflicting safety signals.
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 longer than average, but it is densely structured with an explicit strategy and critical rules. Every section prevents a specific invocation error, and the core purpose is front-loaded before the tactical guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all invocation-critical behavior: when to use it, prerequisites, language rules, code formats, and required parameters. The main gap is the lack of an output schema and only indirect mention of the return shape ('returned page number'), leaving fragment contents and matching results somewhat underspecified.
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?
Even though the schema covers all parameters, the description adds decisive constraints: 1-5 keywords only, no full sentences, language alignment (Simplified Chinese for CN-A, English for HK), reportType formats like '2025a4'/'2026h2', stock code digit rules, and reportType required for cross-company searches. This materially improves correct invocation.
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 opens with a specific action and resource — 'Full-text keyword search across financial reports' — and then sharpens the boundary by referencing sibling tools. It clearly distinguishes this tool from getFinancialReportPages and searchCompanyInfo, so an agent can tell it apart without opening the schema.
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 strategy section is an explicit decision tree: use this tool for specific facts or locating sections, skip it for TOC or known page numbers, and call searchCompanyInfo first when the company is unknown. It names the alternatives and the exact conditions that route to them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFinancialReportPagesgetFinancialReportPagesADestructiveInspect
Read full page content from a financial report by page range.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market: 'CN-A' | 'HK'. Optional. Omit to search all markets. | |
| pageCount | No | Number of pages to return, default 5, max 5 | |
| startPage | Yes | Start page (1-based) | |
| stockCode | Yes | Stock code from searchCompanyInfo. CN-A: 6 digits; HK: 5 digits. | |
| reportType | Yes | Report type, e.g. 2025a4 (annual), 2026h2 (interim) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description presents the operation as a read ('Read full page content'), but annotations declare readOnlyHint=false and destructiveHint=true. There is no mention of destructive effects or why the tool is classified as destructive, directly contradicting the description. Annotation Contradiction.
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 organized with a clear summary, strategy, and critical_rules sections and front-loads the core purpose. Some redundancy exists (pageCount limits, market optionality, report types appear in both strategy and critical_rules), so it is not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool provides extensive operational context: data availability, workflows, and formatting conventions. However, there is no output schema and the description never explains the returned structure (e.g., page text, page numbers, metadata), leaving a gap for an agent trying to interpret results.
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?
Although schema coverage is 100%, the description adds crucial semantics: startPage is 1-based, pageCount defaults to 5 max 5, report type patterns ('2025a4', '2026h2'), CN-A/HK digit counts, and a warning not to invent padding. This materially improves correct parameter construction.
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 opening sentence names a specific verb and resource: 'Read full page content from a financial report by page range.' The strategy and critical rules further clarify it is a page-range retrieval tool, distinguishing it from the sibling search tools (financialKeywordSearch searches by keyword; searchCompanyInfo resolves company identities).
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?
Strategy explicitly states when to use each mode: known startPage from keyword/TOC, TOC discovery with startPage=1, and when to call searchCompanyInfo first for unknown company names. Critical rule 5 tells the agent to prefer financialKeywordSearch for specific facts, establishing a clear alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchCompanyInfosearchCompanyInfoADestructiveInspect
Search listed companies by name or stock code. Resolves a company to stockCode and market.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Result size, max 100, default 5 | |
| query | Yes | Company name or stock code | |
| market | Yes | Market: 'CN-A' | 'HK'. Required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description presents this as a read-only search operation, but the annotations declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. This directly contradicts the described behavior, so the definition cannot be trusted regarding side effects. Annotation Contradiction.
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 with a front-loaded purpose statement followed by compact strategy and critical-rules blocks. Every sentence carries distinct information, and there is no filler or 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 three-parameter lookup tool with no output schema, this description is complete enough for correct invocation: it specifies query semantics, required market values, code formats, return fields, and how the tool fits into the larger workflow. Nothing needed for calling it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds useful semantics beyond the schema: query can be a company name or stock code, market must be CN-A or HK with one market per call, code formats per market are specified, and the return array fields are listed. These additions genuinely help an agent invoke the tool correctly.
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?
States a specific verb and resource: 'Search listed companies by name or stock code' and the resolution goal: 'Resolves a company to stockCode and market.' The strategy block clearly distinguishes it from sibling tools by positioning it as the mandatory first lookup step.
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?
Gives explicit when-to-use guidance: 'Call this FIRST when the user mentions a company by name or a short/unknown code.' It also explains what to do with the result, names downstream sibling tools, and provides a fallback hint for language mismatch. This is strong routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchReportsByPublishDatesearchReportsByPublishDateADestructiveInspect
Search companies by financial report publish date.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back from today. Default 7, max 7. Ignored when startDate/endDate is set. | |
| market | No | Market: 'CN-A' | 'HK'. Optional. Omit to search all markets. | |
| endDate | No | End date (inclusive), format yyyy-MM-dd. Optional. | |
| startDate | No | Start date (inclusive), format yyyy-MM-dd. Optional. | |
| reportType | No | Report type filter, e.g. '2025a4'. Optional. Omit to search all types. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, while the description describes a search/read operation with no mention of side effects. This is a contradiction the description does not resolve, so an agent could be misled about safety. The description does add useful behavioral details (no pagination, all companies returned, date-range precedence, available markets), but the contradiction is a serious flaw.
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 long but well-structured with <strategy> and <critical_rules> blocks. It front-loads the purpose and organizes parameter rules clearly. Every sentence adds value, though it could be trimmed slightly without losing meaning.
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 an output schema, the description does well to explain what is returned (all matching companies, no pagination, grouped by stock_code, with latest publish_date and report types). It covers key usage constraints and data availability. The main gap is the unresolved contradiction with annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving a baseline of 3, but the description adds substantial meaning beyond the schema: it explains precedence of startDate/endDate over days, auto-fill behavior, default/max of days, requirement of at least one date parameter, date format, market values, and reportType examples. This goes well beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('search') and resource ('companies by financial report publish date'). It distinguishes from siblings by explicitly naming financialKeywordSearch and getFinancialReportPages as follow-up tools for reading actual report content, and the scope (publish date) is clear and differentiated.
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 <strategy> block explicitly tells when to use this tool: to find companies with reports published in a specific time window. It also provides next-step guidance (use financialKeywordSearch or getFinancialReportPages) and notes data availability for CN-A/HK, which helps an agent decide. It lacks a formal when-not list but effectively implies boundaries by naming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
searchReportsByPublishDate
3 tool updates
- Changed
financialKeywordSearch2 fields changed- changed
Input schema / properties / market / descriptionPrevious value: -"Market: 'CN-A' | 'HK' | 'US'. Optional. Omit to search all markets."New value: +"Market: 'CN-A' | 'HK'. Optional. Omit to search all markets." - changed
Input schema / properties / stockCode / descriptionPrevious value: -"Stock code from searchCompanyInfo. CN-A: 6 digits; HK: 5 digits; US: uppercase ticker. Omit for cross-company search."New value: +"Stock code from searchCompanyInfo. CN-A: 6 digits; HK: 5 digits. Omit for cross-company search."
- Changed
getFinancialReportPages2 fields changed- changed
Input schema / properties / market / descriptionPrevious value: -"Market: 'CN-A' | 'HK' | 'US'. Optional. Omit to search all markets."New value: +"Market: 'CN-A' | 'HK'. Optional. Omit to search all markets." - changed
Input schema / properties / stockCode / descriptionPrevious value: -"Stock code from searchCompanyInfo. CN-A: 6 digits; HK: 5 digits; US: uppercase ticker."New value: +"Stock code from searchCompanyInfo. CN-A: 6 digits; HK: 5 digits."
- Changed
searchCompanyInfo1 field changed- changed
Input schema / properties / market / descriptionPrevious value: -"Market: 'CN-A' | 'HK' | 'US'. Required."New value: +"Market: 'CN-A' | 'HK'. Required."
1 tool update
- Changed
searchCompanyInfo1 field changed- changed
Input schema / properties / market / descriptionPrevious value: -"Market: 'CN-A' | 'HK' | 'US'. Required. If no hit, retry another market."New value: +"Market: 'CN-A' | 'HK' | 'US'. Required."
5 tool updates
- Changed
financialKeywordSearch8 fields changed- changed
Input schema / properties / keywords / descriptionPrevious value: -"关键词列表(1-5个),用于全文检索"New value: +"1-5 keywords for full-text search" - added
Input schema / properties / marketAdded value: +{ + "description": "Market: 'CN-A' | 'HK' | 'US'. Optional. Omit to search all markets.", + "type": "string" +} - changed
Input schema / properties / matchMode / descriptionPrevious value: -"匹配模式:'ANY'(任一,默认)/'ALL'(全部)/'MOST'(至少70%)"New value: +"Match mode: ANY (default) / ALL / MOST (at least 70%)" - changed
Input schema / properties / pageMax / descriptionPrevious value: -"最大页码(含),仅返回页码<=此值的结果,可选"New value: +"Maximum page number (inclusive), optional" - changed
Input schema / properties / pageMin / descriptionPrevious value: -"最小页码(含),仅返回页码>=此值的结果,可选"New value: +"Minimum page number (inclusive), optional" - changed
Input schema / properties / reportType / descriptionPrevious value: -"报告类型标识符(当前已支持如:2023a4,2024a4,2025a4),可选,不指定则检索所有报告"New value: +"Report type, e.g. 2025a4 (annual), 2026h2 (interim). Required when stockCode is omitted." - changed
Input schema / properties / size / descriptionPrevious value: -"返回片段数量,默认5,最大1000"New value: +"Number of fragments to return, default 5, max 1000" - changed
Input schema / properties / stockCode / descriptionPrevious value: -"股票代码,如'000001',可选,不指定则全市场检索"New value: +"Stock code from searchCompanyInfo. CN-A: 6 digits; HK: 5 digits; US: uppercase ticker. Omit for cross-company search."
- Changed
getFinancialReportPages5 fields changed- added
Input schema / properties / marketAdded value: +{ + "description": "Market: 'CN-A' | 'HK' | 'US'. Optional. Omit to search all markets.", + "type": "string" +} - changed
Input schema / properties / pageCount / descriptionPrevious value: -"返回页数(最多5页)"New value: +"Number of pages to return, default 5, max 5" - changed
Input schema / properties / reportType / descriptionPrevious value: -"报告类型标识符(当前已支持如:2023a4,2024a4,2025a4)"New value: +"Report type, e.g. 2025a4 (annual), 2026h2 (interim)" - changed
Input schema / properties / startPage / descriptionPrevious value: -"起始页码"New value: +"Start page (1-based)" - changed
Input schema / properties / stockCode / descriptionPrevious value: -"股票代码"New value: +"Stock code from searchCompanyInfo. CN-A: 6 digits; HK: 5 digits; US: uppercase ticker."
- Removed
getFinancialStatementsStartPages - Removed
getReportChapters - Changed
searchCompanyInfo4 fields changed- added
Input schema / properties / marketAdded value: +{ + "description": "Market: 'CN-A' | 'HK' | 'US'. Required. If no hit, retry another market.", + "type": "string" +} - changed
Input schema / properties / query / descriptionPrevious value: -"公司名称或股票代码"New value: +"Company name or stock code" - changed
Input schema / properties / size / descriptionPrevious value: -"返回结果数量,最大 100,默认 5"New value: +"Result size, max 100, default 5" - changed
Input schema / requiredPrevious value: -[ - "query" -]New value: +[ + "query", + "market" +]
5 tool updates
- First observed
financialKeywordSearch - First observed
getFinancialReportPages - First observed
getFinancialStatementsStartPages - First observed
getReportChapters - First observed
searchCompanyInfo
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.169 npm1MIT
- AlicenseCqualityAmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm49 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.