grasp-mcp-server a

36 herramientas para gráficos de dependencias, análisis de arquitectura, escaneo de seguridad, refactorización y seguimiento de CI para agentes LLM

Documentación

Grasp — Code Architecture Suite

English · हिन्दी · 日本語 · 한국어 · 简体中文



CI npm License GitHub Pages


150 herramientas MCP + 8 Recursos + 2 Prompts · 35 idiomas · 11 proveedores de IA + más de 200 modelos vía OpenRouter · 10 vistas de grafos · grafo de conocimiento multimodal · cero recopilación de datos


Browser App   VS Code   MCP Server   JetBrains   Firefox Add-ons   Chrome Web Store   Safari sideload   Raycast Store   Zed Extension


🌐 Aplicación de navegador  ·  📦 Servidor MCP  ·  🐛 Reportar un error  ·  ✨ Solicitar una función  ·  🔒 Privacidad


Novedades en v3.21.0

Nuevo — Grafo de conocimiento multimodal (servidor MCP). Siete nuevas herramientas MCP ingieren tus documentos — PDF, DOCX, XLSX, HTML, imágenes (OCR), audio/video (Whisper local vía @xenova/transformers + ffmpeg), YouTube y URLs — junto con tu código en un grafo de conocimiento consultable, y luego responden preguntas en lenguaje natural con citas: grasp_ingest, grasp_kg_ask, grasp_kg_trace, grasp_kg_explain, grasp_kg_stats, grasp_kg_export, grasp_llm_status. Una capa multi-LLM local-first detecta automáticamente Ollama antes que cualquier clave en la nube y recurre a un motor determinista sin credenciales. Solo del lado del servidor (servidor MCP de Node, no la aplicación de navegador) — consulta Grafo de conocimiento multimodal en Code Intelligence.

+3 lenguajes AST nativos — Bash, Elixir y Julia llevan la extracción de funciones respaldada por tree-sitter, el conteo de llamadas y la puntuación de complejidad a 19 lenguajes.

Puente opcional MCP sobre HTTP — establece GRASP_HTTP_MCP=1 para exponer el servidor MCP sobre Streamable HTTP (autenticación con token portador) para que todo un equipo pueda compartir una sola instancia de Grasp en lugar de que cada uno ejecute su propio servidor stdio.

Anteriormente en v3.20.0: Suite completa de escaneo de seguridad — grasp_vulnerabilities cubre 5 vectores de amenazas (CVEs de dependencias OSV.dev, CVEs de contenedor/tiempo de ejecución NIST NVD, verificaciones locales de integridad de la cadena de suministro, análisis de comportamiento Socket.dev y monitoreo programado de grasp_vuln_watch) con indicadores de escaneo rápido skip_container / skip_socket / skip_integrity.

Anteriormente en v3.19.0: Paridad visual y de UX completa entre team-dashboard.html y index.html — renovación de marca en verde azulado, iconos SVG, autenticación de 7 proveedores, menú Más móvil, ventana emergente de atajos de teclado.

Anteriormente en v3.18.0: 9 nuevas herramientas MCP (análisis de grafos + contexto LLM), 11 formatos de exportación de grafos, resolutores de alias de rutas TypeScript + importaciones Python, comandos de barra de Claude Code, banco de pruebas de evaluación de reducción de tokens (3.241× en got@v14).

Total a partir de v3.21.0: 150 herramientas MCP · 8 Recursos · 2 Prompts · 35 idiomas · 11 formatos de exportación de grafos · 10 vistas de grafos · grafo de conocimiento multimodal · 19 temas.


¿Qué es Grasp?

Grasp convierte cualquier repositorio de GitHub o GitLab — en la nube o autoalojado — o base de código local en un mapa de arquitectura interactivo en segundos. 150 herramientas MCP (más 8 Recursos y 2 Prompts guiados) exponen el motor de análisis completo a Claude Code, Cursor y cualquier agente compatible con MCP.

Paste URL / Open Folder  →  AST Analysis Engine  →  Architecture Map + 150 MCP Tools
Sin instalaciónSe ejecuta 100% en tu navegador — dos archivos HTML, sin paso de compilación
Sin recopilación de datosTu código nunca sale de tu máquina
Sin cuentasPega una URL y listo
Funciona sin conexiónAnaliza carpetas locales sin internet
35 idiomasJS/TS, Python, Go, Java, Rust, C/C++, C#, Ruby, Swift, Kotlin, Scala, Dart, Elixir, Erlang, Haskell, OCaml, F#, Clojure, Julia, Lua, R, Perl, Shell, PowerShell, Groovy, Zig, V, Nim, Crystal, VBA, Ada/SPARK, Vue, Svelte, PHP
150 herramientas MCPGrafos de dependencias, seguridad, escaneo de vulnerabilidades SCA OSV.dev, DORA, almacén cerebral, esquema de grafo Kuzu v3, comunidades, rastreador ORM, impacto de cambios git, detección de deriva de arquitectura, mapa de brechas de cobertura de pruebas, panel de organización, acción de impacto de PR, Recursos/Prompts MCP, configuración automática del editor grasp setup
11 proveedores de IA (+ ilimitados vía enrutadores)Directos: Anthropic Claude (3 modelos), OpenAI (GPT-4o + serie o), Google Gemini (3), Mistral (2), Groq (3), DeepSeek (chat + razonador), Ollama (local), LM Studio (local), endpoint personalizado compatible con OpenAI. Enrutadores: OpenRouter (más de 200 modelos vía slug) y Together AI (más de 50 modelos de código abierto). Cambiables a mitad de conversación, completamente desactivados por defecto (panel de chat cerrado = cero llamadas de red), claves API almacenadas solo en localStorage — Grasp no tiene proxy ni telemetría.
10 vistas de grafosGrafo de fuerza, 3D, arquitectura, treemap, matriz, árbol (dendrograma), flujo (sankey), paquete, clúster (disjunto), mapa de calor
Cerebro GraspAlmacén persistente SQLite + Kuzu — indexa una vez, consulta al instante. FTS5 + incrustaciones vectoriales 384D + consultas de grafo Cypher
Cadena de suministro firmadaProcedencia npm SLSA Nivel 2 + firma Docker sin clave Cosign en cada versión

¿Para quién es Grasp?

Eres…Grasp te ayuda a…Comienza con
Líder técnico que se une a un nuevo equipoMapear la base de código en 60s, encontrar los puntos críticos más riesgosos, identificar buenos primeros problemaschip Try expressjs/express → pestaña ISS + pestaña ACT
Gerente de ingenieríaRastrear la salud en todos los repositorios del equipo, ver métricas DORA, identificar riesgos de factor de autobústeam-dashboard.html
Mantenedor de código abiertoGenerar una wiki, etiquetar buenos primeros problemas, publicar comentarios de impacto de PRgrasp_wiki + Acción de GitHub grasp-pr-impact
Revisor de seguridadDetectar secretos codificados, escanear dependencias en busca de CVEs, generar SBOM/SARIFpestaña VULN + grasp_sbom + grasp_sarif
Agente de IA (Claude Code, Cursor, Copilot)Obtener orientación de repositorio en menos de 100 tokens + recorrido consciente del presupuesto de tokensServidor MCP: grasp_minimal_context → grasp_traverse
Desarrollador en incorporaciónObtener una ruta de lectura ordenada, explicaciones en inglés sencillo de cualquier archivograsp_onboard + grasp_explain
Contratista de refactorizaciónPlanificar migraciones con orden topológico, previsualizar renombramientos, encontrar código duplicadograsp_migration_plan + grasp_apply_refactor
CTO evaluando deuda técnicaCuantificar la deuda en días de desarrollo, marcar puntos críticos heredados, justificar el presupuesto de reescrituraPuntuación de salud + Deuda técnica + Panel de organización

Qué hace diferente a Grasp

Grasp es intencionalmente aditivo a cualquier herramienta de análisis estático o de grafos que ya uses. Los ejes que importan:

CapacidadGrasp
Ejecutar en el repositorio de un desconocido sin clonar✅ Pega URL → análisis instantáneo en el navegador
Cero instalación, cero cuenta✅ Un solo archivo HTML, se ejecuta completamente en el navegador
Nativo MCP — funciona con Claude Code, Cursor, Copilot, Continue, etc.✅ 150 herramientas, 8 Recursos, 2 Prompts
Escaneo de CVEs en la cadena de suministro✅ OSV.dev en npm/PyPI/Go/Cargo/Maven
35 idiomas con AST nativo✅ Tree-sitter
Local — tu código nunca sale de tu máquina✅ El navegador obtiene directamente; MCP se ejecuta como subproceso
Inteligencia de arquitectura persistente✅ Almacén cerebral + base de datos de grafo Kuzu
Multicanal — Chrome/Firefox/Safari/VS Code/JetBrains/Docker/Raycast/Zed✅ 13 canales de distribución

Capturas de pantalla

🕸️ Grafo de dependencias — ve exactamente cómo se conectan los archivos

Grasp dependency graph view

🏛️ Diagrama de arquitectura — tu base de código por capas

Grasp architecture diagram view

📦 Treemap — archivos dimensionados por número de líneas

Grasp treemap view

🏢 Panel de equipo — salud en todos tus repositorios de un vistazo

Grasp team dashboard

Inicio rápido

Opción 1 — Navegador (cero configuración)

git clone https://github.com/ashfordeOU/grasp.git
open index.html           # Main app
open team-dashboard.html  # Team Dashboard

Sin paso de compilación. Sin npm install. Dos archivos HTML.

Opción 2 — CLI

npm install -g grasp-mcp-server

grasp ./my-project        # Analyse a local folder
grasp facebook/react      # Analyse a GitHub repo
grasp .                   # Analyse current directory
grasp . --watch           # Live mode — browser reloads on every file save
grasp . --timeline        # Time-travel — last 30 commits as a scrubber
grasp . --report          # Terminal-only report + JSON output
grasp . --format=sarif    # Export SARIF for GitHub Code Scanning
grasp . --pr-comment      # Print GitHub PR comment markdown to stdout
grasp . --check           # Enforce grasp.yml architecture rules (CI gate)

Opción 3 — Extensiones de IDE

IDEInstalación
VS CodeInstalar (.vsix) — descarga grasp-vscode-3.21.0.vsix y ejecuta Extensiones: Instalar desde VSIX… (Cmd+Shift+P)
JetBrainsJetBrains Marketplace — busca Grasp en Configuración → Plugins
RaycastRaycast Store — o busca Grasp en la tienda de extensiones de Raycast
ZedZed Extensions — o busca grasp en Zed → Extensiones

Opción 4 — Extensión de navegador

NavegadorInstalación
ChromeChrome Web Store
FirefoxFirefox Add-ons — ID: grasp@ashforde.org
SafariGitHub Releases — consulta instrucciones de sideload

Aparece un botón flotante de Grasp en cada página de GitHub y GitLab. Admite GitLab autoalojado, GitHub Enterprise y cualquier host personalizado mediante concesiones de permisos bajo demanda.


Distribución de un vistazo

Cada versión etiquetada se publica automáticamente en todos los canales:

