Skip to main content
Glama

⚖️ china-law-mcp

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

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

License: MIT GitHub stars CI Python PyPI Downloads MCP MCP Registry Glama ghcr.io Laws Articles

Star History Chart

English · 中文


解决什么问题

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

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

  • 模型要引用《民法典》第 1254 条?先调 verify_citation 查一下,不存在就换掉

  • 模型写了一整段分析?check_citations_in_text 会把里面所有《某法》第 N 条抽出来逐条核验,列出编造的引用

  • 不知道适用哪条?search_statutes 用自然语言检索(支持「同事借我钱不还」这种口语)

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

Related MCP server: chuance-policy-mcp

快速开始

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

uvx china-law-mcp

方式二:pip 安装

pip install china-law-mcp
china-law-mcp

方式三:克隆运行

git clone https://github.com/thu-lawyer/china-law-mcp
cd china-law-mcp
pip install -r requirements.txt
python -m china_law_mcp        # 首次运行自动构建 BM25 索引,约 6 秒

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

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

接入你的客户端

标准 stdio 服务器,任何 MCP 客户端都能接。先确定 uvx 在 PATH 里(uv 随附)。

客户端

接入方式

Claude Code

一条命令:claude mcp add china-law -- uvx china-law-mcp

Claude Desktop

编辑 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/;Windows:%APPDATA%\Claude\),粘入下面的 JSON 后重启

Cursor

项目级 .cursor/mcp.json 或全局 ~/.cursor/mcp.json,粘入下面的 JSON

VS Code(Copilot Chat)

.vscode/mcp.json,注意顶层键是 servers 而不是 mcpServers

国内客户端(Cherry Studio、ChatWise、LobeChat、DeepChat 等)

在各自的 MCP 设置页粘贴同一段 JSON

把 uvx 换成 Docker 也可以,见上一节。

{
  "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)

抽取文本中全部引用并逐条核验,列出编造的

效果示例

下图为真实工具调用返回结果的渲染(终端样式,非截图):

china-law-mcp 效果示例:检索相邻关系条文、核验民法典第 1254 条、批量核验一段文本中的三条引用

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

search_statutes("同事借我钱不还怎么办")
→ 中华人民共和国民法典 第六百七十五条  借款人应当按照约定的期限返还借款…
→ 中华人民共和国民法典 第六百七十四条  借款人应当按照约定的期限支付利息…

search_statutes("外卖吃出异物能退吗")
→ 中华人民共和国食品安全法 第一百四十八条  消费者因不符合食品安全标准的食品受到损害的,
                                            可以向经营者要求赔偿损失,也可以向生产者要求赔偿…

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

verify_citation("民法典", "1254")   → verified=True   (真实存在)
verify_citation("民法典", "9999")   → verified=False  中华人民共和国民法典 没有第 9999 条

check_citations_in_text("根据《民法典》第1254条…依据《劳动合同法》第99条和《民法典》第88888条…")
→ 共 3 条,有效 1,无效 2
→ invalid: ['《劳动合同法》第99条', '《民法典》第88888条']

作为 Agent Skill 使用(不用 MCP)

如果你用的 Agent 还不支持 MCP,或者只想在命令行里快速查一条法条,仓库里的 skills/china-law/ 提供了等价能力:

pip install china-law-mcp

python skills/china-law/law.py search "外卖吃出异物能退吗"
python skills/china-law/law.py verify 民法典 1254
python skills/china-law/law.py get 民法典 1254
python skills/china-law/law.py list 劳动
echo "根据《民法典》第1254条,另依据《民法典》第88888条。" | python skills/china-law/law.py check -

# 每个子命令都支持 --json
python skills/china-law/law.py verify 民法典 1254 --json

把 skills/china-law/ 整个目录放进对应 Agent 的技能目录即可:Claude Code 用户级 ~/.claude/skills/ 或项目级 .claude/skills/;Codex ~/.codex/skills/;Kimi CLI 通过 --skills-dir 指定。

数据

  • 378 部法律、23,995 条现行条文(宪法、法律、立法解释全量)

  • 每条含:法律名、编章、条号(中文 + 阿拉伯数字)、条文全文、部门法、时效状态

  • SQLite 数据库(15 MB)随仓库提供,开箱即用;BM25 索引首次运行自动构建(约 6 秒,之后缓存)

换成你自己的语料:

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 字段)。

  • 本工具提供条文检索与引用核验,不构成法律意见。

