Pipelock MCP 代理服务器
使用说明(Markdown格式)
-
项目简介
- Pipelock 的 MCP 部署模块提供一个基于标准输入/输出的代理,能够把任意 MCP 服务器包装成一个受控的、可观测的后端服务。它会在请求进入服务器前对工具参数、以及服务器返回的内容进行文本级别的安全检查,检测潜在的敏感信息泄漏、提示注入等风险,并在配置允许的情况下进行拦截、剥离或需要人工审核的处理。
-
主要功能点
- 针对 MCP 请求的处理与审计:理解并解析 MCP 的 JSON-RPC 2.0 请求/响应,提取其中的文本内容进行 DLP 与注入检测。
- 双向扫描代理:在请求进入 MCP 服务器之前对请求进行审查,在服务器返回内容时对响应进行审查,必要时对文本进行剥离、屏蔽或阻断。
- 工具化运行方式:通过代理包装一个外部 MCP 服务器进程,使用标准的 stdio 传输实现透明代理。
- 可热更新配置:支持在运行中热替换配置,动态开启/关闭响应扫描、修改阻断策略等。
- 安全与日志:提供日志记录、Prometheus 指标、错误/告警信息,便于审计与合规。
- HITL 支持(可选):在需要人工干预时可以接入人机交互(HITL)进行决策。
-
安装步骤
- 需要 Go 及相关依赖环境,按仓库提供的构建脚本与模块进行编译即可运行。
- 通过配置文件启动 MCP 代理服务,指定要代理的 MCP 服务器命令及参数,以及 MCP 客户端的交互。
-
服务器配置(给 MCP 客户端使用的配置,使用 JSON 格式描述,客户端实际不需要)
- server name(服务器标识,用于日志和追踪)
- command(要执行的 MCP 服务器命令,例如一个 MCP 实例的启动命令)
- args(命令参数列表,用于启动 MCP 服务器)
- 配置示例(JSON 表达,不作为代码块呈现): { "server_name": "example-mcp", "command": ["npx", "@modelcontextprotocol/server-filesystem", "/tmp"], "args": [] }
- 说明:上述信息仅用于 MCP 客户端在接入前了解要对接的 MCP 服务器的启动方式,实际客户端不需要此配置信息;代理端通过配置读取并执行相应的服务器进程。
-
基本使用方法
- 启动代理:在带有 MCP 配置的环境中运行代理服务,让它启动并监听本地端口,等待 MCP 客户端连接。
- 配置热更新:如需更改策略(如将某些模式从 block 调整为 warn/strip/ask 等),修改配置并通过热加载机制应用,避免重启服务。
- 集成与调试:通过代理暴露的日志、健康与指标接口进行观测,必要时接入 HITL 进行人工审核。
- 注意事项:MCP 客户端需要使用代理暴露的 MCP 接入端口作为通信端点,代理会对进入/离开的文本进行安全检查,确保隐私与安全要求。
-
重点提示
- MCP 的核心是 JSON-RPC 2.0 的请求/响应体,代理侧对文本进行检测、处理与报告,确保 LLM 客户端与 MCP 服务器之间的交互在受控的边界内进行。
- 如需更深层的 MCP 功能(如资源、工具、提示模板等的原生管理),当前实现以代理/扫描为核心,提供对现有 MCP 服务的安全封装与审计能力。
-
关键词
- 模型上下文协议, JSON-RPC 2.0, 双向代理, 安全扫描, 人工干预
-
分类ID
- 6