hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Uses Gemini Flash 2.0 to generate code summaries with configurable detail levels and length constraints.
Resumidor de código
Una herramienta de línea de comandos que resume los archivos de código en un directorio determinado mediante Gemini Flash 2.0. ¡Ahora compatible con el servidor MCP para la integración con herramientas LLM!
Características
- Procesa recursivamente archivos de código en un directorio
- Respeta las reglas de
.gitignore
- Omite directorios irrelevantes como
node_modules
,dist
, etc. - Resume archivos de código usando Gemini Flash 2.0
- Envía resúmenes a un archivo de texto
- Nivel de detalle y longitud de resumen configurables
- Servidor MCP para integración con Claude Desktop y otras herramientas LLM
- Diseño modular para una fácil integración con otras aplicaciones.
- Gestión segura de claves API
- Autenticación para puntos finales del servidor MCP
- Mecanismo de reintento con retroceso exponencial para llamadas LLM
- Limitación de velocidad para evitar abusos
Requisitos
- Node.js 18+
Instalación
- Clonar el repositorioCopy
- Instalar dependencias:Copy
- Crea un archivo
.env
con tu clave API de Google:Copy - Construir el proyecto:Copy
Configuración e integración del servidor MCP
El resumidor de código incluye un servidor de Protocolo de contexto de modelo (MCP) que permite que las herramientas LLM como Claude Desktop, Cursor AI y Cline accedan a resúmenes de código y contenido de archivos.
Iniciar el servidor MCP
De forma predeterminada, el servidor se ejecuta en el puerto 24312. Puede cambiarlo en su configuración:
Conectando con Claude Desktop
- Iniciar el servidor MCP del resumen de código
- Abra Claude Desktop y haga clic en el menú Claude, luego en "Configuración..."
- Vaya a la sección "Desarrollador"
- Cree un archivo en
~/.claude/claude_desktop_config.json
(macOS/Linux) o%USERPROFILE%\.claude\claude_desktop_config.json
(Windows) con este contenido:
- Reiniciar Claude Desktop
- Después de reiniciar, puedes pedirle a Claude que acceda a tu base de código, por ejemplo, "Resumir los archivos de mi proyecto".
Ejemplos de indicaciones para Claude Desktop:
- "¿Puedes resumir todos los archivos JavaScript en mi proyecto?"
- "Por favor, deme una descripción general de alto nivel de mi base de código".
- "Explique qué hace el archivo 'src/config/config.ts'".
- "Encuentra todas las funciones relacionadas con la autenticación en mi código".
Conexión con Cursor AI
- Iniciar el servidor MCP del resumen de código
- Cree un archivo
.cursor/mcp.json
en el directorio de su proyecto:
- Reiniciar el cursor o recargar el proyecto
- Pregúntele a Cursor sobre su código, por ejemplo, "¿Puede resumir mi código base?"
Ejemplos de indicaciones para el cursor:
- "Resúmeme la estructura de este código base".
- "¿Cuáles son los componentes clave de este proyecto?"
- "Dame una explicación detallada de la implementación del servidor MCP".
- "Ayúdame a entender cómo funciona el mecanismo de reintento".
Conectando con Cline
- Iniciar el servidor MCP del resumen de código
- En Cline, puedes agregar el servidor MCP con un comando:
- Luego autentícate con tu clave API:
- Luego puedes pedirle a Cline que use el resumidor de código, por ejemplo: "Por favor, resuma mis archivos de código".
Ejemplos de indicaciones para Cline:
- "¿Qué hace cada archivo en mi proyecto?"
- "Crea un resumen de todos los archivos TypeScript".
- "Explique el flujo de autenticación en esta base de código".
- "¿Cuáles son las funciones principales del directorio 'summarizador'?"
Qué puede hacer con la integración de MCP
Al utilizar la integración de MCP, puede:
- Obtener resúmenes de archivos : solicita explicaciones concisas de lo que hacen archivos específicos
- Explorar directorios : navegue a través de la estructura de su base de código
- Procesamiento por lotes : resuma varios archivos a la vez
- Consultas específicas : encuentre patrones o funcionalidades específicas en su código
- Personalizar resúmenes : controlar el nivel de detalle y la longitud del resumen
- Actualizar configuración : cambiar las opciones de configuración a través de la interfaz MCP
El servidor MCP expone su base de código a las herramientas LLM de manera estructurada, lo que les permite leer, navegar y resumir su código sin tener que pegar fragmentos de código manualmente.
Detalles de la integración del servidor MCP
Recursos de MCP
code://file/*
- Acceder a archivos de código individualescode://directory/*
- Lista los archivos de código en un directoriosummary://file/*
- Obtener el resumen de un archivo específicosummary://batch/*
- Obtener resúmenes de varios archivos
Herramientas MCP
summarize_file
- Resumir un solo archivo con opcionessummarize_directory
- Resumir un directorio con opcionesset_config
- Actualizar las opciones de configuración
Indicaciones de MCP
code_summary
- Plantilla de solicitud para resumir el códigodirectory_summary
- Plantilla de solicitud para resumir directorios completos
Solución de problemas
Problemas comunes de conexión de MCP
- Conexión rechazada
- Asegúrese de que el servidor MCP esté ejecutándose (
npm start -- server
) - Verifique que el puerto sea correcto en su configuración
- Comprueba si hay problemas de firewall que bloqueen la conexión
- Asegúrese de que el servidor MCP esté ejecutándose (
- Errores de autenticación
- Verifique que haya agregado la clave API correcta en los encabezados (
x-api-key
) - Comprueba que tu clave API sea válida y tenga el formato correcto
- Asegúrese de que las variables de entorno estén configuradas correctamente
- Verifique que haya agregado la clave API correcta en los encabezados (
- Errores de transporte
- Asegúrese de que se especifique el tipo de transporte correcto (SSE)
- Compruebe que la URL incluya el punto final correcto (
/sse
) - Verificar la conectividad de red entre el cliente y el servidor
- Problemas de permisos
- Asegúrese de que el servidor MCP tenga acceso de lectura a su código base
- Verifique los permisos de archivo si el resumen falla para archivos específicos
- Claude Desktop no encuentra el servidor MCP
- Verifique que la ruta en
claude_desktop_config.json
sea correcta - Asegúrese de que el comando y los argumentos apunten a la ubicación correcta
- Verifique los registros de Claude Desktop para detectar cualquier error de configuración
- Verifique que la ruta en
- Limitación de velocidad
- Si ve errores de "Demasiadas solicitudes", espere y vuelva a intentarlo más tarde.
- Considere ajustar la configuración de limitación de velocidad en el código del servidor
Para otros problemas, verifique los registros del servidor o abra un problema en el repositorio de GitHub.
Uso
Interfaz de línea de comandos
Gestión de la configuración
Autenticación de API
Al conectarse al servidor MCP, debe incluir su clave API en los encabezados de solicitud:
Todos los puntos finales (excepto /health
) requieren autenticación.
Opciones
--detail
,-d
: Define el nivel de detalle de los resúmenes. Las opciones son 'bajo', 'medio' o 'alto'. El valor predeterminado es 'medio'.--max-length
,-l
: Longitud máxima de cada resumen en caracteres. El valor predeterminado es 500.
Características de seguridad
Gestión de claves API
- Las claves API se almacenan de forma segura y priorizan las variables de entorno sobre los archivos de configuración
- Las claves se validan para comprobar que tienen el formato adecuado antes de su uso
- Las claves API nunca se exponen en registros ni mensajes de error.
- El archivo de configuración no almacena claves API cuando se proporcionan a través de variables de entorno
Autenticación
- Todos los puntos finales del servidor MCP (excepto la comprobación de estado) requieren autenticación mediante una clave API
- La autenticación utiliza el encabezado
x-api-key
para una transmisión segura - Los intentos de autenticación fallidos se registran para la supervisión de seguridad.
Limitación de velocidad
- La limitación de velocidad incorporada evita el abuso del servicio
- Predeterminado: 60 solicitudes por minuto por dirección IP
- Configurable a través de la configuración del servidor
Manejo de errores
- Sistema de error estructurado con categorización
- La información confidencial nunca se expone en los mensajes de error.
- Se devuelven códigos de error adecuados para diferentes escenarios de falla.
LLM Llamada Resiliencia
- Reintento automático con retroceso exponencial para fallas transitorias
- Configuraciones de reintento configurables que incluyen reintentos máximos, demoras y factor de retroceso
- Se agregó jitter al tiempo de reintento para evitar problemas de rebaño atronador
- Solicitar seguimiento de ID para rastrear problemas en todo el sistema
Tipos de archivos admitidos
- TypeScript (.ts, .tsx)
- JavaScript (.js, .jsx)
- Python (.py)
- Java (.java)
- C++ (.cpp)
- C (.c)
- Ir (.go)
- Rubí (.rb)
- PHP (.php)
- C# (.cs)
- Swift (.swift)
- Óxido (.rs)
- Kotlin (.kt)
- Scala (.scala)
- Vista (.vue)
- HTML (.html)
- CSS (.css, .scss, .less)
Cómo funciona
- La herramienta escanea el directorio especificado de forma recursiva, respetando las reglas
.gitignore
. - Filtra archivos según las extensiones compatibles.
- Para cada archivo compatible, lee el contenido y determina el lenguaje de programación.
- Envía el código a Gemini Flash 2.0 con un mensaje para resumir, incluyendo el nivel de detalle y las restricciones de longitud.
- Los resúmenes se recopilan y escriben en el archivo de salida especificado.
Formato de salida
El archivo de salida tendrá el siguiente formato:
Estructura del proyecto
index.ts
: Implementación principal de la CLIsrc/
: Directorio del código fuentesummarizer/
: Funcionalidad principal de resumenmcp/
: Implementación del servidor MCPconfig/
: Gestión de configuración
bin/
: punto de entrada CLIconfig.json
: archivo de configuración predeterminadotsconfig.json
: configuración de TypeScriptpackage.json
: Dependencias y scripts del proyecto.env.example
: Plantilla para configurar variables de entorno.gitignore
: Archivos y directorios a ignorar en Git__tests__
: Pruebas unitarias y de integración__mocks__/mock-codebase
: Base de código simulada para pruebas
Variables de entorno
Las siguientes variables de entorno se pueden utilizar para configurar la aplicación:
Variable | Descripción | Por defecto |
---|---|---|
GOOGLE_API_KEY | Su clave API de Google Gemini | Ninguno (obligatorio) |
PORT | Puerto para el servidor MCP | 24312 |
ALLOWED_ORIGINS | Lista separada por comas de orígenes CORS permitidos | http://localhost:3000 |
LOG_LEVEL | Nivel de registro (error, advertencia, información, depuración) | información |
Consulte .env.example
para obtener una plantilla.
Desarrollo
Ejecución de pruebas
Mejoras futuras
- Compatibilidad con más tipos de archivos
- Apoyo a proveedores alternativos de LLM
- Integración con una aplicación Electron para una interfaz GUI
- Capacidades mejoradas del servidor MCP
- Seguimiento avanzado del uso de tokens
- Observabilidad basada en OpenTelemetry
- Capacidades mejoradas de registro de auditoría
- Integración de escaneo secreto
This server cannot be installed
Permite que herramientas LLM como Claude Desktop y Cursor AI accedan y resuman archivos de código a través de un servidor de Protocolo de Contexto de Modelo, lo que proporciona acceso estructurado al contenido de la base de código sin copia manual.