# Harness Mcp Scan > Escaneo de seguridad estático de la superficie MCP declarada de un harness. Lee .mcp/servers.json y .harness/claims.json; solo lectura, falla si hay hallazgos igual o por encima de --fail-on. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/harness-mcp-scan Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/harness-mcp-scan.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: el mes pasado Coste de contexto: 54 tok instalada, 429 tok al activarse, 429 tok con todos los archivos del bundle Bundle: 1 archivo, 2 KB Permisos que pide: bash ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add ruvnet/ruflo --skill harness-mcp-scan --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill harness-mcp-scan --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill harness-mcp-scan --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill harness-mcp-scan --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill harness-mcp-scan --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill harness-mcp-scan --agent cline ``` ## Qué hace - Enumera cada servidor y herramienta MCP declarados y marca problemas de política, permisos o dependencias. - Nunca ejecuta ninguna herramienta; es análisis estático puro. - Falla con exit 1 si hay hallazgos con severidad igual o superior a --fail-on (por defecto high). ## Cuándo usarla - Quieres un escaneo estático de seguridad de la superficie MCP de un harness antes de publicarlo. - Vas a integrarlo como gate de CI que bloquee hallazgos de severidad alta. ## Qué la activa - "Escanea la superficie MCP de este repo" - "Falla el build si hay hallazgos de severidad media o alta" ## Antes de instalar - Se degrada con normalidad si el binario harness no está disponible. - runs shell commands ## Archivos - SKILL.md — 2 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. Calls `harness mcp-scan` to enumerate every declared MCP server + tool and flag policy / permission / dependency issues. Never executes any tool; pure static analysis. ## Algorithm Implementation: [`scripts/mcp-scan.mjs`](../../scripts/mcp-scan.mjs). 1. Invoke the pinned `harness` binary (`metaharness@~0.3.0`, resolved from a local install or the one-time `~/.ruflo/metaharness-cache-` cache — never `@latest`): `harness mcp-scan --json`. 2. Parse `findings[]` with `{ severity, id, server, tool, message }`. 3. `--fail-on `: exit 1 when any finding is at or above that level. Default `high`. 4. Output JSON (default) or markdown table. ## Severity rank | Severity | Rank | |---|---:| | low | 1 | | medium | 2 | | high | 3 | `--fail-on high` (default) only fails on HIGH; `--fail-on medium` also fails on MEDIUM; `--fail-on low` fails on any finding. ## CI integration ```yaml - name: MCP static scan run: node plugins/ruflo-metaharness/scripts/mcp-scan.mjs --fail-on high ``` The exit code is the only thing CI watches; the JSON output goes to artifacts for human review. ## Graceful degradation When `harness` binary is unavailable (no network, blocked registry), emits structured `{ degraded: true, reason: 'metaharness-not-available' }` and exits 0. Ruflo continues — ADR-150 architectural constraint. ## Dónde encaja - Categoría: [Seguridad](https://skillsagentes.com/categorias/seguridad.md) — Auditorías, revisión de dependencias, manejo de secretos y modelado de amenazas. - Creador: [ruvnet](https://skillsagentes.com/creators/ruvnet.md) — 275 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Harness Gepa](https://skillsagentes.com/skills/ruvnet/ruflo/harness-gepa.md): Inspecciona y audita genomas GEPA: carga y valida un genoma, renderiza el system prompt que compila, o clasifica los modos de fallo de una transcripción de ejecución. - [Deepseek Reason](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-reason.md): Completion en modo razonamiento contra deepseek-reasoner (R1) de DeepSeek. Devuelve el chain-of-thought por separado de la respuesta final. Lee DEEPSEEK_API_KEY y degrada si falta o la API no responde. - [Deepseek Chat](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-chat.md): Completion de un solo turno contra el modelo deepseek-chat de DeepSeek vía /v1/chat/completions. Lee DEEPSEEK_API_KEY y degrada con status:degraded si falta o la API no responde. Para tareas sin razonamiento. - [Adr Index](https://skillsagentes.com/skills/ruvnet/ruflo/adr-index.md): Construye o reconstruye el índice de ADRs y su grafo de dependencias ejecutando scripts/import.mjs, en vez de cientos de llamadas MCP. - [Agntcy Status](https://skillsagentes.com/skills/ruvnet/ruflo/agntcy-status.md): Muestra el estado de la integración AGNTCY/SLIM/CASA: si los paquetes están instalados, qué transporte está activo y si el enforcement de CASA está habilitado. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)