CanalEstadoEnlace
npm (grasp-mcp-server)npmnpm install -g grasp-mcp-server
Registro MCPListadomodelcontextprotocol.io
Docker (ghcr.io/ashfordeou/grasp)ghcrdocker pull ghcr.io/ashfordeou/grasp:latest
VS Code.vsix en ReleasesGitHub Releases
JetBrainsMarketplacePlugin ID 31362
RaycastStore (PR por versión)raycast.com/ashfordeOU/grasp
ZedExtensión (PR por versión)zed.dev/extensions
ChromeWeb StoreListado CWS
FirefoxAMO (listado)addons.mozilla.org
SafariSideload (macOS 13+)GitHub Releases
Imagen de bot GitLabghcr.io/ashfordeou/grasp-gitlab-botAuto-enviada por versión
Agente de túnel GitLabBinario en ReleasesGitHub Releases
GitHub ReleaseFirmado + sumas de verificaciónPágina de Releases

Integraciones con herramientas de IA (Grasp llamado por tu asistente vía MCP o extensión)

Herramienta de IACómo instalarNotas
Claude Codeclaude mcp add grasp -- npx -y grasp-mcp-serverMCP nativo — las 150 herramientas + 8 Recursos + 2 Prompts
CursorAgrega grasp-mcp-server a ~/.cursor/mcp.jsonMCP nativo
Cline / Roo Code / Kilo CodeConfiguración MCP en la configuración de VS CodeMCP nativo
WindsurfConfiguración MCPMCP nativo
Codex / OpenCode / Trae / DroidConfiguración MCPMCP nativo — grasp setup los configura automáticamente a todos
Gemini CLI / Grok CLIConfiguración MCPMCP nativo
GitHub Copilot ChatInstala grasp-copilot-extensionCopilot llama a Grasp vía la API de extensión de Copilot — mención @grasp en el chat
ContinuePaquete continue-providerGrasp como proveedor de contexto de Continue
Amazon Q Developeramazon-q-pluginGrasp aparece en el chat de Q
GPT Actions / Custom GPTsPaquete gpt-actionsGrasp expuesto como REST para el esquema de acciones de OpenAI
Aider / Sweep / cualquier herramientaUsa el paquete npm grasp-mcp-serverstdio JSON-RPC independiente de la herramienta
🧭 Instrucciones de sideload para Safari
curl -sL https://github.com/ashfordeOU/grasp/releases/latest/download/grasp-safari-extension.zip \
  -o /tmp/grasp-safari.zip \
  && unzip -q /tmp/grasp-safari.zip -d /tmp/grasp-safari \
  && mv /tmp/grasp-safari/Grasp.app /Applications/ \
  && open /Applications/Grasp.app

Luego en Safari: Configuración → Extensiones → activa Grasp. Si no aparece, activa primero Safari → Desarrollar → Permitir extensiones sin firmar.


Cómo funciona

┌──────────────────────────────────────────────────────────────────┐
│  Input                                                            │
│  github.com/owner/repo  ·  gitlab.com/ns/proj  ·  ./local/path   │
└────────────────────────────────┬─────────────────────────────────┘
                                 ▼
┌──────────────────────────────────────────────────────────────────┐
│  Analysis Pipeline  (mcp/src/)                                    │
│                                                                   │
│  1. scan        file enumeration + gitignore                      │
│  2. parse       tree-sitter AST · 35 languages · 19 native        │
│  3. resolvers   tsconfig path-alias · Jedi-style Python imports   │
│  4. routes      HTTP route detection (Express/FastAPI/Gin)        │
│  5. tools       MCP/gRPC tool definition detection                │
│  6. orm         ORM query tracking (Prisma/TypeORM/Sequelize/SA)  │
│  7. scope       3-tier call resolver  (0.95 → 0.90 → 0.50)       │
│  8. types       cross-file type propagation  (Kahn topo-sort)     │
│  9. coverage    test-file detection → TESTS/COVERS edges (v3)     │
│ 10. communities Louvain community detection on import graph       │
│ 11. processes   BFS execution-flow tracing from entry points      │
│ 12. analytics   degree centrality · Brandes betweenness ·         │
│                 surprising-edge rarity · knowledge-gap detection  │
│ 13. vulns       OSV.dev SCA scan (npm/PyPI/Go/Cargo/Maven)        │
└───────────┬──────────────────────────┬────────────────────────────┘
            │                          │
    ┌───────▼─────────┐    ┌───────────▼─────────────────┐
    │  Browser App    │    │   MCP Server (CLI)           │
    │  index.html     │    │   grasp-mcp-server           │
    │                 │    │                              │
    │ 10 graph views  │    │ 150 tools · 8 Resources      │
    │ 16 color modes  │    │ 2 guided Prompts             │
    │ AI Chat (11p)   │    │ Brain + Kuzu Schema v3       │
    │ Ask Grasp       │    │ Hybrid search (BM25+vector)  │
    │ Coverage overlay│    │ Graph analytics (5 tools)    │
    │ VULN tab        │    │ LLM-context (4 tools)        │
    │ Try-it chips    │    │ Graph exports (GraphML /     │
    │ Token indicator │    │   Cypher / Obsidian)         │
    │ Snapshot URLs   │    │ Slash commands (3 in         │
    │ Compare modal   │    │   .claude/commands/)         │
    │ Mid-fetch retry │    │ grasp setup (5 editors)      │
    │ Mobile touch    │    │ grasp vulns / drift / org    │
    └─────────────────┘    └──────────────────────────────┘

Flujo de análisis (v3.18.0): el pipeline es aditivo: la fase 12 (análisis de grafos) se ejecuta después de que se construye el grafo de dependencias y produce los datos que respaldan grasp_hub_nodes, grasp_bridge_nodes, grasp_surprising_connections, grasp_knowledge_gaps y grasp_suggested_questions. La fase 13 solo se ejecuta cuando hay un manifiesto (package.json, requirements.txt, go.mod, Cargo.toml, pom.xml) presente. Tanto el navegador como el servidor MCP comparten exactamente la misma salida del pipeline mediante el par ~/.grasp/brain.db + ~/.grasp/graph/, de modo que un grasp index de CLI y un análisis de navegador del mismo repositorio son intercambiables.


Visualizaciones

Tipos de Grafo

VistaDescripción
🕸️ GrafoGrafo de dependencias dirigido por fuerzas: arrastrar, hacer zoom, selección múltiple
🔮 Grafo 3DGrafo de fuerzas tridimensional: rotar, desplazar, hacer zoom
🏛️ ArquitecturaDiagrama de arquitectura capa por capa
📦 TreemapArchivos dimensionados por número de líneas, agrupados por carpeta
📊 MatrizMatriz de adyacencia que muestra todas las dependencias
🌳 ÁrbolDendrograma jerárquico de agrupamiento
🌊 FlujoFlujo de dependencias Sankey a nivel de carpeta
🎯 BundleDiseño circular con conexiones basadas en arcos
🔮 ClústerGrafos de fuerzas separados por carpeta

Modos de Color

ModoQué muestra
📁 CarpetaEstructura de directorios
🏗️ CapaCapa arquitectónica (UI, Servicios, Utils, etc.)
🔥 ChurnFrecuencia de commits: rojo = puntos calientes más modificados
⚡ ComplejidadComplejidad ciclomática (verde → amarillo → rojo)
💥 BlastImpacto del radio de explosión para un archivo seleccionado
🌊 ProfundidadProfundidad máxima de anidamiento de llaves
🔎 DupDensidad de código duplicado: rojo = muchos clones
👤 PropietarioPrincipal contribuyente: detecta riesgos de bus factor
🐛 IssuesIssues de GitHub vinculados por archivo
🧪 CoberturaCobertura de pruebas: resalta archivos sin probar
📦 BundleContribución al tamaño del bundle
🌐 Superficie APIExposición pública de archivos
⚡ RuntimeFrecuencia real de llamadas desde un trace en vivo
🔒 SafetyCobertura de puertas de seguridad (verde = con puerta, rojo = sin puerta)
🧪 BoundaryDesviación del límite investigación/producción
🧪 Cobertura EvalCobertura de scripts de evaluación/pruebas

Inteligencia de Código

📊 Puntuación de Salud

Calificación instantánea A–F basada en código muerto, dependencias circulares, métricas de acoplamiento y problemas de seguridad. Se muestra como una puntuación (0–100) con una barra visual.

🔐 Escáner de Seguridad

Detección automática de secretos y claves API hardcodeados, riesgos de inyección SQL, uso peligroso de eval() y sentencias de depuración dejadas en producción.

🛡️ Escáner de Seguridad de Dependencias y Contenedores (v3.17.0, ampliado en v3.20.0)

Escaneo de seguridad de cinco capas mediante grasp_vulnerabilities:

  • CVEs de dependencias — dependencias declaradas (npm/PyPI/Go/Cargo/Maven) frente a la base de datos pública de CVEs de OSV.dev. Resuelve versiones fijadas desde lockfiles. Clasificadas por severidad con puntuaciones CVSS y sugerencias de versión de corrección. La puntuación de salud descuenta –5 por cada crítica y –3 por cada alta.
  • CVEs de contenedores/runtime — analiza Dockerfile (FROM image:tag), docker-compose*.yml y el YAML de flujos de trabajo de CI para versiones de imágenes fijadas, y luego consulta NIST NVD. Configura GRASP_NVD_API_KEY para límites de tasa más altos.
  • Integridad de la cadena de suministro — comprobaciones locales (sin red): cobertura del campo sha512 integrity del lockfile de npm, go.sum junto con go.mod, Cargo.lock junto con Cargo.toml, fijación de --hash= en requirements.txt.
  • Análisis de comportamiento — la API gratuita de Socket.dev escanea paquetes npm en busca de malware, riesgo en la cadena de suministro y señales de scripts de instalación (hasta 50 paquetes por escaneo).
  • Monitoreo programado — herramienta MCP grasp_vuln_watch: acciones start/stop/status/history; re-escaneos periódicos mediante setInterval; persiste el historial de escaneos + diffs de CVEs en brain.db.

El nuevo CLI grasp vulns <path> sale con código 1 ante hallazgos críticos/altos (compatible con CI). 100% del lado del cliente: todas las solicitudes API van directamente desde tu máquina a los servicios respectivos, nunca a través de un servidor Grasp.

🧩 Detección de Patrones

Identifica patrones Singleton, Factory, Observer/Event, hooks de React y anti-patrones (God Objects, acoplamiento alto), automáticamente.

💥 Análisis de Radio de Explosión

"Si cambio este archivo, ¿qué se rompe?" — selecciona cualquier archivo y ve todos los archivos posteriores que se verían afectados, resaltados en el grafo.

🔥 Mapa de Calor de Actividad

Colorea los archivos por frecuencia de commits. Funciona para repositorios de GitHub (vía API) y repositorios locales (mediante git log — sin necesidad de internet).

🔎 Detección de Duplicados y Similitudes

El modo de color Dup resalta archivos con código exacto o casi duplicado. La herramienta MCP grasp_similarity devuelve clústeres de duplicados clasificados para refactorización dirigida.

