Codelogic

Utiliza los datos de dependencias de software de Codelogic en tu asistente de programación de IA.

Documentación

lineai-mcp-server

Un servidor MCP para utilizar los ricos datos de dependencias de software de Lineai en tu asistente de programación con IA.

Componentes

Herramientas

El servidor implementa ocho herramientas: dos herramientas de impacto más seis herramientas de grafo respaldadas por la API HTTP de grafo de Lineai.

Herramientas de Análisis de Código

  • lineai-method-impact: Obtiene una evaluación de impacto de las APIs del servidor Lineai para tu código.
    • Toma el "método" dado en el que estás trabajando y su "clase" asociada.
  • lineai-database-impact: Analiza impactos entre entidades de código y base de datos.
    • Toma el tipo de entidad de base de datos (columna, tabla o vista) y su nombre.

Herramientas de API de Grafo

Estas llaman a los endpoints POST / GET bajo /api/ai-retrieval/graph/ en el mismo host que LINEAI_SERVER_HOST, usando la misma autenticación de sesión que otras herramientas MCP. Si las rutas de grafo no están desplegadas, el servidor devuelve un mensaje claro del estilo “grafo no disponible” (a menudo después de un HTTP 404).

  • lineai-graph-capabilities: GET — descubre los tipos de relaciones, límites y banderas admitidos para la vista materializada del espacio de trabajo (materializedViewId por defecto de LINEAI_WORKSPACE_NAME como otras herramientas).
  • lineai-graph-search: Busca nodos por texto query / q y/o identity_prefix; opcional scan_space, limit, etc.
  • lineai-graph-impact: Recorrido de estilo dependencia / radio de explosión desde seed_node_ids.
  • lineai-graph-path-explain: Explicación de estilo camino más corto entre from_node_id y to_node_id.
  • lineai-graph-validate-change-scope: Lista de verificación heurística / resumen de riesgos para un cambio propuesto dados los nodos semilla y proposed_change_summary.
  • lineai-graph-owners: Resuelve un nodo por node_id o identity_prefix y muestra los campos de propiedad cuyos nombres contienen "owner".

Los argumentos de las herramientas aceptan alias en snake_case (por ejemplo materialized_view_id, seed_node_ids) donde se indica en el esquema MCP; los cuerpos de solicitud enviados a Lineai usan claves JSON en camelCase.

Instalación

Requisitos previos

El servidor MCP depende de Astral UV para ejecutarse, por favor instala

Solución para MacOS con uvx

Hay un problema conocido con uvx en MacOS donde el servidor MCP de Lineai puede fallar al iniciar en ciertos IDEs (como Cursor), resultando en errores como: Ver issue #11

Failed to connect client closed

Esto parece ser un problema con Astral uvx ejecutándose en MacOS. Lo siguiente se puede usar como solución:

  1. Clona este proyecto localmente.
  2. Configura tu mcp.json para usar uv en lugar de uvx. Por ejemplo:
{
  "mcpServers": {
    "lineai-mcp-server": {
      "type": "stdio",
      "command": "<PATH_TO_UV>/uv",
      "args": [
        "--directory",
        "<PATH_TO_THIS_REPO>/lineai-mcp-server-main",
        "run",
        "lineai-mcp-server"
      ],
      "env": {
        "LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
        "LINEAI_USERNAME": "<my username>",
        "LINEAI_PASSWORD": "<my password>",
        "LINEAI_WORKSPACE_NAME": "<my workspace>",
        "LINEAI_DEBUG_MODE": "true"
      }
    }
  }
}
  1. Reinicia Cursor.
  2. Asegúrate de que la Regla Global de Cursor para Lineai esté en su lugar.
  3. Abre la pestaña MCP en Cursor y actualiza el lineai-mcp-server.
  4. Pide a Cursor que haga un cambio de código en una clase existente. El servidor MCP ahora debería ejecutar el análisis de impacto correctamente.

Configuración para Diferentes IDEs

Configuración de Visual Studio Code

Para configurar este servidor MCP en VS Code:

  1. Primero, asegúrate de tener el modo agente de GitHub Copilot habilitado en VS Code.

  2. Crea un archivo .vscode/mcp.json en tu espacio de trabajo con la siguiente configuración:

{
  "servers": {
    "lineai-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "lineai-mcp-server@latest"
      ],
      "env": {
        "LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
        "LINEAI_USERNAME": "<my username>",
        "LINEAI_PASSWORD": "<my password>",
        "LINEAI_WORKSPACE_NAME": "<my workspace>",
        "LINEAI_DEBUG_MODE": "true"
      }
    }
  }
}

