LAIN-mcp

Servidor MCP en Rust que otorga a los agentes de codificación de IA conciencia arquitectónica: grafo de conocimiento persistente, análisis de radio de explosión, detección de co-cambio mediante git y búsqueda semántica local. Sin claves API, se ejecuta completamente en las instalaciones.

Documentación

Lain

Un grafo de código para agentes de codificación. Lain mapea llamadores, dependencias, símbolos y co-cambios de Git, y luego los expone a través del Protocolo de Contexto de Modelo (MCP). Antes de que un agente edite una función, puede inspeccionar qué depende de ella y cómo el resto del código la alcanza.

Lain Command Center demo

La demo rastrea un símbolo a través de los repositorios bytes y tokio. Los agentes consultan el mismo grafo a través de MCP; el navegador muestra qué indexó Lain y de dónde provino una respuesta.

Pregúntale a tu agente:

If I change validate_token, what breaks?
Show me the call chain from entry to helper_a.
Which files usually change with auth.rs?
Is another agent already editing this code?

Lain responde con nombres de símbolos y rutas de origen desde un índice local. El índice permanece en disco entre ejecuciones, se actualiza cuando el código cambia y puede cubrir más de un repositorio. La búsqueda semántica es opcional; las consultas de grafo funcionan sin un modelo de incrustación.

Instalación

Usando el instalador de lanzamiento:

curl -fsSL https://raw.githubusercontent.com/spuentesp/lain/main/install.sh | bash
source ~/.zshrc   # or ~/.bashrc
lain --version

Rust 1.89 o más reciente solo se necesita al compilar desde el código fuente. La guía de inicio rápido cubre la instalación no interactiva y el modelo de incrustación local opcional.

Conectar un agente

Ejecuta un comando de configuración desde el repositorio que quieres que Lain indexe:

lain setup --agent claude-code
lain setup --agent codex
lain setup --agent cursor
lain setup --agent vscode
lain setup --agent continue

Usa lain setup --agent generic para otro host de MCP. Esto escribe este .mcp.json a nivel de proyecto, con la ruta absoluta del binario lain que ejecutó la configuración como command:

{
  "mcpServers": {
    "lain": {
      "command": "/home/you/.local/bin/lain",
      "args": ["mcp"]
    }
  }
}

Reinicia el agente después de la configuración. Lain sube desde el directorio de trabajo del agente para encontrar .git, construye .lain/graph.bin y sirve el repositorio a través de stdio. No se necesita repos.yaml para un solo repositorio.

Lenguajes

Los analizadores para Rust, Python, TypeScript, JavaScript, Go, Java, C, C++, C#, Ruby, Swift, Kotlin, Scala y PHP están integrados en el binario, al igual que los bloques <script> de los componentes Vue y Svelte. Cada uno obtiene definiciones y un grafo de llamadas sin necesidad de instalar nada más.

Los servidores de lenguaje son opcionales y solo añaden precisión. lain setup lista los lenguajes que encontró y pregunta qué servidores instalar; presionar Enter no instala ninguno. Las ejecuciones no interactivas no instalan ninguno a menos que los nombres:

lain setup --lsp python,go      # just these
lain setup --lsp detected       # every missing one for this repository
lain setup --lsp none

Primera consulta

Pregúntale al agente conectado:

Use Lain to show the blast radius of validate_token.

O llama a la misma herramienta desde una terminal:

lain oneshot get_blast_radius validate_token

Usa un símbolo de tu repositorio en lugar de validate_token. Si el grafo no está listo o una respuesta parece desactualizada, ejecuta lain doctor.

Múltiples repositorios

lain repos add bytes https://github.com/tokio-rs/bytes.git
lain repos add tokio https://github.com/tokio-rs/tokio.git
lain workspaces create tokio-stack --members bytes,tokio
lain server --config ./repos.yaml --transport http --port 9999

Abre http://localhost:9999 para el Centro de Comando. El servidor escucha solo en localhost; establece LAIN_BIND_ADDR=0.0.0.0 (con LAIN_API_KEYS=key1,…) para exponerlo en la red. La federación añade búsqueda a nivel de organización y consultas de radio de explosión entre repositorios. La guía de federación cubre configuración, tipos de fuente y estados de fallo. Después de una actualización del esquema de federación, ejecuta lain reindex para reconstruir el grafo en disco desde las fuentes.

Verificar el grafo

Desde un checkout de fuente:

scripts/demo.sh --quick

El script crea un repositorio pequeño con un grafo de llamadas conocido, inicia un servidor Lain real y compara las respuestas con ese grafo. Sale con código distinto de cero cuando una verificación falla. Una ejecución completa también registra tiempos contra este repositorio.

Lo que proporciona Lain

NecesidadHerramienta o característica
Ver llamadores antes de cambiar un símbologet_blast_radius, assess_change
Rastrear cómo se conectan dos funcionesget_call_chain
Encontrar puntos de entrada arquitectónicosfind_anchors, list_entry_points
Buscar por nombre o significadofind_symbol, search_code
Seguir un símbolo entre repositoriosget_cross_repo_blast_radius, search_org
Evitar que los agentes editen el mismo código a ciegasintenciones, presencia y reclamos de archivos de asesoría

El análisis estático no puede probar cada llamada dinámica a través de un bus de mensajes, contenedor de inyección de dependencias o enrutador reflexivo. explain_dispatch combina llamadores estáticos con coincidencias de convenciones, rastros de ejecución y evidencia de co-cambios de Git; un resultado vacío se convierte en insufficient_evidence, no en una afirmación de que la edición es segura.

Documentación

Comienza aquíCubre
Inicio rápidoInstalación, primera consulta y primeros auxilios
Manual de usuarioReferencia de CLI, ajuste, operación y solución de problemas
Guía de herramientasHerramientas MCP, argumentos, salidas y límites
Paquete de habilidadesHabilidades cargables por agentes y recetas de roles
FederaciónConfiguración y consultas de múltiples repositorios
MultijugadorPresencia de agentes, intenciones, reclamos y enlaces
ArquitecturaConstrucción del grafo y decisiones de diseño
Índice de documentaciónCada documento mantenido

Estado del proyecto

CI SafeSkill OpenSSF Scorecard OpenSSF Best Practices SBOM Build Provenance

Licencia

MIT — Copyright (c) 2026 spuentesp