🧠 Grafo de Conocimiento Multimodal (servidor MCP)

Construye un grafo de conocimiento consultable a partir de tu base de código y documentos externos, y luego haz preguntas en lenguaje natural con respuestas citadas. Se ejecuta completamente dentro del servidor MCP de Node — no en la aplicación de navegador.

grasp_ingest analiza PDF, DOCX, XLSX, HTML, imágenes (OCR), audio/vídeo (Whisper local mediante @xenova/transformers + ffmpeg), YouTube y URLs; los analizadores pesados son dependencias opcionales de carga diferida. Las entidades y relaciones se etiquetan como EXTRACTED frente a INFERRED con localizadores de origen y se persisten en SQLite kg.db; la recuperación es híbrida BM25 + vectorial. Una capa multi-LLM local-first detecta automáticamente Ollama antes que cualquier clave en la nube y recurre a un motor determinista que no necesita credenciales (Anthropic / OpenAI / Gemini / DeepSeek / Kimi / Azure / Bedrock / Ollama). Todo el servidor puede compartirse opcionalmente con un equipo a través de HTTP (GRASP_HTTP_MCP=1, GRASP_HTTP_API_KEY opcional, puerto 7333, /health).

Herramienta MCPDescripción
grasp_ingestIngiere un archivo, URL o fuente multimedia (PDF/DOCX/XLSX/HTML/OCR de imagen/audio/vídeo/YouTube) en el grafo de conocimiento
grasp_kg_askPreguntas y respuestas en lenguaje natural sobre el grafo con citas de origen integradas (BM25 híbrido + vectorial)
grasp_kg_traceTrazado de rutas BFS entre dos entidades
grasp_kg_explainExplica una entidad, sus relaciones y si cada hecho fue EXTRACTED o INFERRED
grasp_kg_statsEstadísticas del grafo: recuentos de entidades/relaciones, hubs y god-nodes
grasp_kg_exportExporta el grafo como Cypher, GraphML, JSON o Mermaid
grasp_llm_statusInforma del proveedor LLM activo y de cualquier modelo local detectado (Ollama), incluido el estado de respaldo determinista

👥 Propiedad del Código

Principales contribuyentes por archivo desde el historial de git, con desgloses de porcentaje de líneas. Salto con un clic a GitHub Blame.

📋 Análisis de Impacto de PR

Pega una URL de PR para ver qué archivos toca y calcula el radio de explosión de los cambios propuestos antes de fusionar.

💰 Cuantificación de Deuda Técnica

Convierte cada problema arquitectónico en horas de desarrollador usando estimaciones configurables: dep. circular = 4h, god file = 16h, seguridad crítica = 8h, con un multiplicador de acoplamiento. Se muestra en el panel de salud y en el Team Dashboard.

🔗 Embeds Compartibles

Haz clic en ⋯ → 🔗 Embed para obtener un <iframe> listo para pegar, insignia de README, fragmento de React y enlace directo: comparte informes de salud en vivo en docs, wikis o dashboards.

🎯 Puntuación de Confianza de Conexiones (v3.16.0)

Cada conexión entre archivos se puntúa de 0 a 1: imports estáticos explícitos = 1.0, misma carpeta = 0.8, inferida entre carpetas = 0.6, baja frecuencia = 0.4. El grafo de fuerzas superpone la confianza como opacidad de las aristas: usa el control deslizante en la configuración ⚙ para filtrar las aristas de baja confianza.

🔍 Modal de Consulta del Grafo (v3.16.0)

Haz clic en el botón 🔍 de la barra de herramientas para buscar archivos, funciones y aristas en el navegador sin salir del grafo. Las coincidencias se actualizan en vivo: haz clic en cualquier resultado de archivo para saltar a él en el grafo.

ƒ() Lienzo a Nivel de Función (v3.16.0)

Alterna el botón ƒ() para cambiar el grafo de fuerzas de nodos a nivel de archivo a nodos a nivel de función: ve las relaciones de llamadas entre funciones individuales, limitado a 300 nodos por rendimiento.

🗄️ Pestaña de Acoplamiento de BD (v3.16.0)

La pestaña 🗄️ DB del panel derecho escanea el contenido de los archivos en busca de patrones ORM (Django, TypeORM, SQL crudo), mapeando qué archivos referencian qué tablas. Detecta al instante god-tables y archivos con alto acoplamiento.

🎯 Pestaña de Buenas Primeras Issues (v3.16.0)

La pestaña 🎯 GFI muestra archivos aislados, de baja complejidad y sin probar: objetivos de contribución ideales para ingenieros nuevos o agentes de codificación de IA.

🔐 Detección de PII y Subcategorías de Seguridad (v3.16.0)

La pestaña de Seguridad ahora tiene píldoras de subcategoría — ALL / SECRETS / INJECTION / PII / EVAL — para filtrar hallazgos. La píldora PII escanea el contenido de los archivos en busca de patrones de email, teléfono, SSN, tarjeta de crédito y claves API en archivos fuente.

📸 Detección de Desviación Arquitectónica (v3.17.0)

Toma una instantánea de la arquitectura de tu base de código y detecta desviaciones con el tiempo, automáticamente.

grasp snapshot ./my-project --name before-refactor
# ... make changes ...
grasp drift ./my-project          # exits 1 if drift is CRITICAL (CI-friendly)
Herramienta MCPDescripción
grasp_snapshotGuarda la puntuación de salud actual, métricas de acoplamiento, dependencias circulares y los 10 puntos calientes principales como una instantánea con nombre
grasp_diff_snapshotsCompara dos instantáneas cualesquiera: devuelve el delta de salud, nuevas dependencias circulares, archivos cuyo acoplamiento aumentó >20% y el nivel de desviación (STABLE / DEGRADED / CRITICAL)

Las instantáneas se almacenan en ~/.grasp/brain.db y persisten entre sesiones de análisis.

🧪 Mapa de Brechas de Cobertura de Pruebas (v3.17.0)

Encuentra las funciones con más probabilidad de causar incidentes en producción: mayor recuento de llamadas, cobertura de pruebas cero.

grasp_coverage_gaps  # via MCP — returns uncovered_functions sorted by call_count DESC

El grafo de dependencias gana un conmutador de superposición de Cobertura 🧪: las funciones sin cubrir se muestran en rojo, las parcialmente cubiertas en ámbar y las cubiertas en verde. La cobertura se estima mediante análisis estático: Grasp detecta archivos de prueba (*.test.*, *.spec.*, test_*, *_test.*) y rastrea qué funciones fuente referencian.

Herramienta MCPDescripción
grasp_coverage_gapsDevuelve uncovered_functions (ordenados por recuento de llamadas), risky_uncovered (alto churn + sin pruebas), coverage_by_module por directorio y overall_coverage_estimate

🏢 Dashboard a Nivel de Organización (v3.17.0)

Analiza una organización completa de GitHub con un solo comando:

grasp org my-github-org --token ghp_xxx --format html   # Self-contained HTML dashboard
grasp org my-github-org --format json                   # CI-consumable JSON
grasp org my-github-org --format md                     # Markdown for wikis

Agrega calificaciones de salud, hallazgos de seguridad, archivos con más churn y distribución de lenguajes en todos los repositorios (hasta 500, 5 concurrentes). La salida HTML incrusta Chart.js en línea: sin dependencias externas.

Herramienta MCPDescripción
grasp_org_summaryAnaliza hasta 20 repositorios principales en una organización: devuelve la calificación de salud agregada, distribución de calificaciones, hallazgos de seguridad totales por severidad, archivos con más churn y desglose de lenguajes

🤖 GitHub Action de Impacto de PR (v3.17.0)

Añade análisis automatizado de impacto arquitectónico a cada pull request:

# .github/workflows/grasp-pr-impact.yml
- uses: ashfordeOU/grasp/.github/actions/grasp-pr-impact@main
  with:
    github-token: ${{ secrets.GITHUB_TOKEN }}
    min-risk-to-comment: LOW      # LOW / MEDIUM / HIGH / CRITICAL
    fail-on-risk: CRITICAL        # fail the CI check at this risk level

La acción publica un comentario estructurado en el PR que muestra:

  • Insignia de riesgo (LOW / MEDIUM / HIGH / CRITICAL) con codificación de colores
  • Archivos modificados con radio de explosión a nivel de función
  • Procesos de ejecución afectados (con recuentos de pasos)
  • Revisores sugeridos de git blame (los 2 principales contribuyentes por archivo afectado)
  • Brechas de cobertura de pruebas: qué funciones modificadas no tienen ningún archivo de prueba que las toque

Chat de IA — 11 Proveedores + Routers

Asistente de IA integrado que conoce toda tu base de código. Pregunta "¿por qué auth.ts es un punto caliente?", "¿qué archivos son más seguros de refactorizar?" o "explica los problemas de seguridad en esta cadena de llamadas": las respuestas hacen referencia a tu grafo de dependencias en vivo, hallazgos de seguridad y capas arquitectónicas.

ProveedorModelos
AnthropicClaude Opus 4.7, Sonnet 4.6, Haiku 4.5
OpenAIGPT-4o, GPT-4o mini, o3-mini, o1
Google GeminiGemini 2.0 Flash, 1.5 Pro, 1.5 Flash
MistralMistral Small, Mistral Large
GroqLlama 3.3 70B, 3.1 8B, Gemma 2 9B
DeepSeekDeepSeek Chat, DeepSeek Reasoner
OpenRouterCualquier slug de modelo (100+ modelos con una sola clave)
Together AICualquier slug de modelo
OllamaModelos locales (sin necesidad de clave)
LM StudioModelos locales en cualquier puerto
CustomCualquier base URL compatible con OpenAI

Características:

  • Memoria de conversación multiturno — persistida en localStorage entre recargas de página
  • Contexto de archivo seleccionado — capa, funciones, complejidad y problemas inyectados automáticamente al seleccionar un archivo
  • Contexto enriquecido del código — 80 archivos principales con metadatos, todos los problemas, hallazgos de seguridad, dependencias circulares, desglose por capas
  • Renderizado de Markdown con bloques de código resaltados con sintaxis
  • La clave de API permanece solo en tu navegador, nunca se envía a ningún sitio excepto al proveedor elegido

Grasp Brain — Inteligencia Arquitectónica Persistente (v3.16.0)

Grasp Brain combina dos almacenes persistentes que trabajan juntos:

  • SQLite Brain (~/.grasp/brain.db) — índice de metadatos de archivos, acoplamiento, seguridad y problemas. Incluye un índice de texto completo FTS5 sobre funciones y un almacén en proceso de embeddings vectoriales 384D (Xenova/all-MiniLM-L6-v2 — sin dependencia de la nube). Indexa una vez, consulta al instante.
  • Kuzu Graph DB (~/.grasp/graph/) — base de datos de grafos nativa con soporte de consultas Cypher. Almacena el grafo completo de llamadas de funciones, las importaciones de archivos y las relaciones de tipos como un grafo de propiedades recorrible.

