mcpField
M
Mcpvanguard

Mcpvanguard

本地服务
github.com/provnai开发工具133 周前更新

关于 Mcpvanguard

Mcpvanguard 是置于 AI Agent 与现有 MCP 服务之间的安全网关,供开发者和平台团队检查工具调用并在执行前实施策略。它支持本地 stdio 包装和托管网关模式,并以分层检测及审计日志记录决策。

主要功能

  1. 01执行前检查工具调用
  2. 02拦截文件、命令和网络风险
  3. 03按身份与范围实施策略
  4. 04过滤服务元数据
  5. 05记录审计与遥测信号
  6. 06支持本地及托管网关

适用场景

  1. 01保护本地 MCP 服务
  2. 02为共享 MCP 服务增加网关
  3. 03比较原始与受保护的调用行为
  4. 04约束高风险文件、Shell 和网络工具

MCP 相关

它作为 MCP 安全网关,置于 MCP 客户端与上游 MCP 服务之间,在调用抵达上游前检查并执行策略。支持包装本地 stdio 服务,也可通过 SSE 和 Streamable HTTP 提供网关端点。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

McpVanguard

面向 MCP Agent 和工具服务的安全网关。

McpVanguard 位于 AI Agent 与 MCP 服务之间,可实时规范化并检查工具流量,并在敏感调用到达底层工具之前实施分层策略。它可以在本地作为 stdio 服务的前置网关运行,也可以通过 SSE 和 Streamable HTTP 作为托管网关运行。

产品配置——monitor、balanced、strict——让你能够逐步采用:先从仅审计的发现模式开始,再转为均衡执行,最后为生产敏感系统启用严格加固。

现有 MCP 服务无需重写。

Tests CodeQL Security Audit SBOM PyPI version License: MIT Python 3.11+

开发者为何使用它

MCP 工作流功能强大,但一旦工具接触文件、Shell 或网络,防护措施就很重要。

McpVanguard 增加了运行时执行边界,让你能够:

  • 让正常的工具流量顺畅通过
  • 在执行前拦截不安全的调用
  • 通过审计日志检查并调试策略决策
  • 无需重写现有 MCP 服务即可逐步采用

功能

McpVanguard 面向希望在 MCP 工作流中明确实施策略的开发者和平台团队。

  • 在执行前检查 MCP 工具调用
  • 拦截不安全的文件系统、命令和网络模式
  • 为敏感工具实施身份验证、角色和作用域要求
  • 在服务器元数据到达下游模型前进行检查
  • 持续跟踪重复出现的可疑行为
  • 为被拦截、发出警告和允许通过的流量生成审计与遥测信号

快速验证场景

针对同一个 MCP 服务,分别通过原始路径和防护路径执行测试。

  • 安全的文件读取在两条路径中均可通过
  • 路径遍历尝试会在防护路径中被拦截
  • 有风险的网络请求会在防护路径中被拦截
  • 元数据投毒尝试会在暴露给模型前被过滤或拦截

这能快速确认策略已启用,且执行行为符合预期。

在 2.2.2 中,如需进行无需凭据的合成检查,请运行 python -m core.demo_verify。 它会针对捆绑的内存上游检查一次无害读取和两次被拦截的调用,并使用明确的仅供演示的安全区域。有关安装、预期输出以及单独的真实工作流评估,请参阅 自助评估。更早的版本不包含此验证器。

使用场景

  • 无需重写,即可保护本地桌面或开发者计算机上的 MCP 服务
  • 在共享 MCP 服务前添加托管网关
  • 比较高风险工具工作流在原始路径与防护路径中的行为
  • 为高风险文件、Shell 和网络访问工具添加策略执行

快速开始

安装软件包:

pip install mcp-vanguard

可选的部署扩展:

# Multi-instance L3 behavioral state
pip install "mcp-vanguard[redis]"

# RE2-backed deterministic regex matching where the wheel is available
pip install "mcp-vanguard[re2]"

# Hosted/full deployment extras
pip install "mcp-vanguard[full]"

包装本地 stdio MCP 服务:

# Balanced profile (default OSS/developer behavior)
vanguard start --profile balanced --server "npx @modelcontextprotocol/server-filesystem ."

# Strict profile (production hardening)
vanguard start --profile strict --server "npx @modelcontextprotocol/server-filesystem ."

作为托管网关运行:

export VANGUARD_API_KEY="replace-with-a-long-random-secret"
vanguard sse --profile balanced --server "npx @modelcontextprotocol/server-filesystem ."

