cssgraph

Servidor MCP de grafo de conocimiento CSS para agentes de codificación con IA: una sola llamada de herramienta devuelve propiedades, anulaciones, especificidad, llamadores e impacto para cualquier className. 100% local, sin configuración.

Documentación

cssgraph

Inteligencia CSS para Agentes de Codificación con IA

Contexto de estilo quirúrgico · menos llamadas a herramientas · respuestas más rápidas · 100% local

License: MIT Node.js npm version npm downloads GitHub stars

macOS Linux Windows


¿Por qué cssgraph?

Cuando un agente de IA necesita entender CSS — dónde está definido .btn-primary, qué propiedades tiene, qué selectores en cascada lo afectan, qué componentes JSX lo referencian — descubre el estilo de la manera lenta: grep, glob y Read, un archivo a la vez, reconstruyendo la cascada manualmente.

cssgraph le entrega al agente el contexto de estilo exacto que necesita en una sola llamada. Es un grafo de conocimiento preconstruido de cada className, propiedad CSS, variable y regla-at en tus hojas de estilo — así que en lugar de recorrer archivos, el agente hace una pregunta y obtiene las propiedades, anulaciones, especificidad, llamadores e impacto a nivel de archivo en su totalidad.


Instalación

Para Humanos

Copia y pega este prompt a tu agente LLM (Claude Code, Cursor, Codex, etc.):

Install and configure cssgraph by following the instructions here:
https://raw.githubusercontent.com/mack-peng/cssgraph/main/docs/guide/installation.md

O lee la Guía de Instalación, pero en serio, deja que un agente lo haga. Los humanos cometen errores al configurar.

Para Agentes LLM

Obtén la guía de instalación y síguela:

curl -s https://raw.githubusercontent.com/mack-peng/cssgraph/main/docs/guide/installation.md

Inicio Rápido

1. Inicializar

npm i -g cssgraph
cd your-project
cssgraph init --workers 8

Indexa todos los archivos de estilo (CSS, SCSS, Less, Sass), referencias de className en JSX/TSX, CSS-in-JS, CSS Modules, y plantillas de vista (ERB/Haml/HTML) — habilitando cada herramienta MCP.

Pasa --workers <n> para controlar los hilos de parseo paralelo (predeterminado: núcleos de CPU - 1).

Requiere Node.js >= 22.5.0 (para node:sqlite).

2. Conecta tu agente

cssgraph mcp-install

Detecta y configura automáticamente opencode, Claude Code, Cursor, Codex CLI, Gemini CLI, Hermes Agent, Antigravity IDE y Kiro. Escribe la configuración del servidor MCP, el bloque de instrucciones y una Habilidad de Agente (SKILL.md + references/pitfalls.md) que enseña a los agentes cuándo usar cada una de las 13 herramientas de cssgraph, cómo encadenarlas en flujos de trabajo y qué errores evitar.

O agrégalo manualmente a cualquier agente MCP:

{
  "mcpServers": {
    "cssgraph": {
      "type": "stdio",
      "command": "cssgraph",
      "args": ["serve", "--mcp"]
    }
  }
}

3. No más sincronización

La sincronización automática está habilitada por defecto. El servidor MCP observa tu proyecto y actualiza el grafo en cada cambio de archivo — mientras tu agente edita código, o tú agregas/modificas/eliminas archivos CSS. El índice nunca está desactualizado.


Cómo Funciona

┌───────────────────────────────────────────────────────────┐
│                      AI Agent                              │
│                                                           │
│  "What code files use .btn-primary?"                      │
│      calls cssgraph_rule — one tool call                  │
│                             │                             │
└─────────────────────────────┬─────────────────────────────┘
                              │
                              ▼