Indexa una vez, luego consulta al instante — no se necesita reanálisis. Cada función está etiquetada con los procesos de ejecución en los que participa (BFS desde los puntos de entrada), por lo que los resultados de búsqueda incluyen un campo processes[] que agrupa las coincidencias por flujo.

Cómo funciona

grasp index ./my-project    →  analysis stored in ~/.grasp/brain.db
grasp context src/api.ts    →  instant file context from the stored index
grasp diff ./my-project     →  compare current state vs stored baseline
grasp daemon ./my-project   →  watch for changes, re-index automatically

Subcomandos CLI

grasp index <path>           # Analyse and persist a repo to the brain
grasp context <src> <file>   # Get rich context for any file
grasp setup [path]           # Install hooks in Claude Code / Cursor / Windsurf
grasp diff <path>            # Compare current analysis vs brain baseline
grasp daemon <path>          # Watch directory and auto-reindex on changes
grasp drift [path]           # Snapshot + diff vs last snapshot; exits 1 on CRITICAL (CI-friendly)
grasp org <github-org>       # Org-level dashboard (--format json|html|md --token ghp_xxx)
grasp vulns [path]           # OSV.dev dependency vulnerability scan

Ask Grasp — Consultas de Arquitectura en Lenguaje Natural

Tanto la aplicación de navegador (panel Ask Grasp) como la herramienta MCP grasp_ask admiten preguntas en inglés sencillo sobre tu código. grasp_ask reconoce intenciones estructurales directamente; para consultas abiertas recurre a búsqueda semántica híbrida — texto completo BM25 + embeddings vectoriales 384D fusionados con Reciprocal Rank Fusion.

Para búsqueda puramente semántica sin la capa de respuesta a preguntas, usa grasp_search directamente — los resultados incluyen un campo processes[] que muestra a qué flujos de ejecución pertenece cada coincidencia.

PreguntaLo que obtienes
"¿Cuáles son los archivos más complejos?"Archivos clasificados por complejidad ciclomática
"Muéstrame puntos calientes de acoplamiento"Archivos con mayor fan-in + fan-out combinado
"¿Hay problemas de seguridad?"Todos los hallazgos de seguridad del código
"¿Cuál es el radio de impacto de auth.ts?"Lista completa de impacto transitivo
"¿Qué capa maneja el acceso a datos?"Desglose por capas con ejemplos de archivos
"¿Cuál es la calificación general?"Puntuación de salud, calificación, resumen de problemas
"¿Qué archivos tienen más cambios?"Clasificación por frecuencia de commits
"¿Hay dependencias circulares?"Lista de ciclos con severidad

Registro — Todos los Repos Indexados

grasp_registry_list y grasp_registry_status exponen el índice Brain completo:

# Via MCP
grasp_registry_list          # all repos: health grade, files, functions, active sessions
grasp_registry_status        # aggregate: indexed count, session count, grade distribution

# Via HTTP (when MCP server runs with --http)
curl http://localhost:7332/api/v1/registry

El panel 🗂️ Registry del Team Dashboard lo obtiene automáticamente al cargar — no se necesita session_id.

Arch Diff

grasp diff (y la herramienta MCP grasp_arch_diff) compara tu código actual contra la línea base almacenada del brain y muestra:

  • Degradaciones de calificación (archivos que empeoraron: A→B, B→C, etc.)
  • Delta de puntuación de salud
  • Nuevos problemas de seguridad introducidos desde la línea base

Hooks de Editor (grasp setup)

Detecta .claude/, .cursor/, .windsurf/ en tu repo e instala un hook pre-tool-use que automáticamente brinda a tu asistente de codificación IA el contexto del código antes de cada acción. También escribe CLAUDE.md y AGENTS.md con resúmenes de arquitectura.


Equipo y Colaboración

🏢 Team Dashboard

Sigue la salud de múltiples repos en una sola vista. Añade cualquier repo de GitHub público (o privado, con un token) y verás:

  • Puntuación de salud, calificación, archivos, problemas, dependencias circulares, hallazgos de seguridad, capas arquitectónicas
  • Conteo de patrones, problemas de variables de entorno, conteo de feature flags — nuevas columnas v3.13.0
  • Mini-tarjeta de métricas DORA — Frecuencia de despliegue, tiempo de entrega, tasa de fallos de cambios, MTTR por repo (fila expandible)
  • Panel 🗂️ Registry — todos los repos indexados por Brain con calificaciones de salud y estado de sesión en vivo
  • Actividad de commits (7d / 30d) y estado de CI (✅/❌/⏳)
  • Sparkline de velocidad de commits, deuda técnica en días-desarrollador
  • Exporta la tabla completa como CSV o JSON. Abre carpetas locales con 📁 Open Folder (File System Access API).

🔄 Colaboración en Vivo del Equipo

El CLI de Grasp aloja un servidor de colaboración en tiempo real para todo tu equipo:

npx grasp --host=0.0.0.0 --room-secrets=backend:pass1,frontend:pass2
#   → main app:       http://server-ip:7331/
#   → team dashboard: http://server-ip:7331/dashboard
#   → health check:   http://server-ip:7331/api/health
  • Sincronización WebSocket — los cambios del workspace se propagan instantáneamente a todos los miembros del equipo conectados
  • Salas con nombre — ?sync_room=backend-team aísla el workspace de cada equipo
  • Indicadores de presencia — ve quién está en línea en el panel Sync
  • Enlaces para compartir — ⎘ Copiar enlace de equipo o 👁 Copiar enlace de solo lectura
  • Modo solo lectura — ?readonly=1 para observadores
  • Protección con contraseña — --room-secrets=room:password
  • API REST — GET /api/health · GET /api/rooms · GET/PUT /api/workspace/:room

Alojamiento LAN: cualquier persona en la misma red accede a http://server-ip:7331/dashboard — no se necesita nube.

🏢 Soporte de Monorepos y Workspaces

Grasp detecta automáticamente sub-paquetes en monorepos (package.json, pyproject.toml, Cargo.toml, go.mod, pom.xml). Una barra lateral Workspace te permite filtrar a un solo paquete — todos los grafos, treemaps y métricas se actualizan al instante.

⏮️ Scrubber de Arquitectura con Viaje en el Tiempo

Ejecuta grasp . --timeline para cargar tus últimos 30 commits de git como un panel scrubber. Arrastra el deslizador a cualquier commit — los nodos modificados brillan en amarillo en el grafo para que puedas ver cómo evoluciona tu arquitectura con el tiempo.

📡 Modo de Observación en Vivo

Ejecuta grasp . --watch para un servidor de desarrollo local con sincronización SSE en tiempo real. Cada guardado de archivo recarga el grafo del navegador automáticamente — aparece una insignia LIVE mientras estás conectado.


Verticales de la Industria

✈️ Aeroespacial / Seguridad Crítica

CaracterísticaDescripción
Trazabilidad de RequisitosSube un CSV de requisitos — Grasp escanea las etiquetas @REQ-NNN y muestra el % de cobertura, archivos faltantes y no especificados. Exportación de matriz de cumplimiento con un clic.
MISRA / Modo Seguridad⋯ → 🔧 Safety Mode — detecta violaciones MISRA C/C++ y Ada: asignación dinámica después de init, llamadas recursivas, goto, abort()/exit().
Exportación de Certificación DO-178C / ECSSPaquete de evidencia de certificación con un clic: inventario, matriz de trazabilidad, complejidad, violaciones MISRA, hallazgos de seguridad — JSON y HTML imprimible.
Investigación de AnomalíasSelecciona archivo → 🔍 Anomaly Investigation — llamadores, llamados, radio de impacto transitivo, commits recientes, seguridad en la ruta de llamadas, resumen en lenguaje sencillo.
Evaluador de Reutilización de SoftwareMatriz de semáforo en Compatibilidad de Interfaces, Dependencias, Nivel de Seguridad, Idoneidad Arquitectónica, Seguridad, Complejidad.
Grafo de Llamadas Multi-lenguajeLímites Ada→C pragma Import, Python ctypes/cffi, JS→WASM.
Genealogía de Software HeredadoSuperpone un manifiesto de misión de origen, identifica atajos de certificación de delta cero.
Mapeador ICDCompara entradas del Documento de Control de Interfaces con funciones exportadas, señala interfaces no implementadas.
Cumplimiento ECSS-E-ST-40CVerifica los requisitos de cumplimiento DI-01, DI-04, DI-07, DI-10, DI-15.

🧠 Investigación en IA

CaracterísticaDescripción
Rastreador de Restricciones de SeguridadMarca compuertas de seguridad (filtros, sanitizadores) — rastrea cada ruta de entrada→salida y señala cualquier ruta que las eluda todas. Nuevo modo de color Safety.
Límite Investigación/ProducciónDefine carpetas de investigación vs producción — señala archivos de producción que importan de código de investigación.
Soporte de Jupyter Notebook.ipynb en el grafo de dependencias — extrae celdas de código, analiza importaciones, señala problemas de reproducibilidad.
Diff de Ejecuciones de EntrenamientoSube dos configuraciones YAML/JSON — compara hiperparámetros y encuentra qué archivos leen cada clave cambiada.
Mapa de Cobertura de EvalDetecta automáticamente scripts de eval y rastrea qué código de modelo/entrenamiento ejercitan. Las compuertas de seguridad sin cobertura de eval se marcan como críticas.
DAG de Pipeline MLDetecta patrones de PyTorch, TensorFlow, JAX, HuggingFace — renderiza el DAG Data→Model→Training→Eval→Checkpoint.

🏢 Empresa

CaracterísticaDescripción
Generación de SBOMCycloneDX 1.4 o SPDX 2.3 JSON para npm, pip, Cargo, módulos Go. Enriquecimiento opcional de CVE mediante la API OSV.
Métricas DORAFrecuencia de despliegue, tiempo de entrega, tasa de fallos de cambios, MTTR desde GitHub Actions. Clasificación Elite/High/Medium/Low.
Generación de ADR Impulsada por IARegistros de Decisiones de Arquitectura en formato MADR con un clic usando contexto del código + diff opcional de PR.
Rastreador de Flujo de Datos PIIBFS desde archivos fuente PII marcados por el usuario — muestra todos los consumidores posteriores.
Separación de FuncionesDetecta archivos que tanto inician como aprueban transacciones (cumplimiento SOX/FDA).
Impacto de Cambios RegulatoriosPalabras clave a radio de impacto para cambios de artículos GDPR/HIPAA/SOX/PCI-DSS.
Finanzas / TradingDetección de puntos calientes de latencia — I/O bloqueante, presión de GC, contención de bloqueos, asignaciones en bucles.
Riesgo de Modelos FinancierosParámetros codificados, verificaciones NaN faltantes, división sin protección contra cero.

Benchmark de Reducción de Tokens (v3.18.0)

scripts/eval-token-reduction.mjs es un harness de benchmark que mide cuántos tokens ahorra un LLM consultando grasp_minimal_context en lugar de leer cada archivo fuente. Clona 6 repos OSS (express, flask, gin, got, lodash, axios), calcula el costo total ingenuo de tokens, llama a Grasp e informa el factor de reducción.

# Build the MCP server first
cd mcp && node build.mjs && cd ..