对于公开部署或非环回托管部署,strict 配置在未配置传输身份验证(使用较长的随机 VANGUARD_API_KEY 或 OAuth/JWKS 设置)时会拒绝启动。balanced 仍适用于演示和分阶段推出,但在未进行身份验证就暴露服务时会发出醒目警告。

托管部署还可以选择启用按会话预算,限制工具调用频率、风险决策和重复的拦截尝试。这些预算可在分层策略路径周围充当断路器,同时不改变本地 OSS 用法的默认设置。

如果你运营托管模板或共享网关,请设置 VANGUARD_ALLOWED_SERVER_COMMANDS,以限制 McpVanguard 可以启动的上游 MCP 服务可执行文件。

对于通过 Anthropic MCP 隧道访问的私有网络 MCP 服务,建议采用以下部署位置:隧道 -> McpVanguard -> 私有 MCP 服务。隧道可减少网络暴露。McpVanguard 则负责执行边界控制。

McpVanguard 在 2.2.x 系列中提供了文档化的 MCP 2026-07-28 兼容性基线。该基线包括选择启用的无状态传输配置、增量式 Mcp-Method / Mcp-Name 一致性检查,以及明确覆盖 _meta 检查。它并不表示完全符合 Tasks、MCP Apps、订阅、MRTR 或最终规范。请参阅 docs/MCP_2026_07_28_RC_COMPATIBILITY.md。

在 Railway 上部署:

在 Railway 上部署

需要完整的部署指南?请参阅 docs/DEPLOYMENT.md、docs/railway-deployment-guide.md 和 docs/ANTHROPIC_MCP_TUNNELS.md。

入门

为本地工作区进行初始化:

# 1. Initialize safe zones and .env template
vanguard init

# 2. Optionally update Claude Desktop server entries
vanguard configure-claude

# 3. Launch the local security dashboard
vanguard ui --port 4040

# 4. Run compliance and readiness checks
vanguard audit-compliance

工作原理

McpVanguard 使用五个核心检查层:L0 至 L3,以及 L1.5;这些检查层外还设有身份验证策略和最终策略合成器。每次工具调用在到达上游 MCP 服务之前都会经过检查。

层用途说明
L0 - 预检规范化并添加注释(URL 解码、NFKC、移除零宽字符、大小/深度门限)始终启用
身份验证OAuth 作用域强制执行和破坏性工具策略感知角色
L1 - 规则使用特征签名、递归参数检查和安全边界进行确定性拦截快速路径
L1.5 - 伪装检测检测信任信号伪装和评分器操纵取决于配置
L2 - 语义可选的意图评分(可以升级处置或拦截,但不能降级确定性拦截)异步
L3 - 行为感知会话和序列的异常检查有状态
策略合成器最终判定:ALLOW / WARN / REVIEW / SHADOW-BLOCK / BLOCK可解释

五个核心检查层分别是 L0、L1、L1.5、L2 和 L3。身份验证策略和最终策略合成器围绕这条核心路径运作。

如果请求被拦截,Agent 会收到标准 JSON-RPC 错误,上游服务则完全不会收到该调用。审计日志会记录主要原因和所有辅助发现。

安全区采用确定性的路径边界检查,不能替代操作系统沙箱或容器隔离。它们会递归检查标准路径类参数名称和常见自定义路径类参数名称,但生产部署仍应根据 MCP 工具获准访问的实际架构和目录,调整 rules/safe_zones.yaml。请参阅 docs/SAFE_ZONES.md。

对于运维人员的故障排查,JSON 审计日志包含便于 SIEM 处理的判定字段,以及结构化的 policy_explanation 数据,其中包含主要检查层、规则类别、配置影响、上游调用状态和调整提示。请参阅 docs/BLOCK_DECISIONS.md。

部署模式

McpVanguard 最适合被视为 MCP 工作流的安全网关。

  • 本地优先模式:在开发者的计算机上包装 stdio MCP 服务
  • 网关模式:为托管或共享部署提供经过加固的 SSE 和 Streamable HTTP 端点

典型路径:

AI Agent -> McpVanguard -> MCP Server -> Tools / Files / External Systems

