@4da/mcp-server

Inteligencia de dependencias para agentes de IA. Escaneo de CVE, comprobaciones de estado, planificación de actualizaciones.

Documentación

@4da/mcp-server

npm version License: Apache-2.0 Node smithery badge

Inteligencia de dependencias para agentes de codificación con IA. Escaneo de CVE en vivo, comprobaciones de salud de dependencias, planificación de actualizaciones, noticias del ecosistema y memoria de decisiones persistente. Cero configuración, privacidad primero.

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.

Un solo comando para instalar. Sin claves API. Sin cuentas. Ningún código sale de tu máquina.

Instalar

claude mcp add 4da -- npx @4da/mcp-server
Cursor / Windsurf

Añade a ~/.cursor/mcp.json o ~/.windsurf/mcp.json:

{
  "mcpServers": {
    "4da": {
      "command": "npx",
      "args": ["@4da/mcp-server"]
    }
  }
}
VS Code (Copilot)

Añade a ~/.vscode/mcp.json:

{
  "servers": {
    "4da": {
      "type": "stdio",
      "command": "npx",
      "args": ["@4da/mcp-server"]
    }
  }
}
Claude Desktop

Añade a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "4da": {
      "command": "npx",
      "args": ["@4da/mcp-server"]
    }
  }
}
Configuración automática (detecta todos los editores instalados)
npx @4da/mcp-server --setup

Luego pregúntale a tu IA: "Comprueba la salud de mis dependencias" o "Escanea vulnerabilidades"

Cómo Funciona

Al iniciar, el servidor lee tus archivos de manifiesto y de bloqueo (package.json, Cargo.toml, go.mod, pyproject.toml), resuelve las versiones exactas de las dependencias y consulta APIs en vivo. Los vuelve a leer cada vez que un archivo de bloqueo cambia, para que un servidor de larga duración nunca responda por el conjunto de dependencias de ayer. Para npm también comprueba lo que node_modules realmente contiene: una copia instalada que difiere del archivo de bloqueo se informa con su comando de reinstalación, en lugar de ocultarse detrás de un archivo de bloqueo parcheado.

  • OSV.dev para CVEs conocidos en todos los ecosistemas
  • Registro npm para frescura de versiones, estado de deprecación y descargas semanales
  • Índice disperso de crates.io para versiones de paquetes Rust (evita el límite de 1 req/s de la API)
  • API JSON de PyPI para metadatos de paquetes Python con normalización de licencias
  • Proxy de módulos Go para versiones de módulos Go
  • API Algolia de Hacker News para noticias del ecosistema filtradas por tu stack tecnológico

Los resultados se almacenan en caché (24h para datos de registro, 1h para vulnerabilidades, 30min para noticias) y se limitan por fuente.

Lo que se envía por la red: nombres de paquetes + versiones, palabras clave técnicas genéricas. Los mismos datos visibles en tu package.json. Sin código fuente, sin rutas de archivos, sin datos personales. Establece FOURDA_OFFLINE=true para desactivar todas las llamadas de red.

La única excepción: si explícitamente configuras un proveedor de embeddings de OpenAI (FOURDA_EMBED_PROVIDER=openai) para recuperación semántica, el texto de decisiones/memoria que almacenas se envía a OpenAI para ser incrustado. El valor predeterminado — sin proveedor de embeddings, o uno local de Ollama — mantiene todo en tu máquina, y FOURDA_OFFLINE=true lo anula independientemente.

Ecosistemas compatibles: npm, crates.io (Rust), PyPI (Python), Go.

Lo Que Puedes Preguntar

"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

Las 14 Herramientas

Seguridad de Dependencias

HerramientaQué hace
vulnerability_scanEscaneo de CVE en vivo vía OSV.dev. Severidad, versiones de corrección, puntuaciones CVSS.
dependency_healthPuntuación de salud (0-100) + frescura de versiones, deprecación, recuentos de CVE por dependencia.
upgrade_plannerRecomendaciones de actualización clasificadas. Victorias rápidas vs. cambios disruptivos. Ordenadas por riesgo.

Inteligencia

HerramientaQué hace
what_should_i_knowInforme de inteligencia previo a la tarea: vulnerabilidades, decisiones, señales, actualizaciones del ecosistema.
ecosystem_pulseNoticias del ecosistema en vivo desde Hacker News, filtradas por tu stack tecnológico detectado.
get_contextTu stack tecnológico, versiones de dependencias resueltas, intereses, temas detectados.
get_relevant_content*Fuente de contenido puntuado — artículos, avisos, lanzamientos clasificados por relevancia.
get_actionable_signals*Alertas clasificadas: avisos de seguridad, cambios disruptivos, repositorios en tendencia.
knowledge_gaps*Dependencias que usas a diario pero de las que nunca lees. Superficies de CVEs y actualizaciones omitidas.
record_feedback*Guarda o descarta elementos para que 4DA registre el historial de interacción explícito.

