faxin-mcp
by Emnllawlab
README.md
# faxin-mcp(法信 MCP 连接器 · 公开版)
把[法信](https://www.faxin.cn)(法律出版社旗下的法律检索平台)封装成一个
MCP(Model Context Protocol)服务,让任何支持 MCP 的 AI 客户端
(Claude Desktop、Cherry Studio、各类 coding agent 等)都能直接检索
中国法律法规、裁判规则、法信大纲概念、类案(权威案例库)等。
**工作原理**:登录由你本人在弹出的浏览器中用**自己的法信官网账号**完成;
之后所有检索与详情读取都是带该会话 cookie 的纯 HTTP 调用
(浏览器仅作 cookie 容器,不渲染页面),单次检索约 2-8 秒。
## 功能(9 个工具)
| 工具 | 用途 |
|---|---|
| `faxin_check_login` | 检查登录态(30 分钟缓存,`force=true` 强检) |
| `faxin_search_law` | 法规检索(中央/地方,支持时效筛选:现行有效/失效/已被修改/尚未生效) |
| `faxin_search_case` | 裁判规则检索(法信编辑提炼的案例要旨) |
| `faxin_search_lib` | 专题库检索:国家条约 / 香港法律 / 澳门法律 / 法学期刊 / 法律释义 / 立法资料 / 司法文件 |
| `faxin_search_outline` | 法信大纲概念检索(法信码知识树,不知道用什么词搜时先做概念发现) |
| `faxin_get_outline` | 概念详情:聚合各库计数 + 相关法条摘录 |
| `faxin_get_tiao` | 法条直达:法规名(可简称)+ 条号 → 条文全文 + 效力信息 |
| `faxin_search_lalei` | 类案检索(权威案例库:指导性案例/公报案例/公布案例,支持案由、法院层级、省份、年份等筛选) |
| `faxin_get_detail` | 详情读取(法规/裁判规则/专题库条目全文,支持按条号精确取条) |
## 安装
```bash
# 1. 克隆本仓库
git clone <repo-url>
cd faxin-mcp-public
# 2. 建虚拟环境并装依赖
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
# 3. 安装 Playwright 浏览器
.venv/bin/playwright install chromium
```
## 首次登录
```bash
.venv/bin/python login.py
```
- 弹出浏览器窗口 → 打开法信官网 → 点击「登录」→ 用**你本人的法信账号**完成登录
(账号密码 / 短信验证码 / 扫码,以官网提供的登录方式为准);
- 确认页面已显示登录状态后,回到终端按**回车**保存会话;
- 脚本会自动验证一次无头复用。之后正常使用期间无需再登录;
会话过期(工具会提示)时重跑本脚本即可。
**本脚本不会读取、记录或上传你的账号密码**——所有凭据只经过法信官网页面。
## 配置 MCP 客户端
以 Claude Desktop(`claude_desktop_config.json`)为例:
```json
{
"mcpServers": {
"faxin": {
"type": "stdio",
"command": "/你的路径/faxin-mcp-public/.venv/bin/python",
"args": ["/你的路径/faxin-mcp-public/server.py"]
}
}
}
```
其他 MCP 客户端(Cherry Studio 等)同理:填 python 解释器路径 + server.py 路径即可。
### 可选环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
| `FAXIN_BASE_URL` | `https://www.faxin.cn` | 法信入口 |
| `FAXIN_USER_DATA_DIR` | `~/.faxin-mcp/browser-data` | 浏览器用户数据目录(存会话 cookie) |
| `FAXIN_HEADLESS` | `true` | server 端无头模式;调试时可设 `false` 看页面 |
| `FAXIN_MAX_RESULTS` | `20` | 检索默认返回条数 |
## 使用建议(关键词策略)
- 检索优先用**案由词**(如「买卖合同纠纷」「民间借贷纠纷」)或**法条原文表述**
(如「盗窃公私财物」),抽象法律概念命中率低;
- 查法条:已知法规名+条号直接用 `faxin_get_tiao`(最快);只知主题词用 `faxin_search_law`;
- 不知道用什么词搜时,先 `faxin_search_outline` 做概念发现,再按概念聚合的
各库计数选库深挖;
- 裁判规则库较大,单次检索需 7-17 秒属正常;**请低频使用,不要高频连续调用**
(平台会临时限速,冷却约 60 秒自愈)。
## 主站兼容性实测(2026-08-22,www.faxin.cn 匿名 + 登录态双轮探测)
**匿名可达(无需登录):**
| 能力 | 接口 | 状态 |
|---|---|---|
| 首页/登录页 | `/`、`/login.aspx` | ✅ 登录表单含账号密码/短信/扫码 |
| 分库计数 | `GetLibSearchResultNum.ashx` | ✅ 返回 JSON `{"lib":..,"searchnum":..}` |
| 法规检索 | `GetFileInfoForZyfl.ashx` | ✅ 返回 `FirstHtml` 结果列表 |
| 法条直达 | `GetZyflTiaoInfo.ashx` | ✅ 返回条文全文+文号+效力信息 |
| 法规详情 | `ZyflContent.aspx?gid=` | ✅ 服务端直出全文 |
**登录后验证(个人法信账号实测):**
| 能力 | 接口 | 登录态结果 |
|---|---|---|
| 登录态 | 检索页重定向 | ✅ 已登录不跳转(接口会话复用成功) |
| 大纲概念 | `GetKeyWordList.ashx` | ✅ 返回 `keywordhtml` 概念列表 |
| **裁判规则检索** | `GetFileInfoForAlyz.ashx` | ❌ 接口按关键词计数(AllCount 随词变化)但**结果列表为空**——该账号对裁判规则库**无内容权限**(能计数、不给看)。计数接口 `lib=alyz` 返回 `searchnum=0` 印证。**需账号购买裁判规则库权限** |
| 类案检索 | `wenshu.faxin.cn` | ⚠️ 首页 laIndex 链接 `token=` 为空,直接访问 `laIndex.html` 跳转 `wenshu/v2/#/index`(无 token)。**主站类案 token 生成机制与律协版不同,本工具在主站暂不支持类案检索**(待后续适配) |
**结论**:主站接口路径与律协 VIP 版**同构**。法规检索/法条直达/大纲/详情读取**登录后即可用**;裁判规则库受**账号权限**限制(与连接器无关);类案检索因主站 token 机制差异**暂不支持**(律协版正常)。
## ⚠️ 合规声明(使用前必读)
本项目**仅是 MCP 协议适配层**,定位与边界如下:
1. **不绕过任何身份验证。** 登录须由使用者本人在弹出的浏览器中,使用其
**自有法信账号**完成。本项目不含任何破解、模拟登录、验证码识别或
加密算法解析代码。
2. **不规避任何检测或反爬措施。** 本项目不使用任何隐藏自动化特征的
启动参数或脚本注入。
3. **不越权访问。** 仅访问使用者账号权限内的内容。部分库(如裁判规则库、
类案库)可能需要法信付费账号才能完整访问——请以你自己账号的实际权限为准。
4. **不做批量抓取、不建本地库。** 仅提供按需单次检索;请低频使用,
遵守法信平台用户协议与 robots 规则。
5. **本项目中转的内容版权归原平台所有。** 检索结果仅供个人研究学习使用,
不得用于商业转售。
## 免责声明
- 本项目为个人学习交流性质的开源工具,与法信平台无任何隶属或授权关系;
- 法信平台的页面结构与接口可能随时调整,本项目不保证长期可用;
- 使用者应自行确保其使用行为符合法信平台用户协议及相关法律法规;
因使用本项目产生的一切后果由使用者自行承担;
- 检索结果仅供参考,不构成法律意见;正式引用法规条文请以官方发布文本为准。
- **任何人对本代码进行修改(fork 后二次开发等)再发布或使用的,其修改部分
及其使用行为产生的全部法律风险由该修改者/使用者自行承担,与原版作者无关。**
- **本项目不包含任何批量抓取、反检测、破解功能。若法信平台更新用户协议、
明确禁止通过自动化工具调用其接口,使用者应自行停止使用本项目,原版作者
不对此承担任何责任。**
## 许可
MIT License(见 [LICENSE](LICENSE))。
法信平台内容的版权不因本项目的 MIT 许可而改变。
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues