Safety Fence MCP

Safety Fence MCP

A local MCP server that guards outbound payloads by deciding to ALLOW, REWRITE, or REFUSE them, ensuring sensitive data is redacted and failures close the gate.

Category
访问服务器

README

Safety Fence MCP

这是验收版 SKILL.md 的本地 MCP Server 最小实现。它通过唯一工具 guard_payload 对本地任务或即将外发的精确 payload 做 ALLOW、 REWRITE、REFUSE 判定。

当前策略基线:

sha256:24fdc1b886003e5a76cfc8e8103bbcc5afead5c0f9d3af0167462bf76055e3d7

安全边界

  • Server 使用本地 stdio,无网络依赖、无外部模型调用、无遥测。
  • ALLOW 不复制原始 payload;REWRITE 只返回安全 payload;REFUSE 不返回原文。
  • 日志接口只包含决策、原因代码、目标类型、字节数和脱敏数量。
  • MCP 本身是决策面,不是透明代理。OpenClaw 必须在可信外发边界强制调用并执行结果。
  • 围栏超时、进程异常或返回无效结构时,调用方必须 fail-closed,禁止本次外发。

启动

无需安装第三方依赖:

python -m safety_fence

也可以安装为本地包后使用命令:

python -m pip install -e .
safety-fence-mcp

MCP 客户端配置见 mcp-config.example.json。cwd 必须替换为本项目绝对路径。

工具输入

{
  "flow": "EGRESS",
  "task_context": "用云端模型总结随访重点",
  "payload": {
    "message": "患者韩珂,手机号 13500006666"
  },
  "destination": {
    "kind": "cloud_model",
    "name": "remote-model"
  }
}

flow 必须由可信拦截器填写,不能采用模型自行声明的值。EGRESS 必须提供 destination.kind。payload 支持任意 JSON,默认最大 2 MiB、最大嵌套 32 层。

返回值同时提供 MCP 文本兼容内容和 structuredContent:

{
  "policy_version": "sha256:...",
  "decision": "REWRITE",
  "reason_codes": ["PHONE", "ROLE_BOUND_NAME"],
  "reason": "敏感信息属于附带上下文,已最小化处理。",
  "rewritten_payload": {
    "message": "患者<REDACTED>,手机号 <REDACTED>"
  },
  "user_notice": "为保护隐私与安全,已使用脱敏或最小化后的 payload 继续。",
  "redaction_count": 2
}

强制执行

safety_fence.interceptor.EgressInterceptor 是最小参考适配器:

  • ALLOW:把原始 payload 交给 sender。
  • REWRITE:只把 rewritten_payload 交给 sender。
  • REFUSE:不调用 sender。
  • 引擎或审计异常:不调用 sender,并抛出 FenceUnavailable。

生产接入时,应把同样的状态机放到云模型、远程工具、HTTP API、邮件、聊天、 仓库、远程日志和 Telemetry 的共同出口,而不是让 Agent 自主决定是否调用围栏。

验证

python -m unittest discover -s tests -v

测试覆盖验收版锚点、嵌套 JSON 脱敏、改写幂等、MCP 生命周期、真实 stdio 子进程往返、原文不外发以及失败关闭。

当前最小版的范围

当前语义层是本地确定性意图/角色分类器,覆盖 SKILL.md 中的验收锚点和核心 不变量,不依赖云端 LLM。后续如引入本地模型,应作为保守规则之后的语义补充, 且仍必须通过相同 Golden Tests、脱敏复检和失败关闭机制。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选