Decisiones y Memoria

HerramientaQué hace
decision_memoryRegistra, consulta y gestiona decisiones arquitectónicas entre sesiones.
check_decision_alignmentVerifica si un cambio tecnológico propuesto se alinea con las decisiones registradas.
agent_memoryMemoria persistente que sobrevive entre sesiones, agentes y editores.

Identidad

HerramientaQué hace
developer_dna*Tu identidad tecnológica: stack principal, dependencias principales, puntos ciegos.

* Requiere la aplicación de escritorio 4DA para datos completos.

Modo Independiente vs. Completo

El servidor MCP funciona sin la aplicación de escritorio. En la primera ejecución crea una base de datos local y escanea tu proyecto:

CapacidadIndependienteCon 4DA Desktop
Escaneo de vulnerabilidades (OSV.dev)SíSí
Salud de dependencias (4 registros)SíSí
Planificador de actualizacionesSíSí
Noticias del ecosistema (Hacker News)SíSí
Informe de inteligencia previo a la tareaSíSí
Detección de stack tecnológico + versiones resueltasSíSí
Memoria de decisiones + verificación de alineaciónSíSí
Memoria del agente (entre sesiones)SíSí
Fuente de contenido puntuado (20+ fuentes)--Sí
Señales accionables + brechas de conocimiento--Sí
La capa de análisis (Cadenas de Señales, Brechas de Conocimiento, análisis temporal)--Sí

Descargar 4DA para la experiencia completa.

Transportes

stdio (predeterminado) -- funciona con todos los hosts MCP:

npx @4da/mcp-server

HTTP Streamable -- para configuraciones remotas o de múltiples clientes:

npx @4da/mcp-server --http --port 4840

El transporte HTTP se vincula a 127.0.0.1 por defecto y aplica una protección de rebinding DNS de encabezado Host a cada solicitud. Exponerlo más allá de esta máquina requiere un secreto compartido:

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

Sin MCP_AUTH_SECRET se rechaza un enlace no-loopback al inicio. Con él, cada solicitud debe llevar un token Bearer cuya firma HMAC-SHA256 se verifique contra ese secreto, y el rol del token se aplica por herramienta (viewer es de solo lectura; member y admin pueden escribir). Pon TLS delante de él.

Referencia 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

Variables de Entorno

VariableDescripciónPredeterminado
FOURDA_DB_PATHRuta a la base de datos SQLite de 4DAAuto-detectada
FOURDA_OFFLINEDesactiva todas las llamadas de redfalse
MCP_AUTH_SECRETSecreto compartido para verificar tokens Bearer en --http (HMAC-SHA256). Recurre a JWT_SECRET. Sin establecer significa que no se acepta ningún token.Sin establecer
MCP_AUTH_REQUIREDRequiere autenticación en un enlace loopback --http. Siempre requerido en un enlace no-loopback.false
MCP_ALLOWED_HOSTSNombres de host adicionales separados por comas aceptados en Host/Origin (necesario al vincular a 0.0.0.0).Solo localhost

Preguntas Frecuentes

¿Esto envía mi código a algún lugar? No. El servidor envía nombres de paquetes y versiones a APIs públicas (OSV.dev, registro npm, crates.io, PyPI, proxy Go) y palabras clave técnicas genéricas a HN Algolia. Los mismos datos públicos visibles en tu package.json. Sin código fuente, sin rutas de archivos, sin datos personales. Establece FOURDA_OFFLINE=true para desactivar todas las llamadas de red. (La única excepción son los embeddings de OpenAI opt-in — consulta la nota de red anterior.)

¿Necesito la aplicación de escritorio 4DA? No. 9 herramientas funcionan de forma independiente: escaneo de vulnerabilidades, salud de dependencias, planificación de actualizaciones, noticias del ecosistema, informes previos a la tarea, contexto del proyecto, memoria de decisiones, verificación de alineación y memoria del agente. La aplicación de escritorio añade una fuente de contenido puntuado de 20+ fuentes, evaluada contra tu stack real.

¿Con qué herramientas de IA funciona esto? Cualquier herramienta que soporte MCP: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code (Copilot) y cualquier cliente MCP personalizado.

Compilar desde el Código Fuente

git clone https://github.com/4DA-Systems/4DA.git
cd 4DA/mcp-4da-server
pnpm install
pnpm build
pnpm test    # 71 contract tests

Licencia

Apache License 2.0 (Apache-2.0). Ver LICENSE.


Construido por 4DA