# Run the full benchmark (clones 6 repos to /tmp/grasp-eval, ~5 minutes)
node scripts/eval-token-reduction.mjs

# Or just one repo
node scripts/eval-token-reduction.mjs --only got

Salidas a docs/benchmarks/token-reduction.{md,json}. Verificado de extremo a extremo en got@v14.0.0: 113,438 → 35 tokens.


Para Agentes de IA — Servidor MCP

Grasp incluye un servidor del Model Context Protocol (MCP) que expone el motor completo de análisis como herramientas invocables para Claude Code, Cursor y cualquier agente compatible con MCP.

Configuración

# Install
npm install -g grasp-mcp-server

# Or run without installing
npx grasp-mcp-server

Añade a ~/.claude/claude_mcp_settings.json:

{
  "mcpServers": {
    "grasp": {
      "command": "npx",
      "args": ["-y", "grasp-mcp-server"]
    }
  }
}

Funciona con repos de GitHub y directorios locales. Consulta mcp/README.md para opciones de GitLab, Docker y auto-alojamiento.

Slash Commands de Claude Code (v3.18.0)

Tres slash commands preconstruidos vienen en .claude/commands/ para que cualquier workspace de Claude Code pueda invocar los flujos más comunes de Grasp en un solo paso:

ComandoQué hace
/grasp:build-graphEjecuta grasp_analyze en el directorio actual + grasp_minimal_context para una orientación de menos de 100 tokens
/grasp:review-deltaDetecta cambios desde la rama base y produce un informe de impacto con puntuación de riesgo
/grasp:review-prRevisión de PR completa que combina detect_changes + suggested_questions + surprising_connections + knowledge_gaps

Cada comando es un archivo markdown con herramientas permitidas y plantilla de cuerpo. Edítalos en el repo para personalizarlos.

Referencia de Herramientas

Leyenda de niveles: La mayoría de las herramientas funcionan después de un solo grasp_analyze. Algunas requieren un Brain indexado (ejecuta grasp_brain_index primero) — marcado en su descripción con frases como "from the brain index". Algunas hacen llamadas de red externas: GitHub Issues / DORA / estado de CI / deps.dev (grasp_issues, grasp_jira_issues, grasp_dora, grasp_ci_status, grasp_deps_dev) necesitan un token; grasp_vulnerabilities consulta OSV.dev, NIST NVD y Socket.dev; grasp_vuln_watch ejecuta re-escaneos programados; grasp_adr llama al proveedor de IA que configures. grasp_apply_refactor y grasp_rename son las únicas herramientas que escriben en disco (desactivadas por defecto — dry_run / apply: false es el valor predeterminado).

Análisis Principal

HerramientaQué hace
grasp_analyzeAnálisis completo de cualquier repositorio o ruta local — devuelve session_id para consultas de seguimiento
grasp_sessionsLista sesiones activas (persisten 7 días, sobreviven reinicios)
grasp_diffCompara dos instantáneas — ¿qué cambió entre análisis?
grasp_watchRe-analiza un directorio y compara con una ejecución anterior
grasp_rules_checkEjecuta reglas de arquitectura grasp.yml e informa violaciones
grasp_config_checkValida una sesión contra reglas de arquitectura — devuelve violaciones

Inteligencia de Archivos y Código

HerramientaQué hace
grasp_file_deps¿De qué depende este archivo?
grasp_dependents¿Qué se rompe si cambio este archivo?
grasp_cycles¿Hay dependencias circulares?
grasp_architecture¿Qué capas tiene este código base?
grasp_hotspots¿Qué archivos son más arriesgados de tocar?
grasp_metricsLíneas, complejidad, fan-in/fan-out por archivo
grasp_find_path¿Cómo se conecta el archivo A con el archivo B?
grasp_patterns¿Qué patrones de diseño están en uso?
grasp_unusedCódigo muerto — definido pero nunca llamado
grasp_explainExplicación en lenguaje sencillo de cualquier archivo o función
grasp_refactorPlan de refactorización paso a paso para un archivo o sesión
grasp_suggestSugerencias de refactorización clasificadas por relación esfuerzo-impacto
grasp_onboardRuta de lectura ordenada para nuevos ingenieros que entran a un área del código
grasp_typesCobertura de anotaciones de tipo — prioriza archivos con alto fan-in que carecen de tipos
grasp_similarityClústeres duplicados y grupos de clonación de código clasificados
grasp_staleArchivos activos pero abandonados — bajo cambio, alto fan-in, sin contraparte de pruebas
grasp_change_riskPuntuación de riesgo 0–100 para un conjunto de archivos modificados

Seguridad y Cumplimiento

HerramientaQué hace
grasp_securitySecretos codificados, riesgos de inyección, patrones peligrosos
grasp_sbomSBOM en CycloneDX 1.4 o SPDX 2.3 JSON
grasp_sarifExportación SARIF 2.1.0 para GitHub Code Scanning
grasp_licenseLicencias de dependencias — marca copyleft y desconocidas
grasp_pii_traceTrazado BFS desde archivos fuente de PII hasta todos los consumidores
grasp_dutiesSeparación de funciones — archivos que inician y aprueban
grasp_reg_impactRadio de impacto de cambios regulatorios (GDPR/HIPAA/SOX/PCI-DSS)
grasp_env_varsTodas las lecturas de variables de entorno — marca variables no documentadas y solo de prueba
grasp_feature_flagsTodas las lecturas de feature flags (LaunchDarkly, GrowthBook, flags de variables de entorno)

Equipo y DevOps

HerramientaQué hace
grasp_pr_commentGenera comentario de salud de PR con radio de impacto para archivos modificados
grasp_pr_reviewPublica comentarios de revisión en línea en un PR de GitHub en líneas de alta severidad
grasp_commitsConteo de commits para los últimos 7d y 30d
grasp_ci_statusÚltima ejecución de GitHub Actions — pasando/fallando/en progreso
grasp_doraMétricas DORA — Frecuencia de despliegue, tiempo de entrega, CFR, MTTR
grasp_adrRegistro de Decisión de Arquitectura en formato MADR impulsado por IA
grasp_embedGenera iframe, insignia README, fragmento React para compartir
grasp_timelineÚltimos N commits con archivos modificados por commit + matriz de co-cambio
grasp_contributorsPropiedad por archivo, factor de bus, principales contribuyentes
grasp_coverageSuperposición de cobertura de pruebas — ¿qué archivos carecen de pruebas?
grasp_issuesMapea Issues de GitHub a los archivos que mencionan
grasp_jira_issuesMapea issues de Jira a archivos fuente mediante clave de proyecto
grasp_service_graphGrafo de dependencias a nivel de servicio desde OTEL / JSON de trazas personalizado
grasp_deps_devDependientes del ecosistema vía deps.dev — cuántos paquetes dependen de este repositorio

Cerebro / Inteligencia (v3.16.0)

HerramientaQué hace
grasp_brain_indexAnaliza y persiste un repositorio en el cerebro SQLite local
grasp_brain_status¿Qué está indexado en el cerebro y cuándo?
grasp_contextContexto rico de archivo — capa, complejidad, acoplamiento, seguridad, dependientes, dependencias
grasp_arch_diffCompara estado actual vs línea base del cerebro — detecta degradaciones
grasp_askHaz una pregunta en lenguaje natural sobre tu arquitectura

Núcleo de Grafo (Kuzu — v3.16.0)

HerramientaQué hace
graph_queryEjecuta consultas Cypher de solo lectura contra el grafo persistente de llamadas función/archivo
call_chainTraza cadenas de llamadores y llamados para cualquier función, hasta profundidad configurable
type_propagationEncuentra todas las funciones que comparten un tipo de retorno y sus vecinos de llamada
function_graphRenderiza un subgrafo Mermaid / DOT / JSON centrado en cualquier función nombrada

Análisis Avanzado

HerramientaQué hace
grasp_dead_packagesDependencias npm en package.json pero nunca importadas
grasp_runtime_callsFusiona una traza de ejecución en vivo con aristas estáticas — rutas calientes reales
grasp_db_couplingMapa de acoplamiento ORM/SQL-a-tabla — tablas dios, archivos de alto acoplamiento
grasp_migration_planPlan por fases ordenado topológicamente para reemplazar un paquete/módulo
grasp_api_surfaceSuperficie API unificada desde OpenAPI, GraphQL, rutas Express/FastAPI
grasp_eventsEmisores y suscriptores de eventos — emisiones huérfanas, suscripciones fantasma
grasp_perfConsultas N+1, I/O síncrono, serialización JSON en bucles
grasp_bundleTreemap de tamaño de bundle — archivos más grandes por categoría de tamaño
grasp_dep_impactImpacto de actualizar una dependencia en todos los archivos
grasp_cross_repoCompara dos sesiones — archivos compartidos, funciones divergentes
grasp_diagramGenera diagramas de flujo Mermaid o diagramas C4 desde el grafo de dependencias

Vertical Aeroespacial / Crítico para Seguridad

HerramientaQué hace
grasp_req_traceTrazabilidad de requisitos — escanea etiquetas @REQ-NNN contra un CSV
grasp_anomalyInvestigación de anomalías — radio de impacto BFS, seguridad en cadena de llamadas, resumen en lenguaje sencillo
grasp_reuseEvaluador de reutilización de software — matriz de compatibilidad Rojo/Ámbar/Verde
grasp_safety_traceRastreador de restricciones de seguridad — encuentra rutas que evaden todas las compuertas de seguridad
grasp_multilangGrafo de llamadas entre lenguajes (Ada→C, Python→C, JS→WASM)
grasp_heritageGenealogía de software heredado — atajos de certificación de delta cero
grasp_icdMapeador ICD — empareja entradas del Documento de Control de Interfaz con código
grasp_ecssVerificador de cumplimiento ECSS-E-ST-40C (DI-01, DI-04, DI-07, DI-10, DI-15)

Vertical de Investigación en IA

HerramientaQué hace
grasp_run_diffDiff de ejecución de entrenamiento — hiperparámetros cambiados y código afectado
grasp_eval_coverageMapa de cobertura de evaluación — compuertas de seguridad sin cobertura de evaluación marcadas como críticas

Multi-Repositorio / Plataforma

HerramientaQué hace
grasp_org_graphGrafo de dependencias multi-repositorio a nivel de organización con aristas entre repos
grasp_api_diffDetector de cambios de API que rompen — símbolos exportados eliminados/cambiados
grasp_pluginsMapa de puntos de extensión — interfaces de plugins, puntos de enganche, patrones de estrategia
grasp_semverAplicador de versionado semántico — valida el salto semver para el conjunto de cambios
grasp_abi_diffVerificador de estabilidad ABI/API — puntuación de estabilidad 0–100
grasp_subsystemsMapa de límites de subsistemas Kernel/OS
grasp_kconfigAnálisis de condicionales Kconfig/tiempo de compilación — mapa de uso CONFIG_*
grasp_irqGrafo de dependencias IRQ/interrupción — llamadas bloqueantes, asignación en manejadores
grasp_patch_impactAnalizador de impacto de series de parches — clasifica parches por radio de impacto + complejidad
grasp_good_first_issuesGenerador de buenos primeros issues — archivos aislados, de baja complejidad, sin pruebas
grasp_api_stabilityPuntuación de estabilidad de API (0–100) entre dos sesiones
grasp_fork_diffAnálisis de divergencia de forks — archivos divergidos/idénticos/solo-fork
grasp_latencyDetección de puntos calientes de latencia en finanzas/trading
grasp_model_riskAuditor de riesgo de modelos financieros

