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
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
🌐 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ón | Se ejecuta 100% en tu navegador — dos archivos HTML, sin paso de compilación |
| Sin recopilación de datos | Tu código nunca sale de tu máquina |
| Sin cuentas | Pega una URL y listo |
| Funciona sin conexión | Analiza carpetas locales sin internet |
| 35 idiomas | JS/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 MCP | Grafos 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 grafos | Grafo de fuerza, 3D, arquitectura, treemap, matriz, árbol (dendrograma), flujo (sankey), paquete, clúster (disjunto), mapa de calor |
| Cerebro Grasp | Almacén persistente SQLite + Kuzu — indexa una vez, consulta al instante. FTS5 + incrustaciones vectoriales 384D + consultas de grafo Cypher |
| Cadena de suministro firmada | Procedencia 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 equipo | Mapear la base de código en 60s, encontrar los puntos críticos más riesgosos, identificar buenos primeros problemas | chip Try expressjs/express → pestaña ISS + pestaña ACT |
| Gerente de ingeniería | Rastrear la salud en todos los repositorios del equipo, ver métricas DORA, identificar riesgos de factor de autobús | team-dashboard.html |
| Mantenedor de código abierto | Generar una wiki, etiquetar buenos primeros problemas, publicar comentarios de impacto de PR | grasp_wiki + Acción de GitHub grasp-pr-impact |
| Revisor de seguridad | Detectar secretos codificados, escanear dependencias en busca de CVEs, generar SBOM/SARIF | pestañ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 tokens | Servidor MCP: grasp_minimal_context → grasp_traverse |
| Desarrollador en incorporación | Obtener una ruta de lectura ordenada, explicaciones en inglés sencillo de cualquier archivo | grasp_onboard + grasp_explain |
| Contratista de refactorización | Planificar migraciones con orden topológico, previsualizar renombramientos, encontrar código duplicado | grasp_migration_plan + grasp_apply_refactor |
| CTO evaluando deuda técnica | Cuantificar la deuda en días de desarrollo, marcar puntos críticos heredados, justificar el presupuesto de reescritura | Puntuació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:
| Capacidad | Grasp |
|---|---|
| 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
🏛️ Diagrama de arquitectura — tu base de código por capas
📦 Treemap — archivos dimensionados por número de líneas
🏢 Panel de equipo — salud en todos tus repositorios de un vistazo
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
| IDE | Instalación |
|---|---|
| VS Code | Instalar (.vsix) — descarga grasp-vscode-3.21.0.vsix y ejecuta Extensiones: Instalar desde VSIX… (Cmd+Shift+P) |
| JetBrains | JetBrains Marketplace — busca Grasp en Configuración → Plugins |
| Raycast | Raycast Store — o busca Grasp en la tienda de extensiones de Raycast |
| Zed | Zed Extensions — o busca grasp en Zed → Extensiones |
Opción 4 — Extensión de navegador
| Navegador | Instalación |
|---|---|
| Chrome | Chrome Web Store |
| Firefox | Firefox Add-ons — ID: grasp@ashforde.org |
| Safari | GitHub 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:
| Canal | Estado | Enlace |
|---|---|---|
npm (grasp-mcp-server) | npm install -g grasp-mcp-server | |
| Registro MCP | Listado | modelcontextprotocol.io |
Docker (ghcr.io/ashfordeou/grasp) | docker pull ghcr.io/ashfordeou/grasp:latest | |
| VS Code | .vsix en Releases | GitHub Releases |
| JetBrains | Marketplace | Plugin ID 31362 |
| Raycast | Store (PR por versión) | raycast.com/ashfordeOU/grasp |
| Zed | Extensión (PR por versión) | zed.dev/extensions |
| Chrome | Web Store | Listado CWS |
| Firefox | AMO (listado) | addons.mozilla.org |
| Safari | Sideload (macOS 13+) | GitHub Releases |
| Imagen de bot GitLab | ghcr.io/ashfordeou/grasp-gitlab-bot | Auto-enviada por versión |
| Agente de túnel GitLab | Binario en Releases | GitHub Releases |
| GitHub Release | Firmado + sumas de verificación | Página de Releases |
Integraciones con herramientas de IA (Grasp llamado por tu asistente vía MCP o extensión)
| Herramienta de IA | Cómo instalar | Notas |
|---|---|---|
| Claude Code | claude mcp add grasp -- npx -y grasp-mcp-server | MCP nativo — las 150 herramientas + 8 Recursos + 2 Prompts |
| Cursor | Agrega grasp-mcp-server a ~/.cursor/mcp.json | MCP nativo |
| Cline / Roo Code / Kilo Code | Configuración MCP en la configuración de VS Code | MCP nativo |
| Windsurf | Configuración MCP | MCP nativo |
| Codex / OpenCode / Trae / Droid | Configuración MCP | MCP nativo — grasp setup los configura automáticamente a todos |
| Gemini CLI / Grok CLI | Configuración MCP | MCP nativo |
| GitHub Copilot Chat | Instala grasp-copilot-extension | Copilot llama a Grasp vía la API de extensión de Copilot — mención @grasp en el chat |
| Continue | Paquete continue-provider | Grasp como proveedor de contexto de Continue |
| Amazon Q Developer | amazon-q-plugin | Grasp aparece en el chat de Q |
| GPT Actions / Custom GPTs | Paquete gpt-actions | Grasp expuesto como REST para el esquema de acciones de OpenAI |
| Aider / Sweep / cualquier herramienta | Usa el paquete npm grasp-mcp-server | stdio 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
| Vista | Descripción |
|---|---|
| 🕸️ Grafo | Grafo de dependencias dirigido por fuerzas: arrastrar, hacer zoom, selección múltiple |
| 🔮 Grafo 3D | Grafo de fuerzas tridimensional: rotar, desplazar, hacer zoom |
| 🏛️ Arquitectura | Diagrama de arquitectura capa por capa |
| 📦 Treemap | Archivos dimensionados por número de líneas, agrupados por carpeta |
| 📊 Matriz | Matriz de adyacencia que muestra todas las dependencias |
| 🌳 Árbol | Dendrograma jerárquico de agrupamiento |
| 🌊 Flujo | Flujo de dependencias Sankey a nivel de carpeta |
| 🎯 Bundle | Diseño circular con conexiones basadas en arcos |
| 🔮 Clúster | Grafos de fuerzas separados por carpeta |
Modos de Color
| Modo | Qué muestra |
|---|---|
| 📁 Carpeta | Estructura de directorios |
| 🏗️ Capa | Capa arquitectónica (UI, Servicios, Utils, etc.) |
| 🔥 Churn | Frecuencia de commits: rojo = puntos calientes más modificados |
| ⚡ Complejidad | Complejidad ciclomática (verde → amarillo → rojo) |
| 💥 Blast | Impacto del radio de explosión para un archivo seleccionado |
| 🌊 Profundidad | Profundidad máxima de anidamiento de llaves |
| 🔎 Dup | Densidad de código duplicado: rojo = muchos clones |
| 👤 Propietario | Principal contribuyente: detecta riesgos de bus factor |
| 🐛 Issues | Issues de GitHub vinculados por archivo |
| 🧪 Cobertura | Cobertura de pruebas: resalta archivos sin probar |
| 📦 Bundle | Contribución al tamaño del bundle |
| 🌐 Superficie API | Exposición pública de archivos |
| ⚡ Runtime | Frecuencia real de llamadas desde un trace en vivo |
| 🔒 Safety | Cobertura de puertas de seguridad (verde = con puerta, rojo = sin puerta) |
| 🧪 Boundary | Desviación del límite investigación/producción |
| 🧪 Cobertura Eval | Cobertura 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*.ymly el YAML de flujos de trabajo de CI para versiones de imágenes fijadas, y luego consulta NIST NVD. ConfiguraGRASP_NVD_API_KEYpara límites de tasa más altos. - Integridad de la cadena de suministro — comprobaciones locales (sin red): cobertura del campo sha512
integritydel lockfile de npm,go.sumjunto congo.mod,Cargo.lockjunto conCargo.toml, fijación de--hash=enrequirements.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: accionesstart/stop/status/history; re-escaneos periódicos mediantesetInterval; persiste el historial de escaneos + diffs de CVEs enbrain.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 MCP | Descripción |
|---|---|
grasp_ingest | Ingiere un archivo, URL o fuente multimedia (PDF/DOCX/XLSX/HTML/OCR de imagen/audio/vídeo/YouTube) en el grafo de conocimiento |
grasp_kg_ask | Preguntas y respuestas en lenguaje natural sobre el grafo con citas de origen integradas (BM25 híbrido + vectorial) |
grasp_kg_trace | Trazado de rutas BFS entre dos entidades |
grasp_kg_explain | Explica una entidad, sus relaciones y si cada hecho fue EXTRACTED o INFERRED |
grasp_kg_stats | Estadísticas del grafo: recuentos de entidades/relaciones, hubs y god-nodes |
grasp_kg_export | Exporta el grafo como Cypher, GraphML, JSON o Mermaid |
grasp_llm_status | Informa 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 MCP | Descripción |
|---|---|
grasp_snapshot | Guarda 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_snapshots | Compara 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 MCP | Descripción |
|---|---|
grasp_coverage_gaps | Devuelve 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 MCP | Descripción |
|---|---|
grasp_org_summary | Analiza 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.
| Proveedor | Modelos |
|---|---|
| Anthropic | Claude Opus 4.7, Sonnet 4.6, Haiku 4.5 |
| OpenAI | GPT-4o, GPT-4o mini, o3-mini, o1 |
| Google Gemini | Gemini 2.0 Flash, 1.5 Pro, 1.5 Flash |
| Mistral | Mistral Small, Mistral Large |
| Groq | Llama 3.3 70B, 3.1 8B, Gemma 2 9B |
| DeepSeek | DeepSeek Chat, DeepSeek Reasoner |
| OpenRouter | Cualquier slug de modelo (100+ modelos con una sola clave) |
| Together AI | Cualquier slug de modelo |
| Ollama | Modelos locales (sin necesidad de clave) |
| LM Studio | Modelos locales en cualquier puerto |
| Custom | Cualquier base URL compatible con OpenAI |
Características:
- Memoria de conversación multiturno — persistida en
localStorageentre 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.
| Pregunta | Lo 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-teamaí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=1para 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ística | Descripción |
|---|---|
| Trazabilidad de Requisitos | Sube 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 / ECSS | Paquete 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ías | Selecciona 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 Software | Matriz de semáforo en Compatibilidad de Interfaces, Dependencias, Nivel de Seguridad, Idoneidad Arquitectónica, Seguridad, Complejidad. |
| Grafo de Llamadas Multi-lenguaje | Límites Ada→C pragma Import, Python ctypes/cffi, JS→WASM. |
| Genealogía de Software Heredado | Superpone un manifiesto de misión de origen, identifica atajos de certificación de delta cero. |
| Mapeador ICD | Compara entradas del Documento de Control de Interfaces con funciones exportadas, señala interfaces no implementadas. |
| Cumplimiento ECSS-E-ST-40C | Verifica los requisitos de cumplimiento DI-01, DI-04, DI-07, DI-10, DI-15. |
🧠 Investigación en IA
| Característica | Descripción |
|---|---|
| Rastreador de Restricciones de Seguridad | Marca 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ón | Define 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 Entrenamiento | Sube dos configuraciones YAML/JSON — compara hiperparámetros y encuentra qué archivos leen cada clave cambiada. |
| Mapa de Cobertura de Eval | Detecta 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 ML | Detecta patrones de PyTorch, TensorFlow, JAX, HuggingFace — renderiza el DAG Data→Model→Training→Eval→Checkpoint. |
🏢 Empresa
| Característica | Descripción |
|---|---|
| Generación de SBOM | CycloneDX 1.4 o SPDX 2.3 JSON para npm, pip, Cargo, módulos Go. Enriquecimiento opcional de CVE mediante la API OSV. |
| Métricas DORA | Frecuencia 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 IA | Registros de Decisiones de Arquitectura en formato MADR con un clic usando contexto del código + diff opcional de PR. |
| Rastreador de Flujo de Datos PII | BFS desde archivos fuente PII marcados por el usuario — muestra todos los consumidores posteriores. |
| Separación de Funciones | Detecta archivos que tanto inician como aprueban transacciones (cumplimiento SOX/FDA). |
| Impacto de Cambios Regulatorios | Palabras clave a radio de impacto para cambios de artículos GDPR/HIPAA/SOX/PCI-DSS. |
| Finanzas / Trading | Detección de puntos calientes de latencia — I/O bloqueante, presión de GC, contención de bloqueos, asignaciones en bucles. |
| Riesgo de Modelos Financieros | Pará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:
| Comando | Qué hace |
|---|---|
/grasp:build-graph | Ejecuta grasp_analyze en el directorio actual + grasp_minimal_context para una orientación de menos de 100 tokens |
/grasp:review-delta | Detecta cambios desde la rama base y produce un informe de impacto con puntuación de riesgo |
/grasp:review-pr | Revisió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 (ejecutagrasp_brain_indexprimero) — 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_vulnerabilitiesconsulta OSV.dev, NIST NVD y Socket.dev;grasp_vuln_watchejecuta re-escaneos programados;grasp_adrllama al proveedor de IA que configures.grasp_apply_refactorygrasp_renameson las únicas herramientas que escriben en disco (desactivadas por defecto —dry_run/apply: falsees el valor predeterminado).
Análisis Principal
| Herramienta | Qué hace |
|---|---|
grasp_analyze | Análisis completo de cualquier repositorio o ruta local — devuelve session_id para consultas de seguimiento |
grasp_sessions | Lista sesiones activas (persisten 7 días, sobreviven reinicios) |
grasp_diff | Compara dos instantáneas — ¿qué cambió entre análisis? |
grasp_watch | Re-analiza un directorio y compara con una ejecución anterior |
grasp_rules_check | Ejecuta reglas de arquitectura grasp.yml e informa violaciones |
grasp_config_check | Valida una sesión contra reglas de arquitectura — devuelve violaciones |
Inteligencia de Archivos y Código
| Herramienta | Qué 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_metrics | Lí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_unused | Código muerto — definido pero nunca llamado |
grasp_explain | Explicación en lenguaje sencillo de cualquier archivo o función |
grasp_refactor | Plan de refactorización paso a paso para un archivo o sesión |
grasp_suggest | Sugerencias de refactorización clasificadas por relación esfuerzo-impacto |
grasp_onboard | Ruta de lectura ordenada para nuevos ingenieros que entran a un área del código |
grasp_types | Cobertura de anotaciones de tipo — prioriza archivos con alto fan-in que carecen de tipos |
grasp_similarity | Clústeres duplicados y grupos de clonación de código clasificados |
grasp_stale | Archivos activos pero abandonados — bajo cambio, alto fan-in, sin contraparte de pruebas |
grasp_change_risk | Puntuación de riesgo 0–100 para un conjunto de archivos modificados |
Seguridad y Cumplimiento
| Herramienta | Qué hace |
|---|---|
grasp_security | Secretos codificados, riesgos de inyección, patrones peligrosos |
grasp_sbom | SBOM en CycloneDX 1.4 o SPDX 2.3 JSON |
grasp_sarif | Exportación SARIF 2.1.0 para GitHub Code Scanning |
grasp_license | Licencias de dependencias — marca copyleft y desconocidas |
grasp_pii_trace | Trazado BFS desde archivos fuente de PII hasta todos los consumidores |
grasp_duties | Separación de funciones — archivos que inician y aprueban |
grasp_reg_impact | Radio de impacto de cambios regulatorios (GDPR/HIPAA/SOX/PCI-DSS) |
grasp_env_vars | Todas las lecturas de variables de entorno — marca variables no documentadas y solo de prueba |
grasp_feature_flags | Todas las lecturas de feature flags (LaunchDarkly, GrowthBook, flags de variables de entorno) |
Equipo y DevOps
| Herramienta | Qué hace |
|---|---|
grasp_pr_comment | Genera comentario de salud de PR con radio de impacto para archivos modificados |
grasp_pr_review | Publica comentarios de revisión en línea en un PR de GitHub en líneas de alta severidad |
grasp_commits | Conteo de commits para los últimos 7d y 30d |
grasp_ci_status | Última ejecución de GitHub Actions — pasando/fallando/en progreso |
grasp_dora | Métricas DORA — Frecuencia de despliegue, tiempo de entrega, CFR, MTTR |
grasp_adr | Registro de Decisión de Arquitectura en formato MADR impulsado por IA |
grasp_embed | Genera iframe, insignia README, fragmento React para compartir |
grasp_timeline | Últimos N commits con archivos modificados por commit + matriz de co-cambio |
grasp_contributors | Propiedad por archivo, factor de bus, principales contribuyentes |
grasp_coverage | Superposición de cobertura de pruebas — ¿qué archivos carecen de pruebas? |
grasp_issues | Mapea Issues de GitHub a los archivos que mencionan |
grasp_jira_issues | Mapea issues de Jira a archivos fuente mediante clave de proyecto |
grasp_service_graph | Grafo de dependencias a nivel de servicio desde OTEL / JSON de trazas personalizado |
grasp_deps_dev | Dependientes del ecosistema vía deps.dev — cuántos paquetes dependen de este repositorio |
Cerebro / Inteligencia (v3.16.0)
| Herramienta | Qué hace |
|---|---|
grasp_brain_index | Analiza y persiste un repositorio en el cerebro SQLite local |
grasp_brain_status | ¿Qué está indexado en el cerebro y cuándo? |
grasp_context | Contexto rico de archivo — capa, complejidad, acoplamiento, seguridad, dependientes, dependencias |
grasp_arch_diff | Compara estado actual vs línea base del cerebro — detecta degradaciones |
grasp_ask | Haz una pregunta en lenguaje natural sobre tu arquitectura |
Núcleo de Grafo (Kuzu — v3.16.0)
| Herramienta | Qué hace |
|---|---|
graph_query | Ejecuta consultas Cypher de solo lectura contra el grafo persistente de llamadas función/archivo |
call_chain | Traza cadenas de llamadores y llamados para cualquier función, hasta profundidad configurable |
type_propagation | Encuentra todas las funciones que comparten un tipo de retorno y sus vecinos de llamada |
function_graph | Renderiza un subgrafo Mermaid / DOT / JSON centrado en cualquier función nombrada |
Análisis Avanzado
| Herramienta | Qué hace |
|---|---|
grasp_dead_packages | Dependencias npm en package.json pero nunca importadas |
grasp_runtime_calls | Fusiona una traza de ejecución en vivo con aristas estáticas — rutas calientes reales |
grasp_db_coupling | Mapa de acoplamiento ORM/SQL-a-tabla — tablas dios, archivos de alto acoplamiento |
grasp_migration_plan | Plan por fases ordenado topológicamente para reemplazar un paquete/módulo |
grasp_api_surface | Superficie API unificada desde OpenAPI, GraphQL, rutas Express/FastAPI |
grasp_events | Emisores y suscriptores de eventos — emisiones huérfanas, suscripciones fantasma |
grasp_perf | Consultas N+1, I/O síncrono, serialización JSON en bucles |
grasp_bundle | Treemap de tamaño de bundle — archivos más grandes por categoría de tamaño |
grasp_dep_impact | Impacto de actualizar una dependencia en todos los archivos |
grasp_cross_repo | Compara dos sesiones — archivos compartidos, funciones divergentes |
grasp_diagram | Genera diagramas de flujo Mermaid o diagramas C4 desde el grafo de dependencias |
Vertical Aeroespacial / Crítico para Seguridad
| Herramienta | Qué hace |
|---|---|
grasp_req_trace | Trazabilidad de requisitos — escanea etiquetas @REQ-NNN contra un CSV |
grasp_anomaly | Investigación de anomalías — radio de impacto BFS, seguridad en cadena de llamadas, resumen en lenguaje sencillo |
grasp_reuse | Evaluador de reutilización de software — matriz de compatibilidad Rojo/Ámbar/Verde |
grasp_safety_trace | Rastreador de restricciones de seguridad — encuentra rutas que evaden todas las compuertas de seguridad |
grasp_multilang | Grafo de llamadas entre lenguajes (Ada→C, Python→C, JS→WASM) |
grasp_heritage | Genealogía de software heredado — atajos de certificación de delta cero |
grasp_icd | Mapeador ICD — empareja entradas del Documento de Control de Interfaz con código |
grasp_ecss | Verificador de cumplimiento ECSS-E-ST-40C (DI-01, DI-04, DI-07, DI-10, DI-15) |
Vertical de Investigación en IA
| Herramienta | Qué hace |
|---|---|
grasp_run_diff | Diff de ejecución de entrenamiento — hiperparámetros cambiados y código afectado |
grasp_eval_coverage | Mapa de cobertura de evaluación — compuertas de seguridad sin cobertura de evaluación marcadas como críticas |
Multi-Repositorio / Plataforma
| Herramienta | Qué hace |
|---|---|
grasp_org_graph | Grafo de dependencias multi-repositorio a nivel de organización con aristas entre repos |
grasp_api_diff | Detector de cambios de API que rompen — símbolos exportados eliminados/cambiados |
grasp_plugins | Mapa de puntos de extensión — interfaces de plugins, puntos de enganche, patrones de estrategia |
grasp_semver | Aplicador de versionado semántico — valida el salto semver para el conjunto de cambios |
grasp_abi_diff | Verificador de estabilidad ABI/API — puntuación de estabilidad 0–100 |
grasp_subsystems | Mapa de límites de subsistemas Kernel/OS |
grasp_kconfig | Análisis de condicionales Kconfig/tiempo de compilación — mapa de uso CONFIG_* |
grasp_irq | Grafo de dependencias IRQ/interrupción — llamadas bloqueantes, asignación en manejadores |
grasp_patch_impact | Analizador de impacto de series de parches — clasifica parches por radio de impacto + complejidad |
grasp_good_first_issues | Generador de buenos primeros issues — archivos aislados, de baja complejidad, sin pruebas |
grasp_api_stability | Puntuación de estabilidad de API (0–100) entre dos sesiones |
grasp_fork_diff | Análisis de divergencia de forks — archivos divergidos/idénticos/solo-fork |
grasp_latency | Detección de puntos calientes de latencia en finanzas/trading |
grasp_model_risk | Auditor de riesgo de modelos financieros |
Inteligencia de Código (v3.16.0)
| Herramienta | Qué hace |
|---|---|
grasp_diff_symbols | Mapea hunks de git diff a funciones — radio de impacto de un PR antes de fusionar |
grasp_exec_flow | Flujo de ejecución BFS desde cualquier punto de entrada con aristas STEP_IN_PROCESS + gráfico Mermaid |
grasp_skillmd | Auto-genera fragmento SKILL.md / CLAUDE.md desde la sesión de análisis |
grasp_hooks | Genera hook PostToolUse de .claude/settings.json + .cursor/rules/grasp.mdc |
grasp_mro | Orden de Resolución de Métodos — linealización C3 (Python), MRO para jerarquías Ruby/Java |
grasp_communities | Detección de comunidades Leiden/Louvain — identifica contextos delimitados y candidatos a microservicios |
grasp_contracts | Análisis de contratos multi-repositorio — exportaciones del proveedor vs uso del consumidor, violaciones + % de cobertura |
Inteligencia de Análisis (v3.16.0)
| Herramienta | Qué hace |
|---|---|
grasp_confidence | Puntú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_wiki | Auto-genera una wiki en markdown: index.md + páginas por carpeta + api.md ordenadas por número de llamadores |
grasp_registry_list | Lista todos los repos indexados en el cerebro con grado de salud, conteos de archivos/funciones e IDs de sesión activos |
grasp_registry_status | Salud del registro: conteo indexado, conteo de sesiones, distribución de grados |
grasp_resolve_receiver | Resuelve 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)
| Herramienta | Qué hace |
|---|---|
grasp_search | Bú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_rename | Renombrado 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_map | Escanea 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_impact | Dada una ruta o nombre de manejador, devuelve todos los llamadores, servicios posteriores y radio de impacto usando aristas del grafo del cerebro |
grasp_tool_map | Escanea definiciones de herramientas MCP (server.tool / server.registerTool) y definiciones de servicios gRPC — devuelve un mapa de contratos de servicio |
grasp_shape_check | Para 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_add | Agrega una fuente de repositorio a un grupo nombrado en ~/.grasp/groups.json para fan-out @groupName multi-repositorio |
grasp_group_list | Lista todos los grupos nombrados y sus repos miembros desde ~/.grasp/groups.json |
Inteligencia de Grafo (v3.16.0)
| Herramienta | Descripción |
|---|---|
grasp_graph_schema | Introspecció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_propagation | Inferencia 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_map | Rastreador de consultas ORM — Prisma, TypeORM, Sequelize, SQLAlchemy; resultados agrupados por modelo con sitios de llamada, operaciones, frecuencia |
grasp_detect_changes | Git diff → impacto de símbolos: archivos modificados, funciones afectadas, flujos de proceso impactados, nivel de riesgo LOW/MEDIUM/HIGH/CRITICAL |
grasp_generate_agents_md | Genera AGENTS.md enriquecido desde la sesión del cerebro — comunidades funcionales, procesos de ejecución, grado de salud, problemas principales |
grasp_generate_skills | Archivos .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) |
| Herramienta | Qué hace |
|---|---|
grasp_hub_nodes | Archivos con mayor conectividad Top-N por fan-in + fan-out (centralidad de grado) |
grasp_bridge_nodes | Centralidad de intermediación de Brandes. Muestrea automáticamente 100 fuentes para repos > 500 nodos |
grasp_surprising_connections | Enlaces raros entre capas marcados por rareza ponderada por frecuencia |
grasp_knowledge_gaps | Archivos aislados, puntos críticos sin probar, comunidades débiles |
grasp_suggested_questions | 5–10 preguntas de revisión generadas automáticamente que combinan todo lo anterior |
grasp_minimal_context | Orientación de repos en menos de 100 tokens: la primera llamada del LLM |
grasp_traverse | BFS consciente del presupuesto de tokens desde cualquier nodo inicial |
grasp_semantic_search | Similitud coseno sobre firmas de funciones mediante @xenofon/transformers |
grasp_apply_refactor | Ejecuta operaciones de renombrado con vista previa dry_run por defecto |
grasp_architecture_overview | Informe combinado de comunidades + hubs + preguntas de revisión |
grasp_export_graphml | Exportación XML GraphML compatible con yEd / Gephi |
grasp_export_cypher | Sentencias CREATE de Neo4j que reproducen el grafo |
grasp_export_obsidian | .canvas JSON para Obsidian Canvas con disposición de columnas por capa |
grasp_export_dot | Graphviz DOT (digraph) — clústeres por capa, recuentos de enlaces, se renderiza en GitHub |
grasp_export_mermaid | Mermaid graph LR — se renderiza en línea en GitHub, GitLab, Notion, Obsidian |
grasp_export_d2 | Terrastruct D2 — direction: right con contenedores de capa, se renderiza mediante CLI de d2 |
grasp_export_plantuml | Diagrama de clases PlantUML — funciona en Confluence, Jira, IntelliJ, VS Code |
grasp_export_dgml | XML de grafo dirigido de Visual Studio — se abre nativamente en la ventana de arquitectura de VS |
grasp_export_gexf | GEXF 1.3 nativo de Gephi con atributos de nodo de capa/líneas/complejidad/cambios |
grasp_export_drawio | XML de draw.io / diagrams.net — disposición de cuadrícula, editable en app.diagrams.net |
grasp_export_csv | Paquete 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étrica | Valor |
|---|---|
| Puntuación de salud | ████████░░ 82/100 |
| Calificación | 🟢 A |
| Archivos | 142 (891 funciones) |
| Problemas de arquitectura | 3 |
| Dependencias circulares | 0 ✓ |
| Seguridad | 0 ✓ |
| Archivos modificados | 5 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,Tpara el tema,Escpara 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/gotpara 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 linkempaqueta 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>ygrasp_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-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.vsixdesde 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 dependentspara 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
| Tecla | Acción |
|---|---|
Enter | Analizar repositorio |
Cmd+K / Ctrl+K | Abrir paleta de comandos |
+ / - | Acercar/alejar |
Shift+click | Seleccionar múltiples nodos |
Escape | Cerrar modal / paleta de comandos |
T | Recorrer 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
| Problema | Causa | Solució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 encontrado | El paquete no está en PATH | Use npx grasp-mcp-server en su lugar, o npm install -g grasp-mcp-server |
| El puerto 7332 ya está en uso | Otra instancia de Grasp en ejecución | lsof -ti:7332 | xargs kill -9 y luego vuelva a ejecutar |
grasp_semantic_search lento en la primera llamada | El 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 WASM | CDN bloqueado / sin conexión | Configure GRASP_GRAMMAR_DIR=/path/to/local/grammars para usar copias locales |
Permission denied: ~/.grasp/brain.db | Múltiples usuarios, umask restrictivo | chmod 644 ~/.grasp/brain.db o configure GRASP_BRAIN_DIR=/tmp/grasp |
| GitHub Actions: "Repositorio no encontrado" | El token carece del alcance repo | Para repos privados, el token necesita repo (no solo public_repo) |
| Elemento emergente de la extensión del navegador en blanco | El service worker de MV3 no está registrado | Recargue desde chrome://extensions → Modo desarrollador → ↺ |
| Extensión de Safari oculta | Las extensiones cargadas lateralmente están deshabilitadas | Safari → Desarrollo → Permitir extensiones sin firmar |
| Chrome Web Store: "Elemento no actualizable" | La extensión está en revisión de CWS | Espere ~24-48 h; no es un error |
grasp setup no escribe nada | No se detectó configuración de editor | Verifique si existe .claude/, .cursor/, .windsurf/, etc. — al menos uno debe existir |
| 403 a mitad del análisis con spinner | Se alcanzó el límite de velocidad durante la obtención de archivos | Nuevo: ahora aparece una tarjeta de recuperación con cuenta regresiva + entrada de token. Pegue el token → Reanudar |
Glosario
| Término | Españ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-sitter | Una biblioteca de análisis que construye ASTs de forma incremental y precisa. Grasp incluye bindings nativos para 19 lenguajes |
| fan-in / fan-out | Cuá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 Brandes | Algoritmo que encuentra archivos situados en la mayoría de los "caminos más cortos" entre otros — puntos de estrangulamiento |
| Leiden / Louvain | Algoritmos que agrupan nodos densamente conectados en comunidades (detección de candidatos a microservicios) |
| Cypher | El lenguaje de consulta de grafos usado por Kuzu. Grasp te permite ejecutar consultas Cypher de solo lectura mediante graph_query |
| Kuzu | Una base de datos de grafos embebida optimizada para consultas analíticas. Almacena el grafo de llamadas de Grasp en ~/.grasp/graph/ |
| BM25 | Una 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 store | La 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ática | Una puntuación de cuántas ramas/caminos tiene una función. Mayor = más difícil de probar |
| Búsqueda híbrida | BM25 (palabras clave) + vectorial (semántica) combinados mediante RRF para lo mejor de ambos mundos |
| Snapshot | Un estado de arquitectura congelado guardado en brain.db; se usa para detectar desviaciones a lo largo del tiempo |
| Recursos MCP | URIs como grasp://repos que exponen datos en vivo a clientes MCP sin una llamada de herramienta |
| Prompts MCP | Flujos guiados preconstruidos que componen múltiples herramientas (p. ej., detect_impact encadena 5 herramientas) |
| Comandos de barra | Archivos .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ón | Solicitudes/hora |
|---|---|
| Sin token | 60 |
| Personal Access Token | 5,000 |
| GitHub App | 5,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.