Rampart MCP Server
使用说明
- 项目简介
- Rampart 的 MCP 模块实现了一个面向 MCP 客户端的服务器与代理能力,能够接收 MCP 客户端发出的工具查询、列出工具、执行工具调用等请求,依据策略进行评估,并把结果回传给客户端。支持将工具调用经过策略引擎处理后再转发到真实的 MCP 服务器,并提供审计与通知能力。
- 主要功能点
- MCP 协议核心支持:处理 MCP 的请求和响应,包含工具调用(tools/call)、工具列表(tools/list)、预检(preflight)等 JSON-RPC 形式的消息。
- 代理与安全策略:在代理端对工具调用进行策略评估,支持 deny/allow/log/require_approval 等动作,必要时阻断或转发给实际 MCP 服务器。
- 审计与通知:对经过的请求与响应进行审计,支持多种输出(JSONL、Syslog、CEF、Teams/Slack/Discord 等通知)。
- 与多种组件的集成:OpenClaw、Claude Code/Cline 等代理/工作流的集成示例,具备可扩展的插件式架构。
- 辅助工具与测试:包含完整的单元测试与集成测试,覆盖代理、工具映射、策略生成功能等。
- 安装步骤
- 安装依赖与环境:需要 Go 编译环境(1.20+ 及以上版本,仓库文档通常建议使用最新的 Go 版本)。
- 构建与安装:
- 使用 Go 构建 Rampart 的 MCP 相关组件(仓库根目录下通过 go 相关命令编译即可,示例命令在 README 中给出)。
- 运行 MCP 代理服务:
- 按如下示例命令启动 MCP proxy 服务(具体命令以实际部署为准): rampart mcp -- <mcp-server-command> [args...]
- 配置 MCP 客户端(示例配置在下方给出,客户端信息可使用示例 JSON 配置描述)
- 服务器配置(MCP 客户端需要配置 MCP 服务器启动信息)
为了接入 Rampart 的 MCP 服务,MCP 客户端需要指定一个启动命令及参数来连接 Rampart 的 MCP 服务器。下列 JSON 示例描述一个名为 filesystem 的 MCP 服务器配置;该配置应由 MCP 客户端在其自身配置中使用,不属于客户端执行代码,仅用于描述连接信息。
{
"server_name": "filesystem",
"command": "rampart",
"args": ["mcp", "--", "npx", "@modelcontextprotocol/server-filesystem", "."]
}
说明:
- server_name:在 MCP 客户端配置中表示要连接的 MCP 服务器名称,如本例中的 filesystem。
- command:启动 Rampart 的 MCP 服务器代理的命令(此处为 rampart)。
- args:启动命令的参数,包含代理模式、目标 MCP 服务器的具体启动方式等。该示例对应 README/示例中的用法,客户端在实际环境中应按需调整。 备注:MCP 客户端仅需要了解如何启动并连接到 Rampart 的 MCP 服务器,不需要在本说明中公开实现细节,具体的参数和选项以实际部署文档为准。
- 基本使用方法
- 启动服务器
- 通过 rampart mcp 命令在服务器端启动 MCP 代理,代理会将工具调用进行策略评估后再转发至实际 MCP 服务器。
- 使用 MCP 客户端
- 通过 MCP 客户端向 Rampart 的 MCP 服务器发起工具调用请求(如 read_file、write_file、exec 等),服务器返回 JSON-RPC 风格的响应,包含 decision、policy、message 等字段。
- 运行和调试
- 可以结合 Rampart 的监控板(watch)、审计(audit)等工具查看实时决策与审计记录。
- 安全与扩展
- 支持多种审计输出与通知(Syslog、CEF、Slack/Discord/Teams、OpenClaw 等),便于在生产环境中实现合规和告警。
- 启动服务器