Inteligencia de Código (v3.16.0)

HerramientaQué hace
grasp_diff_symbolsMapea hunks de git diff a funciones — radio de impacto de un PR antes de fusionar
grasp_exec_flowFlujo de ejecución BFS desde cualquier punto de entrada con aristas STEP_IN_PROCESS + gráfico Mermaid
grasp_skillmdAuto-genera fragmento SKILL.md / CLAUDE.md desde la sesión de análisis
grasp_hooksGenera hook PostToolUse de .claude/settings.json + .cursor/rules/grasp.mdc
grasp_mroOrden de Resolución de Métodos — linealización C3 (Python), MRO para jerarquías Ruby/Java
grasp_communitiesDetección de comunidades Leiden/Louvain — identifica contextos delimitados y candidatos a microservicios
grasp_contractsAnálisis de contratos multi-repositorio — exportaciones del proveedor vs uso del consumidor, violaciones + % de cobertura

Inteligencia de Análisis (v3.16.0)

HerramientaQué hace
grasp_confidencePuntúa cada conexión entre archivos 0–1 (import explícito=1.0, misma carpeta=0.8, entre carpetas=0.6, baja frecuencia=0.4)
grasp_wikiAuto-genera una wiki en markdown: index.md + páginas por carpeta + api.md ordenadas por número de llamadores
grasp_registry_listLista todos los repos indexados en el cerebro con grado de salud, conteos de archivos/funciones e IDs de sesión activos
grasp_registry_statusSalud del registro: conteo indexado, conteo de sesiones, distribución de grados
grasp_resolve_receiverResuelve la clase concreta para cada método de clase — a qué se refiere self/this en Python, JS, Java, Ruby

Búsqueda Semántica, Renombrado y Rutas (v3.16.0)

HerramientaQué hace
grasp_searchBúsqueda semántica híbrida — BM25 FTS5 + embeddings vectoriales 384D (Xenova/all-MiniLM-L6-v2) fusionados con Reciprocal Rank Fusion. Los resultados incluyen agrupación processes[] por flujo de ejecución. Soporta fan-out @groupName en múltiples repos
grasp_renameRenombrado de símbolos en todo el código base consciente del grafo usando aristas del almacén del cerebro para encontrar cada referencia. apply: false (predeterminado) devuelve un diff de prueba; apply: true escribe cambios en disco
grasp_route_mapEscanea definiciones de rutas HTTP (Express/Fastify/Hono, FastAPI/Flask, Gin) — mapea cada ruta a su función manejadora con ubicación de archivo
grasp_api_impactDada una ruta o nombre de manejador, devuelve todos los llamadores, servicios posteriores y radio de impacto usando aristas del grafo del cerebro
grasp_tool_mapEscanea definiciones de herramientas MCP (server.tool / server.registerTool) y definiciones de servicios gRPC — devuelve un mapa de contratos de servicio
grasp_shape_checkPara cualquier función, traza tipos de parámetros y tipos de retorno en todos los sitios de llamada desde el índice del cerebro; marca discrepancias en sitios de llamada
grasp_group_addAgrega una fuente de repositorio a un grupo nombrado en ~/.grasp/groups.json para fan-out @groupName multi-repositorio
grasp_group_listLista todos los grupos nombrados y sus repos miembros desde ~/.grasp/groups.json

Inteligencia de Grafo (v3.16.0)

HerramientaDescripción
grasp_graph_schemaIntrospección del esquema v3 de Kuzu — definiciones de tablas de nodos/aristas (File, Function, Class, Interface, Method, Constructor, TestFile + 12 tipos de aristas incluyendo TESTS y COVERS) con conteos de filas en vivo
grasp_type_propagationInferencia de tipos entre archivos vía orden topológico de Kahn sobre el grafo de imports; devuelve tipos inferidos principales con confianza 0–1
grasp_orm_mapRastreador de consultas ORM — Prisma, TypeORM, Sequelize, SQLAlchemy; resultados agrupados por modelo con sitios de llamada, operaciones, frecuencia
grasp_detect_changesGit diff → impacto de símbolos: archivos modificados, funciones afectadas, flujos de proceso impactados, nivel de riesgo LOW/MEDIUM/HIGH/CRITICAL
grasp_generate_agents_mdGenera AGENTS.md enriquecido desde la sesión del cerebro — comunidades funcionales, procesos de ejecución, grado de salud, problemas principales
grasp_generate_skillsArchivos .claude/skills/generated/<community>.md por comunidad — archivos clave, puntos de entrada, dependencias entre áreas
Análisis de grafos y contexto LLM (v3.18.0)
HerramientaQué hace
grasp_hub_nodesArchivos con mayor conectividad Top-N por fan-in + fan-out (centralidad de grado)
grasp_bridge_nodesCentralidad de intermediación de Brandes. Muestrea automáticamente 100 fuentes para repos > 500 nodos
grasp_surprising_connectionsEnlaces raros entre capas marcados por rareza ponderada por frecuencia
grasp_knowledge_gapsArchivos aislados, puntos críticos sin probar, comunidades débiles
grasp_suggested_questions5–10 preguntas de revisión generadas automáticamente que combinan todo lo anterior
grasp_minimal_contextOrientación de repos en menos de 100 tokens: la primera llamada del LLM
grasp_traverseBFS consciente del presupuesto de tokens desde cualquier nodo inicial
grasp_semantic_searchSimilitud coseno sobre firmas de funciones mediante @xenofon/transformers
grasp_apply_refactorEjecuta operaciones de renombrado con vista previa dry_run por defecto
grasp_architecture_overviewInforme combinado de comunidades + hubs + preguntas de revisión
grasp_export_graphmlExportación XML GraphML compatible con yEd / Gephi
grasp_export_cypherSentencias CREATE de Neo4j que reproducen el grafo
grasp_export_obsidian.canvas JSON para Obsidian Canvas con disposición de columnas por capa
grasp_export_dotGraphviz DOT (digraph) — clústeres por capa, recuentos de enlaces, se renderiza en GitHub
grasp_export_mermaidMermaid graph LR — se renderiza en línea en GitHub, GitLab, Notion, Obsidian
grasp_export_d2Terrastruct D2 — direction: right con contenedores de capa, se renderiza mediante CLI de d2
grasp_export_plantumlDiagrama de clases PlantUML — funciona en Confluence, Jira, IntelliJ, VS Code
grasp_export_dgmlXML de grafo dirigido de Visual Studio — se abre nativamente en la ventana de arquitectura de VS
grasp_export_gexfGEXF 1.3 nativo de Gephi con atributos de nodo de capa/líneas/complejidad/cambios
grasp_export_drawioXML de draw.io / diagrams.net — disposición de cuadrícula, editable en app.diagrams.net
grasp_export_csvPaquete CSV de tres hojas: archivos, conexiones, problemas — se abre en cualquier hoja de cálculo

Recursos MCP (v3.16.0) — 8 URIs grasp:// en vivo para acceso directo a recursos: grasp://repos · grasp://setup · grasp://repo/{id}/context · grasp://repo/{id}/clusters · grasp://repo/{id}/processes · grasp://repo/{id}/schema · grasp://repo/{id}/cluster/{name} · grasp://repo/{id}/process/{name}

Prompts MCP (v3.16.0) — detect_impact (cambios → símbolos → procesos → riesgo → alcance de pruebas) · generate_map (repos → analizar → diagrama → comunidades → wiki)


Integración CI/CD

GitHub Actions — Comentarios automáticos en PR

# .github/workflows/grasp.yml
name: Grasp Health Check
on:
  pull_request:
    types: [opened, synchronize, reopened]
jobs:
  health:
    uses: ashfordeOU/grasp/.github/workflows/grasp-health.yml@main

El flujo de trabajo publica y actualiza un comentario en cada PR:

MétricaValor
Puntuación de salud████████░░ 82/100
Calificación🟢 A
Archivos142 (891 funciones)
Problemas de arquitectura3
Dependencias circulares0 ✓
Seguridad0 ✓
Archivos modificados5 archivos de código en este PR

Reglas de arquitectura (grasp.yml)

rules:
  - min_health_score: 70       # fail CI if score drops below 70
  - max_blast_radius: 20       # flag any file affecting 20+ others

Ejecute localmente con grasp . --check, o use la plantilla de GitHub Actions.

Puerta de CI basada en CLI

grasp . --report   # Writes grasp-report.json, exit 0 = pass, exit 1 = fail
- name: Grasp health gate
  run: |
    PASSED=$(cat grasp-report.json | jq '.ci.passed')
    SCORE=$(cat grasp-report.json | jq '.ci.score')
    echo "Health score: $SCORE"
    if [ "$PASSED" != "true" ]; then
      cat grasp-report.json | jq '.ci.failures'
      exit 1
    fi

Consulte docs/api-schema.md para el esquema de exportación completo.

Carga SARIF (GitHub Code Scanning)

grasp . --format=sarif   # Writes grasp-results.sarif
- uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: grasp-results.sarif

Funciones avanzadas

⚡ Paleta de comandos

Cmd+K (Mac) / Ctrl+K (Windows) — busque archivos, salte a funciones, navegue a problemas. Seleccionar un resultado desplaza el grafo hacia ese nodo.

🔍 Buscador de rutas

Seleccione dos archivos en el panel de detalles para encontrar la cadena de dependencias más corta entre ellos.

🏛️ Motor de reglas de arquitectura

Defina reglas de dependencia personalizadas FORBIDDEN (p. ej., utils → services está PROHIBIDO). Las violaciones se marcan como problemas y persisten entre sesiones.

📅 Historial y capturas

Cada análisis se guarda automáticamente. Haga clic en HISTORIAL en el panel derecho para comparar las puntuaciones de salud a lo largo del tiempo con un gráfico de chispa D3 y un control deslizante de rango.

🚫 Patrones de ignorado personalizados

⋯ → 🚫 Ignore Patterns — agregue exclusiones de directorio (p. ej., generated/, __mocks__/). Persiste entre sesiones. Los valores predeterminados integrados (node_modules, dist, .git) no se pueden eliminar.

📤 Exportación de informes

JSON, Markdown, texto plano, SVG, SARIF 2.1.0, más 11 formatos de grafo portátiles: GraphML (yEd/Gephi), Cypher (Neo4j), Obsidian Canvas, DOT (Graphviz), Mermaid, D2 (Terrastruct), PlantUML, DGML (Visual Studio), GEXF (Gephi), draw.io y un paquete CSV de tres hojas (archivos / conexiones / problemas). Cada formato de grafo está a un clic en el menú de Exportación de la aplicación y a una herramienta MCP de distancia (grasp_export_*). Esquema completo en docs/api-schema.md.

