SuperAPI AI 工具集

chinese-history-mcp

chinese-history-mcp 是一个可溯源的中国历史故事 MCP(Model Context Protocol)服务器。它通过四个工具对九部先秦至汉魏时期的经典文本(史记、汉书、后汉书、三国志、左传、论语、孟子、吕氏春秋、资治通鉴)进行查询,支持按事件、人物、今地名、品质四个维度检索。每条返回结果都附带【书→章→段】的原文出处引用,并如实标注 review_status 审核状态,不会虚假声称经过逐条人工审核。该服务器零运行时依赖,仅使用 Python 标准库,读取语料库时以只读模式打开,不写入任何数据,整体代码可在少量文件中审计。

访问官网

工具介绍

用途

chinese-history-mcp 旨在填补公共 MCP 生态中缺少中国古典历史/中文历史服务器的空白。它面向需要从先秦至汉魏经典文本中检索可引用事实的场景,让下游 LLM 或应用能够基于带出处的原文进行回答,而不是凭空生成。项目定位为公共公益性质,收入预期为零。

主要能力

服务器提供四个 MCP 工具,覆盖九部经典文本(先秦-汉魏):史记、汉书、后汉书、三国志、左传、论语、孟子、吕氏春秋、资治通鉴。支持按以下四轴查询:

  • 事件
  • 人物
  • 今地名
  • 品质

每次工具调用返回 JSON。多来源事件、人物评价、地点/品质关联均携带精确的【书 → 章 → 段】引用。

使用方式

需要 Python 3.9+(仅标准库,不安装其他依赖)。服务器通过 stdio 上的 MCP 协议通信(换行分隔的 JSON-RPC 2.0)。

安装

pip install chinese-history-mcp

或直接在检出目录运行,无需安装。

在 MCP 客户端中配置

Claude Desktop(claude_desktop_config.json)、Cline、Continue 等:添加一个 stdio 服务器。安装后配置如下:

(配置内容见官方仓库文档)

零安装方式:uvx chinese-history-mcp --db /path/to/corpus.db

手动握手测试

python3 scripts/mcp_demo.py --db /path/to/corpus.db

运行四个工具的脚本化演示,同时也可作为最小 MCP 客户端参考。

语料库数据库

corpus.db 不在仓库中(约 90 MB 二进制文件)。从仓库的 Releases 下载,并通过 --db 指向它,或设置环境变量 STORYEXTRACTOR_DB=/path/to/corpus.db。运行时数据库为只读。

诚实性说明

服务器设计目标是提供溯源,而非将机器输出伪装成学术成果。下游客户端和 LLM 不得将其结果呈现为“逐条经过人工审核”。每条响应都标注内容性质:

  • 事件 review_status='approved':多为机器批量批准的可靠推断,并非逐条人工审核。
  • 人物档案 review_status='draft':由 LLM 合成,未经人工审查。
  • 品质映射:auto_approved = 多 LLM 机器共识,draft = 待审核;evidence_quote 是来源中的真实子串,rationale 是 LLM 的推理。
  • 地点映射:多为多 LLM 机器共识(auto_approved),少数经人工批准;confidence 分为 high/medium/doubtful 三档。
  • 文本:原文为公共领域白文,带机器生成的标点/分词;白话翻译完全由机器生成。

服务器不能消除下游幻觉:它提供可引用的检索事实,但基于其上的 LLM 仍可能围绕这些事实编造。引用是供人工核验的锚点。

范围仅限于上述九部文本——“未找到”意味着“不在本语料库中”,而非“历史上未发生”。

数据与来源

  • 原文:公共领域古典中文白文(来自公共领域版本的未标点基础文本),标点和分词为自行生成、机器产出(并非复制任何现代校注本)。
  • 白话翻译:全语料库机器生成。
  • 注释(事件/实体/地点/品质):机器辅助,部分层级有人工审核门控;每条记录报告状态。
  • 代码(本仓库):MIT,见 LICENSE。
  • 语料数据(corpus.db,通过 Releases 分发):CC BY 4.0。

文本层基于公共领域基础文本自行生成(标点/分词),因此可自由分发;机器生成的属性全程标注以符合 AIGC 合规要求。

设计说明

  • 纯标准库手写 stdio JSON-RPC 2.0(initialize / tools/list / tools/call + ping / notifications),无第三方 MCP SDK。
  • 只读数据库访问(src/storyextractor/mcp/db.py):mode=ro + PRAGMA query_only;服务时不使用运行迁移的 db.connect。
  • 测试:python3 tests/test_mcp_server.py(只读强制执行、协议形状/错误码、诚实 review_status、别名精确匹配 + 消歧、LIKE 通配符转义)——构建临时测试数据库,因此无需 corpus.db 即可运行。

限制

  • 语料范围仅为九部文本,不覆盖其他历史资料。
  • 部分内容为机器生成或机器审核,并非逐条人工审核。
  • 服务器本身不消除下游幻觉。
  • 运行时数据库只读,不执行写入。
  • 收入预期为零,目标为公共公益。
  • 贡献时需遵守约束:零运行时依赖、只读、每条结果带引用、诚实 review_status。