mcp-firewall

使用说明(Markdown 格式):

  • 项目简介
    • mcp-firewall 是一个 MCP 服务器实现的安全网关/代理,位于客户端与下游 MCP 服务器之间,负责对传入的请求进行策略判定、对输出进行脱敏/截断、并可在需要时对下游进行沙箱执行与供链校验。
  • 主要功能点
    • 策略引擎(Policy Engine):基于规则对工具调用、资源读取等操作进行允许/拒绝/提示(需要人机审批)。
    • 数据脱敏(Redaction):对输入输出中的敏感信息进行正则化脱敏。
    • 沙箱执行(Sandboxing):可对下游执行环境进行名称空间/Landlock 等沙箱化处理(Linux 平台)。
    • 供链校验(Supply Chain):可进行哈希校验和路径白名单校验,确保下游二进制和资源的完整性。
    • 审计日志(Audit Logging):对请求/响应过程进行详细日志记录,包含策略决策、哈希验证、脱敏、超时等信息。
    • 资源与工具路由:代理对下游的资源读取和工具调用进行路由和聚合,统一暴露给 MCP 客户端。
    • Explain 工具:提供 explain_effective_policy 等工具,用于显示当前的策略、脱敏模式、工作流和 provenance 信息。
  • 安装步骤
    • 该工具基于 Go 语言实现,常用安装步骤如下:
      • 安装 Go 环境:请确保本机已安装 Go 1.20+(具体版本以仓库要求为准)。
      • 获取代码:将仓库克隆到本地或下载源码。
      • 构建执行文件:在仓库根目录执行 go build ./cmd/mcp-firewall(生成可执行文件)。
      • 如需本地发布或集成测试,可使用提供的测试用例与示例下游服务器进行联合测试。
  • 服务器配置(MCP 服务器给 MCP 客户端使用的配置信息) 说明:MCP 客户端需要知道要连接的 MCP 服务器的启动命令及参数,以便启动并通过 MCP 协议与之通信。配置格式建议使用 JSON,包含服务器名称、启动命令与参数等字段。以下为示例描述,实际数值请按你的环境与下游 MCP 服务器实现调整。 示例(JSON): { "server": "echoserver", "command": "./testdata/echoserver/echoserver", "args": ["--verbose"], "env": ["FOO=bar"], "timeout": "10s", "downstream_config": { "downstream_alias": "echoserver", "command": "./testdata/echoserver/echoserver", "args": ["--verbose"], "env": ["FOO=bar"], "timeout": "10s", "sandbox": "strict", "hash": "" } } 注释说明:
    • server: MCP 客户端要连接的 MCP 服务器的逻辑名称(用于日志、追踪及路由)。
    • command: 启动下游 MCP 服务器的可执行程序路径(在本例中是一个模拟的 echо 服务器例子)。
    • args: 启动命令的参数数组。
    • env: 启动环境变量数组,形如 "KEY=value"。
    • timeout: 下游服务器调用的超时设置(全局默认或按 downstream 逐条配置)。
    • downstream_config: 进一步对该下游的具体配置进行描述,包含沙箱设置、哈希等字段,便于在 MCP 客户端读取配置时知道要连接的下游信息。
  • 基本使用方法
    • 启动与连接
      • 构建完成后运行 mcp-firewall 二进制,服务器将监听并等待 MCP 客户端建立连接。
      • 客户端需要提供要连接的 MCP 服务器的启动信息(如上面的 JSON 示例),包括 downstream 的 command、args、环境等。
    • 配置与管理
      • 通过配置文件/环境变量来设定策略、脱敏规则、超时、沙箱及供链参数。支持本地覆盖(workspace)以便在工作区中合并本地 overrides。
      • 使用 explain_effective_policy 工具查看当前有效策略、工作流以及 provenance 信息。
    • 使用场景
      • 使用 MCP 客户端连接到 mcp-firewall 的 upstream 端,接入经过策略执行的工具调用与资源读取,获取经过脱敏与截断处理的结果。
    • 维护与安全
      • 结合审计日志与 provenance 信息,追踪策略变更、局部覆盖、下游哈希验证及沙箱能力的使用情况。

服务器信息