Fetter MCP
Obtenha o pacote Python mais recente sem vulnerabilidades e muito mais.
Documentação
Fetter MCP
O Fetter fornece um servidor remoto Model Context Protocol (MCP) em https://mcp.fetter.io/mcp que dá aos agentes de codificação de IA acesso em tempo real a dados de vulnerabilidades de pacotes Python. Construído sobre o fetter, ele consulta PyPI e OSV para revelar CVEs conhecidas, pontuações CVSS e versões seguras, para que seu agente possa tomar decisões informadas sobre dependências enquanto escreve código.
Ferramentas:
most_recent_not_vulnerable: encontre a versão mais recente de um pacote livre de vulnerabilidades conhecidasis_vulnerable: verifique se uma versão fixada específica possui CVEs conhecidaslookup: encontre versões disponíveis e suas vulnerabilidades para qualquer pacote ou especificador
Instalação
O servidor Fetter MCP usa o transporte HTTP e não requer instalação local. Basta registrar a URL remota no seu 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
Outros Clientes MCP
Para qualquer outro cliente compatível com MCP, forneça a seguinte URL de servidor remoto usando o transporte HTTP:
https://mcp.fetter.io/mcp
Uso pelo Agente
Uma vez instalado, as ferramentas do Fetter MCP ficam disponíveis para seu agente de IA durante as sessões de codificação. O agente pode chamá-las automaticamente ao adicionar ou auditar dependências; nenhuma invocação explícita de ferramenta é necessária em seus prompts.
Exemplos de prompts
- "Adicione a versão segura mais recente de requests ao requirements.txt"
- "Existem vulnerabilidades conhecidas nas minhas dependências atuais?"
- "Qual é a versão mais recente de pillow sem CVEs?"
- "Antes de fixar cryptography, verifique se 42.0.5 é vulnerável"
O agente seleciona a ferramenta apropriada com base no contexto:
- Adicionar um novo pacote:
most_recent_not_vulnerablepara encontrar uma versão segura - Validar uma versão fixada específica:
is_vulnerablepara uma resposta definitiva - Auditar um especificador existente:
lookuppara ver versões afetadas
most_recent_not_vulnerable
Encontre a versão mais recente de um pacote que não possui vulnerabilidades conhecidas. Forneça apenas o nome do pacote e o servidor buscará nas versões recentes uma versão segura. Útil ao fixar uma dependência na versão limpa mais recente.
Parâmetros
package_name— apenas o nome do pacote (sem especificador de versão), ex.:"requests"
Exemplo de Requisição
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "most_recent_not_vulnerable",
"arguments": {
"name": "cryptography"
}
}
}
Exemplo de Resposta:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [],
"structuredContent": {
"package": "cryptography",
"version": "46.0.5",
"vulnerabilities": [],
"vulnerable": false
},
"isError": false
}
}
is_vulnerable
Verifique se uma versão específica de um pacote possui vulnerabilidades conhecidas. Requer um especificador de versão exato. Retorna IDs de vulnerabilidades, resumos, pontuações CVSS, classificações de gravidade e URLs de referência.
Parâmetros
dep_spec— especificador de versão exato, ex.:"requests==2.31.0"
Exemplo de Requisição
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "is_vulnerable",
"arguments": {
"name": "requests==2.19.1"
}
}
}
Exemplo de Resposta:
{
"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
Consulte um pacote pelo nome e especificador de versão opcional para descobrir quais versões estão disponíveis e se possuem vulnerabilidades conhecidas. Suporta especificadores como "requests", "numpy>=2.0" ou "flask==3.0.0".
Parâmetros
dep_specs— nome do pacote ou especificador de versãocvss_threshold— filtrar para vulnerabilidades com pontuação CVSS igual ou superior a este valor (0–10)max_observed_score— retornar apenas a maior pontuação CVSS por versão em vez de todas as vulnerabilidades individuaiscount— limitar o número de versões recentes verificadasretain_passing— incluir versões sem vulnerabilidades conhecidas nos resultados
Exemplo de Requisição
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 2,
"params": {
"name": "lookup",
"arguments": {
"name": "requests>=2.32.0",
"retain_passing": true
}
}
}
Exemplo de Resposta:
{
"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
}
}