当前功能

  • 经过加固的 SSE 和 Streamable HTTP 传输路径,支持请求速率、并发、会话绑定和会话数量控制
  • 检查 initialize 和 tools/list 中的元数据投毒
  • 针对使用 bearer 身份验证的部署,支持 JWT、JWKS、颁发者、受众、声明和范围检查
  • 验证服务完整性和能力漂移
  • 实现跨服务隔离和 server_id 可追踪性
  • 验证签名清单、来源信息、分离签名和 Sigstore 支持的信任
  • 提供基准测试和分类工具,用于衡量覆盖范围
  • 可选生成 receipt_v1 JSONL,以便导出/签名后使用 mcp-receipt 离线验证运行时证据

基准测试

McpVanguard 包含用于对抗性和良性 MCP 流量的打包基准测试语料库。部署前可使用它们比较不同配置:

vanguard benchmark-run --profile monitor
vanguard benchmark-run --profile balanced
vanguard benchmark-run --profile strict
vanguard benchmark-profiles
vanguard benchmark-baselines

基准测试结果用于发布和调优,不代表能够普遍检测或实现零误报。有关结果解读的指南和推荐的发布门槛,请参阅 docs/BENCHMARKS.md。

有关分层设计背后的公开研究说明,请参阅 Why MCP Security Needs Layered Runtime Enforcement。

身份验证模式

McpVanguard 采用本地优先设计,并在需要时支持更强的托管网关控制。

  • stdio 模式:无需网络身份验证
  • SSE / Streamable HTTP 模式:支持 VANGUARD_API_KEY
  • Bearer / JWT 模式:支持经过验证的 JWT/JWKS 校验、颁发者/受众/声明/范围检查,以及托管网关路径上的身份验证感知策略
  • 严格托管模式:未启用传输身份验证时拒绝公开绑定,将 bearer 声明不匹配的处理方式设为 block,并在配置允许列表时要求提供 Origin

管理平面

原生 vanguard_* 管理工具默认处于禁用状态。如果启用这些工具,也应选择明确的管理平面模式:

  • disabled:不公开原生管理工具
  • same_session_dev:仅限本地/开发环境;只读工具和变更工具共用受治理的 MCP 会话,启动时会打印警告
  • operator_only:可显示只读工具,但变更工具需要管理员角色或 vanguard:admin / scope:admin 范围

在生产环境中,除非调用方是经过身份验证的操作员,否则不要在常规受治理的 Agent 会话中使用变更管理工具。管理操作会经过审计,且被拒绝的操作/变更尝试会显示为风险。

语义后端选项

可选的第 2 层语义评分器支持多个后端。优先使用第一个已配置的后端。

后端环境变量说明
通用自定义VANGUARD_SEMANTIC_CUSTOM_KEY、相关自定义变量Groq 或 DeepSeek 等快速推理服务提供商
OpenAIVANGUARD_OPENAI_API_KEY默认模型:gpt-4o-mini
OllamaVANGUARD_OLLAMA_URL本地执行,无需 API 密钥

有关更详细的本地/离线设置指南,请参阅 docs/LOCAL_SEMANTIC_MODE.md。

完整性与信任

McpVanguard 包含:

  • 上游服务的签名清单
  • 能力基线和漂移检查
  • 来源信息验证钩子
  • 分离的制品签名验证
  • 带身份和颁发者约束的 Sigstore bundle 验证

应将其描述为服务完整性、基线验证和信任验证,而非完整的 SBOM 平台。

项目状态

  • 2.2.x 是当前的运行时加固与 MCP 2026-07-28 兼容性基线版本线
  • 分层强制执行路径(L0 -> L1 -> L1.5 -> L2 -> L3 -> Policy Composer)已实现,并通过本地与 CI 验证
  • 产品配置(monitor / balanced / strict)是此版本线支持的部署模式
  • 更广泛的仅供研究使用的功能(GPU 证明、硬件根信任溯源、零误报声明)有意不纳入核心 OSS 版本范围

请参阅 CHANGELOG.md 了解发布历史,并参阅 docs/DEPLOYMENT.md 了解部署详情。

隐私

McpVanguard 专注于本地检查和网关强制执行。请参阅 PRIVACY.md,了解当前的隐私和数据处理详情。

支持

常见问题

这会取代我的 MCP 服务吗?
不会。McpVanguard 位于现有 MCP 服务之前,并在调用到达该服务前强制执行策略。

我需要重写工具或 Agent 代码吗?
通常不需要。大多数配置都是从通过 McpVanguard 路由一个工作流开始的。

这只适用于托管配置吗?
不适用。它支持本地优先的 stdio 封装和托管网关模式。

许可证

MIT 许可证 - 请参阅 LICENSE。

由 Provnai 构建。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。