┌───────────────────────────────────────────────────────────┐
│                  cssgraph MCP Server                       │
│                                                           │
│ rule · O(1) exact selector lookup · loose/strict impact   │
│ explore · properties + overrides + specificity + callers  │
│                             │                             │
│                             ▼                             │
│               SQLite knowledge graph                      │
│     classNames · properties · variables · at-rules        │
│            edges · FTS5 full-text search                  │
└───────────────────────────────────────────────────────────┘
  1. Extracción — PostCSS analiza CSS/SCSS/Less/Sass en ASTs. CSS-in-JS (styled.div), referencias de className en JSX y atributos de clase en plantillas extraídos de archivos .jsx/.tsx/.erb/.haml.
  2. Almacenamiento — Todo va a una base de datos SQLite local (.cssgraph/cssgraph.db) con búsqueda de texto completo FTS5. Modo WAL + commits por lotes para rendimiento de escritura. Los disparadores FTS e índices únicos se difieren durante la carga masiva por velocidad.
  3. Grafo — Las aristas conectan nodos relacionados: contains (selector→propiedad), nests (selector padre→hijo), overrides (selector de mayor especificidad anula a menor), imports (archivo→archivo importado), references (archivo JSX/vista→className, propiedad→variable CSS).
  4. Escaneo primero con Git — git ls-files para descubrimiento instantáneo de archivos. Recurre a recorrido del sistema de archivos en proyectos sin git.
  5. Parseo paralelo — Los archivos se envían en lotes a hilos de trabajo vía Promise.all. El parseo se completa concurrentemente; los resultados se vacían en orden de archivo para corrección.
  6. Auto-Sincronización — Eventos nativos del sistema operativo, con debounce, sincronizados incrementalmente.

Referencia CLI

cssgraph init [path] [-w, --workers <n>]  # Initialize + build graph
cssgraph index [path] [-w, --workers <n>]  # Rebuild from scratch
cssgraph query <className>                 # Search for className selectors
cssgraph explore <query...>                # Full style context for a className
cssgraph details <selector>                # O(1) exact selector → file:line lookup
cssgraph rule <selector> [--strict]        # Selector impact: exact + loose/strict files
cssgraph impact-selector <selector>       # Code files affected by a selector
cssgraph impact <className>                # Blast radius of changing a className
cssgraph unused                            # Find unreferenced class selectors
cssgraph cascade <className>               # Visualize cascade path
cssgraph diagnose <className> [chain...]   # Static anchor diagnosis (height/scroll)
cssgraph property <query...>               # Search by CSS property value
cssgraph files [path]                      # Project style file tree
cssgraph status [path]                     # Index statistics
cssgraph sync [path]                       # Incremental update
cssgraph serve --mcp                       # Start MCP server
cssgraph mcp-install                       # Auto-wire to your AI agent (alias: install)
cssgraph skill-install                     # Install/update SKILL.md only (no MCP config changes)
cssgraph skill-uninstall                   # Remove SKILL.md only (no MCP config changes)
cssgraph mcp-uninstall                     # Remove from your AI agent (alias: uninstall)
cssgraph version                           # Print installed version

Escaneo de Archivos JSX y de Vista (predeterminado)

cssgraph siempre escanea:

  • JSX/TSX/JS/TS/ES6 — referencias className, CSS-in-JS, CSS Modules
  • Plantillas de vista — archivos .erb, .haml, .html para atributos class="..." y la abreviatura .classname de Haml

Esto habilita cssgraph_impact, cssgraph_callers y cssgraph_rule para rastrear tanto archivos de componentes COMO archivos de plantilla que referencian cada className.

ProyectoArchivos totalesPrimer índiceNodosAristas
Pequeño~50~15s~16K~50K
Monorepo de producción~11K~3-5m~780K~22M

Herramientas MCP

HerramientaPropósito
cssgraph_explorePRINCIPAL: Contexto de estilo completo para un className — propiedades, anulaciones, especificidad, llamadores
cssgraph_searchBuscar selectores de className por nombre
cssgraph_callersEncontrar componentes JSX que referencian un className
cssgraph_impactRadio de impacto de cambiar un className
cssgraph_ruleRadio de impacto de un selector CSS completo (coincidencia exacta + impacto de archivo suelto/estricto)
cssgraph_impact_selectorEncontrar archivos de código (JS/TS/JSX/TSX) afectados por un selector CSS
cssgraph_detailsBúsqueda de selector exacta O(1) (sin aristas, ligera)
cssgraph_unusedEncontrar selectores de clase sin referencias entrantes
cssgraph_cascadeVisualizar la ruta de cascada para un className
cssgraph_diagnoseDiagnóstico de anclaje estático para problemas de scroll/altura — clasifica declaraciones de altura como DEFINIDAS / INDEFINIDAS / NO VERIFICABLES a lo largo de la cadena de ancestros
cssgraph_propertyBuscar selectores por valor de propiedad CSS
cssgraph_filesÁrbol de archivos de estilo indexado
cssgraph_statusVerificación de salud del índice

