使用说明
项目简介
MCP网关是一个位于大型语言模型(LLM)客户端和多个模型上下文协议(MCP)服务器之间的中间层。它作为一个中央路由器和管理系统,集中管理和增强您的AI基础设施。网关包装并管理底层的MCP服务器,为所有连接的MCP提供统一的安全策略、监控和跟踪能力。
主要功能点
- 统一安全防护 (Agnostic Guardrails):
- 对客户端请求和服务器响应应用可配置的安全过滤器。
- 在信息到达客户端之前,防止敏感数据泄露。
- 跨所有连接的MCP服务器保持一致的安全策略。
- 集中可视化管理 (Unified Visibility):
- 提供仪表板,在一个界面中监控所有MCP服务器。
- 包含智能风险评估和MCP风险评分。
- 提供实时状态监控和性能指标。
- 高级追踪与分析 (Advanced Tracking):
- 记录所有请求和响应的详细日志,用于安全审计和问题排查。
- 提供成本评估工具,用于管理需要付费token的MCP服务器。
- 提供使用情况分析和模式识别,用于优化资源使用。
- 在将请求转发到其他MCP服务器之前,清理敏感信息。
- 工具支持:
- 'get_metadata': 提供所有代理MCP服务器的元数据信息,帮助LLM选择合适的工具和资源。
- 'run_tool': 执行任何代理MCP服务器的功能,并在请求和响应过程中应用安全策略。
安装步骤
- 确保您的Python环境中已安装pip。
- 打开终端或命令提示符,运行以下命令安装MCP网关:
pip install mcp-gateway - 如果您需要使用Presidio guardrail插件进行PII(个人身份信息)脱敏,请使用以下命令安装:
pip install mcp-gateway[presidio]
服务器配置
MCP客户端需要配置MCP网关的启动命令和参数,以便连接到网关服务器。MCP网关本身会读取 'mcp.json' 配置文件来管理和代理底层的MCP服务器。以下是一个配置示例,展示了如何在MCP客户端(如Cursor编辑器)的 'mcp.json' 文件中配置MCP网关,并使其代理一个文件系统MCP服务器,同时启用 'basic' 和 'presidio' 两个安全策略:
{ "mcpServers": { "mcp-gateway": { "command": "mcp-gateway", "args": [ "--mcp-json-path", "~/.cursor/mcp.json", "--enable-guardrails", "basic", "--enable-guardrails", "presidio" ], "servers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "." ] } } } } }
配置参数说明:
- '"mcpServers"': 顶层配置,包含所有MCP服务器的配置信息。
- '"mcp-gateway"': 为MCP网关服务器自定义的名称,在客户端中用于标识和连接到该网关。
- '"command": "mcp-gateway"': 指定启动MCP网关服务器的命令,通常为 'mcp-gateway' (假设 'mcp-gateway' 命令已添加到系统路径)。
- '"args"': 传递给 'mcp-gateway' 命令的参数列表。
- '"--mcp-json-path", "~/.cursor/mcp.json"': 指定 'mcp-gateway' 读取配置文件的路径。这里设置为客户端的 'mcp.json' 文件路径,使得网关可以读取相同的配置文件来管理代理的服务器。
- '"--enable-guardrails", "basic"': 启用 'basic' 基础安全策略插件,用于基础的token和密钥脱敏。
- '"--enable-guardrails", "presidio"': 启用 'presidio' 安全策略插件,用于个人身份信息 (PII) 脱敏。
- '"servers"': 定义了MCP网关代理的后端MCP服务器。
- '"filesystem"': 为被代理的文件系统MCP服务器自定义的名称。
- '"command": "npx"': 指定启动文件系统MCP服务器的命令,这里使用 'npx' 来运行Node.js包。
- '"args"': 传递给 'npx' 命令的参数列表。
- '"-y", "@modelcontextprotocol/server-filesystem", "."': 使用 'npx' 运行 '@modelcontextprotocol/server-filesystem' 包,'"."' 表示文件系统服务器的工作目录为当前目录。
- '"filesystem"': 为被代理的文件系统MCP服务器自定义的名称。
注意: 'mcp-gateway' 的 '"servers"' 字段中可以配置多个被代理的MCP服务器,每个服务器都需要指定其 'command' 和 'args',以便 'mcp-gateway' 能够启动和管理这些服务器。客户端只需要配置连接 'mcp-gateway' 的信息,无需直接配置后端服务器。
基本使用方法
-
启动MCP网关服务器:在终端或命令提示符中,使用以下命令启动MCP网关,并启用 'basic' 和 'presidio' 安全策略:
mcp-gateway --enable-guardrails basic --enable-guardrails presidio -
调试模式:如果您需要调试服务器,可以使用以下命令,这将启用更详细的日志输出:
LOGLEVEL=DEBUG mcp-gateway --mcp-json-path ~/.cursor/mcp.json --enable-guardrails basic --enable-guardrails presidio -
配置Lasso安全策略:要使用Lasso Security提供的高级安全策略,您需要:
- 注册并获取Lasso API密钥 (Lasso Security)。
- 在 'mcp.json' 配置文件中,将 guardrail 更改为 '"lasso"',并添加 'LASSO_API_KEY' 环境变量:
{ "mcpServers": { "mcp-gateway": { "command": "mcp-gateway", "args": [ "--mcp-json-path", "~/.cursor/mcp.json", "--enable-guardrails", "lasso" ], "env": { "LASSO_API_KEY": "<lasso_token>" // 将 <lasso_token> 替换为您的 Lasso API 密钥 }, "servers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "." ] } } } } } - 启动MCP网关时,确保 'LASSO_API_KEY' 环境变量已设置。
-
使用MCP客户端连接:配置您的MCP客户端(如Cursor编辑器)连接到 'mcp-gateway' 服务器。客户端将通过MCP网关与后端被代理的MCP服务器进行交互,所有请求和响应都会经过MCP网关的安全策略处理。
通过MCP网关,您可以集中管理和增强您的MCP服务器,提高AI应用的安全性、可观测性和可维护性。
信息
分类
AI与计算