China Law MCP

io.github.thu-lawyerv0.1.1更新於 Oct 4, 2026

Search 23,995 Chinese statutes and verify citations to catch LLM-fabricated references.

概覽

AI 產生的概覽

讓助手離線檢索 23,995 條中國現行法條,並核驗所引用的條文是否真實存在。

功能
內建 378 部法律(憲法、法律、立法解釋)共 23,995 條條文的本地語料庫。工具包括:search_statutes 自然語言檢索、get_article 依法律與條號取原文、list_laws 瀏覽法律目錄、verify_citation 核驗單筆引用、check_citations_in_text 抽取並逐條核驗文本中的所有引用。檢索使用本地 BM25 索引,不呼叫任何外部 API。
適用情境
適合助手回答中國法律問題且需要核對引用時使用,也用於找出編造的法條引用。需要查詢條文原文或從口語描述中尋找相關法條時同樣適用。
執行需求
以 stdio 本地行程執行。可透過 uvx 或 pip(Python)安裝,或執行已發布的 Docker 映像。無需帳號、API key 或網路連線;SQLite 資料庫隨套件提供,BM25 索引於首次執行時建立。
安裝前請注意
README 說明檢索為 BM25 基準,口語到法言法語的對應依賴手工規則表,生僻表述可能召回不相關條文,請始終以回傳的條文原文為準。涵蓋範圍僅限憲法、法律、立法解釋,不含行政法規、地方性法規與司法解釋。時效狀態部分為庫內推定,且本工具不構成法律意見。可選的加密腳本使用 CHINA_LAW_KEY 環境變數。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 China Law MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

⚖️ china-law-mcp

中国法律条文 MCP 服务器 · 让 AI 引用法条不再编造

免费 · 免注册 · 免 API key · 本地运行

[License: MIT] [CI] [Python] [PyPI] [Downloads] [MCP] [MCP Registry] [Glama] [ghcr.io] [Laws] [Articles]

English · 中文


解决什么问题

直接问大模型中国法律问题,有两个后果:引用的条文可能根本不存在或已废止,你无法核实。法律是最不能容忍编造的领域。

china-law-mcp 给 AI 装上一个离线法条库 + 引用核验器:

  • 模型要引用《民法典》第 1254 条?先调 verify_citation 查一下,不存在就换掉
  • 模型写了一整段分析?check_citations_in_text 会把里面所有《某法》第 N 条抽出来逐条核验,列出编造的引用
  • 不知道适用哪条?search_statutes 用自然语言检索(支持「同事借我钱不还」这种口语)

数据在本地,不联网、不注册、不需要 API key。

快速开始

方式一:一行命令(推荐)

bash
uvx china-law-mcp

方式二:pip 安装

bash
pip install china-law-mcpchina-law-mcp

方式二:克隆运行

bash
git clone https://github.com/thu-lawyer/china-law-mcpcd china-law-mcppip install -r requirements.txtpython -m china_law_mcp        # 首次运行自动构建 BM25 索引,约 6 秒

方式三:Docker(镜像已发布到 ghcr.io)

bash
docker run -i --rm ghcr.io/thu-lawyer/china-law-mcp:latest
json
{  "mcpServers": {    "china-law": {      "command": "docker",      "args": ["run", "-i", "--rm", "ghcr.io/thu-lawyer/china-law-mcp:latest"]    }  }}

接入 Claude Code / Cursor / 其他 MCP 客户端

json
{  "mcpServers": {    "china-law": {      "command": "uvx",      "args": ["china-law-mcp"]    }  }}

工具

工具作用
search_statutes(query, top_k, law?)自然语言问题 → 相关法条(口语自动扩展为法言法语)
get_article(law, article_no)法律 + 条号 → 条文原文,支持「民法典」「1254」「第一千二百五十四条」
list_laws(keyword?, department?)浏览库内法律目录
verify_citation(law, article_no)核验单条引用是否真实存在
check_citations_in_text(text)抽取文本中全部引用并逐条核验,列出编造的

效果示例

自然语言检索(口语直接问):

text
search_statutes("同事借我钱不还怎么办")→ 中华人民共和国民法典 第六百七十五条  借款人应当按照约定的期限返还借款…→ 中华人民共和国民法典 第六百七十四条  借款人应当按照约定的期限支付利息…
search_statutes("外卖吃出异物能退吗")→ 中华人民共和国食品安全法 第一百四十八条  消费者因不符合食品安全标准的食品受到损害的,                                            可以向经营者要求赔偿损失,也可以向生产者要求赔偿…

引用核验(防止 AI 编造):

text
verify_citation("民法典", "1254")   → verified=True   (真实存在)verify_citation("民法典", "9999")   → verified=False  中华人民共和国民法典 没有第 9999 条
check_citations_in_text("根据《民法典》第1254条…依据《劳动合同法》第99条和《民法典》第88888条…")→ 共 3 条,有效 1,无效 2→ invalid: ['《劳动合同法》第99条', '《民法典》第88888条']

数据

  • 378 部法律、23,995 条现行条文(宪法、法律、立法解释全量)
  • 每条含:法律名、编章、条号(中文 + 阿拉伯数字)、条文全文、部门法、时效状态
  • SQLite 数据库(15 MB)随仓库提供,开箱即用;BM25 索引首次运行自动构建(约 6 秒,之后缓存)

换成你自己的语料:

bash
python scripts/build_corpus.py 你的条文.jsonl     # → data/laws.db

字段说明见 scripts/build_corpus.py 头部注释。scripts/ 下另有两个可选工具:make_subset.py(抽取常用法律子集)、encrypt_data.py(把数据库加密为 laws.db.enc,服务器可用 CHINA_LAW_KEY 环境变量自动解密)。

工作原理

用户提问   ↓search_statutes   ← BM25 召回 + 口语同义词/共现规则扩展 + 覆盖率与短语重排 + 条号直查   ↓返回条文原文(含出处)   ↓模型依据条文作答   ↓check_citations_in_text   ← 正则抽取《X法》第N条,逐条查库核验   ↓编造的引用被列出并剔除

检索是纯本地 BM25(rank-bm25 + jieba),不调用任何外部 API,因此没有网络依赖、没有调用成本,也不会把你的查询发给第三方。

已知局限

  • 检索是 BM25 基线,口语→法言法语的映射靠一张手工规则表(约 40 条)。常见场景效果好,生僻表述可能召回不相关条文——请始终以返回的条文原文为准。
  • 覆盖范围为宪法、法律、立法解释(378 部),不含行政法规、地方性法规、司法解释。修法频繁的领域请留意时效状态字段。
  • 条文时效状态部分为库内推定(见语料 status_basis 字段)。
  • 本工具提供条文检索与引用核验,不构成法律意见。

收录情况

开发

bash
pip install -r requirements-dev.txtPYTHONPATH=src pytest tests/ -v     # 12 个测试,覆盖检索、直查、引用核验

相关项目

许可

MIT。条文数据来自公开渠道整理,请遵守相应来源的使用条款。

來源:README.md,提交 f502333

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.1最新Oct 4, 2026