Edison Watch

MCP Dependency Pinning

Proteção da cadeia de suprimentos para servidores MCP instalados via package runners como npx e uvx.

O Edison Watch previne ataques à cadeia de suprimentos fixando automaticamente as dependências dos servidores MCP na primeira execução.

Finalidade

Servidores MCP instalados via package runners (npx, uvx) podem ser vulneráveis a ataques à cadeia de suprimentos se as dependências forem atualizadas maliciosamente. O pinning garante:

  • Execução reproduzível: O mesmo código exato é executado toda vez
  • Resistência a adulteração: Lockfiles são armazenados com segurança e não podem ser modificados sem ação do admin
  • Controle de versão: Versões exatas dos pacotes são travadas, evitando atualizações inesperadas

Como Funciona

  1. Resolução na Primeira Execução: Quando um servidor que usa npx ou uvx é montado pela primeira vez, o Edison Watch:

    • Resolve o grafo completo de dependências transitivas
    • Gera um lockfile (npm: package-lock.json, Python: uv.lock)
    • Armazena o lockfile com segurança no banco de dados local
  2. Runtime Efêmero: A cada montagem:

    • Cria um diretório de runtime temporário
    • Instala dependências a partir do lockfile armazenado (não dos registries de pacotes)
    • Executa o servidor a partir do ambiente de runtime isolado
  3. Fail-Closed: Se o pinning falhar (problemas de rede, lockfile corrompido), o servidor não inicia. Isso garante que nenhum código sem pin seja executado.

Controles do Admin

Todo o gerenciamento de pinning é feito pelo dashboard do admin:

  • View Status: Veja as versões dos pacotes fixados e as datas na visão geral do servidor
  • Clear Pin: Remove o lockfile em cache para forçar o re-pinning (útil após atualizações de pacote)
  • Clear All Pins: Operação em massa para limpar todos os pins dos servidores

Não é necessária configuração via linha de comando ou variável de ambiente - todos os controles são feitos pela UI para fins de segurança e auditabilidade.

On this page