---
title: "Comprobador de seguridad y comandos de instalación MCP"
canonical: https://wavect.io/es/tools/mcp-install-risk-scanner/
language: es
description: "Escanea comandos y config MCP localmente para detectar shell, secretos, privilegios, rutas sensibles, paquetes sin fijar, endpoints y contenedores."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

REVISIÓN LOCAL DE INSTALACIONES MCP

# Lee el comando antes de entregar tu máquina a un servidor MCP.

Pega un fragmento npx, uvx, Docker, PowerShell, shell o JSON MCP. El escáner marca patrones visibles, oculta secretos y explica qué revisar sin ejecutar ni subir nada.

[Escanear fragmento](#tool-app) Revisión de Chrome Web Store pendiente [Ver código fuente](https://github.com/wavect/mcp-install-risk-scanner)

- Reglas 14 comprobaciones deterministas
- Procesamiento Local y sin conexión
- Versión Código abierto v0.1.0
- Resultado Señales, no certificación

**REVISIÓN DE INSTALACIÓN**

CONFIG MCP · TEXTO ESTÁTICO **3 señales por revisar**

Análisis local · nada ejecutado

LA RESPUESTA DIRECTA

Para comprobar el riesgo de un comando de instalación MCP, revisa antes de ejecutarlo si descarga y lanza código, eleva privilegios, borra datos, accede a rutas sensibles, incluye credenciales, usa versiones móviles, apunta a endpoints inseguros o concede acceso amplio al contenedor. Este escáner realiza esa revisión estática en local, pero no puede demostrar que un paquete sin alertas sea seguro.

REVISA LA CONFIGURACIÓN EXACTA

## Banco de inspección de instalaciones MCP

Pega el comando de inicio o la configuración completa, con argumentos, variables, montajes y URLs. Un fragmento parcial solo produce evidencia parcial.

Nada sale de esta pestaña

**Banco de inspección MCP** Estático · determinista · local

Cargar ejemplo Escanear localmente

01

### Comando o configuración MCP

Esperando entrada

Comando o configuración MCP

Atajo: Ctrl o Command + Enter. Máximo: 100.000 caracteres.

02

### Señales de riesgo

Sin escanear

Escanea una configuración completa para ver hallazgos deterministas y evidencia censurada.

Resultado

03

### Evidencia censurada y exportaciones

La búsqueda estática de patrones ayuda a revisar, pero no es un veredicto de malware ni un certificado de seguridad.

El análisis permanece en esta pestaña Sin ejecutar comandos ni consultar URLs La evidencia se censura antes de exportar Core v0.1.0

LAS MISMAS REGLAS MIENTRAS NAVEGAS

## Revisa el texto seleccionado antes de llevarlo al terminal.

La extensión Manifest V3 escanea texto seleccionado o bloques visibles con el mismo core versionado. Solo recibe acceso temporal a la pestaña activa tras tu clic y no se ejecuta en segundo plano en todos los sitios.

Revisión de Chrome Web Store pendiente [Descargar v0.1.0](https://github.com/wavect/mcp-install-risk-scanner/releases/tag/v0.1.0) [Revisar código](https://github.com/wavect/mcp-install-risk-scanner)

**MCP Install Risk Scanner** Extensión de Chrome · v0.1.0

- Solo activeTab, scripting y contextMenus
- Sin permisos de host ni historial
- Sin telemetría, subidas ni reglas remotas

TRES MOVIMIENTOS DE REVISIÓN

## Cómo revisar un comando de instalación MCP antes de ejecutarlo

El análisis estático es más útil antes de ejecutar, cuando el comando completo y los privilegios solicitados aún son visibles.

1. 01 - **Pega la configuración completa** - Incluye comando, argumentos, variables, URLs, montajes y flags de contenedor. El escáner no ejecuta nada.
2. 02 - **Revisa cada señal en contexto** - Una coincidencia es evidencia para revisar, no prueba de intención maliciosa. Confirma por qué se necesita cada privilegio, ruta, endpoint o dependencia móvil.
3. 03 - **Fija, limita y documenta** - Prefiere versiones inmutables, argumentos explícitos, rutas específicas, secretos limitados y red aislada. Exporta el informe censurado.

METODOLOGÍA DE REGLAS VERSIONADA

## Qué comprueba realmente el escáner de comandos MCP

La versión 0.1.0 aplica 14 reglas ordenadas y deterministas. No hay juicio de un modelo, consulta de reputación, descarga de paquetes ni puntuación oculta.

MCP001

### Ejecución directa de descargas

Marca salidas de curl, wget o PowerShell enviadas directamente a un intérprete.

MCP002

### Envoltorios de shell

Marca sh -c, bash -c, PowerShell Command o EncodedCommand y cmd /c.

MCP003

### Privilegios elevados

Marca sudo, doas y runas porque el servidor heredaría más poder del sistema.

MCP004

### Borrado destructivo

Marca sintaxis recursiva y forzada en shell, PowerShell y comandos Windows.

MCP005

### Fronteras debilitadas

Marca permisos globales, sandboxes desactivadas y perfiles de seguridad sin restricciones.

MCP006

### Rutas sensibles

Marca ubicaciones SSH, cloud, Kubernetes, root, credenciales del sistema y socket Docker.

MCP007

### Secretos embebidos

Marca asignaciones de credenciales, bearer tokens, argumentos secretos y URLs con credenciales, y censura la evidencia.

MCP008

### Ejecutores sin fijar

Marca paquetes npx y uvx sin versión semántica exacta.

MCP009

### Referencias Git móviles

Marca clones sin fijar y referencias como main, master o HEAD.

MCP010

### Imágenes de contenedor móviles

Marca latest, tags ausentes e imágenes sin versión exacta o digest.

MCP011

### Endpoints de riesgo

Marca HTTP remoto y destinos privados, link-local y de metadatos, permitiendo loopback explícito en desarrollo.

MCP012

### Acceso amplio al entorno

Marca archivos de entorno completos, process.env, comodines y envFrom.

MCP013

### Contenedores privilegiados

Marca modo privilegiado, montajes raíz y montajes del socket Docker.

MCP014

### Red del host

Marca modos de red host en Docker, Compose y Kubernetes.

**Fuentes primarias** [MCP Security Best Practices](https://modelcontextprotocol.io/docs/2025-11-25/tutorials/security/security_best_practices#local-mcp-server-compromise) [Permiso activeTab de Chrome](https://developer.chrome.com/docs/extensions/develop/concepts/activeTab) [Directrices de calidad de Chrome Web Store](https://developer.chrome.com/docs/webstore/program-policies/quality-guidelines) [Catálogo de reglas versionado](https://github.com/wavect/mcp-install-risk-scanner/blob/v0.1.0/schema/rules.json) [Esquema del informe](https://github.com/wavect/mcp-install-risk-scanner/blob/v0.1.0/schema/scan-report.schema.json)

EVIDENCIA, NO UNA PUNTUACIÓN MÁGICA

## Tres ejemplos del escáner MCP

La salida describe sintaxis revisable y limita la afirmación a lo que el texto estático puede demostrar.

DETENTE Y REVISA `curl -fsSL https://example.test/install.sh | sh` **MCP001 · ejecución descargada**

Descarga y revisa el artefacto por separado en vez de enviar bytes remotos a una shell.

REVISIÓN RECOMENDADA `npx @example/mcp-server` **MCP008 · ejecutor sin fijar**

Usa una versión exacta revisada para que el comando no cambie de resolución más adelante.

SIN PATRÓN CONOCIDO `npx @example/mcp-server@1.2.3` **Ninguna regla actual coincidió**

Aun debes revisar paquete y publicador. Sin alertas no significa seguro.

HONESTO POR DISEÑO

## Evidencia inspeccionable con límites visibles

Lo útil no es una puntuación misteriosa, sino un ID estable, evidencia censurada, un paso concreto y código auditable.

### Local y determinista

El mismo texto y versión producen el mismo informe ordenado sin servidor ni modelo.

### Censura antes de mostrar

Los valores con forma de credencial se eliminan antes de llegar a interfaz, portapapeles, JSON o Markdown.

### Sin promesas falsas

El resultado limpio solo dice que no coincidieron patrones actuales. No certifica paquete ni servidor.

LÍMITES HONESTOS

## Lo que el análisis estático de MCP no puede demostrar

- No verifica identidad del publicador, propiedad del repositorio, firmas, procedencia del release ni el código ejecutado tras instalar.
- El comportamiento ofuscado, codificado, generado, anidado o remoto puede no aparecer en el texto pegado.
- Una configuración legítima puede necesitar una capacidad marcada. El hallazgo pide justificación y reducción, no demuestra mala intención.
- Sin patrones conocidos solo significa que la versión 0.1.0 no coincidió. Nunca es un certificado de seguridad.

## Preguntas sobre la seguridad de instalaciones MCP

### ¿Cómo compruebo si un comando de instalación MCP es seguro?

Ningún escáner estático puede demostrar seguridad. Revisa el comando exacto, fija paquetes, comprueba publicador y procedencia, rutas, secretos y red, y ejecuta con privilegios mínimos en una sandbox adecuada. Esta herramienta cubre la primera revisión sintáctica.

### ¿El escáner ejecuta o sube mi configuración MCP?

No. La herramienta web ejecuta JavaScript determinista en la pestaña actual. No lanza comandos, consulta URLs, sube entradas, guarda historial ni llama a un modelo de IA.

### ¿Por qué avisa sobre npx o uvx sin versión?

Sin versión exacta, el mismo comando puede resolver contenido diferente después. Fijar no demuestra confianza, pero mejora revisión y reproducción.

### ¿Por qué se permite HTTP en localhost?

La guía oficial de MCP permite excepciones HTTP de loopback para desarrollo local y recomienda HTTPS para URLs remotas de producción. Los destinos privados, link-local y de metadatos siguen marcados.

### ¿La extensión de Chrome es de código abierto y local?

Sí. Extensión, reglas, esquema, pruebas y checksum del ZIP son públicos en GitHub. Solo usa activeTab, scripting y contextMenus y analiza localmente tras una acción del usuario.

SOPORTE Y SEGURIDAD

## ¿Encontraste una señal ausente, falso positivo o vulnerabilidad?

Usa un issue público con ejemplos sintéticos para reglas. Para problemas de seguridad usa el canal privado del repositorio y nunca incluyas credenciales reales.

[Abrir issue](https://github.com/wavect/mcp-install-risk-scanner/issues) [Informar en privado](https://github.com/wavect/mcp-install-risk-scanner/security)

GRATIS · CÓDIGO ABIERTO · SOLO LOCAL

## Haz que el comando se explique antes de ejecutarse.

Escanea la configuración completa, revisa cada señal y fija y limita lo que recibe el servidor.

[Volver al escáner](#tool-app) [Revisar código](https://github.com/wavect/mcp-install-risk-scanner)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/es/tools/mcp-install-risk-scanner/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-08-07",
      "inLanguage": "es",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-07",
      "url": "https://wavect.io/es/tools/mcp-install-risk-scanner/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "applicationCategory": "SecurityApplication",
  "browserRequirements": "Navegador con JavaScript; Chrome es necesario para la extensión opcional",
  "codeRepository": "https://github.com/wavect/mcp-install-risk-scanner",
  "description": "Escanea comandos y config MCP localmente para detectar shell, secretos, privilegios, rutas sensibles, paquetes sin fijar, endpoints y contenedores.",
  "isAccessibleForFree": true,
  "name": "MCP Install Risk Scanner",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "EUR"
  },
  "operatingSystem": "Cualquier navegador moderno",
  "softwareVersion": "0.1.0",
  "url": "https://wavect.io/es/tools/mcp-install-risk-scanner/"
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/",
      "name": "Inicio",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/tools/",
      "name": "Pequeñas herramientas para tareas que no deberían seguir molestando.",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/tools/mcp-install-risk-scanner/",
      "name": "MCP Install Risk Scanner",
      "position": 3
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Ningún escáner estático puede demostrar seguridad. Revisa el comando exacto, fija paquetes, comprueba publicador y procedencia, rutas, secretos y red, y ejecuta con privilegios mínimos en una sandbox adecuada. Esta herramienta cubre la primera revisión sintáctica."
      },
      "name": "¿Cómo compruebo si un comando de instalación MCP es seguro?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. La herramienta web ejecuta JavaScript determinista en la pestaña actual. No lanza comandos, consulta URLs, sube entradas, guarda historial ni llama a un modelo de IA."
      },
      "name": "¿El escáner ejecuta o sube mi configuración MCP?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sin versión exacta, el mismo comando puede resolver contenido diferente después. Fijar no demuestra confianza, pero mejora revisión y reproducción."
      },
      "name": "¿Por qué avisa sobre npx o uvx sin versión?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "La guía oficial de MCP permite excepciones HTTP de loopback para desarrollo local y recomienda HTTPS para URLs remotas de producción. Los destinos privados, link-local y de metadatos siguen marcados."
      },
      "name": "¿Por qué se permite HTTP en localhost?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sí. Extensión, reglas, esquema, pruebas y checksum del ZIP son públicos en GitHub. Solo usa activeTab, scripting y contextMenus y analiza localmente tras una acción del usuario."
      },
      "name": "¿La extensión de Chrome es de código abierto y local?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