Nota: En algunos sistemas, es posible que necesites usar la ruta completa al ejecutable de uvx en lugar de solo "uvx". Por ejemplo: /home/user/.local/bin/uvx en Linux/Mac o C:\Users\username\AppData\Local\astral\uvx.exe en Windows.

  1. Alternativamente, puedes ejecutar el comando MCP: Add Server desde la Paleta de Comandos y proporcionar la información del servidor.

  2. Para gestionar tus servidores MCP, usa el comando MCP: List Servers desde la Paleta de Comandos.

  3. Una vez configurado, las herramientas del servidor estarán disponibles para el modo agente de Copilot. Puedes activar/desactivar herramientas específicas según sea necesario haciendo clic en el botón Herramientas en la vista de Chat cuando estés en modo agente.

  4. Para usar las herramientas de Lineai en modo agente, puedes preguntar específicamente sobre impactos de código o relaciones de base de datos, y el agente utilizará las herramientas apropiadas.

Configuración de Claude Desktop

Configura Claude Desktop editando el archivo de configuración:

  • En MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • En Windows: %APPDATA%/Claude/claude_desktop_config.json
  • En Linux: ~/.config/Claude/claude_desktop_config.json

Añade lo siguiente a tu archivo de configuración:

"mcpServers": {
  "lineai-mcp-server": {
    "command": "uvx",
    "args": [
      "lineai-mcp-server@latest"
    ],
    "env": {
      "LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
      "LINEAI_USERNAME": "<my username>",
      "LINEAI_PASSWORD": "<my password>",
      "LINEAI_WORKSPACE_NAME": "<my workspace>"
    }
  }
}

Nota: En algunos sistemas, es posible que necesites usar la ruta completa al ejecutable de uvx en lugar de solo "uvx". Por ejemplo: /home/user/.local/bin/uvx en Linux/Mac o C:\Users\username\AppData\Local\astral\uvx.exe en Windows.

Después de añadir la configuración, reinicia Claude Desktop para aplicar los cambios.

Configuración de Windsurf IDE

Para ejecutar este servidor MCP con Windsurf IDE:

Configura Windsurf IDE:

Para configurar Windsurf IDE, necesitas crear o modificar el archivo de configuración ~/.codeium/windsurf/mcp_config.json.

Añade la siguiente configuración a tu archivo:

"mcpServers": {
  "lineai-mcp-server": {
    "command": "uvx",
    "args": [
      "lineai-mcp-server@latest"
    ],
    "env": {
      "LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
      "LINEAI_USERNAME": "<my username>",
      "LINEAI_PASSWORD": "<my password>",
      "LINEAI_WORKSPACE_NAME": "<my workspace>"
    }
  }
}

Nota: En algunos sistemas, es posible que necesites usar la ruta completa al ejecutable de uvx en lugar de solo "uvx". Por ejemplo: /home/user/.local/bin/uvx en Linux/Mac o C:\Users\username\AppData\Local\astral\uvx.exe en Windows.

Después de añadir la configuración, reinicia Windsurf IDE o actualiza las herramientas para aplicar los cambios.

Configuración de Cursor

Para configurar el servidor MCP de Lineai en Cursor:

  1. Configura el servidor MCP creando un archivo .cursor/mcp.json:
{
  "mcpServers": {
    "lineai-mcp-server": {
      "command": "uvx",
      "args": [
        "lineai-mcp-server@latest"
      ],
      "env": {
        "LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
        "LINEAI_USERNAME": "<my username>",
        "LINEAI_PASSWORD": "<my password>",
        "LINEAI_WORKSPACE_NAME": "<my workspace>",
        "LINEAI_DEBUG_MODE": "true"
      }
    }
  }
}

Nota: En algunos sistemas, es posible que necesites usar la ruta completa al ejecutable de uvx en lugar de solo "uvx". Por ejemplo: /home/user/.local/bin/uvx en Linux/Mac o C:\Users\username\AppData\Local\astral\uvx.exe en Windows.

  1. Reinicia Cursor para aplicar los cambios.

Las herramientas del servidor MCP de Lineai ahora estarán disponibles en tu espacio de trabajo de Cursor.

Instrucciones/Reglas para Asistentes de IA

