# Graph Indexer para Cursor

> Añade Graph Indexer a Cursor con npx graph-indexer init: escribe .cursor/mcp.json y Cursor obtiene referencias exactas y grafos de llamadas de un índice local

Graph Indexer para Cursor es un servidor MCP local que da al agente de Cursor referencias exactas, grafos de llamadas e impacto de cambios de tu proyecto. Ejecuta `npx graph-indexer init` y escribe `.cursor/mcp.json` con un servidor `graph-indexer`, y después añade un bloque corto de instrucciones a `AGENTS.md`.

## ¿Cómo añado Graph Indexer a Cursor?

Desde la raíz del repositorio, con Node.js 22.5 o superior:

```bash
npx graph-indexer init
```

`init` configura Cursor cuando encuentra un directorio `.cursor` o un archivo `.cursorrules`. Si no lo detecta, fuérzalo con `npx graph-indexer init --agents cursor`, o configura todos los agentes soportados a la vez con `--all`.

## ¿Qué cambia `npx graph-indexer init` para Cursor?

Para Cursor, `init` toca dos archivos y `.gitignore`:

| Archivo | Contenido |
|---|---|
| `.cursor/mcp.json` | Una entrada `graph-indexer` bajo `mcpServers`, fusionada con los servidores existentes |
| `AGENTS.md` | Un bloque gestionado con las reglas de búsqueda y cuándo llamar a `find_references`, `call_graph`, `change_impact` y `check_changes` |
| `.gitignore` | `.graph-indexer/`, donde vive el índice local |

Usa `--dry-run` para previsualizar los cambios y `--no-instructions` para omitir el bloque de `AGENTS.md`.

## ¿Cómo es la configuración manual de Cursor?

La entrada que `init` escribe en `.cursor/mcp.json` es:

```json
{
  "mcpServers": {
    "graph-indexer": {
      "command": "npx",
      "args": ["-y", "graph-indexer@3", "serve", "--repo", "${workspaceFolder}"]
    }
  }
}
```

Si ejecutas Graph Indexer desde un checkout local, `init --local` escribe las rutas absolutas de Node.js y de `bin/graph-indexer.mjs` de ese checkout en lugar de `npx`.

## ¿Ejecuta Cursor los hooks de Graph Indexer?

En parte, y solo si los activas. `npx graph-indexer init --hooks` escribe los hooks en `.claude/settings.json`, y el README de Graph Indexer indica que Cursor también ejecuta esos hooks de Claude Code. El comando responde a los eventos en camelCase de Cursor con su propio campo `additional_context`. Los hooks son opcionales: las herramientas MCP funcionan sin ellos.

## ¿Qué gana Cursor con Graph Indexer?

El agente de Cursor recibe ocho herramientas de solo lectura por stdio. Las que más cambian su comportamiento:

- `find_references` devuelve cada uso de un símbolo, ligado por ámbitos, imports y tipos del receptor, agrupado por archivo y función contenedora. Indica si la lista está completa.
- `call_graph` muestra llamadores y llamados entre archivos, con la confianza de cada arista.
- `change_impact` devuelve los dependientes por distancia y los tests que ejecutar antes de cambiar una firma.
- `check_changes` detecta errores de sintaxis, llamadas que ya no encajan y nombres eliminados aún en uso, sin compilar.

Contra el compilador de TypeScript sobre 400 símbolos de nestjs, `find_references` alcanzó un 99,7 % de precisión y un 96,2 % de recall, frente al 12,8 % de precisión de grep. Graph Indexer no es un comprobador de tipos: los genéricos, la reflexión, `any` y los tokens de inyección de dependencias se ven solo en parte. Consulta la [referencia de herramientas](/es/tools/) y [cómo funciona](/es/how-it-works/).

## Preguntas frecuentes

### ¿Por qué la entrada de Cursor usa ${workspaceFolder}?

Pasar --repo ${workspaceFolder} apunta Graph Indexer al espacio de trabajo abierto en Cursor, así el servidor indexa ese proyecto y no el directorio desde el que el editor lo arranque.

### ¿Dónde van las instrucciones de búsqueda en Cursor?

init añade su bloque gestionado a AGENTS.md, que Cursor lee, y no a un archivo de reglas de Cursor. El bloque va entre marcas graph-indexer:start y graph-indexer:end, así que repetir init lo actualiza en su sitio.

### ¿Graph Indexer sustituye a la búsqueda de código de Cursor?

No, la complementa con herramientas exactas. La búsqueda de Cursor sirve para ver dónde vive algo; find_references y call_graph responden qué puntos de llamada son reales, algo que una búsqueda por nombre no distingue.

### ¿Puedo usarlo en un monorepo con Cursor?

Sí. El monorepo de Twenty CRM, con 28.512 archivos, se indexó en 51 segundos con un 99,9 % de precisión y un 92,4 % de recall en referencias. Las sincronizaciones posteriores sin cambios tardaron 1,8 segundos.

---

Actualizado: 2026-10-08 · Graph Indexer 3.0.0 · https://graph-indexer.vercel.app/es/agents/cursor/
