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
-
Resolução na Primeira Execução: Quando um servidor que usa
npxouuvxé 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
-
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
-
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.