Para ayudar al asistente de IA a usar las herramientas de Lineai de manera efectiva, puedes añadir las siguientes instrucciones/reglas a la configuración de tu cliente. Recomendamos personalizar estas instrucciones para alinearlas con los estándares de codificación, mejores prácticas y requisitos de flujo de trabajo específicos de tu equipo:

Cuando la API de grafo esté disponible en tu host de Lineai, extiende tus reglas con la misma guía que el servidor ya anuncia en su instructions de MCP: usa las herramientas lineai-graph-* (search, impact, path-explain, validate-change-scope, owners, capabilities) para descubrimiento acotado de grafos; si las llamadas de grafo fallan con “no disponible”, recurre a lineai-method-impact / lineai-database-impact.

Instrucciones para VS Code (GitHub Copilot)

Crea un archivo .vscode/copilot-instructions.md con el siguiente contenido:

# Lineai MCP Server Instructions

When modifying existing code methods:
- Use lineai-method-impact to analyze code changes
- Use lineai-database-impact for database modifications
- When the Lineai graph API is available, use lineai-graph-* tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; otherwise rely on method/database impact tools
- Highlight impact results for the modified methods

When modifying SQL code or database entities:
- Always use lineai-database-impact to analyze potential impacts
- Highlight impact results for the modified database entities

To use the Lineai tools effectively:
- For code impacts: Ask about specific methods or functions
- For database relationships: Ask about tables, views, or columns
- For graph discovery: Prefer lineai-graph-* tools when available
- Review the impact results before making changes
- Consider both direct and indirect impacts

Instrucciones para Claude Desktop

Crea un archivo ~/.claude/instructions.md con el siguiente contenido:

# Lineai MCP Server Instructions

When modifying existing code methods:
- Use lineai-method-impact to analyze code changes
- Use lineai-database-impact for database modifications
- When the Lineai graph API is available, use lineai-graph-* tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; otherwise rely on method/database impact tools
- Highlight impact results for the modified methods

When modifying SQL code or database entities:
- Always use lineai-database-impact to analyze potential impacts
- Highlight impact results for the modified database entities

To use the Lineai tools effectively:
- For code impacts: Ask about specific methods or functions
- For database relationships: Ask about tables, views, or columns
- For graph discovery: Prefer lineai-graph-* tools when available
- Review the impact results before making changes
- Consider both direct and indirect impacts

Reglas para Windsurf IDE

Crea o modifica el archivo markdown ~/.codeium/windsurf/memories/global_rules.md con el siguiente contenido:

When modifying existing code methods:
- Use lineai-method-impact to analyze code changes
- Use lineai-database-impact for database modifications
- When the Lineai graph API is available, use lineai-graph-* tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; otherwise rely on method/database impact tools
- Highlight impact results for the modified methods

When modifying SQL code or database entities:
- Always use lineai-database-impact to analyze potential impacts
- Highlight impact results for the modified database entities

To use the Lineai tools effectively:
- For code impacts: Ask about specific methods or functions
- For database relationships: Ask about tables, views, or columns
- For graph discovery: Prefer lineai-graph-* tools when available
- Review the impact results before making changes
- Consider both direct and indirect impacts

Regla Global de Cursor

Para configurar las reglas de Lineai en Cursor:

  1. Abre la Configuración de Cursor
  2. Navega a la sección "Reglas"
  3. Añade el siguiente contenido a "Reglas de Usuario":
# Lineai MCP Server Rules
## Codebase
- The Lineai MCP Server is for java, javascript, typescript, and C# dotnet codebases
- don't run the tools on python or other non supported codebases
## AI Assistant Behavior
- When modifying existing code methods:
  - Use lineai-method-impact to analyze code changes
  - Use lineai-database-impact for database modifications
  - When the Lineai graph API is available, use lineai-graph-* tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; otherwise rely on method/database impact tools
  - Highlight impact results for the modified methods
- When modifying SQL code or database entities:
  - Always use lineai-database-impact to analyze potential impacts
  - Highlight impact results for the modified database entities
- To use the Lineai tools effectively:
  - For code impacts: Ask about specific methods or functions
  - For database relationships: Ask about tables, views, or columns
  - Review the impact results before making changes
  - Consider both direct and indirect impacts

Variables de Entorno

