内容
# 法制处国家法律法规信息共同活用OpenAPI(191种)
> 法制处国家法律法规信息共同活用OpenAPI(191种)已被 **MCP(Model Context Protocol) 服务器** 标准化和规范,以使律师和律师事务所能够在诸如 **Claude Desktop · Gemini CLI · ChatGPT** 等自然语言环境中搜索、引用和总结韩国的判例、法令、决定。
[](https://pypi.org/project/caselaw-mcp/) [](https://github.com/lapiogga/caseLaw/actions/workflows/ci.yml) []() []() []() []() []() []() []()
**状态**: v0.11.0 — Outcome Prediction. 激活MCP Tool **52种**, 单位测试 **352 PASS**, 自动生成文档 4种 + 结果预测 4种.
## 支持客户端矩阵
| 客户端 | Transport | 指南 | 额外基础设施 |
|---|---|---|---|
| **Claude Desktop** | stdio | [docs/INSTALL.md §1](docs/INSTALL.md) · 一键 `scripts/install-caselaw-mcp.ps1` | 无 |
| **Gemini CLI** (Google 官方) | stdio | [docs/INSTALL_GEMINI.md](docs/INSTALL_GEMINI.md) · 一键 `scripts/install-caselaw-gemini.ps1` | 无 |
| **Cursor / VS Code** (Cline·Continue) | stdio | [docs/INSTALL.md §2~§3](docs/INSTALL.md) | 无 |
| **ChatGPT** (Apps SDK / Developer Mode) | streamable-http | [docs/INSTALL_CHATGPT.md](docs/INSTALL_CHATGPT.md) | Cloudflare Tunnel(推荐) 或 ngrok + Bearer Token |
📄 **普通人用一页介绍**: [docs/介绍资料_普通人.md](docs/介绍资料_普通人.md)
🛠️ **开发者用技术笔记 (架构·安全·扩展性)**: [docs/技术笔记_MCP架构.md](docs/技术笔记_MCP架构.md)
---
## 一句话总结
> **律师(搜索 → 预测 → 撰写一句话工作流程)**: *"酒后驾驶量刑分布并显示,其结果是辩护人意见书草案直至*" 一句话自动链接 `predict_sentencing` → `draft_criminal_defense`。引用案件编号100%真实存在。
>
> **普通人**: *"3年前朋友借我5千万韩元但不偿还。怎么办?"* 输入后,纠纷分类、时效检查、诉讼费用、免费资源、律师咨询工具包自动生成。50种纠纷类别 + 6轮面试 + 30种时效 + 认知法。
>
> **外国用户**: 5种语言(韩/英/中/越/日)豁免、标签、外国资源(1345·1577-1366·1577-5432)自动映射。
---
## 快速开始 — 电脑小白(最简单)
> Python·JSON·终端完全不懂也没关系。点击即可。
**📷 所有步骤截图包含视觉指南**: [docs/安装_视觉指南.md](docs/安装_视觉指南.md)
总结:
1. **安装包下载** (8KB):
<https://github.com/lapiogga/caseLaw/releases/download/v0.11.0/CaseLaw-installer-v0.11.0.zip>
2. 解压并 **`安装.bat` 双击**
3. 按照屏幕提示进行(如果没有OC密钥,自动打开申请网站)
4. 3-7分钟自动安装后,打开Claude Desktop并在聊天窗口中输入:
```
caselaw ping
```
安装脚本自动处理:
- Python·uv·Claude Desktop 自动安装 (winget)
- caselaw-mcp 包从PyPI下载
- Claude Desktop 配置文件自动编写(保留现有配置并备份)
参考文档:
- [docs/安装_视觉指南.md](docs/安装_视觉指南.md) — 包含截图的完整指南(最亲切)
- [docs/OC 발급_指南.md](docs/OC 발급_指南.md) — OC密钥申请9步
---
## 快速开始 — 开发者/技术人员
### 前置准备
1. **OC密钥申请** (免费,5分钟): <https://open.law.go.kr/LSO/openApi/cuAskList.do>
- 会员注册 → 应用申请 → 我的页面 → API认证密钥管理中确认ID
2. **必备工具**:
- Python 3.11+ (<https://python.org>)
- uv (`winget install astral-sh.uv`)
- Claude Desktop (<https://claude.ai/download>)
### 选项A — PyPI一键安装(推荐,无需git/clone)
Claude Desktop 配置文件(`%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json`):
```json
{
"mcpServers": {
"caselaw": {
"command": "uvx",
"args": ["caselaw-mcp"],
"env": { "CASELAW_OC": " 발급받은_ID" }
}
}
}
```
保存后,Claude Desktop 完全重启 → 聊天窗口 "caselaw ping " → 成功。
### 选项B — 源码clone(开发者/贡献者)
```powershell
git clone https://github.com/lapiogga/caseLaw.git
cd caseLaw
uv sync --extra dev
"CASELAW_OC= 발급받은_ID" | Out-File -Encoding ASCII .env
.\scripts\install-caselaw-mcp.ps1
# Claude Desktop 完全重启 → "caselaw ping "
```
详情: [docs/INSTALL.md](docs/INSTALL.md) (包含Cursor / VS Code)
---
## 开发者(源码修改/贡献)
```powershell
# 1. 安装uv(如果已经安装,跳过)
irm https://astral.sh/uv/install.ps1 | iex
# 2. 获取存储库 + 同步依赖
git clone https://github.com/lapiogga/caselaw-mcp.git
cd caselaw-mcp
uv sync --extra dev
# 3. 设置环境变量
copy .env.example .env
# 打开.env并输入CASELAW_OC=<您的_ID>
# - 发放: https://open.law.go.kr/LSO/openApi/cuAskList.do
# - 我的页面 → API认证密钥管理中确认
# 4. 测试
uv run pytest -v # 352 passed
# 5. MCP Inspector(调试UI)
uv run mcp dev src\caselaw_mcp\server.py
# 6. 注册到Claude Desktop — 参考docs\INSTALL.md
```
---
## MCP Tools一览(52种)
### 律师轨迹(35种)
| 类别 | Tools | 备注 |
|---|---|---|
| 健康 | `ping` | 服务器·OC密钥状态·phase·user_mode·user_locale |
| **判例** | `search_precedent` / `get_precedent` / `find_related_precedents` / `find_precedent_by_citation` | 大法院·高等·地方。引用判例·搜索逆 |
| **现行法令** | `search_statute` / `get_statute` | 生效日期为准 |
| 宪法 | `search_constitutional_decision` / `get_constitutional_decision` | |
| 法令解释 | `search_law_interpretation` / `get_law_interpretation` | 法制处解释 |
| 行政审判 | `search_admin_judgment` / `get_admin_judgment` | 국민权益委·各級审判委员会 |
| 委员会决定书 | `search_committee_decision` / `get_committee_decision` | **12种枚举** |
| 特别行政审判 | `search_special_admin_judgment` / `get_special_admin_judgment` | **4种枚举** |
| 中央部门解释 | `search_central_dept_interpretation` / `get_central_dept_interpretation` | **39个部门枚举** |
| 法令术语 | `search_legal_term` / `get_legal_term` | 词典 |
| **分析辅助** | `analyze_precedent_trend` / `format_citation` / `compare_precedents` | 趋势·引用·比较 |
| 附件 | `download_attachment` / `extract_attachment_links` | path traversal 防御 |
| **文档草案** (v0.10.0) | `draft_civil_complaint` / `draft_legal_opinion` / `draft_preparatory_brief` / `draft_criminal_defense` | 韩国标准样式Markdown + 自动豁免 |
| **结果预测** (v0.11.0) | `predict_sentencing` / `predict_civil_outcome` / `estimate_case_duration` / `dispute_resolution_options` | 样本N + 95% CI + 豁免 |
### 普通人轨迹(12种)
| 类别 | Tools | 备注 |
|---|---|---|
| 模式·豁免 | `set_user_mode` / `get_user_mode` / `get_disclaimer` | 律师·普通人模式分支 |
| **纠纷分类** | `triage_dispute` | **50种类别** (民19 + 刑8 + 家8 + 劳动5 + 行政5 + 消费5) |
| **时效** | `list_limitation_categories` / `check_statute_of_limitations` | **30种时效** + 中断原因 |
| **费用** | `estimate_litigation_cost` | 认知法4区间 + 律师费9种 + 免费资源7个 |
| **面试** | `get_interview_flow` / `interview_facts` | 6轮事实关系面试(无状态) |
| **案件强度** | `evaluate_case_strength` | 标签9种 |
| **免费咨询** | `recommend_pro_bono` | 全国14 + 地区14 + KLAC 6 + 领域特化 |
| **咨询工具包** | `prepare_consultation_kit` | 13节Markdown + 律师问题10个 |
### 外国用户轨迹(5种)
| Tools | 备注 |
|---|---|
| `set_user_locale` / `get_user_locale` / `get_disclaimer_localized` / `list_disclaimers_localized` / `get_foreigner_resources` | 5种语言(韩/英/中/越/日) + 外国综合指南1345等 |
详细输入输出模式: [`docs/API_REFERENCE.md`](./docs/API_REFERENCE.md)
完整代码·别名词典: [`docs/CODES.md`](./docs/CODES.md)
普通人模式指南: [`docs/CITIZEN_MODE.md`](./docs/CITIZEN_MODE.md)
---
## 自然语言使用示例(Claude Desktop · Gemini CLI · ChatGPT)
### 搜索·引用(律师基本工作流程)
```
酒后驾驶相关最近大法院判例5个,列出案件名称。
刚搜索的第一个判例的裁判事项·判决概要·引用条文,整理成表格。
道路交通法实施中,本条(第44条附近)摘录。
公平交易委员会垄断相关决定书5件。
法令术语"公证" 搜索词典。
```
### 结果预测(v0.11.0 新增)```
酒后驾驶量刑分布,告诉我。 大法院判例30个样本→
→ predict_sentencing: 罚金53% / 监禁32% / 实刑11% (虚拟分布)
大借5千万韩元诉讼的平均引用率和认定金额分布是?
→ predict_civil_outcome: 引用60% / 部分25% / 驳回15%,平均认定4,200万韩元
民事1审平均所需时间? 简单案件基准。
→ estimate_case_duration: 平均4个月,95% CI [2, 7]个月
5千万韩元大借金。 6个月内结束并维持关系优先。
→ dispute_resolution_options: 和解(settlement)推荐 + 4-选项矩阵
```
### 文档草案自动(v0.10.0 新增)```
大借5千万韩元,原告朴某(首尔江南区),被告金某(首尔松浦区)。
2022. 3. 15. 大借,变期2023. 3. 14,未偿还。借据和转账凭证附上。
→ draft_civil_complaint: 韩国标准诉状Markdown + 自动豁免
酒后驾驶量刑建议意见书。血液酒精含量0.08,无事故,无前科。
→ draft_legal_opinion: 争点·法律·结论骨架 + 类似判例引用
```
### 普通人轨迹(律师见面前的预诊断)
```
3年前借给朋友5千万韩元,但不偿还。怎么办?
→ triage_dispute → check_statute_of_limitations → estimate_litigation_cost
→ recommend_pro_bono → prepare_consultation_kit(13节Markdown)
```
全部30种情景: [`docs/EXAMPLES.md`](./docs/EXAMPLES.md)
---
## 目录结构
```
CaseLaw/
├── README.md
├── CHANGELOG.md # 版本历史(v0.1.0 ~ v0.11.0)
├── VERSION-STAMP.md # 里程碑认证 + 冻结代码区域
├── pyproject.toml # uv项目(52工具,hatchling sdist exclude)
├── .env.example # OC密钥 + Bearer Token 模板
├── src/caselaw_mcp/
│ ├── server.py # FastMCP入口(52工具注册,--transport stdio|http)
│ ├── auth.py # Bearer Token ASGI中间件(CASELAW_AUTH_TOKEN)
│ ├── client.py # 异步HTTP + 重试 + URL掩码
│ ├── parsers.py # XML/JSON → 英文关键词规范化
│ ├── cache.py # SQLite TTL缓存
│ ├── codes.py # 案件类型·法院·委员会·部门代码(200+ 别名)
│ ├── config.py # pydantic-settings(.env 自动加载)
│ ├── citizen_data/ # 种子(categories 50 + limitations 30 + court_fees等)
│ ├── prediction_data/ # 司法年鉴种子(duration_baselines.json)
│ └── tools/
│ ├── precedent.py # 判例 + find_related + find_by_citation
│ ├── statute.py # 现行法令
│ ├── constitution.py # 宪法判例
│ ├── interpretation.py # 法令解释
│ ├── admin_judg.py # 行政审判
│ ├── committee.py # 委员会 12种枚举
│ ├── special_judg.py # 特别行政审判 4种枚举
│ ├── dept_interpretation.py # 中央部门 39种枚举
│ ├── terminology.py # 法令术语
│ ├── analytics.py # analyze_trend / format_citation / compare
│ ├── attachments.py # 附件下载
│ ├── citation_lookup.py # 引用文本 → prec_id 逆向搜索
│ ├── citizen/ # 普通人轨迹(mode/locale/disclaimer/triage等12工具)
│ ├── drafting/ # 律师文档 4种(诉状·意见书·准备书·辩护律师意见书)v0.10.0
│ └── prediction/ # 结果预测 4种(量刑·民事结果·时间·解决方案)v0.11.0
├── tests/
│ ├── unit/ # 352单元测试
│ └── integration/ # 19种smoke场景
├── docs/
│ ├── INSTALL.md # 5-客户端矩阵
│ ├── INSTALL_GEMINI.md # Gemini CLI注册
│ ├── INSTALL_CHATGPT.md # ChatGPT(HTTP + Cloudflare Tunnel)
│ ├── API_REFERENCE.md # 工具输入输出模式
│ ├── CODES.md # 完整代码·别名词典
│ ├── CITIZEN_MODE.md # 普通人轨迹指南
│ ├── OC_PERMISSIONS.md # OC权限扩展
│ ├── OC 발급_指南.md # OC密钥申请9步
│ ├── EXAMPLES.md # 律师自然语言30种
│ ├── 安装_视觉指南.md # 非技术人员11张截图
│ ├── 介绍资料_普通人.md # 1页介绍
│ ├── 技术笔记_MCP架构.md # 14节技术笔记
│ └── promo/ # 视频·截图资料(mp4 git ignore)
├── scripts/
│ ├── 安装.bat # 非技术人员一键
│ ├── setup-for-novice.ps1 # 自动安装(Python·uv·Claude Desktop)
│ ├── install-caselaw-mcp.ps1 # Claude Desktop注册
│ └── install-caselaw-gemini.ps1 # Gemini CLI settings.json注册
├── .github/workflows/
│ ├── ci.yml # Python 3.11/12/13矩阵 + ruff + pytest
│ └── publish.yml # Release发布 → PyPI Trusted OIDC自动
├── reference/ # 法制处OpenAPI指南原文
└── .planning/ # GSD规划(.gitignore — 本地笔记)
```
---
## 路线图进展
| 阶段 | 内容 | 版本 | 状态 |
|---|---|---|---|
| 0 | Bootstrap(uv, ping tool, CI) | — | ✅ |
| 1 | 判例 + 法令 MVP(5工具) | — | ✅ |
| 2 | 宪法·解释·审判 + 相关判例推荐 | — | ✅ |
| 3 | 委员会12 + 特别审判4 + 中央部门39 + 法令术语 | — | ✅ |
| 4 | 质量·部署(API_REFERENCE / CODES / CHANGELOG / Release) | v0.1.0 | ✅ |
| 5 | Practitioner Helpers(analyze_trend / format_citation / compare) | v0.2.0 | ✅ |
| 6 | Citation Lookup + Attachment Download | v0.3.0 | ✅ |
| 7 | Citizen Mode MVP(mode / disclaimer / triage 30种) | v0.4.0 | ✅ |
| 8 | Statute & Cost(时效30 + 认知法) | v0.5.0 | ✅ |
| 9 | Interview & Strength(6轮面试 + 案件强度) | v0.6.0 | ✅ |
| 10 | Pro Bono & Consultation Kit(50种类别) | v0.7.0 | ✅ |
| 11 | i18n MVP(5语言 + 外国资源) | v0.8.0 | ✅ |
| 12 | **Multi-Client Edition**(Claude · Gemini · ChatGPT) | **v0.9.0** | ✅ |
| 13 | **Practitioner Doc Drafting**(诉状·意见书·准备书·辩护律师意见书) | **v0.10.0** | ✅ |
| 14 | **Outcome Prediction**(量刑·民事结果·时间·解决方案) | **v0.11.0** | ✅ |
| 15+ | Backlog: ChatGPT OAuth 2.1 / Vector DB / 外国判例 / ML标注 | — | ⏭ |
详细: [`.planning/ROADMAP.md`](./.planning/ROADMAP.md) · [`CHANGELOG.md`](./CHANGELOG.md) · [`VERSION-STAMP.md`](./VERSION-STAMP.md)
---
## 安全
- `.env`(OC密钥) **绝对禁止提交** — `.gitignore`第4行注册
- OC密钥日志·错误信息中不暴露明文 — `client.py` 自动掩码(***OC***)
- httpx库INFO日志也静音(URL明文暴露)
- 所有外部输入(`prec_id`, `law_id`, `term_id`)必须进行`^[0-9]+$`白名单验证
详细检查清单: [`docs/INSTALL.md#5-安全检查清单`](./docs/INSTALL.md)
---
## 性能
- 缓存命中时响应 **0.008秒** (目标<1秒的125倍)
- 正文永久缓存(判例·决定书不变),列表1小时TTL,法令术语24小时
- httpx异步 + tenacity重试(5次指数退火)
- 速率限制: 默认5 req/sec (asyncio.Semaphore)
---
## 贡献
问题·PR 欢迎。韩语OK。
---
## 许可
MIT (`LICENSE` 文件包含,免费 + 商业使用)
---
## 联系方式
朴某 · lapiogga@gmail.com
---
## 声明
本项目遵守 [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) 行为准则。
---
## 致谢
特别感谢 [Open Law](https://open.law.go.kr/) 提供OpenAPI支持。
---
## 未来计划
- 支持更多语言
- 增加更多工具和功能
---
## 许可证
本项目使用 [MIT License](https://opensource.org/licenses/MIT) 许可证。
---
## 引用
如果您引用或使用本项目,请在您的出版物中引用本项目。
---
## 贡献者
特别感谢所有为本项目做出贡献的开发者。
---
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器