✨ Paridad con el panel de equipo v3.19.0

Paridad visual y de UX completa entre el panel de equipo y la aplicación principal de Grasp:

  • Revestimiento de marca verde azulado — todos los tokens de acento índigo reemplazados por verde azulado #00d4aa, coincidiendo exactamente con el sistema de diseño de Grasp.
  • Iconos SVG de Lucide — los botones de emoji en la barra superior y el modal de ayuda reemplazados por iconos SVG en línea adecuados en toda la aplicación.
  • Autenticación de múltiples proveedores — Token de GitLab, GitHub Enterprise, Bitbucket, Azure DevOps y Gitea agregados al selector de autenticación, compartiendo las mismas claves de localStorage que la aplicación principal (grasp_gitlab_token, grasp_bb_username, grasp_ghe_token, etc.).
  • Menú Más en móvil — a ≤860px, los botones secundarios de la barra superior se colapsan en un menú desplegable ···. La barra de autenticación se ajusta con flex-wrap en pantallas estrechas.
  • Elemento emergente de atajos de teclado — botón flotante ? (kbd-fab) muestra un elemento emergente al pasar el cursor o hacer clic con los atajos del panel (/ para enfocar la entrada, T para el tema, Esc para cerrar, ? para alternar).

✨ Mejoras de UX v3.18.0

  • Chips de prueba — el estado vacío ofrece chips de inicio rápido expressjs/express, lodash/lodash, sindresorhus/got para demostraciones instantáneas.
  • Indicador de token cargado — punto verde + leyenda "Token cargado — 5,000 req/h" cuando se detecta un token guardado; de lo contrario, "60 req/h · Agregar token →".
  • URLs de captura — 📸 Copy snapshot link empaqueta el análisis completo en un fragmento #snapshot=<gz-base64>. El destinatario lo carga al instante, sin conexión, sin llamadas API.
  • Comparar dos repos — Menú Más → Comparar abre un modal con dos entradas de URL y muestra en paralelo salud/archivos/problemas/hubs.
  • Recuperación de límite de velocidad a mitad de análisis — cuando GitHub devuelve 403/429 durante la obtención, una tarjeta de recuperación reemplaza el spinner con una cuenta regresiva para restablecer, entrada de contraseña para el token y botones Reanudar / Reintentar / Cancelar.
  • Gestos táctiles en móvil — pellizcar para hacer zoom + arrastrar para desplazar en el grafo SVG. El panel derecho se colapsa automáticamente por debajo de 768px para que el grafo ocupe todo el ancho.
  • Mejores mensajes de error — 401 explica cómo actualizar el token y el enlace de alcance; 404 incluye ejemplos de corrección; los errores de red mencionan Abrir carpeta; cada error tiene un botón ↻ Reintentar.
  • Persistencia por repositorio — los patrones de ignorado y el modo de color ahora se guardan por repositorio mediante grasp_ignore_patterns_<owner/repo> y grasp_color_mode_<owner/repo>. Se restauran automáticamente en el próximo análisis del mismo repositorio.
  • Elemento emergente flotante ? — sugerencia de atajos de teclado en la parte inferior derecha con cristal esmerilado.
  • Menú de exportación mejorado — JSON, Markdown, SBOM (CycloneDX 1.4 / SPDX 2.3), SARIF 2.1.0, GraphML, Copiar URL de captura.

🤖 Soporte de herramientas de codificación con IA

Grasp funciona mediante MCP con todas las herramientas principales de codificación por IA: Claude Code, Cursor, Cline, Roo Code, Kilo Code, OpenCode, Trae, Grok CLI, Codex CLI, Droid

Consulte ai-tools/ para guías de configuración por herramienta.

🔖 Insignia de salud

