mcp-slim-guard
Proxy de seguridad MCP ligero: compresión (hasta 86%) + protección SSRF + permitir/denegar + auditoría + limitación de tasa + detección de inyección
Documentación
MCP Slim Guard
MCP Slim Guard le ofrece al host una forma deliberada de acceder a herramientas upstream autorizadas. Mantiene intactos los esquemas de entrada, valida las llamadas antes de invocar el upstream y puede recuperar un resultado sobredimensionado exactamente sin repetir esa invocación.
Elija un modo
| Modo | Lo que ve el host | Mejor ajuste |
|---|---|---|
| Nativo | Nombres de herramientas originales autorizados y esquemas completos, más read_result | Hosts que funcionan bien con un catálogo MCP normal, incluido Codex |
| Compacto | find_tool, call_tool y read_result; el descubrimiento devuelve el esquema original completo de cada coincidencia | Una superficie de host pequeña y predecible |
| Extremo | La superficie y los esquemas de herramientas Compacto; solo los resultados suficientemente grandes reciben una primera entrega recuperable más corta | Hosts sensibles al contexto donde un primer resultado más pequeño es valioso |
Compacto es el valor predeterminado para start. Nativo es el plan de instalación predeterminado para Codex. Compacto es el valor predeterminado para Claude Code; Claude Code admite planes de instalación Compacto y Extremo, no Nativo.
Todos los modos aplican la misma autorización de permitir/denegar. Compacto y Extremo devuelven como máximo tres coincidencias de descubrimiento, cada una con los campos obligatorios originales, enumeraciones y esquema anidado. Una llamada se valida contra ese esquema original antes de contactar al servidor upstream.
find_tool rechaza campos desconocidos y consultas de más de 256 puntos de código Unicode localmente. Busca solo en el catálogo autorizado actual y nunca recurre a una entrada no autorizada.
Inicio rápido
0.1.1-alpha.2 es un candidato fuente y aún no se publica en npm. Desde un checkout revisado de este candidato:
npm ci
npm run build
npm link
cd /path/to/project-with-mcp-config
mcp-slim-guard init
mcp-slim-guard validate
# Run the default Compact mode.
mcp-slim-guard start
init escribe mcp-slim-guard.yml con la versión 2. El archivo contiene solo configuraciones de upstream y seguridad. Seleccione un modo en el comando del host, no en YAML.
# Inspect a host-specific plan without changing host files.
mcp-slim-guard plan --host codex
mcp-slim-guard plan --host claude-code --mode extreme
# Verify the configured runtime without changing Host configuration or calling a business Tool.
mcp-slim-guard verify --host codex
# Apply a reviewed plan.
mcp-slim-guard install --host codex --mode native
Entradas del host
Para Codex, use Nativo cuando desee el catálogo MCP autorizado normal:
[mcp_servers.slim_guard]
command = "mcp-slim-guard"
args = ["start", "--mode", "native"]
cwd = "/absolute/path/to/project"
Para Claude Code, use Compacto por defecto:
{
"mcpServers": {
"slim-guard": {
"command": "mcp-slim-guard",
"args": ["start", "--mode", "compact"],
"cwd": "/absolute/path/to/project"
}
}
}
Consulte configuración del host para conocer los pasos completos de configuración y verificación.
Configuración
version: 2
tools:
allow:
- "upstream_*"
deny:
- "*_delete_*"
ssrf:
mode: block
block_private_ips: true
allow_domains: []
block_domains: []
rate_limit:
default: "60/min"
injection_detection:
enabled: true
sensitivity: medium
mode: block
audit:
output: file
filePath: mcp-slim-guard-audit.log
servers:
upstream:
command: npx
args: ["-y", "@your/mcp-server"]
La configuración de la versión 1 no se admite intencionalmente. La sección eliminada compressor se rechaza en lugar de migrarse automáticamente.
Reparar una llamada no válida
Si los argumentos no coinciden con el esquema original de una herramienta autorizada, Slim Guard devuelve un error de herramienta MCP normal con structuredContent que identifica la falla del esquema y confirma que la herramienta upstream no se invocó. Corrija los argumentos y reintente; los valores de argumentos enviados no se reflejan en ese error.
Recuperación de resultados
Cuando una respuesta necesita entrega recuperable, la primera respuesta incluye un result_ref. Use read_result con query para localizar hasta tres fragmentos locales acotados, u omita query y siga next_cursor para recuperar la instantánea exacta. Ambas rutas usan la misma captura inmutable y nunca vuelven a invocar la herramienta upstream. No combine query con cursor. Nativo y Compacto usan el límite de entrega estándar. Extremo usa un límite más pequeño solo cuando la respuesta entregada inicialmente es al menos la mitad del tamaño de la respuesta exacta; de lo contrario, pasa la respuesta exacta sin cambios.
Evidencia y verificaciones
El repositorio incluye una comparación de modos de 24 tareas, accesorios de recuperación de resultados y un accesorio de estrés de 100 herramientas / 8,000 filas. Ejecute los artefactos actuales con:
npm run build
npm run bench:task
npm run bench:compression
npm run bench:stress
npm run bench:compression:verify
Sus informes son específicos del modo y se generan localmente; no trate las cifras de referencia alfa anteriores como afirmaciones para esta línea de productos.
Desarrollo
npm run build
npm run typecheck
npm run lint
npm test
npm run verify:package-boundary
npm run smoke:package
Este proyecto es alfa. Revise los patrones de autorización y la configuración de upstream antes de usarlo con herramientas privilegiadas.