fd-cn-report
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ES_URL | No | Elasticsearch URL (required for ES features) | |
| LLM_MODEL | No | LLM model name | |
| ES_API_KEY | No | Optional Elasticsearch API key | |
| ES_PASSWORD | No | Optional Elasticsearch password | |
| ES_USERNAME | No | Optional Elasticsearch username | |
| LLM_API_KEY | No | API key for LLM (required for AI features) | |
| LLM_BASE_URL | No | Base URL for LLM API | |
| DAAS_DATABASE_URL | No | Database URL for provenance writes and rules storage | daas.db |
| LLM_SECTION_CACHE | No | Set to 'off' to disable LLM section caching | |
| CNREPORT_CACHE_DIR | No | Directory for report cache | .cache/reports/ |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_outlineC | Fetch a Chinese annual report and return its 目录 outline. |
| extract_sectionC | Extract one section's body text by selector. |
| ai_extractC | Run LLM structured extraction over report section text. |
| index_recordsC | Bulk-index extracted records into cnreport-{year}. |
| search_reportsC | Full-text + filtered search over cnreport indices with highlights. |
| delete_indexA | Drop the cnreport-{year} Elasticsearch index and its metadata row. |
| get_companyB | Resolve a CN-A-share company by 6-digit ticker or Chinese/English name fragment. |
| list_filingsC | List a CN-A-share company's CNINFO disclosures. |
| get_filingB | Fetch one CNINFO announcement's metadata + PDF URL by id. |
| get_financialsC | Return structured income/balance/cashflow statements for a CN-A-share company. |
| get_sectionA | Resolve a company's filing PDF and extract one named section. Convenience wrapper: (ticker, year, section, form) → CNINFO lookup → PDF URL → existing outline-extraction pipeline. |
| list_report_typesB | Browse the CNINFO disclosure category catalog. |
| get_special_reportB | Retrieve a special-type report for a CN-A-share company by CNINFO category. |
| get_financial_statementsA | Extract the three major financial statements (三大报表) as text. Resolves the company's filing PDF for
Returns section text only — never PDF bytes. Statements not located
in the TOC are listed in |
| list_cacheA | List cached annual reports. Each entry carries the parsed provenance ( |
| clear_cacheC | Evict cached annual reports. |
| list_indicatorsC | Browse the banking-indicator rule set (data-driven by indicator_rules.json). |
| get_indicatorA | Resolve one named financial indicator for a company + period. Routes per the rule's |
| extract_indicatorsA | Extract many indicators for one company/year in a single pass. Fetches the annual-report PDF once, groups report-rules by section (one LLM call per section), dispatches Python extractors individually, and computes derived ratios locally. Caches the bundle to disk so repeat calls are free. |
| extract_indicators_by_positionA | Extract the indicators named in a position CSV for one company/year. Default CSV is |
| get_hk_companyB | Resolve a HK stock company by 5-digit ticker or name fragment. |
| list_hk_filingsC | List a HK stock company's filings/announcements. |
| get_hk_financialsC | Return structured financial statements for a HK stock company. |
| get_hk_sectionB | Extract a named section from a HK stock annual report PDF. |
| get_sse_companyB | Resolve a SSE-listed company by 6-digit ticker (sse.com.cn). |
| list_sse_filingsB | List a SSE-listed company's disclosures directly from sse.com.cn. |
| get_sse_sectionC | Extract a named section from a SSE company's annual-report PDF. |
| get_sse_interactionB | Fetch 上证e互动 investor Q&A for a SSE-listed company (sns.sseinfo.com). |
| get_szse_companyA | Resolve a SZSE-listed company by 6-digit ticker (szse.cn). |
| list_szse_filingsA | List a SZSE-listed company's disclosures directly from szse.cn. Returns: {filings, count} or {error}. |
| get_szse_sectionC | Extract a named section from a SZSE company's annual-report PDF. Returns: {stock_code, year, section, pdf_url, outline_entry, text, char_count} or {error}. |
| get_szse_interactionB | Fetch 互动易 investor Q&A for a SZSE-listed company (irm.cninfo.com.cn). Returns: {stock_code, source, questions: [...]} or {error}. |
| get_bse_companyB | Resolve a BSE-listed company by 6-digit ticker (bse.cn). |
| list_bse_filingsB | List a BSE-listed company's disclosures (BSE-native, CNINFO fallback). Each row carries |
| get_bse_sectionA | Extract a named section from a BSE company's annual-report PDF. The filing may be served from BSE or CNINFO (fallback); the result carries
|
| list_csrc_filingsC | List CSRC regulatory announcements/notices (csrc.gov.cn). |
| get_csrc_ipo_reviewB | Query CSRC IPO (首发) application review status for a company. Returns: {company, source, fields} (matching application row) or {company, source, error}. |
| get_csrc_merger_reviewB | Query CSRC 并购重组 (M&A) review status for a company. Returns: {company, source, fields} or {company, source, error}. |
| list_csrc_enforcementC | List CSRC administrative-penalty / enforcement actions (csrc.gov.cn). Returns: {filings, count} or {error}. |
| list_ministriesA | List the supported ministry statistics sources. Returns: {ministries: [{id, label, en, transport, base}], count} or {error}. |
| get_ministry_statC | Fetch a ministry's statistics page and parse its HTML tables. |
| get_nbs_statB | Query an NBS (国家统计局) macro statistic by indicator code. |
| audit_rule_gapsB | Audit rule gaps from existing out/ bundles and write a stable JSON report. |
| open_industry_rules_dashboardA | Start the industry rules web dashboard with filtering and search. Opens a web UI at http://localhost: showing all 21,698 LLM rules across 31 申万 L1 industries. Filter by industry, module, keyword; sort by any column; paginated view. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 44 tools
Many tools are differentiated only by exchange or source (e.g., get_company vs get_szse_company, list_filings vs list_szse_filings), and multiple extraction/financial tools overlap in purpose (get_section, extract_section, get_financial_statements, get_financials). Descriptions are detailed and clarify the intended scope, but the sheer volume makes misselection likely for an unfamiliar agent.
Nearly all 44 tools follow a consistent snake_case verb_noun pattern (list_filings, get_section, extract_indicators). Minor deviations like ai_extract are rare and do not disrupt the overall predictability.
44 tools far exceeds the ideal range and feels excessive even for a broad server spanning multiple exchanges, data types, extraction, indexing, caching, and dashboards. The count risks overwhelming agents despite each tool having a distinct niche.
The surface covers discovery, retrieval, extraction, indexing, and caching for CN/HK financial disclosures across many sources. Minor gaps exist, such as no indicator listing for NBS or no specific filing-fetch for some exchanges, but these are workable with external knowledge.