@4da/mcp-server
Inteligência de dependências para agentes de IA. Varredura de CVE, verificações de integridade, planejamento de atualizações.
Documentação
@4da/mcp-server
Inteligência de dependências para agentes de codificação com IA. Varredura de CVEs em tempo real, verificações de saúde de dependências, planejamento de upgrades, notícias do ecossistema e memória persistente de decisões. Zero configuração, prioridade à privacidade.
You: "Check my dependency health"
Claude: Health: 72/100. 47 dependencies scanned, 3 vulnerable, 1 deprecated, 8 outdated.
CRITICAL openssl-sys 0.9.93 CVE-2025-4231 -> 0.9.96
HIGH serde 1.0.197 RUSTSEC-2026-12 -> 1.0.210
MEDIUM cookie 0.17.0 deprecated -> 0.18.1
Quick wins: 6 patch upgrades, 2 minor. Run upgrade_planner for full plan.
Um único comando para instalar. Sem chaves de API. Sem contas. Nenhum código sai da sua máquina.
Instalação
claude mcp add 4da -- npx @4da/mcp-server
Cursor / Windsurf
Adicione ao ~/.cursor/mcp.json ou ~/.windsurf/mcp.json:
{
"mcpServers": {
"4da": {
"command": "npx",
"args": ["@4da/mcp-server"]
}
}
}
VS Code (Copilot)
Adicione ao ~/.vscode/mcp.json:
{
"servers": {
"4da": {
"type": "stdio",
"command": "npx",
"args": ["@4da/mcp-server"]
}
}
}
Claude Desktop
Adicione ao ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"4da": {
"command": "npx",
"args": ["@4da/mcp-server"]
}
}
}
Configuração automática (detecta todos os editores instalados)
npx @4da/mcp-server --setup
Depois pergunte à sua IA: "Verifique a saúde das minhas dependências" ou "Procure por vulnerabilidades"
Como Funciona
Na inicialização, o servidor lê seus arquivos de manifesto e de lock (package.json, Cargo.toml, go.mod, pyproject.toml), resolve as versões exatas das dependências e consulta APIs ao vivo. Ele os relê sempre que um arquivo de lock muda, para que um servidor de longa duração nunca responda com base no conjunto de dependências de ontem. Para npm, ele também verifica o que o node_modules realmente contém: uma cópia instalada que difere do arquivo de lock é reportada com seu comando de reinstalação, em vez de se esconder atrás de um arquivo de lock corrigido.
- OSV.dev para CVEs conhecidos em todos os ecossistemas
- Registro npm para atualização de versões, status de depreciação e downloads semanais
- Índice esparso do crates.io para versões de pacotes Rust (evita o limite de 1 req/s da API)
- API JSON do PyPI para metadados de pacotes Python com normalização de licenças
- Proxy de módulos Go para versões de módulos Go
- API Algolia do Hacker News para notícias do ecossistema filtradas pela sua stack de tecnologia
Os resultados são armazenados em cache (24h para dados de registro, 1h para vulnerabilidades, 30min para notícias) e limitados por taxa por fonte.
O que é enviado pela rede: nomes e versões de pacotes, palavras-chave técnicas genéricas. Os mesmos dados visíveis no seu package.json. Sem código-fonte, sem caminhos de arquivos, sem dados pessoais. Defina FOURDA_OFFLINE=true para desativar todas as chamadas de rede.
A única exceção: se você explicitamente configurar um provedor de embeddings OpenAI (
FOURDA_EMBED_PROVIDER=openai) para recall semântico, o texto de decisão/memória que você armazena é enviado à OpenAI para ser incorporado. O padrão — sem provedor de embeddings, ou um Ollama local — mantém tudo na sua máquina, eFOURDA_OFFLINE=trueo substitui independentemente.
Ecossistemas suportados: npm, crates.io (Rust), PyPI (Python), Go.
O Que Você Pode Perguntar
"Check my dependency health" -> dependency_health
"Scan for vulnerabilities" -> vulnerability_scan
"Which deps should I upgrade first?" -> upgrade_planner
"What should I know before I start coding?" -> what_should_i_know
"What's happening in the ecosystem?" -> ecosystem_pulse
"What's my tech stack?" -> get_context
"Record a decision: we chose Postgres" -> decision_memory
"Does switching to MySQL align?" -> check_decision_alignment
"Remember: never use ORM for batch inserts" -> agent_memory
Todas as 14 Ferramentas
Segurança de Dependências
| Ferramenta | O que faz |
|---|---|
vulnerability_scan | Varredura de CVEs ao vivo via OSV.dev. Severidade, versões corrigidas, pontuações CVSS. |
dependency_health | Pontuação de saúde (0-100) + atualização de versões, depreciação, contagem de CVEs por dependência. |
upgrade_planner | Recomendações de upgrade classificadas. Vitórias rápidas vs. mudanças que quebram. Ordenadas por risco. |
Inteligência
| Ferramenta | O que faz |
|---|---|
what_should_i_know | Briefing de inteligência pré-tarefa: vulnerabilidades, decisões, sinais, atualizações do ecossistema. |
ecosystem_pulse | Notícias ao vivo do ecossistema do Hacker News, filtradas pela sua stack de tecnologia detectada. |
get_context | Sua stack de tecnologia, versões resolvidas de dependências, interesses, tópicos detectados. |
get_relevant_content* | Feed de conteúdo pontuado — artigos, avisos, lançamentos classificados por relevância. |
get_actionable_signals* | Alertas classificados: avisos de segurança, mudanças que quebram, repositórios em alta. |
knowledge_gaps* | Dependências que você usa diariamente mas nunca lê sobre. Revela CVEs e atualizações perdidas. |
record_feedback* | Salvar ou dispensar itens para que o 4DA registre histórico explícito de interações. |
Decisões e Memória
| Ferramenta | O que faz |
|---|---|
decision_memory | Registre, consulte e gerencie decisões arquiteturais entre sessões. |
check_decision_alignment | Verifique se uma mudança de tecnologia proposta está alinhada com decisões registradas. |
agent_memory | Memória persistente que sobrevive entre sessões, agentes e editores. |
Identidade
| Ferramenta | O que faz |
|---|---|
developer_dna* | Sua identidade tecnológica: stack principal, principais dependências, pontos cegos. |
* Requer o aplicativo desktop 4DA para dados completos.
Modo Autônomo vs. Modo Completo
O servidor MCP funciona sem o aplicativo desktop. Na primeira execução, ele cria um banco de dados local e varre seu projeto:
| Capacidade | Autônomo | Com 4DA Desktop |
|---|---|---|
| Varredura de vulnerabilidades (OSV.dev) | Sim | Sim |
| Saúde de dependências (4 registros) | Sim | Sim |
| Planejador de upgrades | Sim | Sim |
| Notícias do ecossistema (Hacker News) | Sim | Sim |
| Briefing de inteligência pré-tarefa | Sim | Sim |
| Detecção de stack de tecnologia + versões resolvidas | Sim | Sim |
| Memória de decisões + verificação de alinhamento | Sim | Sim |
| Memória do agente (entre sessões) | Sim | Sim |
| Feed de conteúdo pontuado (20+ fontes) | -- | Sim |
| Sinais acionáveis + lacunas de conhecimento | -- | Sim |
| A camada de análise (Cadeias de Sinais, Lacunas de Conhecimento, análise temporal) | -- | Sim |
Baixe o 4DA para a experiência completa.
Transportes
stdio (padrão) -- funciona com todos os hosts MCP:
npx @4da/mcp-server
HTTP Streamable -- para configurações remotas ou multi-cliente:
npx @4da/mcp-server --http --port 4840
O transporte HTTP vincula-se a 127.0.0.1 por padrão e aplica uma proteção contra rebinding de DNS de cabeçalho Host a cada requisição. Expor além desta máquina requer um segredo compartilhado:
MCP_AUTH_SECRET=<same value as the relay's JWT_SECRET> \
MCP_ALLOWED_HOSTS=mcp.internal \
npx @4da/mcp-server --http --host 0.0.0.0
Sem MCP_AUTH_SECRET, uma vinculação não-loopback é recusada na inicialização. Com ele, cada requisição deve carregar um token Bearer cuja assinatura HMAC-SHA256 verifica contra esse segredo, e o papel do token é aplicado por ferramenta (viewer é somente leitura; member e admin podem gravar). Coloque TLS na frente dele.
Referência da CLI
npx @4da/mcp-server # Start server (stdio)
npx @4da/mcp-server --http # Start server (Streamable HTTP)
npx @4da/mcp-server --setup # Auto-configure your editors
npx @4da/mcp-server --doctor # Verify installation health
npx @4da/mcp-server --version # Print version
Variáveis de Ambiente
| Variável | Descrição | Padrão |
|---|---|---|
FOURDA_DB_PATH | Caminho para o banco de dados SQLite do 4DA | Detectado automaticamente |
FOURDA_OFFLINE | Desativa todas as chamadas de rede | false |
MCP_AUTH_SECRET | Segredo compartilhado para verificar tokens Bearer em --http (HMAC-SHA256). Recorre a JWT_SECRET. Não definido significa que nenhum token é aceito. | Não definido |
MCP_AUTH_REQUIRED | Exige autenticação em uma vinculação loopback --http. Sempre exigido em uma vinculação não-loopback. | false |
MCP_ALLOWED_HOSTS | Nomes de host adicionais separados por vírgula aceitos em Host/Origin (necessário ao vincular a 0.0.0.0). | Somente localhost |
FAQ
Isso envia meu código para algum lugar?
Não. O servidor envia nomes e versões de pacotes para APIs públicas (OSV.dev, registro npm, crates.io, PyPI, proxy Go) e palavras-chave técnicas genéricas para HN Algolia. Os mesmos dados públicos visíveis no seu package.json. Sem código-fonte, sem caminhos de arquivos, sem dados pessoais. Defina FOURDA_OFFLINE=true para desativar todas as chamadas de rede. (A única exceção são embeddings OpenAI opcionais — veja a nota de rede acima.)
Preciso do aplicativo desktop 4DA? Não. 9 ferramentas funcionam de forma autônoma: varredura de vulnerabilidades, saúde de dependências, planejamento de upgrades, notícias do ecossistema, briefings pré-tarefa, contexto do projeto, memória de decisões, verificação de alinhamento e memória do agente. O aplicativo desktop adiciona um feed de conteúdo pontuado de 20+ fontes, avaliado contra sua stack real.
Com quais ferramentas de IA isso funciona? Qualquer ferramenta que suporte MCP: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code (Copilot) e qualquer cliente MCP personalizado.
Compilar a partir do Código-Fonte
git clone https://github.com/4DA-Systems/4DA.git
cd 4DA/mcp-4da-server
pnpm install
pnpm build
pnpm test # 71 contract tests
Licença
Apache License 2.0 (Apache-2.0). Veja LICENSE.
Construído por 4DA