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 conhecidas
  • is_vulnerable: verifique se uma versão fixada específica possui CVEs conhecidas
  • lookup: 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_vulnerable para encontrar uma versão segura
  • Validar uma versão fixada específica: is_vulnerable para uma resposta definitiva
  • Auditar um especificador existente: lookup para 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ão
  • cvss_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 individuais
  • count — limitar o número de versões recentes verificadas
  • retain_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
  }
}