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 (materializedViewIdpor defecto deLINEAI_WORKSPACE_NAMEcomo otras herramientas). - lineai-graph-search: Busca nodos por texto
query/qy/oidentity_prefix; opcionalscan_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_idyto_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_idoidentity_prefixy 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:
- Clona este proyecto localmente.
- Configura tu
mcp.jsonpara usaruven lugar deuvx. 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"
}
}
}
}
- Reinicia Cursor.
- Asegúrate de que la Regla Global de Cursor para Lineai esté en su lugar.
- Abre la pestaña MCP en Cursor y actualiza el
lineai-mcp-server. - 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:
-
Primero, asegúrate de tener el modo agente de GitHub Copilot habilitado en VS Code.
-
Crea un archivo
.vscode/mcp.jsonen 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/uvxen Linux/Mac oC:\Users\username\AppData\Local\astral\uvx.exeen Windows.
-
Alternativamente, puedes ejecutar el comando
MCP: Add Serverdesde la Paleta de Comandos y proporcionar la información del servidor. -
Para gestionar tus servidores MCP, usa el comando
MCP: List Serversdesde la Paleta de Comandos. -
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.
-
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/uvxen Linux/Mac oC:\Users\username\AppData\Local\astral\uvx.exeen 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/uvxen Linux/Mac oC:\Users\username\AppData\Local\astral\uvx.exeen 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:
- 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/uvxen Linux/Mac oC:\Users\username\AppData\Local\astral\uvx.exeen Windows.
- 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:
- Abre la Configuración de Cursor
- Navega a la sección "Reglas"
- 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 atruepara habilitar el modo de depuración. Cuando está habilitado, se generarán archivos de depuración adicionales comotiming_log.txtyimpact_data*.json. Por defecto esfalse.
Solo pruebas
LINEAI_GRAPH_E2E_REQUIRED: Establece a1al 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ípicamenteC:\Users\{username}\AppData\Local\Temp\lineai-mcp-server) - macOS:
/tmp/lineai-mcp-server(o$TMPDIR/lineai-mcp-serversi está configurado) - Linux:
/tmp/lineai-mcp-server(o$TMPDIR/lineai-mcp-serversi está configurado)
Los archivos de depuración incluyen:
timing_log.txt- Información de tiempos de rendimientoimpact_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:
- Copia
test/.env.test.exampleatest/.env.testy completa con los detalles de tu servidor de Lineai - 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=1para 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