Aigently

Alimenta de forma segura reglas de seguridad actualizadas en tiempo real en Cursor, Claude Code y Windsurf, sin configuración ni clave API.

Documentación

Aigent.ly

License: Apache 2.0 MCP Compatible Daily CI Stacks Sources

🆕 El catálogo se duplica a 12 stacks. Django, Rails, Go, iOS y Android pasan a producción, junto con un nuevo stack AI / LLM Apps que cubre LangChain, LlamaIndex, Hugging Face transformers, vLLM y Ollama. Además, puntuación de probabilidad de explotación EPSS en cada CVE. Lee el anuncio →

El catálogo de CVE de código abierto, el pipeline y el servidor MCP detrás de aigent.ly. Cada día, CI ingiere nuevos CVE de seis fuentes públicas de amenazas, los enriquece con patrones de codificación generados por IA y confirma reglas de seguridad listas para usar directamente en este repositorio, con formato para Cursor, Claude Code, Windsurf, GitHub Copilot y Cline.

12 stacks · 6 fuentes · CI diario · nativo MCP · Apache 2.0 · 0 claves necesarias para consumir.


Cómo funciona

CVE published  →  pipeline detects it  →  Claude generates safe-code patterns
    →  rule committed to this repo  →  your IDE enforces it while you type

Los asistentes de codificación con IA escriben código de producción rápido. No saben qué CVE llegaron la semana pasada, ni cómo escribir evitándolos. Aigent.ly cierra esa brecha: convierte un feed de CVE en vivo en reglas de IDE que viajan con tu proyecto, aplicadas en el momento de la generación, no descubiertas en el momento de la auditoría.

Por qué existe

  • Los asistentes de IA no saben qué CVE llegaron la semana pasada.
  • SAST detecta problemas en el momento de la auditoría. Aigent.ly los detecta en el momento de la generación.
  • Datos abiertos y gratuitos. Producto privado y de pago. El límite de seguridad es por diseño.

Inicio rápido

No se necesitan claves API para consumir. CI confirma instantáneas frescas a diario: apunta tu IDE al servidor MCP y listo.

Uso vía MCP (recomendado)

Añade a la configuración MCP de tu IDE: funciona con Claude Code, Cursor, Windsurf, Copilot y Cline:

{
  "mcpServers": {
    "aigently": {
      "command": "npx",
      "args": ["-y", "@aigently/mcp-server@latest"]
    }
  }
}

El servidor MCP lee JSON estático de packages/catalog-data/sin base de datos, sin claves API, sin configuración.

Herramientas MCP disponibles

HerramientaDescripción¿Devuelve EPSS?
get_security_contextDetecta tu stack y devuelve reglas relevantes y los CVE principales
compose_guardrailGenera un archivo de reglas listo para IDE para tu stack
search_threatsBúsqueda de CVE de texto completo y facetada; clasifica por KEV → severidad → EPSS
get_threatDetalle completo de CVE con patrones de código seguro generados por IA
detect_project_stackIdentifica stack(s) a partir de una lista de archivos
list_stacksEnumera los 12 stacks compatibles
get_manifestVersión del catálogo + recuentos

🛡 Qué está cubierto

Stacks (12)

#StackEcosistemaFamiliaEstado
1Next.jsnpmowasp_weben vivo
2Express / Node.jsnpmowasp_weben vivo
3FastAPI / PythonPyPIowasp_weben vivo
4NestJSnpmowasp_weben vivo
5Nuxtnpmowasp_weben vivo
6React SPAnpmowasp_weben vivo
7DjangoPyPIowasp_web🆕 AHORA EN VIVO
8Ruby on RailsRubyGemsowasp_web🆕 AHORA EN VIVO
9GoGoowasp_web🆕 AHORA EN VIVO
10iOS / SwiftSwiftURLowasp_web🆕 AHORA EN VIVO
11Android / KotlinMavenowasp_web🆕 AHORA EN VIVO
12AI / LLM AppsPyPIowasp_llm✨ NUEVO

Para añadir un stack: abre packages/mvp-catalog/src/stack-registry.ts, añade una entrada StackConfig (establece family: "owasp_llm" para stacks de aplicaciones de IA; el valor predeterminado es owasp_web) y abre un PR.

Fuentes (6)

