Fetter MCP
Obtén el paquete de Python más reciente sin vulnerabilidades, y más.
Documentación
Fetter MCP
Fetter proporciona un servidor remoto de Model Context Protocol (MCP) en https://mcp.fetter.io/mcp que brinda a los agentes de codificación de IA acceso en tiempo real a datos de vulnerabilidades de paquetes de Python. Construido sobre fetter, consulta PyPI y OSV para revelar CVEs conocidos, puntuaciones CVSS y versiones seguras, de modo que tu agente pueda tomar decisiones informadas sobre dependencias mientras escribe código.
Herramientas:
most_recent_not_vulnerable: encuentra la versión más reciente de un paquete que esté libre de vulnerabilidades conocidasis_vulnerable: verifica si una versión fijada específica tiene CVEs conocidoslookup: encuentra versiones disponibles y sus vulnerabilidades para cualquier paquete o especificador
Instalación
El servidor Fetter MCP utiliza el transporte HTTP y no requiere instalación local. Solo registra la URL remota con tu cliente MCP.
Claude Code
claude mcp add --transport http fetter https://mcp.fetter.io/mcp
Codex
codex mcp add fetter --url https://mcp.fetter.io/mcp
Otros Clientes MCP
Para cualquier otro cliente compatible con MCP, proporciona la siguiente URL de servidor remoto usando el transporte HTTP:
https://mcp.fetter.io/mcp
Uso del Agente
Una vez instalado, las herramientas de Fetter MCP están disponibles para tu agente de IA durante las sesiones de codificación. El agente puede llamarlas automáticamente al agregar o auditar dependencias; no se requiere invocación explícita de herramientas en tus indicaciones.
Ejemplos de indicaciones
- "Agrega la última versión segura de requests a requirements.txt"
- "¿Hay vulnerabilidades conocidas en mis dependencias actuales?"
- "¿Cuál es la versión más reciente de pillow sin CVEs?"
- "Antes de fijar cryptography, verifica si 42.0.5 es vulnerable"
El agente selecciona la herramienta adecuada según el contexto:
- Agregar un nuevo paquete:
most_recent_not_vulnerablepara encontrar una versión segura - Validar una versión fijada específica:
is_vulnerablepara una respuesta definitiva - Auditar un especificador existente:
lookuppara ver versiones afectadas
most_recent_not_vulnerable
Encuentra la versión más reciente de un paquete que no tenga vulnerabilidades conocidas. Proporciona solo un nombre de paquete y el servidor buscará en versiones recientes una versión segura. Útil al fijar una dependencia a la versión limpia más reciente.
Parámetros
package_name— solo nombre del paquete (sin especificador de versión), p. ej."requests"
Solicitud de Ejemplo
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "most_recent_not_vulnerable",
"arguments": {
"name": "cryptography"
}
}
}
Respuesta de Ejemplo:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [],
"structuredContent": {
"package": "cryptography",
"version": "46.0.5",
"vulnerabilities": [],
"vulnerable": false
},
"isError": false
}
}
is_vulnerable
Verifica si una versión específica de un paquete tiene vulnerabilidades conocidas. Requiere un especificador de versión exacto. Devuelve IDs de vulnerabilidad, resúmenes, puntuaciones CVSS, clasificaciones de severidad y URLs de referencia.
Parámetros
dep_spec— especificador de versión exacto, p. ej."requests==2.31.0"
Solicitud de Ejemplo
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "is_vulnerable",
"arguments": {
"name": "requests==2.19.1"
}
}
}
Respuesta de Ejemplo:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [],
"structuredContent": {
"package": "requests",
"version": "2.19.1",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
},
{
"cvss_score": 5.6,
"id": "GHSA-9wx4-h78v-vm56",
"severity": "(Medium):",
"summary": "Requests Session object does not verify requests after making first request with verify=False",
"url": "https://osv.dev/vulnerability/GHSA-9wx4-h78v-vm56"
},
{
"cvss_score": 6.1,
"id": "GHSA-j8r2-6x86-q33q",
"severity": "(Medium):",
"summary": "Unintended leak of Proxy-Authorization header in requests",
"url": "https://osv.dev/vulnerability/GHSA-j8r2-6x86-q33q"
},
{
"cvss_score": 7.5,
"id": "GHSA-x84v-xcm2-53pg",
"severity": "(High):",
"summary": "Insufficiently Protected Credentials in Requests",
"url": "https://osv.dev/vulnerability/GHSA-x84v-xcm2-53pg"
},
{
"cvss_score": null,
"id": "PYSEC-2018-28",
"severity": null,
"summary": "",
"url": "https://osv.dev/vulnerability/PYSEC-2018-28"
},
{
"cvss_score": null,
"id": "PYSEC-2023-74",
"severity": null,
"summary": "",
"url": "https://osv.dev/vulnerability/PYSEC-2023-74"
}
],
"vulnerable": true
},
"isError": false
}
}
lookup
Busca un paquete por nombre y especificador de versión opcional para encontrar qué versiones están disponibles y si tienen vulnerabilidades conocidas. Admite especificadores como "requests", "numpy>=2.0" o "flask==3.0.0".
Parámetros
dep_specs— nombre del paquete o especificador de versióncvss_threshold— filtra a vulnerabilidades con puntuación CVSS igual o superior a este valor (0–10)max_observed_score— devuelve solo la puntuación CVSS más alta por versión en lugar de todas las vulnerabilidades individualescount— limita el número de versiones recientes verificadasretain_passing— incluye versiones sin vulnerabilidades conocidas en los resultados
Solicitud de Ejemplo
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "lookup",
"arguments": {
"name": "requests>=2.32.0",
"retain_passing": true
}
}
}
Respuesta de Ejemplo:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [],
"structuredContent": {
"package": "requests",
"versions": [
{
"version": "2.32.0",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
}
],
"vulnerable": true
},
{
"version": "2.32.1",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
}
],
"vulnerable": true
},
{
"version": "2.32.2",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
}
],
"vulnerable": true
},
{
"version": "2.32.3",
"vulnerabilities": [
{
"cvss_score": 5.3,
"id": "GHSA-9hjg-9r4m-mvj7",
"severity": "(Medium):",
"summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
"url": "https://osv.dev/vulnerability/GHSA-9hjg-9r4m-mvj7"
}
],
"vulnerable": true
},
{
"version": "2.32.4",
"vulnerabilities": [],
"vulnerable": false
},
{
"version": "2.32.5",
"vulnerabilities": [],
"vulnerable": false
}
]
},
"isError": false
}
}