In the DeepSeek Harness (DSH) plugin ecosystem, processing A-share announcements faces two main pain points: first, relying on external APIs for summaries, which leads to severe homogenization; second, the lack of local structured extraction capability, making it difficult to directly use for event studies. After searching, there is currently no general-purpose local A-share disclosure structured extractor on GitHub. This article introduces helibeiqi/dsh-cn-disclosure, a DSH bundle that aims to convert free-text announcement or annual report snippets into structured fields suitable for event studies.
Positioning and Core Differences¶
This plugin focuses on the niche of “local-first structured extraction of A-share disclosures.” Unlike existing “announcement scraping + summarization” MCPs, it does not rely on external APIs, does not crawl web pages, and runs entirely locally.
The core differences are:
1. Zero dependencies and privacy: No API key, no internet connection required, and documents and PII do not leave the machine.
2. Format tolerance: It performs regex scanning on free text, without assuming a fixed company or template structure, accommodating the reality that A-share disclosures vary by company.
3. Event-study oriented: Output includes fields such as disclosure type, direction, date, amount, percentage, and share count, and can be fed directly into event-study pipelines.
Built-in Capabilities and Data Scale¶
The plugin includes a built-in rule set that covers common disclosure scenarios:
* 17 disclosure event types: covering earnings forecasts/flash reports, earnings changes, dividends, share buybacks, stake increases/decreases, lockup expirations, restructurings, M&A, private placements, guarantees, litigation, winning bids, significant contracts, trading suspension/resumption, equity incentives, executive changes, etc.
* 9 field extraction rules: supporting extraction of dates, amounts (hundreds of millions / ten-thousands), percentages, year-on-year change, earnings per share, dividend per share, share count, etc.
All rules are stored in data/disclosure-rules.json and are extensible.
Tool List¶
The plugin provides 5 MCP tools for different processing stages:
- extract_disclosure: The main tool. Performs full structured extraction on disclosure text (classification + fields + events).
- classify_disclosure: Classifies disclosure type only, returning the matched type, direction, and matching terms.
- extract_events: Extracts an event list suitable for event studies.
- extract_from_file: Reads a local file (.txt/.md/.html; HTML tags are automatically stripped) and then extracts.
- disclosure_stats: Shows an overview of the rule set scale.
All tools return UTF-8 JSON text.
Installation and Enabling¶
This repository is a DSH bundle. You need to merge cordis.patch.yml into your DSH profile to register it as an MCP server.
- Clone the repository.
- Edit
cordis.patch.yml. - Merge it into your DSH profile.
- Restart the DSH process.
An example configuration after installation (modify the paths according to your local machine):
- insert:
- path: plugins.mcp-servers
items:
- id: mcp-cn-disclosure
name: A股信息披露结构化抽取
transport: stdio
command: !!js process.env.QUANT_MCP_NODE || process.execPath
args:
- "C:\Users\helib\dsh-cn-disclosure\cn-disclosure-mcp-server.mjs"
cwd: "C:\Users\helib\dsh-cn-disclosure"
enabled: true
The command uses !!js process.env.QUANT_MCP_NODE || process.execPath, which is robust against local Node version directory drift.
After deployment, you can run python _selftest.py locally for independent verification.
Typical Usage¶
Scenario 1: Reduction of holdings announcement
Input text: “Plan to reduce no more than 12,000,000 shares (3.5% of total share capital)…”
Calling extract_disclosure may return events[decrease] with fields shares=12,000,000 股, pct=3.5%, date.
Scenario 2: Annual report summary
Input text: “Earnings and dividends…”
Calling extract_disclosure can simultaneously extract events[earnings_pre] (revenue/net profit/year-on-year) and events[dividend] (5 yuan dividend per 10 shares).
Extension and Maintenance¶
To cover more disclosure scenarios, no code changes are required. Directly edit data/disclosure-rules.json:
* event_types: Defines disclosure event types.
* field_patterns: Defines regex patterns and units for field extraction.
After making changes, restart the server to apply them.
Known Limitations¶
- Scanned PDFs: Scanned PDFs must first be converted to text (using pdfplumber or manually copying); the plugin only processes text.
- Numeric recognition: Numbers are recognized via literal regex patterns, without accounting-basis validation (e.g., “net profit excluding non-recurring items vs. profit attributable to parent” requires manual review).
- Co-occurring events: If an announcement contains multiple events (e.g., “reduction of holdings + litigation”), all will be listed, and the caller chooses based on type.
Summary¶
dsh-cn-disclosure provides DSH users with a low-cost, high-privacy solution for structuring A-share announcements. It is suitable for scenarios requiring local processing of large volumes of disclosure text and event studies. The code is hosted on GitHub and follows the MIT license.