FuenteRolAutenticaciónLímite de tasa (gratuito)
NVD (NIST)Registro autoritativo de CVE. Rellena puntuaciones CVSS e IDs CWE.Clave API opcional5 solicitudes/30s (50 con clave)
CISA KEVCVE explotados activamente. Establece isActivelyExploited como la señal de priorización dura.NingunaFeed estático
GHSA (GitHub)Avisos en npm, PyPI, RubyGems, Maven, Go, Swift.Token Bearer5,000 solicitudes/hora
OSV (Google)Vulnerabilidades por paquete, limitadas a los paquetes que declaran tus stacks.NingunaSin límite publicado
npm AuditEscaneo directo de avisos de paquetes por stack. Detecta avisos aún no en OSV/GHSA.NingunaSin límite publicado
EPSS (FIRST.org)🆕 Puntuación de probabilidad de explotación actualizada diariamente (0–1) por CVE.Ninguna1,000 solicitudes/min

🚦 Cómo se priorizan las amenazas

Cada amenaza en el catálogo lleva múltiples señales de clasificación para que la capa MCP pueda mostrar los CVE que realmente importan:

final_rank =  isActivelyExploited (CISA KEV)        ← ground truth: it's being exploited NOW
           +  severity (CVSS bucket)                 ← classic theoretical severity
           +  epssScore ≥ 0.5  (+1) / ≥ 0.9 (+2)    ← prediction: how likely 30-day exploitation
           +  family match (owasp_web | owasp_llm)   ← keep LLM threats from polluting web rankings
           +  intent overlap (auth/inject/csrf/rag)  ← what the developer is actually doing

EPSS es la diferencia entre "CVSS 9.8 — parchea en el próximo sprint" y "CVSS 9.8 con EPSS 0.94 — deja todo". Exponemos ambos.


🧠 Stack AI / LLM

El stack ai-llm ingiere CVE contra la cadena de herramientas de aplicaciones de IA y los clasifica contra el OWASP LLM Top 10 en lugar del Web Top 10:

Paquetes vigilados: langchain, langchain-community, langchain-core, llama-index, llama-index-core, llama-cpp-python, transformers, huggingface_hub, vllm, gradio, ollama, anthropic, openai, pydantic-ai, crewai, autogen-agentchat, dspy-ai.

Mapeo OWASP LLM (extracto — ver pipeline/scripts/lib/normalise.ts):

OWASP LLMCWE comunesEjemplo
LLM01 — Inyección de promptsCWE-20 / 77 / 78 / 94 / 1321Contexto de recuperación no confiable concatenado en el prompt del sistema
LLM02 — Salida insegura / SSRFCWE-200 / 918Agente que llama a herramientas obtiene URLs internas arbitrarias de un prompt manipulado
LLM05 — Cadena de suministroCWE-116 / 502Deserialización no confiable de checkpoints de modelos
LLM06 — Información sensible / AutorizaciónCWE-284 / 285Los almacenes de embeddings filtran secretos de datos de entrenamiento

Las amenazas de este stack fluyen a través de un prompt dedicado consciente de LLM en amplify-threats.ts para que las salvaguardas se enmarquen en vocabulario de LLM (NEVER concatenate retrieved context into the system prompt without delimiters) en lugar de vocabulario web.


Pipeline de inteligencia de amenazas

Etapas del pipeline

Daily CI run (GitHub Actions, 06:00 UTC)

  Phase 0     CISA KEV map + stack registry preflight
  Phase 1–3   npm Audit + OSV + GHSA → raw advisories
  Phase 5     deduplicate (source-priority based)
  Phase 4a    EPSS exploit-probability enrichment    ← NEW (batched, 50 CVEs/req)
  Phase 4     NVD: backfill CVSS & CWE for low-confidence rows
  Phase 6–8   upsert threats + per-stack mapping + mitigation flags
  Phase 9     close sync log

  Amplify     Claude: 2–4 ALWAYS/NEVER patterns per CVE (family-aware prompt)
  Summarize   Claude: cluster CVEs into per-stack rule docs
  Synthesize  Claude: merge into pre-built guardrail blocks (patterns + deps)
  Export      write JSON snapshots to packages/catalog-data/
  Commit      auto-push catalog-data/ to this repo
