El Registro de MCP es la interfaz de operador del auditor de servidores MCP de RenLayer. Permite a equipos de seguridad y plataforma enviar una URL pública de GitHub de cualquier servidor Model Context Protocol, ejecuta una revisión de seguridad multicapa contra él y sintetiza los resultados en un único veredicto de riesgo antes de que el MCP se cablee a un agente.
Resuelve la nueva clase de supply chain que introduce MCP: los clientes integran servidores MCP de terceros desde GitHub en sus agentes, y el código que esos agentes cargan rara vez se revisa antes del despliegue. El Registro de MCP cierra esa brecha como gate pre-deploy.
Qué cubre la auditoría
Para cada envío, RenLayer descarga el repositorio en la ref solicitada y ejecuta una revisión en profundidad sobre cuatro dimensiones:
- Código — análisis estático de seguridad de aplicaciones para detectar patrones peligrosos, criptografía débil, sumideros de inyección de comandos y otras formas de código de riesgo.
- Dependencias — matching de CVEs conocidos sobre todo el grafo de dependencias, incluyendo transitivas que tira el lockfile.
- Secretos — detección de credenciales y claves de API en todo el árbol de trabajo.
- Misconfiguración — análisis de Dockerfile, IaC y archivos de configuración buscando defaults inseguros.
Los hallazgos se sintetizan en un resumen ejecutivo, un risk score numérico (0–100) y un risk level categórico. La auditoría siempre completa — nunca muere en silencio.
Enviar una auditoría
Desde /mcp-registry, pulsa Submit MCP. El diálogo pide:
- GitHub URL (obligatorio, debe ser
https://github.com/owner/repo). - Branch, tag o commit SHA (opcional; por defecto la rama por defecto del repositorio).
- Descripción (opcional; texto libre que aparece en la lista y en el detalle).
- Scan profile (override opcional — ver abajo).
Tras enviar, la página redirige al detalle, que hace polling automáticamente mientras la auditoría corre. Una auditoría típica completa en 1–3 minutos según el tamaño del repo y el perfil activo.
Perfiles de escaneo
El auditor trae tres perfiles. Cada uno escoge un balance distinto entre profundidad/cobertura y velocidad; elige el que se ajuste a tu tolerancia de falsos positivos y tiempo de ejecución.
| Perfil | Cobertura | Caso de uso |
|---|---|---|
| Conservative | Solo checks ajustados de alta confianza | Smoke check, bajo ratio de falsos positivos, más rápido. |
| Moderate (por defecto) | Cobertura multi-lenguaje equilibrada con rule packs curados | Default day-to-day antes de integrar. |
| Aggressive | Cobertura amplia con rule packs más profundos | Gate pre-deploy. Más findings, más ruido. |
El default tenant se configura en Settings → MCP Auditor, y se puede sobreescribir por auditoría al enviar. El header del detalle muestra el perfil efectivo (profile: aggressive) para que siempre sepas qué se aplicó.
Leer el informe
La página de detalle se organiza de arriba abajo:
- Header: URL de GitHub con botones de copy/external link, ref, SHA del commit, descripción y el perfil efectivo.
- Status card: estado actual
queued/running/completed/failed, badge de riesgo (HIGH,MEDIUM, etc.) y risk score numérico (68 / 100), o el mensaje de error si la run falló. - Executive summary: la síntesis en prosa. Renderiza markdown — párrafos,
**bold**para el peor riesgo de cada párrafo, e`inline codepara IDs CVE, nombres de paquete, rutas de archivo y comandos. - Risk overview: rejilla 4-en-fila con conteos de findings por categoría (
code,dependencies,secrets,misconfig). - Findings: grupos colapsables por categoría, ordenados por severidad dentro de cada grupo. Pulsa una fila para expandir descripción, remediación, fichero/línea y enlace a CWE/CVE.
- Raw outputs: sección avanzada colapsable con la salida sin filtrar del escaneo. Útil cuando un número parece raro o la síntesis se dejó algo fuera.
Re-ejecutar una auditoría
Pulsa Re-run audit en el header del detalle. Esto crea una nueva fila apuntando al mismo github_url, arrastrando el scan_profile original para que la comparación sea peras con peras. Re-ejecutar tira del último commit en la ref solicitada, así que el SHA resuelto en la nueva auditoría puede diferir del original — eso es intencional: el sentido de un re-run es comprobar el estado actual.
La auditoría original se conserva; puedes comparar los dos informes side-by-side desde la lista.
Configuración tenant
Settings → MCP Auditor tiene un único setting: el perfil de escaneo por defecto. Aplica a cualquier auditoría enviada sin override explícito. El default es moderate. Cambiarlo no afecta retroactivamente a auditorías ya enviadas, solo a las futuras.
El botón Save escribe contra la API de plataforma y emite una entrada en el audit log (update / mcp_auditor_config) con el perfil anterior y el nuevo, así tienes registro de quién cambió el default y cuándo.
Integración con audit log
Todo cambio de estado escribe al audit log inmutable:
| Acción | Resource type | Cuándo |
|---|---|---|
submit | mcp_audit | Se crea una nueva fila de auditoría. |
rescan | mcp_audit | Se solicita un re-run. El JSON de details incluye rescan_of apuntando al original. |
complete / fail | mcp_audit | La auditoría termina. Incluye conteo de findings, risk level y perfil efectivo. |
delete | mcp_audit | Se borra una fila. |
update | mcp_auditor_config | Se cambia el perfil por defecto del tenant. |
Es la misma cadena de auditoría que usa cualquier otra acción de gobierno en RenLayer, así que la actividad del auditor MCP forma parte del trail mapeado a GDPR / EU AI Act.
Superficie de API
El acceso programático está en /api/v1/mcp-audits:
| Método | Path | Propósito |
|---|---|---|
POST | /api/v1/mcp-audits | Enviar una nueva auditoría. Body: { github_url, git_ref?, description?, scan_profile? }. |
GET | /api/v1/mcp-audits | Listado paginado. Query: status, risk_level, limit, offset. |
GET | /api/v1/mcp-audits/{id} | Informe completo, incluyendo findings y raw outputs. |
POST | /api/v1/mcp-audits/{id}/rescan | Crea una nueva fila reusando repo y perfil originales. |
DELETE | /api/v1/mcp-audits/{id} | Borra una auditoría de forma permanente. |
GET | /api/v1/mcp-audits/config | Lee el perfil por defecto del tenant. |
PUT | /api/v1/mcp-audits/config | Actualiza el perfil por defecto del tenant. Body: { scan_profile }. |
Las mutaciones requieren rol Owner o Admin; las lecturas funcionan con cualquier sesión autenticada.
Notas operativas
- Aislamiento por tenant: cada auditoría queda dentro del alcance de tu tenant; ningún otro operador ve tus repos enviados ni tus findings.
- Sin ejecución: RenLayer nunca ejecuta el código del servidor MCP. Solo corre análisis estático, en un working directory aislado.
- Timeouts duros aseguran que un escaneo colgado nunca atasque la cola de auditoría.
- Resiliente: si alguna de las capas del análisis falla, la auditoría completa con las que sí pasaron y deja constancia del fallo en los raw outputs.