mcpField
C
China Law MCP

China Law MCP

ローカル
github.com/thu-lawyer法務・行政43 週間前に更新

China Law MCP について

China Law MCPは、法律調査や法律質問への回答向けに、中国の法令検索と引用検証をローカルで行うサーバーです。378法令の現行条文23,995件を収録し、ネットワークやAPIキーなしでBM25検索できます。

主な機能

  1. 01自然文での法令検索
  2. 02条文原文の取得
  3. 03法令カタログの閲覧
  4. 04個別引用の検証
  5. 05文章内の引用抽出と検証
  6. 06ローカルでのBM25検索

活用シーン

  1. 01口語の法律質問に関連する条文の検索
  2. 02回答中の法令名と条番号の確認
  3. 03法律分析文に含まれる無効な引用の点検

MCP 対応

標準stdioのMCPサーバーとして、法令検索、条文取得、カタログ閲覧、引用検証のツールを提供します。法令データと検索はローカルで動作し、外部APIに依存しません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"thu-lawyer-china-law": {
"command": "uvx",
"args": [
"china-law-mcp"
]
}
}
}
起動コマンドuvx china-law-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypichina-law-mcp0.1.1
ocighcr.io/thu-lawyer/china-law-mcp:0.1.1

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
lawanyいいえ
querystringはい
top_kintegerいいえ

詳細

⚖️ 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。

快速开始

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

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 个测试,覆盖检索、直查、引用核验

イメージとレジストリエントリーの公開は、タグをトリガーとして実行されます。

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

または、Actions で Publish image and register ワークフローを手動で実行し、バージョン番号を入力してください。

関連プロジェクト

ライセンス

MIT。条文データは公開情報を整理したものであり、各情報源の利用規約を遵守してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。