使用说明
MCP网关
概述
MCP网关是用于模型上下文协议(MCP)服务器的高级中介解决方案,可集中和增强您的AI基础设施。
MCP网关充当LLM和其他MCP服务器之间的中介。它
- 📄 从读取服务器配置
mcp.json位于根目录中的文件。 - ⚙️ 管理配置的MCP服务器的生命周期。
- 🛡️ 拦截请求和响应以净化敏感信息。
- 🔗 提供一个统一的接口,用于发现所有代理的MCP并与之交互。
- 🔒 安全扫描仪 -在加载MCP服务器之前,分析服务器信誉和安全风险。
安装
Python(推荐)
安装mcp网关包:
pip install mcp-gateway
--mcp-json-path-必须导致你 mcp.json 或 claude_desktop_config json
--plugin或-p-指定要启用的插件(可以多次使用)
用法
此示例启用了用于文件系统MCP的令牌掩码和xetrack跟踪插件的基本护栏:
mcp-gateway --mcp-json-path ~/.cursor/mcp.json -p basic -p xetrack
通过将MCP服务器配置置于“服务器”键下,您可以添加更多将在网关下的MCP。
Cursor example:
{
"mcpServers": {
"mcp-gateway": {
"command": "mcp-gateway",
"args": [
"--mcp-json-path",
"~/.cursor/mcp.json",
"--plugin",
"basic",
"--plugin",
"xetrack"
],
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"."
]
}
}
}
}
}
Claude example:
获取 <PYTHON_PATH>
which python
{
"mcpServers": {
"mcp-gateway": {
"command": "<python path>",
"args": [
"-m",
"mcp_gateway.server",
"--mcp-json-path",
"<path to claude_desktop_config>",
"--plugin",
"basic"
],
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"."
]
}
}
}
}
}
Docker
克隆此仓库后构建映像
docker build -t mcp/gateway .
{
"mcpServers": {
"mcp-gateway": {
"command": "docker",
"args": [
"run",
"--rm",
"--mount", "type=bind,source=/Users/oro/Projects/playground/mcp-gateway,target=/app",
"-i",
"-v", "/Users/oro/.cursor/mcp.json:/config/mcp.json:ro",
"-e", "LASSO_API_KEY=<LASSO_API_KEY>",
"-v", "mcp-gateway-logs:/logs",
"mcp/gateway:latest",
"--mcp-json-path", "/config/mcp.json",
"--plugin", "basic",
"--plugin", "lasso"
],
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"."
]
}
}
}
}
}
在这个例子中,我们使用lasso和基本护栏来展示如何将环境变量和参数传递给docker,以及如何为文件系统MCP挂载存储。
Docker镜像可以用某些插件所需的可选依赖关系构建(例如。, presidio).
使用 INSTALL_EXTRAS 在 docker build 命令。提供所需额外内容的逗号分隔字符串: "presidio,xetrack"
快速入门
隐藏敏感信息
MCP网关将自动屏蔽响应中的敏感令牌,防止凭据暴露,同时仍提供所需的功能。
-
创建包含敏感信息的文件:
echo 'HF_TOKEN = "hf token"' > tokens.txt -
当代理请求通过MCP网关读取此文件时:
- 建议用十四行诗3.7进行测试
Use your mcp-gateway tools to read the ${pwd}/tokens.txt and return the HF_TOKEN
输出:
用法
使用此存储库根目录上的python_env配置启动MCP网关服务器:
mcp-gateway -p basic -p presidio
您还可以使用以下命令调试服务器:
LOGLEVEL=DEBUG mcp-gateway --mcp-json-path ~/.cursor/mcp.json -p basic -p presidio
工具
以下是MCP用于创建其他MCP服务器的代理的工具
get_metadata-提供有关所有可用代理MCP的信息,以帮助LLM选择适当的工具和资源run_tool-在清理请求和响应后执行任何代理MCP的功能
插件
贡献
有关插件系统如何工作、如何创建自己的插件或如何贡献的更多详细信息,请参阅 插件系统文档.
护栏
MCP网关支持各种插件,以增强安全性和功能性。以下是内置护栏插件的摘要:
| 名称 | PII屏蔽 | 令牌/秘密屏蔽 | 自定义策略 | 提示注入 | 有害内容 |
|---|---|---|---|---|---|
basic |
❌ | ✅ | ❌ | ❌ | ❌ |
presidio |
✅ | ❌ | ❌ | ❌ | ❌ |
lasso |
✅ | ✅ | ✅ | ✅ | ✅ |
注: 要使用 presidio 插件,你需要单独安装: pip install mcp-gateway[presidio].
基础
mcp-gateway -p basic
掩盖基本秘密
- azure客户端密码
- github代币
- github oauth
- gcp-api密钥
- aws访问令牌
- jwt令牌
- gitlab会话cookie
- huggingface访问令牌
- 微软团队webhook
- 松弛应用令牌
普雷西迪奥
mcp-gateway -p presidio
普雷西迪奥 是身份识别和匿名化包
- 信用卡
- IP
- 电子邮件
- 电话
- 社会保障号码
- 等等
套索
mcp-gateway -p lasso
先决条件
- 获取Lasso API密钥 通过注册 拉索安全.
要使用Lasso Security的高级AI安全护栏,请更新您的 mcp.json 配置如下:
- 添加
LASSO_API_KEY=<YOUR-API-KEY>到您的环境变量或“env”部分。 - 在密钥下插入其他MCP服务器配置
servers
例子:
{
"mcpServers": {
"mcp-gateway": {
"command": "mcp-gateway",
"args": [
"--mcp-json-path",
"~/.cursor/mcp.json",
"-p",
"lasso"
],
"env": {
"LASSO_API_KEY": "<lasso_token>"
},
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"."
]
}
}
}
}
}
特性
🔍 通过始终在线的监控全面了解MCP交互。
🛡️ 通过内置保护,优先考虑部署的安全性,实时缓解GenAI特有的威胁,如快速注入和敏感数据泄露。
✨ 使用灵活、自然的语言来制定适合您企业独特需求的安全策略。
⚡ 适用于任何部署风格的快速简单安装。使用直观、用户友好的仪表板在几分钟内监控进出MCP的数据流。
Lasso护栏在处理请求和响应之前,通过Lasso的API检查内容是否存在安全违规行为。
在我们的网站上阅读更多👉 拉索安全.
追踪
Xetrack
xetrack 是一个轻量级的软件包,用于跟踪ml实验、基准测试和监控结构化数据。
我们可以用它来调试和监控 工具调用 有日志(日志uru)或 鸭式数据库 和 SQLite. .
mcp-gateway -p xetrack
先决条件
pip install xetrack
参数
XETRACK_DB_PATH-sqlite数据库位置。- 所有日志都注册在 事件 桌子。
- 如果MCPs响应返回了花哨的对象,请阅读xetrack 资产 取回它。
XETRACK_LOGS_PATH-日志位置FLATTEN_ARGUMENTS-平铺参数,默认trueFLATTEN_RESPONSE-使响应变平,默认true- 建议忽略日志位置
- 建议使用 DVC 管理数据库文件
快速入门
{
"mcpServers": {
"mcp-gateway": {
"command": "mcp-gateway",
"args": [
"--mcp-json-path",
"~/.cursor/mcp.json",
"-p",
"xetrack"
],
"env": {
"XETRACK_DB_PATH": "tracing.db",
"XETRACK_LOGS_PATH": "logs/"
},
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"."
]
}
}
}
}
}
假设您使用文件系统 list_directory 工具在路径上 ".",您可以在下面找到调用参数 logs/<date>.log.
您可以使用 xetrack-cli 要查询数据库,请执行以下操作:
$ xt tail tracing.db --json --n=1
[
{
"timestamp": "2025-04-17 17:12:48.233126",
"track_id": "mottled-stingray-0411",
"meta": "f3be31e09667745f",
"paths": null,
"call_id": "deab617e-0a45-4950-9de9-3fb549810cf2",
"capability_name": "list_directory",
"content_type": "text",
"content_annotations": "f3be31e09667745f",
"response_type": "CallToolResult",
"server_name": "filesystem",
"capability_type": "tool",
"isError": 0,
"content_text": "[DIR] .cursor\n[DIR] .git\n[FILE] .gitignore\n[DIR] .pytest_cache\n[DIR] .venv\n[FILE] LICENSE\n[FILE] MANIFEST.in\n[FILE] README.md\n[DIR] docs\n[DIR] logs\n[DIR] mcp_gateway\n[FILE] pyproject.toml\n[FILE] requirements.txt\n[DIR] tests\n[DIR] tmp",
"path": ".",
"prompt": null
}
]
使用python
from xetrack import Reader
df = Reader("tracing.db").to_df()
使用duckdb cli和ui
$ duckdb --ui
D INSTALL sqlite; LOAD sqlite; ATTACH 'tracing.db' (TYPE sqlite);
D SELECT server_name,capability_name,path,content_text FROM db.events LIMIT 1;
┌─────────────┬─────────────────┬─────────┬────────────────────────────────────┐
│ server_name │ capability_name │ path │ content_text │
│ varchar │ varchar │ varchar │ varchar │
├─────────────┼─────────────────┼─────────┼────────────────────────────────────┤
│ filesystem │ list_directory │ . │ [DIR] .cursor\n[DIR] .git\n[FILE… │
└─────────────┴─────────────────┴─────────┴────────────────────────────────────┘
当然,您可以使用另一个MCP服务器查询sqlite数据库😊
扫描仪
安全扫描程序在加载之前分析MCP服务器的潜在安全风险,通过信誉分析和工具描述扫描提供额外的保护层。
mcp-gateway --scan -p basic
特征:
- 🔍 信誉分析 -使用市场(Smithery、NPM)和GitHub数据评估服务器声誉
- 🛡️ 工具描述扫描 -检测隐藏指令、敏感文件模式和恶意操作
- ⚡ 自动拦截 -根据信誉评分(阈值:30)和安全分析阻止有风险的MCP
- 📝 配置更新 -使用扫描结果自动更新MCP配置文件
快速入门
初始配置:
{
"mcpServers": {
"mcp-gateway": {
"command": "mcp-gateway",
"args": [
"--mcp-json-path",
"~/.cursor/mcp.json",
"--scan"
],
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"."
]
}
}
}
}
}
第一次运行后,扫描程序将分析所有配置的MCP服务器,并添加 blocked 配置的状态:
{
"mcpServers": {
"mcp-gateway": {
"command": "mcp-gateway",
"args": [
"--mcp-json-path",
"~/.cursor/mcp.json",
"--scan"
],
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"."
],
"blocked": "passed"
}
}
}
}
}
状态值:
"passed"-服务器通过了所有安全检查,可以安全使用"blocked"-服务器未通过安全检查,将被阻止加载"skipped"-跳过服务器扫描(手动覆盖)null-服务器尚未扫描或以前被阻止服务器现在被认为是安全的
注: 您可以手动将被阻止的服务器更改为
"skipped"如果你确信它是安全的。
运作原理
您的代理直接与我们的MCP网关交互,该网关充当中央路由器和管理系统。每个底层MCP都是单独包装和管理的。
主要特点
不可知护栏
- 对请求和响应应用可配置的安全过滤器。
- 在信息到达您的代理之前防止敏感数据泄露。
- 无论其本机功能如何,都能在所有连接的MCP上一致工作。
统一可见性
- 在一个界面中为您的所有MCP提供全面的仪表板。
- 包括智能风险评估和MCP风险评分。
- 提供实时状态监控和性能指标。
安全扫描仪
- 在加载之前,分析MCP服务器信誉和工具描述的安全风险。
高级跟踪
- 维护每个护栏的所有请求和响应的详细日志。
- 为需要付费代币的MCP提供成本评估工具。
- 提供使用分析和模式识别以进行优化。
- 在将请求转发给其他MCP之前,对敏感信息进行消毒。
<-自动评论星期六11/29/2025 2:47:30(苦差事/实用程序-8599) <-自动评论星期六11/29/2025 2:47:30(苦差事/实用程序-8599) <-汽车评论星期一12/08/2025 16:56:28(文档/路线-5447) <-汽车评论星期一12/08/2025 16:56:28(文档/路线-5447) <-汽车评论星期一12/08/2025 16:56:28(文档/路线-5447) <-汽车评论星期一12/08/2025 16:56:28(文档/路线-5447) <-自动评论2025年12月10日星期三22:49:19(调试/实用程序-5087) <-自动评论2025年12月10日星期三22:49:19(调试/实用程序-5087) <-自动评论2025年12月10日星期三22:49:19(调试/实用程序-5087) <-自动评论2025年12月10日星期三22:49:19(调试/实用程序-5087) <-自动评论2026年1月21日星期三1:53:15(家务/登录-6269) <-自动评论2026年1月21日星期三1:53:15(家务/登录-6269)