Las siguientes variables de entorno se pueden configurar para personalizar el comportamiento del servidor:

  • LINEAI_SERVER_HOST: La URL del servidor de Lineai.
  • LINEAI_USERNAME: Tu nombre de usuario de Lineai.
  • LINEAI_PASSWORD: Tu contraseña de Lineai.
  • LINEAI_WORKSPACE_NAME: El nombre del espacio de trabajo a usar.
  • LINEAI_DEBUG_MODE: Establece a true para habilitar el modo de depuración. Cuando está habilitado, se generarán archivos de depuración adicionales como timing_log.txt y impact_data*.json. Por defecto es false.

Solo pruebas

  • LINEAI_GRAPH_E2E_REQUIRED: Establece a 1 al ejecutar pruebas de integración de MCP de grafo si quieres que las APIs de grafo faltantes (HTTP 404 / “API de grafo no disponible”) fallen la suite en lugar de omitir esas pruebas.

Ejemplo de Configuración

"env": {
  "LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
  "LINEAI_USERNAME": "<my username>",
  "LINEAI_PASSWORD": "<my password>",
  "LINEAI_WORKSPACE_NAME": "<my workspace>",
  "LINEAI_DEBUG_MODE": "true"
}

Fijando la versión

en lugar de usar la versión latest del servidor, puedes fijar una versión específica cambiando el campo args para que coincida con la versión en pypi, por ejemplo.

    "args": [
      "lineai-mcp-server@0.2.2"
    ],

Compatibilidad de Versiones

Este servidor MCP tiene los siguientes requisitos de compatibilidad de versiones:

  • Versión 0.3.1 y anteriores: Compatible con todas las versiones de la API de Lineai
  • Versión 0.4.0 y superiores: Requiere la versión 25.10.0 o superior de la API de Lineai

Si estás actualizando, asegúrate de que tu servidor de Lineai cumpla con el requisito mínimo de versión de API.

Herramientas de grafo: Requieren que tu despliegue de Lineai sirva los endpoints de grafo bajo /api/ai-retrieval/graph/. Los despliegues antiguos o parciales pueden devolver 404; las herramientas MCP lo muestran como un error claro en lugar de fallos opacos.

Registro de Depuración

Cuando LINEAI_DEBUG_MODE=true, los archivos de depuración se escriben en el directorio temporal del sistema:

  • Windows: %TEMP%\lineai-mcp-server (típicamente C:\Users\{username}\AppData\Local\Temp\lineai-mcp-server)
  • macOS: /tmp/lineai-mcp-server (o $TMPDIR/lineai-mcp-server si está configurado)
  • Linux: /tmp/lineai-mcp-server (o $TMPDIR/lineai-mcp-server si está configurado)

Los archivos de depuración incluyen:

  • timing_log.txt - Información de tiempos de rendimiento
  • impact_data_*.json - Datos crudos de análisis de impacto para solución de problemas

Encontrando tu directorio de registros:

import tempfile
import os
print("Log directory:", os.path.join(tempfile.gettempdir(), "lineai-mcp-server"))

Pruebas

Ejecutando Pruebas Unitarias

El proyecto usa unittest para las pruebas. Puedes ejecutar las pruebas unitarias sin dependencias externas:

python -m unittest discover -s test -p "unit_*.py"

Las pruebas unitarias usan datos simulados y no requieren conexión a un servidor de Lineai.

Pruebas de Integración (Opcional)

Si quieres ejecutar pruebas de integración que se conecten a un servidor real de Lineai:

  1. Copia test/.env.test.example a test/.env.test y completa con los detalles de tu servidor de Lineai
  2. Ejecuta las pruebas de integración:
python -m unittest discover -s test -p "integration_*.py"

Nota: Las pruebas de integración requieren acceso a una instancia del servidor de Lineai.

Pruebas de extremo a extremo de Graph MCP

test/integration_test_graph.py impulsa la ruta real del manejador MCP (handle_call_tool) para lineai-graph-capabilities y un flujo encadenado (search → impact → path → validate → owners) contra LINEAI_SERVER_HOST. Configura las credenciales de la misma manera que otras pruebas de integración (test/.env.test de test/.env.test.example).

  • Si el host no expone rutas de grafo, las pruebas se omiten por defecto.
  • Establece LINEAI_GRAPH_E2E_REQUIRED=1 para convertir las APIs de grafo faltantes en fallos duros (útil en CI cuando el grafo debe estar presente).

Desde la raíz del repositorio:

./scripts/run_graph_e2e.sh

Equivalente:

uv run python -m unittest test.integration_test_graph -v

Validación para el Registro Oficial de MCP

mcp-name: io.github.lineai-intelligence/lineai-mcp-server