Herramienta Complementaria: cssprobe-cli

cssgraph es una herramienta de análisis estático — lee tu código fuente y responde dónde está definida una clase, qué cascada la afecta y qué afectaría un cambio. Para preguntas de tiempo de ejecución — qué renderiza realmente una página en un navegador (desbordamiento, cadenas de scroll, cadenas de altura calculadas, secuestros de bloque contenedor) — usa cssprobe-cli, que abre un navegador real y lee estilos calculados más métricas del DOM. Las dos herramientas se complementan:

cssgraph (estático)cssprobe-cli (tiempo de ejecución)
Analizacódigo fuente (CSS/SCSS/Less + JSX/TSX + plantillas)navegador en vivo (estilos calculados + DOM)
Respondedónde está definida una clase, cascada, impacto, CSS no utilizadodiseño renderizado real, desbordamiento, scroll, cadenas de altura
Cuándoantes/sin navegadordespués del análisis estático, para verificar en tiempo de ejecución
Usocssgraph init + explore/rule/impactopen + inspect/layout/findings

Flujo de trabajo recomendado para un problema de estilo — ve estático primero, luego verifica en tiempo de ejecución:

# 1. Static: find the definitions, cascade, and blast radius (cssgraph)
cssgraph explore .btn-primary
cssgraph cascade .btn-primary

# 2. Runtime: confirm what actually renders (cssprobe-cli)
npm i -g cssprobe-cli
cssprobe-cli open https://example.com
cssprobe-cli inspect .btn-primary
cssprobe-cli findings .btn-primary

Instalación: npm install -g cssprobe-cli (requiere Node.js >= 22.5.0). Ver npm / GitHub.


Lenguajes Soportados

LenguajeExtensiónExtracción
CSS.cssPostCSS estándar
SCSS.scssplugin postcss-scss
Less.lessplugin postcss-less
Sass (sangrado).sassCompilar → PostCSS
PostCSS personalizado.pcssPostCSS estándar
JSX / TSX.jsx .tsxclassName + CSS-in-JS
JavaScript / TypeScript.js .ts .es6className + CSS Modules
ERB (Rails).erbextracción class="..."
Haml (Rails).hamlextracción .classname + {:class =>}
HTML.htmlextracción class="..."
CSS Modules.module.css .module.scss .module.lessResolución de importación dinámica
Tailwindtailwind.config.js + CSS @themeConfig JS v3 + Config CSS v4

Escala de Producción

ProyectoArchivos totalesPrimer índiceNodosAristas
Pequeño~50~15s~16K~50K
Monorepo de producción~11K~3-5m~780K~22M

Configuración del Proyecto

Cero configuración por defecto. .cssgraph.json opcional en la raíz de tu proyecto:

{
  "exclude": ["static/vendor/", "**/legacy/**"],
  "extensions": {
    ".pcss": "css"
  }
}

Exclusiones predeterminadas integradas (siempre aplicadas): **/*.test.*, **/*.stories.*, **/*.spec.*, **/*.min.*, **/__tests__/**, **/__snapshots__/**, **/__mocks__/**, **/generated/**, **/spec/**, **/vendor/**.


Plataformas Soportadas

PlataformaArquitecturasInstalación
macOSx64, arm64npm
Linuxx64, arm64npm
Windowsx64, arm64npm

Si cssgraph es útil

Una estrella ⭐ ayuda a otros desarrolladores a descubrirlo — y nos dice que sigamos publicando.


Licencia

MIT