Análisis del código MCP
Un poderoso kit de herramientas de análisis de base de código que aprovecha el Protocolo de contexto de modelo (MCP) para la comprensión y transformación del código asistida por IA.
Características
- Análisis de código : analice bases de código con árboles de sintaxis abstracta
- Generación de contexto : cree información contextual enriquecida para modelos de IA
- Integración de herramientas : Construido sobre el SDK de MCP para una integración perfecta de herramientas de IA
- Arquitectura extensible : sistema basado en complementos para analizadores personalizados
Requisitos
- Node.js 18+
- NPM 9+
- Redis (opcional, solo requerido para entornos de producción)
Instalación
Configuración de Redis (opcional)
Redis se utiliza para el almacenamiento de sesiones en entornos de producción. Para desarrollo y pruebas, el sistema recurrirá automáticamente a un almacenamiento de sesiones en memoria si Redis no está disponible.
Nota : Existe un problema conocido con la conectividad de Redis, que puede provocar fallos en las operaciones incluso con Redis en ejecución. Consulte la sección "Deuda técnica" en
plan.md
para obtener más información. Por ahora, puede usar el script./use-memory-session.sh
para ejecutar el servidor con el almacén de sesiones de memoria. Para más información, consulte la Guía de solución de problemas de Redis .
Para instalar Redis:
De forma predeterminada, la aplicación intenta conectarse a Redis en redis://localhost:6379
. Puede configurar la conexión a Redis mediante variables de entorno:
Desarrollo
Uso
Documentación
Licencia
Instituto Tecnológico de Massachusetts (MIT)
Servidor MCP de CodeAnalysis
Un servidor integral de Protocolo de Contexto de Modelo (MCP) para el análisis de código avanzado, que proporciona herramientas y conocimientos a través de una arquitectura extensible.
🚀 Características
- Análisis básico de código : análisis de sintaxis y estructura
- Métricas de código : complejidad, recuentos de líneas y métricas de calidad del código
- Análisis de dependencia : visualización de la relación entre paquetes e importaciones
- Gráfico de conocimiento : visualización y consulta de relaciones de código
- Sistema de memoria : almacene y recupere información sobre bases de código
- Visualizaciones : Genera diagramas en múltiples formatos (Mermaid, DOT, ASCII)
- Análisis sociotécnico : comprender las relaciones entre el equipo y el código
- Análisis de múltiples repositorios : análisis de relaciones entre repositorios
- Planificación de la evolución : recomendaciones para mejorar el código
- Observación en vivo : supervise los cambios de código en tiempo real
- Integración IDE : Herramientas para la integración del editor
- Herramientas para desarrolladores : Soporte mejorado para flujos de trabajo de desarrollo asistidos por IA
📋 Requisitos previos
- Node.js 18+
- npm o hilo
- Redis (opcional para desarrollo, recomendado para producción)
🛠️ Instalación
🖥️ Uso
El servidor MCP de CodeAnalysis se puede utilizar de dos maneras:
1. Como servidor MCP
Esto inicia el servidor MCP al que puede conectarse cualquier cliente MCP como Claude Desktop, Cursor u otros.
2. Uso de la CLI
El proyecto incluye una CLI completa para interacción directa:
3. Uso de herramientas de desarrollo para el desarrollo asistido por IA
El proyecto incluye herramientas especiales diseñadas para mejorar el desarrollo asistido por IA:
Consulte la Guía de herramientas para desarrolladores para obtener información detallada.
📊 Comandos de ejemplo
Análisis básico
Métricas de código
Análisis de dependencia
Calidad del código
Gráfico de conocimiento
Perspectivas y memoria
Herramientas para desarrolladores
🏗️ Arquitectura
El proyecto sigue la arquitectura MCP con estos componentes:
- Servidor MCP : Implementación del servidor central que utiliza el protocolo MCP
- Características de análisis : Capacidades de análisis de código modular
- CLI : Interfaz de línea de comandos para interacción directa
- Capa de transporte : mecanismo de comunicación (stdio por defecto)
🔌 Integración con clientes MCP
Este servidor es compatible con cualquier cliente compatible con MCP, incluidos:
- Aplicación de escritorio Claude
- Editor de cursores
- Continuar
- Otras herramientas compatibles con MCP
📝 Especificación de ruta
Los comandos aceptan rutas en varios formatos:
- Directorio local:
./src
o/absolute/path/to/dir
- Archivo local:
./src/file.ts
o/path/to/file.ts
- URL del repositorio:
https://github.com/username/repo
🤝 Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
📄 Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Arquitectura de gestión de estados del SDK de MCP
Este proyecto implementa herramientas con estado para el SDK del Protocolo de Contexto de Modelo (MCP), proporcionando un marco para crear herramientas que mantienen el contexto entre invocaciones.
Descripción general de la arquitectura
La arquitectura de gestión estatal está organizada en varios componentes modulares:
Componentes principales
Asistente de herramientas con estado ( statefulTool.ts
)
El punto de integración central con el SDK de MCP, que proporciona:
- Registro de herramientas con gestión de sesiones
- Formato de respuesta compatible con MCP
- Gestión de sesiones en memoria
- Funciones auxiliares para el acceso y la manipulación de sesiones
Máquina herramienta ( toolMachine.ts
)
Máquina de estados basada en XState que define el flujo de ejecución de las herramientas:
- Transiciones de estado (inactivo, herramienta seleccionada, parámetros establecidos, en ejecución, etc.)
- Gestión del contexto para parámetros, resultados e historial
- Manejo de errores y rutas de recuperación
Este componente delega la gestión de la sesión a la implementación de statefulTool.
Servicio de herramientas ( toolService.ts
)
Servicio de ejecución central que coordina las transiciones del estado de la herramienta:
- Gestiona la selección de herramientas, la validación de parámetros y la ejecución.
- Realiza un seguimiento del historial de ejecución
- Maneja resultados y errores de ejecución
Tipos ( types.ts
)
Definiciones de tipos compartidos que garantizan la coherencia en todo el sistema de gestión estatal:
- SessionData: Estructura para almacenar el estado de la herramienta
- SessionStore: Interfaz para implementaciones de almacenamiento de sesiones
- ExecutionResult: Formato de respuesta estándar para herramientas
Integración con el SDK de MCP
La arquitectura se integra con el SDK de MCP mediante:
- Ampliación del patrón de registro de herramientas con gestión de estados
- Mantener la compatibilidad con el formato de respuesta de MCP
- Proporcionar seguimiento de sesiones y contexto para operaciones con estado
Ejemplo de uso
Gestión de estados distribuidos
Para entornos distribuidos, las implementaciones basadas en Redis proporcionan:
- Persistencia de la sesión tras reinicios del servidor
- Bloqueo distribuido para acceso concurrente
- Limpieza de sesión basada en TTL
- Manejo de errores para problemas de red/conexión
Pruebas
Los componentes incluyen conjuntos de pruebas completos para verificar:
- Transiciones de estado de la herramienta
- Gestión de sesiones
- Manejo y recuperación de errores
- Formato de respuesta
- Operación distribuida (con Redis)
Herramientas de desarrollo de IA
El servidor MCP de CodeAnalysis proporciona herramientas especializadas para el desarrollo asistido por IA. Estas herramientas ayudan a recopilar el contexto del código que puede alimentarse a los sistemas de IA para una asistencia más eficaz.
Scripts de cliente
El repositorio incluye varios scripts de cliente en el directorio tools/
:
- Cliente HTTP (
tools/http-client.js
): se conecta al servidor MCP a través del transporte HTTP (predeterminado).Copy - Cliente sin procesar (
tools/mcp-raw-client.js
): un cliente más simple que solo captura información del servidor.Copy - Cliente simple (
tools/simple-client.js
): se comunica con el servidor a través de stdio.Copy
Todos los scripts de cliente generan un archivo ai-context.json
en la raíz del proyecto. Este archivo contiene información valiosa sobre el código base que puede compartirse con los asistentes de IA para proporcionar respuestas más informadas.
Plantilla de mensaje
Hay una plantilla de solicitud para asistentes de IA disponible en templates/ai-prompt-template.md
. Esta plantilla ayuda a estructurar las solicitudes a los asistentes de IA con el contexto adecuado de las herramientas MCP.
Modos de transporte del servidor
El servidor MCP admite dos modos de transporte:
- Transporte HTTP (predeterminado): Se ejecuta en el puerto 3000 de forma predeterminada. Ideal para arquitecturas cliente-servidor.
- Transporte de Stdio : Para la comunicación directa entre procesos. Configure la variable de entorno
STDIO_TRANSPORT=true
para habilitarla.
Arquitectura de almacenamiento de sesiones
El análisis de código MCP ahora cuenta con una arquitectura de almacenamiento de sesiones modular con detección automática de backend:
- Almacenamiento flexible : cambia automáticamente entre Redis y almacenamiento en memoria
- Apto para desarrollo : Ejecútelo sin Redis durante el desarrollo
- Listo para producción : utilice Redis para la persistencia en entornos de producción
- Retroceso automático : se recurre elegantemente al almacenamiento de memoria cuando Redis no está disponible
Para obtener más detalles, consulte la documentación de Arquitectura del almacén de sesiones .
Requisitos
- Node.js 18+
- npm o hilo
- Redis (opcional para desarrollo, recomendado para producción)
This server cannot be installed
Un servidor de protocolo de contexto de modelo integral para análisis de código avanzado que proporciona herramientas para análisis de sintaxis, visualización de dependencias y soporte de flujo de trabajo de desarrollo asistido por IA.