// 01 > CONTEXT
mcp-sentry es un linter de seguridad de análisis estático para servidores de Model Context Protocol en TypeScript. Se integra con CI mediante SARIF, comentarios en PR y una insignia pública de Shields.io.
// 02 > THE_PROBLEM
Los servidores MCP exponen herramientas a los agentes, y una herramienta mal etiquetada o inyectable puede dar a un atacante ejecución de comandos, sin que nada lo señale en la revisión.
No había un linter consciente de MCP. Los escáneres genéricos pasan por alto riesgos específicos de MCP como una herramienta con nombre de solo lectura que muta estado, o entrada no confiable que fluye hacia una llamada de Shell a través de los límites de las funciones.
Antes
Sin escaneo consciente de MCP · riesgos de inyección sin señalar · etiquetado erróneo de intención invisible
// 03 > APPROACH
Mapeé el OWASP MCP Top 10 a comprobaciones concretas, añadí seguimiento de contaminación interprocedural para inyección de comandos, e hice todo nativo de CI con un umbral calificable.
Seguimiento de contaminación interprocedural
Sigue la entrada no confiable a través de funciones para detectar inyección de comandos que los escáneres de una sola función pasan por alto.
Detección de subversión de intención
Señala herramientas con nombre de solo lectura que en realidad mutan estado, una violación de confianza de MCP clásica.
// 04 > THE_RESULT
Un solo escaneo califica un servidor MCP de la A a la F en las ocho categorías del OWASP MCP, falla el CI según un umbral y publica una insignia pública.
Antes
- Riesgos de MCP sin escanear
- Rutas de inyección invisibles
- Sin señal de seguridad en CI
Después
- MCP01–MCP08 cubiertas
- Hallazgos de inyección rastreados por contaminación
- Calificación A–F + SARIF + insignia
“Las herramientas de seguridad tienen que vivir donde ocurre el trabajo. mcp-sentry falla el build y publica la calificación, así nadie tiene que acordarse de ejecutarlo.”