Skip to main content
Glama
Wh-bi

wanhe-compliance

README.md
# 中文内容合规检查 MCP Server

把中文内容合规检查能力接入 AI Agent —— Claude Desktop / Cursor / Cline 等可直接调用,
无需人工转述。

**零外部依赖**:有官方 `mcp` 库时用官方实现;没有则自动降级为内置 stdio JSON-RPC,
功能完全相同。`pip install` 都不需要就能跑。

---

## 它解决什么问题

写中文商业内容(电商详情页、短视频文案、公众号文章、AI 生成图文)时,
最容易踩的三个坑:

1. **广告法违禁词** —— 「全网最」「100%」「国家级」「根治」「包过」「稳赚不赔」
2. **AI 生成内容标识** —— 《人工智能生成合成内容标识办法》要求显式标识 + 隐式元数据标识
3. **组织流程缺失** —— 有没有做安全评估、算法备案、单独同意

本 Server 把这三类检查暴露为 3 个 MCP 工具,Agent 可以在你写作时**直接调用并给出依据法条**。

---

## 提供的工具

| 工具 | 作用 | 输入 |
|---|---|---|
| `check_content` | 检查文本合规风险,返回逐条:类型 / 位置 / 命中文本 / **依据法条** / 修改建议 | `text` |
| `check_ai_label` | 判断是否需按《AI 生成合成内容标识办法》加标识(显式 / 隐式) | `text` |
| `self_assessment` | 17 项组织级合规自查问卷 → 覆盖率评分 + 待整改清单 | `answers` |

### 覆盖的法规依据

- 《中华人民共和国广告法》第 9 条(绝对化用语)、第 13 条(贬低同行)、
  第 16 条(治愈率)、第 17 条(疾病治疗功能)、第 18 条(保健食品)、
  第 24 条(教育效果承诺)、第 25 条(金融收益承诺)、第 28 条(虚假广告)
- 《人工智能生成合成内容标识办法》第 4、5 条 + 强制性国标 GB 45438-2025
- 《食品安全法》第 73 条 · 《反不正当竞争法》第 11 条

---

## 安装

### 方式一:Claude Desktop

编辑配置文件(Windows:`%APPDATA%\Claude\claude_desktop_config.json`;
macOS:`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "wanhe-compliance": {
      "command": "python",
      "args": ["/绝对路径/mcp_compliance_server.py"]
    }
  }
}
```

重启 Claude Desktop,在工具列表中即可看到 `check_content` / `check_ai_label` /
`self_assessment`。

### 方式二:Cursor / Cline / 其他 MCP 客户端

在对应的 MCP 配置里加入同样的 `command` + `args` 即可(均为 stdio 传输)。

### 方式三:直接命令行验证

```bash
python mcp_compliance_server.py --selftest
```

会输出引擎加载状态、工具清单,并用一段示例文本跑一次检查。

---

## 使用示例

装好后直接对 Agent 说:

> 帮我检查这条短视频文案要不要加 AI 标识:
> 本店橙子全网最甜,100%无添加,彻底根治失眠,国家级免检产品

Agent 会调用 `check_content`,返回类似:

```json
{
  "ok": true,
  "verdict": "存在高风险问题",
  "summary": "共 7 条(高风险 7 · 待确认 0 · 提示 0)",
  "issues": [
    {"type": "广告法·绝对化用语", "matched": "全网最",
     "position": "第 5 字符起",
     "basis": "《广告法》第9条第(三)项",
     "suggestion": "删去范围性绝对表述"},
    {"type": "广告法·医疗功效宣传·功效声明+疾病名同现",
     "matched": "根治失眠", "position": "第 20 字符起",
     "basis": "《广告法》第17条:除医疗、药品、医疗器械广告外,禁止涉及疾病治疗功能",
     "suggestion": "非医疗类商品必须删去全部疾病治疗表述"}
  ]
}
```

---

## 设计原则(重要)

### 1. 宁可漏检,不可误报

合规工具**误报一次就会失去信任**。所以规则要求**语境同现**:

- 只有「功效声明 + 疾病名」同时出现才判定(如「适用于高血压」)
- 单独的疾病名**不报**(如「高血压患者请在医师指导下用药」是正当提示)
- 「康复器材」「康复中心」等**合法商品与机构名不报**

### 2. 不编造问题

未发现问题时明确返回「未发现上述规则覆盖的问题」,**不会为了显得有用而虚报**。

### 3. 可复现

同输入必同输出(规则引擎而非模型判断)。

---

## 免费版 vs 云端版

| | 免费版(本 MCP Server)| 云端版 |
|---|---|---|
| 规则库 | 高频规则子集,**离线可用、无次数限制** | 全量规则库,云端持续更新 |
| 多法规交叉判定 | — | ✓ |
| 结果按位置去重 | — | ✓ |
| 17 项自查问卷 | ✓ | ✓ |
| 法规变化时 | 需重新拉取 | 无需操作 |

云端版与 API 说明:https://wanhetools.top/compliance-check

---

## 边界声明

本工具做**规则匹配与法规条款引用**,**不构成法律意见**。
具体合规判断请咨询专业法律人士。

---

## 许可

MIT

## 数据与隐私

- 免费版**完全本地运行**,内容不出本机
- 不收集任何使用数据
- 无网络请求(除你主动配置的云端版)

---

## 自己测:27 例中文基准集(可下载)

我们的规则引擎不是"感觉准",而是有一份**可复现的评测集**:

**https://wanhetools.top/bench**

27 个真实中文句子,按语义分 5 类,每例都标注「期望值 + 为什么这么标 + 引擎实际输出」:

| 类别 | 例数 | 含义 | 期望 |
|---|---|---|---|
| `true-positive` | 11 | 真违规(有商业语境) | 必须报 risk |
| `false-positive` | 8 | **正常中文用语** | **不该报** |
| `meta-discourse` | 3 | 讲解/列举违禁词 | 降级 |
| `quoted-region` | 4 | 表格/代码块内示例 | 降级 |
| `legal-context` | 1 | 复述法条原文 | 降级 |

**为什么需要它**:裸词表在正常中文里会大量误报 —— 实测 12 个句子里累计命中 17 次,
其中在 **7 个完全正常的句子上 7/7 全部误报**(「最新/最终」「兜底」「彻底解决」等)。
**误杀率不是精度问题,是产品还能不能被用的问题。**

把它拿去测你自己的词表,重点看 `false-positive` 那 8 例:那是"不该报"的,报了就是误杀。

## 全部规则与法条依据(机器可读)

**https://wanhetools.top/api/v1/rules**

48 个规则组,**48/48 全部带法条依据**(`type` / `severity` / `basis` / `locale`),覆盖:

- 《中华人民共和国广告法》第 9 / 13 / 16 / 17 / 18 / 28 条
- 《人工智能生成合成内容标识办法》第四、五条
- EU AI Act Art. 50(透明度义务)
- 加州 SB 1000(California AI Transparency Act)
- EU UCPD 2005/29/EC · FTC Act §5 · Regulation (EC) 1924/2006

## 在线免费检查(无需注册)

**https://wanhetools.top/compliance-check**

贴一段文案进去,逐条返回「命中文本 / **依据哪一条法条** / 修改建议」——
不是只把词标红。