mcp-gateway
MCP Gateway
Capa de seguridad intermedia del ecosistema MCP — establece una barrera de protección entre los LLM y los servidores de herramientas
¿Qué problema resuelve?
Cuando un agente LLM invoca herramientas externas a través del protocolo MCP, existen tres riesgos principales:
Fuga de credenciales — Las respuestas devueltas por las herramientas pueden contener información sensible, como API Keys, tokens, etc., expuesta directamente al contexto del LLM.
Exfiltración de datos privados — La información personal del usuario (nombre, número de identificación, número de tarjeta bancaria) puede transmitirse en la cadena de invocación de herramientas.
Inyección de herramientas maliciosas — Las descripciones de las herramientas pueden ocultar instrucciones de inyección de prompts que inducen al agente a ejecutar operaciones peligrosas.
MCP Gateway actúa como capa de proxy que intercepta todo el tráfico y aplica filtros de seguridad antes de que las solicitudes/respuestas lleguen al agente.
Related MCP server: arc-gate-mcp
Descripción general de la arquitectura
┌─────────────┐ ┌──────────────────────────────────┐ ┌─────────────┐
│ │ │ MCP Gateway │ │ │
│ LLM Agent │ ───► │ ┌──────────┐ ┌──────────────┐ │ ───► │ MCP Server │
│ │ │ │ Sanitize │ │ Plugin │ │ │ (tools) │
│ │ ◄─── │ │ Request │ │ Pipeline │ │ ◄─── │ │
└─────────────┘ │ └──────────┘ └──────────────┘ │ └─────────────┘
│ ▲ │ │
│ │ ┌──────────▼──┐ │
│ │ │ Sanitize │ │
│ │ │ Response │ │
│ │ └─────────────┘ │
└──────────────────────────────────┘Flujo principal:
Dirección de solicitud: El Plugin Pipeline desensibiliza los parámetros (p. ej., elimina PII, filtra instrucciones de inyección).
Dirección de respuesta: Aplica enmascaramiento de tokens y filtrado de información sensible a los valores devueltos por las herramientas.
Fase de inicio: El Security Scanner evalúa la reputación de todos los servidores MCP configurados.
Inicio rápido
Instalación
git clone <your-repo-url>
cd mcp-gateway
pip install -e .Dependencias opcionales:
pip install -e .[presidio] # 启用 PII 检测(基于 Microsoft Presidio)Configuración mínima
Crea un archivo mcp.json en la raíz del proyecto:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
}
}
}Inicio
# 启用基础 Token 掩码
mcp-gateway -p basic
# 启用 Token 掩码 + PII 检测
mcp-gateway -p basic -p presidio
# 调试模式
LOGLEVEL=DEBUG mcp-gateway -p basicIntegración con Cursor / Claude Desktop
{
"mcpServers": {
"mcp-gateway": {
"command": "mcp-gateway",
"args": [
"--mcp-json-path", "~/.cursor/mcp.json",
"-p", "basic",
"-p", "xetrack"
],
"servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
}
}
}
}
}{
"mcpServers": {
"mcp-gateway": {
"command": "<python-path>",
"args": [
"-m", "mcp_gateway.server",
"--mcp-json-path", "<path-to-config>",
"-p", "basic"
],
"servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
}
}
}
}
}Capacidades de protección de seguridad
Enmascaramiento de tokens (plugin basic)
Detecta y reemplaza automáticamente las credenciales sensibles en las respuestas. Compatible con los formatos de clave de 12 plataformas de nube y herramientas de desarrollo populares:
Tipo | Formato de ejemplo |
Clave de acceso de AWS |
|
Token de GitHub |
|
Secreto de cliente de Azure |
|
Clave de API de GCP |
|
Token JWT |
|
Token de HuggingFace |
|
Cookie de sesión de GitLab |
|
Token de aplicación de Slack |
|
Webhook de Microsoft Teams |
|
mcp-gateway -p basicDetección de PII (plugin presidio)
Basado en el motor Microsoft Presidio, detecta y anonimiza automáticamente la información de identificación personal en el texto:
Números de tarjeta de crédito, direcciones IP, correos electrónicos
Números de teléfono, números de identificación (SSN)
Más tipos de entidades en la documentación de Presidio
pip install -e .[presidio]
mcp-gateway -p presidioEscáner de seguridad (--scan)
Antes del inicio, evalúa la reputación y analiza las descripciones de herramientas de todos los servidores MCP:
mcp-gateway --scan -p basicDimensiones del escaneo:
Evaluación de reputación — Calcula una puntuación integral basada en datos de GitHub (estrellas, forks, actividad de issues) y descargas de NPM.
Escaneo de descripciones de herramientas — Detecta instrucciones ocultas de inyección de prompts, referencias a rutas de archivos sensibles y comandos de operaciones peligrosas.
Bloqueo automático — Los servidores con una puntuación de reputación inferior al umbral (30 puntos por defecto) se marcan como
blockedy se bloquea su carga.
Los resultados del escaneo se escriben en el archivo de configuración:
{
"servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
"blocked": "passed"
}
}
}Valores de estado: "passed" (seguro) | "blocked" (bloqueado) | "skipped" (omitido manualmente) | null (no escaneado)
Seguimiento de llamadas
Plugin de seguimiento Xetrack
Registra el contexto completo de todas las invocaciones de herramientas, con soporte para consultas SQLite y DuckDB:
pip install xetrack
mcp-gateway -p xetrackConfiguración de variables de entorno:
XETRACK_DB_PATH— Ruta de la base de datos SQLiteXETRACK_LOGS_PATH— Directorio de archivos de registro
{
"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/"
}
}
}
}Ejemplo de consulta:
from xetrack import Reader
df = Reader("tracing.db").to_df()-- DuckDB
INSTALL sqlite; LOAD sqlite; ATTACH 'tracing.db' (TYPE sqlite);
SELECT server_name, capability_name, content_text FROM db.events LIMIT 10;Herramientas de proxy
Gateway expone dos herramientas estandarizadas al LLM:
Herramienta | Función |
| Obtiene la lista de capacidades de todos los servidores MCP registrados, lo que ayuda al LLM a elegir la herramienta adecuada. |
| Ejecuta cualquier invocación de herramienta MCP a través de Gateway, aplicando automáticamente el procesamiento de seguridad de solicitudes/respuestas. |
Desarrollo de plugins
El sistema de plugins se basa en el patrón de clase base ABC + registro mediante decoradores:
from mcp_gateway.plugins.base import GuardrailPlugin
from mcp_gateway.plugins.manager import register_plugin
@register_plugin
class MyPlugin(GuardrailPlugin):
@property
def name(self) -> str:
return "my-plugin"
def process_request(self, context):
# 请求方向的处理逻辑
return context.arguments
def process_response(self, context, response):
# 响应方向的处理逻辑
return responseLos plugins se descubren y cargan automáticamente a través de PluginManager, con soporte para intercepción bidireccional de solicitudes/respuestas.
Estructura del proyecto
mcp_gateway/
├── __init__.py # 包入口
├── server.py # MCP Server 生命周期管理
├── gateway.py # 动态工具注册、CLI 参数解析
├── config.py # 配置文件加载
├── sanitizers.py # 请求/响应安全分发
├── plugins/
│ ├── base.py # Plugin ABC 基类
│ ├── manager.py # 插件发现、注册、Pipeline
│ ├── guardrails/
│ │ ├── basic.py # Token 掩码插件
│ │ └── presidio.py # PII 检测插件
│ └── tracing/
│ └── xetrack.py # 调用追踪插件
├── security_scanner/
│ ├── scanner.py # 扫描器主入口
│ ├── github_collector.py # GitHub API 数据采集
│ ├── npm_collector.py # NPM Registry 数据采集
│ ├── smithery_collector.py# Smithery 市场数据采集
│ ├── project_analyzer.py # 综合信誉评分算法
│ └── tool_poisoning_analyzer.py # 工具描述安全分析
└── tests/
├── test_sanitizers.py
├── test_tool_poisoning_analyzer.py
├── test_plugin_pipeline.py
└── test_config.pyLicencia
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceA transparent proxy and execution firewall that intercepts and audits AI agent tool calls against configurable security policies before forwarding them to downstream MCP servers. It provides safe execution environments with features like data redaction, anti-loop protection, and unified alert dispatching.
- AlicenseAqualityBmaintenanceRuntime governance proxy for MCP tool calls. Inspects tool results for prompt injection and capability abuse before they reach your agent, blocking attacks that exploit the MCP trust boundary.12AGPL 3.0
- FlicenseNot gradedqualityBmaintenanceEnables secure interaction between LLMs and MCP tools by applying zero-trust security controls, including sensitive data masking, file system protection, and policy enforcement.
- AlicenseAqualityBmaintenanceProvides prompt injection detection, PII/secrets redaction, and an audit trail for AI agents via MCP tools.4MIT
Related MCP Connectors
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wxsh-hub/mcp-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server