@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

npm version License: Apache-2.0 Node smithery badge

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, e FOURDA_OFFLINE=true o 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

FerramentaO que faz
vulnerability_scanVarredura de CVEs ao vivo via OSV.dev. Severidade, versões corrigidas, pontuações CVSS.
dependency_healthPontuação de saúde (0-100) + atualização de versões, depreciação, contagem de CVEs por dependência.
upgrade_plannerRecomendações de upgrade classificadas. Vitórias rápidas vs. mudanças que quebram. Ordenadas por risco.

Inteligência

FerramentaO que faz
what_should_i_knowBriefing de inteligência pré-tarefa: vulnerabilidades, decisões, sinais, atualizações do ecossistema.
ecosystem_pulseNotícias ao vivo do ecossistema do Hacker News, filtradas pela sua stack de tecnologia detectada.
get_contextSua 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

FerramentaO que faz
decision_memoryRegistre, consulte e gerencie decisões arquiteturais entre sessões.
check_decision_alignmentVerifique se uma mudança de tecnologia proposta está alinhada com decisões registradas.
agent_memoryMemória persistente que sobrevive entre sessões, agentes e editores.

Identidade

FerramentaO 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:

CapacidadeAutônomoCom 4DA Desktop
Varredura de vulnerabilidades (OSV.dev)SimSim
Saúde de dependências (4 registros)SimSim
Planejador de upgradesSimSim
Notícias do ecossistema (Hacker News)SimSim
Briefing de inteligência pré-tarefaSimSim
Detecção de stack de tecnologia + versões resolvidasSimSim
Memória de decisões + verificação de alinhamentoSimSim
Memória do agente (entre sessões)SimSim
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ávelDescriçãoPadrão
FOURDA_DB_PATHCaminho para o banco de dados SQLite do 4DADetectado automaticamente
FOURDA_OFFLINEDesativa todas as chamadas de redefalse
MCP_AUTH_SECRETSegredo 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_REQUIREDExige autenticação em uma vinculação loopback --http. Sempre exigido em uma vinculação não-loopback.false
MCP_ALLOWED_HOSTSNomes 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