Estructura del repositorio
RutaContenido
packages/catalog-data/Instantáneas de amenazas en vivo — JSON confirmado diariamente por CI
packages/mcp-server/Servidor MCP (@aigently/mcp-server) — expone el catálogo a agentes de IA
packages/db/Esquema Drizzle compartido entre el pipeline y la aplicación web
packages/mvp-catalog/Registro de stacks — añade una entrada de stack aquí para incorporarlo
packages/api-client/Cliente TypeScript generado a partir de la especificación OpenAPI
pipeline/scripts/sync, amplify, summarize, synthesize, export — el pipeline completo
pipeline/scripts/lib/sources/Un archivo por fuente de datos (NVD, OSV, GHSA, npm-audit, CISA KEV, EPSS)
.github/workflows/sync-threats.ymlCI diario: ingiere CVE → salvaguardas de IA → confirmar

Ejecutar el pipeline localmente

git clone https://github.com/aelbuni/aigently-catalog
cd aigently-catalog
npm install

cp pipeline/.env.example pipeline/.env   # default DATABASE_URL matches docker-compose
npm run db:setup                         # start Postgres, migrate, seed
# pipeline/.env — keys you need only when running the pipeline yourself:
ANTHROPIC_API_KEY=...   # required for amplify, summarize, synthesize
GITHUB_TOKEN=...        # required for GHSA source
NVD_API_KEY=...         # optional — increases NVD rate limit 10×
# EPSS requires no key.

npm run sync:threats           # ingest CVEs from all six sources
npm run amplify:threats        # Claude: ALWAYS/NEVER patterns per CVE (family-aware)
npm run summarize:rules        # Claude: cluster into per-stack rule docs
npm run synthesize:guardrails  # Claude: pre-build guardrail blocks
npm run export:catalog         # write JSON to packages/catalog-data/
Todos los scripts y variables de entorno

Scripts

ScriptPropósito
npm run db:upInicia Postgres vía Docker Compose
npm run db:setupConfiguración inicial: inicia Postgres + migra + siembra
npm run db:migrateAplica migraciones de Drizzle
npm run db:seedSiembra completa del catálogo
npm run db:seed:upsertUpsert no destructivo
npm run sync:threatsIngiera CVE de las seis fuentes
npm run amplify:threatsGenera patrones con IA para nuevas amenazas
npm run summarize:rulesAgrupa CVE con IA en resúmenes de reglas
npm run synthesize:guardrailsPre-construye bloques de salvaguardas por stack
npm run export:catalogExporta DB → JSON packages/catalog-data/

Variables de entorno

VariableRequeridaPropósito
DATABASE_URLSiempreCadena de conexión de Postgres
ANTHROPIC_API_KEYPasos de IAAcceso a la API de Claude
GITHUB_TOKENSincronizaciónFuente de avisos de GitHub (GHSA)
NVD_API_KEYOpcionalLímite de tasa NVD 10×
STACK_FILTEROpcionalLimita una ejecución de sincronización a un slug de stack (p. ej., ai-llm)
DRY_RUNOpcionalEnriquece y deduplica sin escribir en la DB

Requisitos previos

  • Node.js 22+
  • Docker (para Postgres local)
  • Clave API de Anthropic (solo pasos de IA del pipeline)

🗺 Hoja de ruta

Ya enviado: 12 stacks · 6 fuentes · priorización clasificada por EPSS · prompts amplificadores conscientes de familia (web + LLM).

Próximamente (PRs bienvenidos):

  • Detección de disponibilidad de PoC / explotación — GitHub + Exploit-DB + plantillas Nuclei
  • Avisos de proveedores — MSRC + Red Hat + Ubuntu (para CVE de imágenes base / nivel de SO)
  • Exportación STIX 2.1 — para ingesta en SIEM
  • Webhooks de lista de vigilancia KEV / EPSS — alerta cuando un CVE en tu stack detectado entra en KEV o supera un umbral de EPSS
  • Stacks Spring Boot, Laravel, .NET — abiertos a contribución

Contribuir

Los PRs son bienvenidos. Las contribuciones de mayor valor son:

Consulta CONTRIBUTING.md para las pautas completas.


Licencia

Apache 2.0 — datos de amenazas provenientes de dominio público (NVD, CISA KEV, GHSA, OSV, EPSS).

"Publicamos en código abierto todo lo que la comunidad necesita: los datos, el pipeline, el registro de stacks. La aplicación web que ejecuta aigent.ly es privada. Porque un producto de seguridad debería practicar lo que predica."

Aigent.ly y el logotipo de Aigent.ly son marcas comerciales de Aigently, Inc.