![Grasp Health](https://grasp.ashforde.org/badge/owner/repo.svg)

@grasp-bot en PRs

Comente @grasp-bot analyze en cualquier PR — Grasp publica un informe de salud completo en línea.


Extensión de VS Code

Instalación: Descargue grasp-vscode-3.21.0.vsix desde GitHub Releases, luego en VS Code ejecute Extensions: Install from VSIX… (Cmd+Shift+P).

  • Analiza automáticamente el espacio de trabajo al inicio y vuelve a analizar al guardar archivos (debounce de 2 s)
  • La barra de estado muestra ↑ N deps ↓ M dependents para el archivo activo
  • Se desplaza al archivo activo en cada cambio de editor
  • Muestra problemas de seguridad y violaciones de arquitectura en el panel de problemas (líneas onduladas)
  • 4 botones de modo de color en el encabezado del panel: Capa / Carpeta / Cambios / Complejidad
  • Insignia de puntuación de salud en el encabezado del panel
  • Haga doble clic en cualquier nodo para abrir el archivo en el editor
  • Haga clic derecho en cualquier archivo → Grasp: Analizar archivo para detalles instantáneos
  • Enlaces dirigidos: azul = importaciones salientes, verde = dependientes entrantes
  • Información sobre herramientas enriquecida: complejidad, recuento de cambios, contribuyente principal por archivo

Atajos de teclado

TeclaAcción
EnterAnalizar repositorio
Cmd+K / Ctrl+KAbrir paleta de comandos
+ / -Acercar/alejar
Shift+clickSeleccionar múltiples nodos
EscapeCerrar modal / paleta de comandos
TRecorrer 19 temas
?Alternar el elemento emergente de atajos de teclado (abajo a la derecha)

Ayuda en la aplicación: cada pantalla de la aplicación web tiene un botón flotante ? abajo a la derecha que abre un elemento emergente que lista todos los atajos y pestañas. El panel de equipo (team-dashboard.html) incluye su propio modal de ayuda. Si alguna vez se siente perdido, presione ?.


Solución de problemas

ProblemaCausaSolución
El análisis se detiene en "Archivos encontrados: N"Límite de velocidad no autenticado de GitHub (60 req/h)Haga clic en 🔑 → pegue un token de acceso personal (5,000 req/h). El token permanece solo en localStorage
Comando grasp-mcp-server no encontradoEl paquete no está en PATHUse npx grasp-mcp-server en su lugar, o npm install -g grasp-mcp-server
El puerto 7332 ya está en usoOtra instancia de Grasp en ejecuciónlsof -ti:7332 | xargs kill -9 y luego vuelva a ejecutar
grasp_semantic_search lento en la primera llamadaEl modelo de incrustaciones se está descargando (~30 MB)La primera llamada tarda 30-60 s; las siguientes son instantáneas. O configure GRASP_DISABLE_EMBEDDINGS=1 para el respaldo
Falló la descarga de la gramática WASMCDN bloqueado / sin conexiónConfigure GRASP_GRAMMAR_DIR=/path/to/local/grammars para usar copias locales
Permission denied: ~/.grasp/brain.dbMúltiples usuarios, umask restrictivochmod 644 ~/.grasp/brain.db o configure GRASP_BRAIN_DIR=/tmp/grasp
GitHub Actions: "Repositorio no encontrado"El token carece del alcance repoPara repos privados, el token necesita repo (no solo public_repo)
Elemento emergente de la extensión del navegador en blancoEl service worker de MV3 no está registradoRecargue desde chrome://extensions → Modo desarrollador → ↺
Extensión de Safari ocultaLas extensiones cargadas lateralmente están deshabilitadasSafari → Desarrollo → Permitir extensiones sin firmar
Chrome Web Store: "Elemento no actualizable"La extensión está en revisión de CWSEspere ~24-48 h; no es un error
grasp setup no escribe nadaNo se detectó configuración de editorVerifique si existe .claude/, .cursor/, .windsurf/, etc. — al menos uno debe existir
403 a mitad del análisis con spinnerSe alcanzó el límite de velocidad durante la obtención de archivosNuevo: ahora aparece una tarjeta de recuperación con cuenta regresiva + entrada de token. Pegue el token → Reanudar

Glosario

TérminoEspañol sencillo
MCP (Model Context Protocol)Un protocolo abierto para que los asistentes de IA llamen herramientas. El servidor MCP de Grasp expone 150 herramientas a Claude Code, Cursor, etc.
AST (Abstract Syntax Tree)Una representación en árbol del código fuente. Grasp usa tree-sitter para construirlos en 35 lenguajes.
tree-sitterUna biblioteca de análisis que construye ASTs de forma incremental y precisa. Grasp incluye bindings nativos para 19 lenguajes
fan-in / fan-outCuántos otros archivos importan este archivo (in) frente a cuántos importa él (out). Fan-in alto = hub crítico
Centralidad de intermediación de BrandesAlgoritmo que encuentra archivos situados en la mayoría de los "caminos más cortos" entre otros — puntos de estrangulamiento
Leiden / LouvainAlgoritmos que agrupan nodos densamente conectados en comunidades (detección de candidatos a microservicios)
CypherEl lenguaje de consulta de grafos usado por Kuzu. Grasp te permite ejecutar consultas Cypher de solo lectura mediante graph_query
KuzuUna base de datos de grafos embebida optimizada para consultas analíticas. Almacena el grafo de llamadas de Grasp en ~/.grasp/graph/
BM25Una función de ranking de búsqueda por palabras clave (el estándar en motores de búsqueda). Usada por grasp_search para coincidencias de texto
RRF (Reciprocal Rank Fusion)Algoritmo para fusionar resultados de búsqueda por palabras clave y vectorial en una única lista ordenada
Brain storeLa caché local SQLite de Grasp en ~/.grasp/brain.db — archivos, aristas, seguridad, acoplamiento, churn
Radio de explosión (blast radius)El conjunto de archivos afectados cuando un archivo cambia — seguido transitivamente a través del grafo de importaciones
Complejidad ciclomáticaUna puntuación de cuántas ramas/caminos tiene una función. Mayor = más difícil de probar
Búsqueda híbridaBM25 (palabras clave) + vectorial (semántica) combinados mediante RRF para lo mejor de ambos mundos
SnapshotUn estado de arquitectura congelado guardado en brain.db; se usa para detectar desviaciones a lo largo del tiempo
Recursos MCPURIs como grasp://repos que exponen datos en vivo a clientes MCP sin una llamada de herramienta
Prompts MCPFlujos guiados preconstruidos que componen múltiples herramientas (p. ej., detect_impact encadena 5 herramientas)
Comandos de barraArchivos .claude/commands/*.md preconstruidos que dan a Claude Code botones de acceso directo

19 Temas

Sistema de temas completo con selector al pasar el cursor y ciclo al hacer clic:

Dark · Light · Matrix · Amber Terminal · Dracula · Nord · Tokyo Night · Catppuccin · Gruvbox · Obsidian Gold · Midnight Diamond · Carbon · Noir · Synthwave · Ocean Depth · Forest · Sunset · High Contrast · Solarized Light

La elección de tema persiste entre sesiones y se comparte entre Grasp y Team Dashboard.


Lenguajes Soportados

JavaScript · TypeScript · Python · Go · Java · Rust · C · C++ · C# · Ruby · PHP · Swift · Kotlin · Scala · Vue · Svelte · Dart · Elixir · Erlang · Haskell · Lua · R · Julia · Perl · Shell · PowerShell · F# · OCaml · Clojure · Elm · VBA · Groovy · Ada · Zig


Límites de Tasa de la API de GitHub

AutenticaciónSolicitudes/hora
Sin token60
Personal Access Token5,000
GitHub App5,000 por instalación

Arquitectura

┌─────────────────────────────────────────────────────────────────────────┐
│                          Analysis Engine  (mcp/src/)                    │
│                                                                         │
│  ┌──────────────────────┐   ┌──────────────────────────────────────┐   │
│  │  AST Parser          │   │  Analyzer + Pipeline                 │   │
│  │  tree-sitter WASM    │   │  · Dependency extraction             │   │
│  │  35 languages        │   │  · Cyclomatic complexity             │   │
│  │  native bindings     │   │  · Layer classification              │   │
│  └──────────────────────┘   │  · Security pattern detection        │   │
│                              │  · Dead code & duplicate analysis    │   │
│  ┌──────────────────────┐   │  · Scope resolver (3-tier, 0.95→0.50)│   │
│  │  Source Adapters     │   │  · Type propagator (Kahn topo-sort)  │   │
│  │  GitHub  · GitLab    │   │  · ORM tracker (Prisma/TypeORM/SA)   │   │
│  │  Azure   · Bitbucket │   └──────────────────────────────────────┘   │
│  │  Gitea   · Local FS  │                                               │
│  └──────────────────────┘   ┌──────────────────────────────────────┐   │
│                              │  Brain Store  (~/.grasp/brain.db)    │   │
│                              │  SQLite · repos / files / edges      │   │
│                              │  FTS5 full-text · 384D vectors       │   │
│                              │  Execution process tags (BFS)        │   │
│                              └──────────────────────────────────────┘   │
│                              ┌──────────────────────────────────────┐   │
│                              │  Graph Store  (~/.grasp/graph/)      │   │
│                              │  Kuzu  —  Schema v3                  │   │
│                              │  Nodes: File · Function · Class      │   │
│                              │         Interface · Method           │   │
│                              │         Constructor · TestFile       │   │
│                              │  Edges: CALLS(conf) · IMPORTS        │   │
│                              │         EXTENDS · IMPLEMENTS         │   │
│                              │         HAS_METHOD · OVERRIDES       │   │
│                              │         QUERIES · STEP_IN_PROCESS    │   │
│                              │         TESTS · COVERS               │   │
│                              │  Read-only Cypher via graph_query    │   │
│                              └──────────────────────────────────────┘   │
└────────────────────────────────────┬────────────────────────────────────┘
                                     │
           ┌─────────────────────────┼─────────────────────────┐
           ▼                         ▼                         ▼
┌──────────────────────────┐  ┌──────────────────────────┐  ┌──────────────────────┐
│      Browser Apps        │  │     MCP Server + CLI     │  │   IDE Extensions     │
│                          │  │    (grasp-mcp-server)    │  │                      │
│  index.html              │  │                          │  │  VS Code             │
│  · React + D3            │  │  150 tools               │  │  JetBrains           │
│  · 10 graph views        │  │  8 MCP Resources         │  │  Zed                 │
│  · AI Chat (11 prov)     │  │  2 guided Prompts        │  │  Neovim · Vim        │
│  · Confidence overlay    │  │  Brain (SQLite+Kuzu)     │  │  Emacs               │
│  · Graph query modal     │  │  Hybrid search           │  │  Eclipse · Continue  │
│  · Fn-level canvas       │  │  Graph analytics(v3.18)  │  │                      │
│  · DB coupling tab       │  │  ORM map · Change risk   │  │  Browser Extensions  │
│  · Compare mode (v3.18)  │  │  Route/API map           │  │  Chrome · Firefox    │
│  · Snapshot URLs (v3.18) │  │  @group fan-out          │  │  Safari              │
│  · PII detection         │  │  Arch diff · Hooks       │  │                      │
│  · 19 themes             │  │  grasp setup             │  │  Setup auto-config   │
│  · Try-it chips          │  │  (Claude/Cursor/         │  │  grasp setup [path]  │
│  · Token indicator       │  │   Windsurf/Codex/        │  │  writes mcp.json +   │
│                          │  │   OpenCode)              │  │  hooks for all       │
│  team-dashboard.html     │  │  --watch --timeline      │  │  detected editors    │
│  · Multi-repo health     │  │  --format=sarif          │  │                      │
│  · DORA + sparklines     │  │  --pr-comment            │  │                      │
│  · Patterns/Env/Flags    │  │  --http (HTTP server)    │  │                      │
│  · Registry panel        │  │                          │  │                      │
│  · WebSocket rooms       │  │                          │  │                      │
└──────────────────────────┘  └──────────────────────────┘  └──────────────────────┘
           │                         │                         │
           └─────────────────────────┴─────────────────────────┘
                                     │
┌────────────────────────────────────▼────────────────────────────────────┐
│                           Integrations                                  │
│                                                                         │
│  CI/CD             Bots & Alerts       AI Coding Tools   Project Mgmt  │
│  GitHub Action     Slack Bot           Claude Code       Jira          │
│  GitLab CI         Discord Bot         Cursor            Linear        │
│  Bitbucket Pipe    Teams Bot           Windsurf · Codex  Raycast       │
│  CircleCI Orb      @grasp-bot          Copilot Extension               │
│  Jenkins Plugin                        Amazon Q · Cline                │
│                                        GPT Actions · Roo               │
│                                                                         │
│  Self-hostable SaaS API (saas/) · badge service · GitHub OAuth        │
└─────────────────────────────────────────────────────────────────────────┘

Aplicación de navegador: cero dependencias que instalar. React 18, D3.js 7, Babel desde CDNs. Las gramáticas WASM de tree-sitter se cargan de forma diferida y se cachean en IndexedDB.

Servidor MCP: Node.js 18+. Bindings nativos de tree-sitter para extracción de funciones basada en AST y complejidad ciclomática en 19 lenguajes: Python, Go, Java, Kotlin, Rust, C, C++, C#, Ruby, JavaScript, TypeScript, TSX, Swift, PHP, Scala, Zig, Bash, Elixir, Julia.

Brain store: dos almacenes persistentes — SQLite en ~/.grasp/brain.db (metadatos de archivos, acoplamiento, seguridad) y base de datos de grafos Kuzu en ~/.grasp/graph/ (grafo de llamadas de funciones, importaciones, aristas de tipo de retorno — consultable mediante Cypher).

Grafo de conocimiento (servidor MCP): tres nuevos grupos de módulos bajo mcp/src/ — ingest/ (PDF, DOCX, XLSX, HTML, OCR de imágenes, audio/vídeo mediante Whisper local, YouTube, URL; los analizadores pesados son dependencias opcionales de carga diferida), llm/ (provider.ts — una capa local-primero de múltiples proveedores que detecta automáticamente Ollama antes que cualquier clave en la nube, con un respaldo determinista sin credenciales; soporta Anthropic/OpenAI/Gemini/DeepSeek/Kimi/Azure/Bedrock/Ollama), y semantic/ (SQLite kg.db de entidades y relaciones EXTRACTED/INFERRED con localizadores de origen, recuperación híbrida BM25 + vectorial, trazado de rutas BFS, detección de hubs/nodos dios). Expuesto mediante grasp_ingest / grasp_kg_* / grasp_llm_status; opcionalmente compartido entre un equipo por HTTP (GRASP_HTTP_MCP=1, GRASP_HTTP_API_KEY opcional, puerto 7333, /health).

Extensiones de IDE: VS Code (vscode-extension/), JetBrains (jetbrains-plugin/), Zed, Neovim, Vim, Emacs, Eclipse, Continue — todas respaldadas por el mismo servidor MCP.

Extensiones de navegador: Chrome, Firefox y Safari (browser-extension/, safari-extension/) — MV3, inyectan un botón flotante de Grasp en las páginas de GitHub y GitLab.


Versión y Auto-actualización

Tanto index.html como team-dashboard.html muestran la versión actual (v3.21.0) en el pie de página. Al cargar, comprueban silenciosamente el registro npm para ver si hay una versión más reciente. Si la encuentran, aparece un toast descartable:

  • Actualizar ahora — obtiene el nuevo HTML de GitHub, lo descarga y lo aplica inmediatamente
  • Más tarde — lo pospone durante 24 horas

Sin servidor, sin proceso en segundo plano.


Privacidad y Seguridad

Tu código permanece en tu máquina.

Aplicación de navegador:

  • Se ejecuta 100% en el navegador — sin servidor, sin proxy
  • Las llamadas a la API de GitHub/GitLab van directamente desde tu navegador al proveedor
  • Tu token vive solo en localStorage — nunca se envía a ningún sitio excepto al proveedor Git elegido
  • Sin analíticas, sin rastreo, sin cuentas
  • Toda la aplicación es un archivo HTML de código abierto — audítalo tú mismo

Servidor MCP:

  • Se ejecuta localmente como un subproceso — sin conexiones salientes excepto a la API de GitHub/GitLab
  • Sin telemetría, sin recopilación de datos
  • El análisis de directorios locales se lee y se descarta en memoria; el Brain store permanece en tu máquina en ~/.grasp/brain.db

Cadena de suministro:

  • Cada lanzamiento npm está firmado con procedencia SLSA (Nivel 2) mediante GitHub Actions OIDC
  • Cada imagen Docker (ghcr.io/ashfordeou/grasp) está firmada con firmas sin clave de Cosign, registradas en el libro público Sigstore Rekor

Política de privacidad completa: PRIVACY.md — cero recopilación de datos, declaración en lenguaje sencillo de lo que cada superficie (aplicación de navegador, servidor MCP, bot de CI, SaaS alojado) transmite y no transmite.

Verifica antes de instalar:

# npm package
npm install -g @sigstore/verify  # one-time
sigstore verify npm grasp-mcp-server@3.21.0

# Docker image
cosign verify \
  --certificate-identity-regexp="https://github.com/ashfordeOU/grasp/.github/workflows/publish.yml" \
  --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
  ghcr.io/ashfordeou/grasp:v3.21.0

Contribuir

Consulta CONTRIBUTING.md para la configuración, la estructura del código y la lista de verificación de PR.

¿Encontraste un error? Abre un issue

¿Añadir un lenguaje? Las fuentes de gramática de tree-sitter están en mcp/src/extractors/ — sigue el patrón existente para un nuevo archivo de lenguaje.

¿Añadir una herramienta MCP? Regístrala en mcp/src/index.ts siguiendo el patrón server.registerTool existente. Añade pruebas en mcp/tests/.


Licencia

Elastic License 2.0 — Copyright (c) 2026 Ashforde OÜ.

Gratis para usar, modificar y auto-alojar. No puedes ofrecer Grasp como un servicio alojado o gestionado, eliminar avisos de copyright, ni redistribuirlo bajo una marca diferente. Consulta LICENSE para los términos completos.


150 herramientas MCP · 35 lenguajes · 11 proveedores de IA + 200+ modelos · cero instalación · cero recopilación de datos

Grafos de dependencias, escáner de seguridad, métricas DORA y Grasp Brain — en todos los sitios donde escribes código.