收录情况

开发

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

发布镜像与注册表条目走 tag 触发:

git tag v0.1.2 && git push origin v0.1.2

或在 Actions 里手工触发 Publish image and register 工作流并填入版本号。

相关项目

许可

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

Available Tools

5 tools
check_citations_in_textA

抽取一段文本中的所有《法律》第 N 条引用并逐条核验,返回不存在的引用清单。

把模型生成的答案整段传进来,即可发现其中编造的引用。

Args: text: 待检查的文本(例如模型输出的一段法律分析)。

Returns: total / valid / invalid 计数,以及逐条核验结果。

Inputs: text (required).

get_articleA

按法律名与条号取条文原文。

Args: law: 法律名,支持简称,如「民法典」「中华人民共和国刑法」。 article_no: 条号,中文或阿拉伯数字均可,如「1254」「第一千二百五十四条」。

Returns: 找到则返回条文(含所属编章、部门法、时效状态),否则 None。

Inputs: law (required), article_no (required). Returns: result

list_lawsA

浏览库内法律目录(可按名称关键词或部门法筛选)。

Args: keyword: 法律名包含的关键词,如「劳动」「行政」。 department: 部门法,如「民法商法」「行政法」。 limit: 最多返回条数,默认 30。

Inputs: limit, keyword, department. Returns: result

search_statutesA

按自然语言问题检索中国现行法律条文。

支持口语提问(如「同事借我钱不还怎么办」「外卖吃出异物能退吗」), 也会自动扩展为法言法语;支持「《民法典》第1254条」这类精确引用(直查优先)。

Args: query: 自然语言问题或关键词。 top_k: 返回条数,默认 6。 law: 可选,限定在某部法律内检索,支持简称如「民法典」「消保法」。

Returns: 条文列表,含 law / article_no / chapter / text / score / via。

Inputs: query (required), law, top_k. Returns: result

verify_citationA

核验一条法律引用是否真实存在(防幻觉)。

在引用《某法》第 N 条之前调用本工具,可以避免编造或引用已废止条文。

Args: law: 法律名,支持简称,如「民法典」。 article_no: 条号,如「1254」或「第一千二百五十四条」。

Returns: verified(bool) + 条文原文(存在时)/ 原因(不存在时)。

Inputs: law (required), article_no (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 5 tools

    Disambiguation4/5

    search_statutes (NL retrieval) and get_article (exact law+article lookup) overlap somewhat, especially since search_statutes also does '直查优先' for exact citations. verify_citation also retrieves a law+article, but its validation-focused return (verified bool) distinguishes it from get_article's text retrieval, and check_citations_in_text is clearly distinct as a batch extractor.

    Naming Consistency5/5

    All five tools use a consistent snake_case verb_noun pattern: search_statutes, get_article, list_laws, verify_citation, check_citations_in_text. The longer batch tool name remains readable and follows the same convention.

    Tool Count5/5

    Five tools is well-scoped for a legal retrieval/verification server, with each tool covering a distinct capability (search, exact fetch, browse, single verify, bulk verify). No redundant or filler tools.

    Completeness4/5

    The surface covers the core read-only legal workflow: search by NL, fetch by citation, browse the catalog, and verify single or bulk citations. Minor gaps like retrieving a full law's chapter structure or browsing by effective date exist, but the primary agent workflows are supported.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Provides offline access to the French legal corpus (Legifrance/DILA) with full-text search, verbatim article retrieval, and citation grounding to prevent hallucinations.
      4
      87 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to check Chinese commercial content for advertising-law prohibited terms, AI-generated-content labeling requirements, and 17-item organizational compliance self-assessment, returning each hit with its location, cited legal basis, and revision suggestion. Runs fully offline with a deterministic rule engine and zero external dependencies.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to search mainland China's national laws, administrative and local regulations, judicial interpretations, and Supreme People's Court guiding cases, and to retrieve metadata plus the original Chinese text of individual articles or full regulations and case narratives. Results carry issuing body, promulgation and effective dates, and in-force status, with keyless access and no fabricated snippets when a document can't be read.
      230 npm
      MIT