Graph Indexer para Devin es un servidor MCP local que da a Devin Desktop y Devin CLI referencias exactas, grafo de llamadas e impacto de cambios de tu repositorio. Ejecuta npx graph-indexer init --agents devin --hooks: escribe AGENTS.md y los hooks que carga Devin, e imprime la entrada del servidor para añadirla en los ajustes MCP de Devin.
¿Cómo añado Graph Indexer a Devin?
Desde la raíz del repositorio, con Node.js 22.5 o superior:
npx graph-indexer init --agents devin --hooks
init detecta Devin por una carpeta .devin o .windsurf o un archivo .windsurfrules, así que un simple npx graph-indexer init también funciona en esos proyectos. Añade --hooks para instalar los hooks que se describen abajo.
¿Qué cambia npx graph-indexer init en Devin?
A diferencia de la mayoría de agentes, Devin no tiene un archivo MCP de proyecto que init escriba. Para Devin, init hace esto:
| Destino | Contenido |
|---|---|
AGENTS.md | Un bloque gestionado con las reglas de búsqueda y cuándo llamar a cada herramienta |
.claude/settings.json | Los hooks de Claude Code, solo con --hooks, que Devin carga por defecto |
| Salida de la terminal | La entrada del servidor MCP para añadir en los ajustes MCP de Devin |
.gitignore | .graph-indexer/, donde vive el índice local |
Usa --dry-run para previsualizar y --no-instructions para omitir el bloque de AGENTS.md.
¿Cómo es la entrada del servidor MCP de Devin?
init imprime el comando y los argumentos con la ruta de tu repositorio ya rellenada. En los ajustes MCP de Devin, añade un servidor llamado graph-indexer con estos valores:
{
"command": "npx",
"args": ["-y", "graph-indexer@3", "serve", "--repo", "/ruta/al/repo"]
}
Sustituye /ruta/al/repo por la ruta absoluta de tu repositorio. La disposición exacta de los campos en la pantalla de ajustes MCP de Devin es cosa de Devin; el comando y los args son lo que necesita Graph Indexer.
¿Qué hooks ejecuta Devin para Graph Indexer?
Devin Desktop y Devin CLI cargan los hooks de Claude Code de .claude/settings.json, así que npx graph-indexer init --agents devin --hooks escribe tres:
| Evento | Qué hace |
|---|---|
PostToolUse (Edit, Write, MultiEdit, Grep, Bash, Read) | Tras una edición, ejecuta la comprobación de edición de ese archivo; tras una búsqueda que no encontró una definición, dice dónde está; cuando el agente está rastreando, una lectura recibe dónde se definen sus nombres |
SessionStart | Avisa a la sesión en una línea de que el índice existe |
SubagentStart | Da a los subagentes las reglas de búsqueda y el mismo aviso de una línea |
En el resto de casos los hooks callan, y fallan en abierto bajo un plazo, así que una respuesta lenta nunca bloquea al agente. Hablan con un proceso residente de Graph Indexer por un socket local, nunca por red. Consulta cómo funciona.
¿Qué gana Devin con Graph Indexer?
Devin obtiene ocho herramientas de solo lectura. find_references lista cada uso real de un símbolo con una etiqueta de confianza e indica si la lista está completa. change_impact devuelve los dependientes y los tests que ejecutar antes de un cambio, y check_changes verifica las ediciones sin compilar.
Frente al compilador de TypeScript en 400 símbolos de nestjs, find_references alcanzó un 99,7 % de precisión y un 96,2 % de recall; grep llegó al 12,8 % de precisión (benchmarks). Graph Indexer no es un verificador de tipos: los genéricos, la reflexión y any solo se ven en parte. Graph Indexer no hace llamadas de red ni envía telemetría; Devin sigue enviando lo que lee a su proveedor de modelo. Consulta la referencia de herramientas y los demás agentes.
Preguntas frecuentes
¿Por qué init imprime la entrada de Devin en lugar de escribirla?
init no escribe ningún archivo de configuración de Devin. Imprime el comando y los args, con la ruta de tu repositorio en --repo, y te indica que añadas el servidor en los ajustes MCP de Devin, algo que haces una sola vez.
¿Qué productos de Devin cubre?
init apunta a Devin Desktop, antes Windsurf, y a Devin CLI. Los detecta por una carpeta .devin o .windsurf o un archivo .windsurfrules. Ambos leen AGENTS.md y cargan los hooks de Claude Code de .claude/settings.json.
¿Funcionan los hooks en Devin sin el agente Claude Code?
Sí, para eso sirve el formato compartido. Los hooks viven en .claude/settings.json y Devin los carga por defecto. Ejecutan el mismo comando graph-indexer hook, que falla en abierto bajo un plazo y calla en el resto de casos.
¿Son obligatorios los hooks?
No. Las herramientas MCP funcionan sin ellos. Los hooks añaden contexto tras ediciones y búsquedas, como la comprobación de edición del archivo que has cambiado. Solo se escriben si pasas --hooks.