内容
# 隐私代理
## 概述
该项目为Claude Code添加了一个`PostToolUse`钩子,用于在MCP工具输出传递回模型之前,删除输出中可能包含的个人身份信息(PII)。
该项目基于**OpenAI隐私过滤器(OPF)**构建,该模型和CLI用于此处进行PII检测和屏蔽。
- OpenAI隐私过滤器仓库:<https://github.com/openai/privacy-filter>
- OpenAI隐私过滤器文档:<https://github.com/openai/privacy-filter/blob/main/README.md>
简而言之:
- 它适用于MCP工具(`matcher: mcp__.*`)。
- 它使用OPF扫描和删除`tool_response`中的字符串值。
- 它保留规范的UUID字符串。
- 如果删除失败,它将阻止响应(失败关闭)。
## 如何设置Claude Code钩子
1. 克隆此仓库并在项目根目录下安装OPF:
```bash
git clone <你的仓库地址> privacy_proxy
cd privacy_proxy
git clone https://github.com/openai/privacy-filter.git privacy-filter
cd privacy-filter
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
cd ..
```
2. 配置Claude钩子。
项目级(`.claude/settings.json`):
```json
{
"hooks": {
"PostToolUse": [
{
"matcher": "mcp__.*",
"hooks": [
{
"type": "command",
"command": "python3 \"$CLAUDE_PROJECT_DIR/claude_hooks/post_tool_use_pii_redact.py\""
}
]
}
]
}
}
```
全局(`~/.claude/settings.json`,可选):
```json
{
"hooks": {
"PostToolUse": [
{
"matcher": "mcp__.*",
"hooks": [
{
"type": "command",
"command": "python3 \"$HOME/.claude/privacy_proxy/claude_hooks/post_tool_use_pii_redact.py\""
}
]
}
]
}
}
```
3. 在更新设置后重启Claude Code / Claude Desktop会话。
4. 快速检查:
```bash
./privacy-filter/.venv/bin/opf --device cpu "Alice was born on 1990-01-02."
```
## 当前设置的局限性
- 它只涵盖MCP工具输出的`PostToolUse`(`mcp__.*`),不涵盖其他钩子事件。
- 只有字符串值被删除;非字符串值保持不变。
- UUID直通被允许,但非UUID标识符仍被扫描/删除。
- 保护质量取决于OPF检测质量。
- 如果OPF丢失、超时或出错,钩子将阻止模型步骤。
- 这是一个防护措施,而不是合规保证。
- 它不会阻止MCP服务器在输出到达Claude之前发送数据。