CommunityProgramación y desarrollogithub.com

sushant-me/mcpaudit-mcp-security

Comprueba lo que declara un servidor MCP antes de que un agente se conecte a él: texto de inyección de instrucciones en descripciones de herramientas, Unicode invisible (incluido el bloque de etiquetas que codifica ASCII imprimible con ancho cero), nombres de herramientas similares o duplicados, colisiones con nombres del framework y sumideros de shell sin restricciones. Útil al revisar un servidor MCP, instalar una integración MCP, evaluar un proveedor de herramientas de terceros, o cuando alguien pregunta "¿es seguro este servidor MCP?" o "audita estas definiciones de herramientas".

¿Qué es mcpaudit-mcp-security?

Esta habilidad permite auditar la capa de declaración de un servidor MCP antes de que un agente se conecte a él, analizando los nombres y descripciones de herramientas que el servidor expone a través de `tools/list`. El objetivo es detectar riesgos de seguridad como inyección de instrucciones en descripciones de herramientas, caracteres Unicode invisibles (incluyendo el bloque de etiquetas que codifica ASCII imprimible en texto de ancho cero), nombres de herramientas que parecen idénticos a otros, nombres duplicados, colisiones con nombres reservados del framework y parámetros sin restricciones que permiten ejecución de comandos en shell. Es compatible con cualquier cliente MCP, como Claude Code, Cursor o Codex, y se ejecuta mediante la herramienta CLI `mcpaudit` instalada desde el repositorio de GitHub (no desde PyPI, donde existe un proyecto diferente con el mismo nombre). Lee archivos `tools.json` obtenidos del cliente o directamente del proveedor, y aplica once comprobaciones clasificadas por severidad (crítica, alta, media, baja). Un resultado limpio (sin hallazgos) permite aprobar rápidamente la conexión del agente al servidor. Herramienta 100% offline: no envía datos a terceros. No reemplaza una auditoría de implementación del servidor, pero es un paso de seguridad previo esencial.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sushant-me/mcpaudit-mcp-security/tree/HEAD/plugins/mcp-tool-audit/skills/mcp-tool-audit

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Comprueba lo que declara un servidor MCP

Una descripción de herramienta no es documentación. El cliente recibe los nombres y descripciones de las herramientas en tools/list, antes de que se llame a cualquier herramienta, y pasan al contexto del modelo — por lo tanto, una descripción es ejecutable en el único sentido que importa: puede contener instrucciones.

Cuándo aplica

  • añadir un servidor MCP a un agente y querer saber qué expondrá
  • una revisión de seguridad que pregunta a qué herramientas de terceros puede llamar el agente
  • un agente que se comporta de forma extraña, donde una descripción de herramienta es sospechosa

Ejecútalo

pip install "git+https://github.com/sushant-me/mcpaudit"
mcpaudit audit tools.json        # sale con código 1 si hay hallazgos, 0 si está limpio

Instálalo desde el repositorio, no desde PyPI — el nombre mcpaudit en PyPI es un proyecto diferente y no relacionado cuyo CLI no aceptará un argumento de archivo.

Obtén tools.json de lo que haya recibido el cliente: mcp-client --list > tools.json, o el archivo de declaración publicado por el proveedor (mejor, ya que no se ejecuta nada). También funciona con tuberías: mcp-client --list | mcpaudit audit -

Las once comprobaciones

critical — reserved-name-collision: una herramienta con un nombre que el framework instala fuera de la tabla de herramientas (set_model_response, google_search, finish), por lo que desplaza silenciosamente una primitiva.

high — instruction-in-declaration, invisible-characters, look-alike-tool-names, destructive-declared-read-only, duplicate-tool-name.

medium / low — confusable-tool-name, missing-annotations, unconstrained-sink-parameter, url-in-description, undocumented-tool.

Dos de estas no se pueden ver leyendo la declaración. El bloque de etiquetas Unicode codifica ASCII imprimible en texto de ancho visible cero, y mcpaudit informa a qué se decodifica. Dos nombres que se normalizan al mismo ASCII (search / ѕearch) derrotan una lista blanca escrita de memoria.

Triage

Trabaja de arriba abajo por severidad. Un hallazgo critical es una parada: resuélvelo, o haz que el riesgo sea aceptado por escrito, antes de conectar. Un resultado limpio es un resultado: un servidor bien comportado produce cero hallazgos, lo que permite a un revisor aprobarlo rápidamente.

Límite

Esto lee declaraciones, no comportamiento. No puede decirte si la implementación de un servidor es correcta, solo si lo que anuncia es seguro para ponerlo frente a un modelo.

¿Quieres la parte de aplicación?

Fijar el conjunto de herramientas aprobado como archivo de política, para que un servidor que edite silenciosamente una descripción después de la revisión falle en CI en lugar de cambiar sin aviso, es la versión de pago: MCP Server Security Review, listada en Agensi. Hasta que esa lista esté activa, la referencia de reglas con ejemplos prácticos está en https://github.com/sushant-me/mcpaudit-mcp-security

Límite

Esto lee declaraciones, no comportamiento. No puede decirte si la implementación de un servidor es correcta, solo si lo que anuncia es seguro para ponerlo frente a un modelo.

Skills relacionados