Back to home@helibeiqi

dsh-cn-disclosure

零依赖本地优先的 A股 公告/年报 结构化抽取 MCP server (dsh-plugin)

Stars
0
Language
JavaScript
Created
Aug 28, 2026
Updated
Aug 28, 2026
GitHub repo

Introduction

dsh-cn-disclosure

零依赖 · 本地优先的 A股 公告 / 年报 结构化抽取 MCP server。 把一段披露文本(公告正文 / 年报片段 / 复制的文本)抽取成事件研究可用的结构化字段:披露类型、日期、金额、比例、股数、方向。无需 API key、无需联网。


为什么做这个(定位与竞争现实)

  • 公告「抓取 + 摘要」已是红海:GitHub 上已有 mcp-a-stock-announcementsAshare-announcements-MCPCNEquityyiyan-mcp-server 等多个做"A股 公告获取+摘要"的 MCP。本插件不与之正面竞争(不抓取、不调外部 API)。
  • 本地「结构化抽取」= 开放细分(经复核):不限 topic 的全 GitHub 检索中,财报 结构化 MCP / 年报 PDF 解析 MCP / annual report extraction MCP / 巨潮 公告 MCP 全部 = 0公告 结构化抽取 仅 2 个且很窄(一个只做"股份回购事件"、一个是电缆招标系统),均非通用 A股 披露抽取器。因此本插件切入 "本地优先的 A股 披露结构化抽取" 这个真正开放的子方向。
  • 差异化:① 本地优先 / 零依赖 / 无 API key(文档与 PII 不出机);② 格式容忍——对自由文本做正则扫描,不假设任何公司/版式固定结构(回应"A股 各公司披露格式不一"的现实);③ 输出面向事件研究(类型/方向/日期/量级,可直接喂事件研究流水线)。

数据规模(v0.1.0 种子)

维度数量
披露事件类型17(业绩预告/快报、业绩变脸、分红、回购、增/减持、解禁、重组、并购、定增、担保、诉讼、中标、重大合同、停牌复牌、股权激励、高管变动…)
字段抽取规则9(日期 / 金额(亿·万) / 百分比 / 同比 / 每股收益 / 每股分红 / 股数(亿·万)…)

规则集中在 data/disclosure-rules.json可扩展:增删 event_types / field_patterns 即可覆盖更多披露场景,无需改代码。


工具清单(5 个)

工具说明关键参数
extract_disclosure主工具:对披露文本做全量结构化(分类 + 字段 + 事件)text
classify_disclosure仅做披露类型分类(命中类型 + 方向 + 匹配词)text
extract_events抽取事件研究可用事件列表text
extract_from_file读本地文件(.txt/.md/.html,html 自动去标签)后抽取path
disclosure_stats规则集规模概览

所有工具返回 UTF-8 JSON 文本,便于 agent 二次推理或直接呈现。

调用示例(dsh 对话)

  • "这份减持公告计划减多少股、占比多少、什么时候?" → extract_disclosure({text: "…拟减持不超过1200万股(占总股本3.5%)…"})events[decrease]shares=12,000,000 股, pct=3.5%, date
  • "把这段年报摘要里的业绩和分红抽出来" → extract_disclosureevents[earnings_pre](营收/净利/同比)+ events[dividend](每10股派5元)

安装 / 接入 dsh

本仓库是一个 dsh bundlecordis.patch.yml 合并进你的 dsh profile 即注册为一个 mcp server。

关键路径(部署时改成你本机实际路径):

- 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

command 使用 !!js process.env.QUANT_MCP_NODE || process.execPath 硬核写法,免疫本机 Node 版本目录漂移。

本地独立验证

python _selftest.py

扩展数据

编辑 data/disclosure-rules.json

  • event_types:披露事件类型 → {id, name, direction(pos/neg/neu), category, aliases[]}
  • field_patterns:字段抽取正则 → {id, name, regex, unit}

改完重启 server 即生效(无需改代码)。后续可导入用户自有的披露语料做规则增强。


架构要点

  • 零依赖:纯 Node ESM + fs,无 npm install,免疫 managed-node 漂移。
  • 本地优先:数据来自内置 data/disclosure-rules.json,不触网、不调外部 API。
  • 标准 MCP stdioinitialize → notifications/initialized → tools/list → tools/call,协议版本 2024-11-05,NDJSON 行协议。

已知局限(诚实声明)

  • 扫描版 PDF 需先转文本(可用本机 pdfplumber / 复制文本),本插件只处理文本。
  • 数值为字面正则识别,未做会计口径校验(如"扣非 vs 归母"区分、并表范围等需人工/下游复核)。
  • 多事件并列时(如"减持 + 诉讼")均列出,由调用方按类型取舍。

License

MIT © helibeiqi