SourceSage: Memoria de código eficiente para LLM
SourceSage es un servidor MCP (Protocolo de Contexto de Modelo) que memoriza eficientemente aspectos clave de una base de código (lógica, estilo y estándares), a la vez que permite actualizaciones dinámicas y una rápida recuperación. Está diseñado para ser independiente del lenguaje, aprovechando la comprensión del LLM del código en múltiples lenguajes.
Características
Agnóstico del lenguaje : funciona con cualquier lenguaje de programación que el LLM comprenda
Almacenamiento de gráficos de conocimiento : almacena de manera eficiente entidades de código, relaciones, patrones y convenciones de estilo
Análisis impulsado por LLM : se basa en el LLM para analizar el código y brindar información.
Almacenamiento eficiente en tokens : optimiza para un uso mínimo de tokens mientras maximiza la capacidad de memoria
Actualizaciones incrementales : actualiza el conocimiento cuando el código cambia sin almacenamiento redundante
Recuperación rápida : permite la recuperación rápida y precisa de información relevante
Cómo funciona
SourceSage utiliza un enfoque novedoso donde:
El LLM analiza archivos de código (en cualquier idioma)
El LLM utiliza herramientas MCP para registrar entidades, relaciones, patrones y convenciones de estilo.
SourceSage almacena este conocimiento en una estructura gráfica eficiente en tokens
El LLM puede consultar posteriormente este conocimiento cuando sea necesario.
Este enfoque aprovecha la comprensión del lenguaje inherente del LLM mientras centra el servidor MCP en la gestión eficiente de la memoria.
Instalación
Uso
Ejecución del servidor MCP
Conectarse a Claude para escritorio
Abrir Claude para escritorio
Vaya a Configuración > Desarrollador > Editar configuración
Agregue lo siguiente a su
claude_desktop_config.json
:
Si ha instalado el paquete:
Si está ejecutando desde un directorio local sin instalar:
Reiniciar Claude para escritorio
Herramientas disponibles
SourceSage proporciona las siguientes herramientas MCP:
register_entity : Registra una entidad de código en el gráfico de conocimiento
Input: - name: Name of the entity (e.g., class name, function name) - entity_type: Type of entity (class, function, module, etc.) - summary: Brief description of the entity - signature: Entity signature (optional) - language: Programming language (optional) - observations: List of observations about the entity (optional) - metadata: Additional metadata (optional) Output: Confirmation message with entity IDregister_relationship : Registra una relación entre entidades
Input: - from_entity: Name of the source entity - to_entity: Name of the target entity - relationship_type: Type of relationship (calls, inherits, imports, etc.) - metadata: Additional metadata (optional) Output: Confirmation message with relationship IDregister_pattern : Registra un patrón de código
Input: - name: Name of the pattern - description: Description of the pattern - language: Programming language (optional) - example: Example code demonstrating the pattern (optional) - metadata: Additional metadata (optional) Output: Confirmation message with pattern IDregister_style_convention : Registra una convención de estilo de codificación
Input: - name: Name of the convention - description: Description of the convention - language: Programming language (optional) - examples: Example code snippets demonstrating the convention (optional) - metadata: Additional metadata (optional) Output: Confirmation message with convention IDadd_entity_observation : Agregar una observación a una entidad
Input: - entity_name: Name of the entity - observation: Observation to add Output: Confirmation messagequery_entities : Entidades de consulta en el gráfico de conocimiento
Input: - entity_type: Filter by entity type (optional) - language: Filter by programming language (optional) - name_pattern: Filter by name pattern (regex, optional) - limit: Maximum number of results to return (optional) Output: List of matching entitiesget_entity_details : Obtener información detallada sobre una entidad
Input: - entity_name: Name of the entity Output: Detailed information about the entityquery_patterns : Patrones de código de consulta en el gráfico de conocimiento
Input: - language: Filter by programming language (optional) - pattern_name: Filter by pattern name (optional) Output: List of matching patternsquery_style_conventions : Convenciones de estilo de codificación de consultas
Input: - language: Filter by programming language (optional) - convention_name: Filter by convention name (optional) Output: List of matching style conventionsget_knowledge_statistics : Obtener estadísticas sobre el gráfico de conocimiento
clear_knowledge : Borra todo el conocimiento del gráfico
Ejemplo de flujo de trabajo con Claude
Analizar código : Pídele a Claude que analice tus archivos de código
"Please analyze this Python file and register the key entities and relationships."Registrar entidades : Claude utilizará la herramienta register_entity para almacenar entidades de código
"I'll register the main class in this file."Registrar relaciones : Claude utilizará la herramienta register_relationship para almacenar relaciones
"I'll register the inheritance relationship between these classes."Consulta de conocimiento : Más tarde, pregúntale a Claude sobre tu base de código.
"What classes are defined in my codebase?" "Show me the details of the User class." "What's the relationship between the User and Profile classes?"Obtenga patrones de codificación : Pregúntele a Claude sobre patrones de codificación
"What design patterns are used in my codebase?" "Show me examples of the Factory pattern in my code."
En qué se diferencia
A diferencia de las herramientas de análisis de código tradicionales, SourceSage:
Aprovecha la comprensión del LLM : utiliza la capacidad del LLM para comprender la semántica del código en todos los lenguajes.
Almacena conocimiento semántico : se centra en el significado y las relaciones, no solo en la sintaxis.
Es independiente del lenguaje : funciona con cualquier lenguaje de programación que el LLM comprenda
Optimiza la eficiencia del token : almacena el conocimiento de una manera que minimiza el uso del token
Evoluciona con las capacidades de LLM : a medida que mejoran los LLM, también lo hace la comprensión del código.
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.
Tools
SourceSage es un servidor MCP (Protocolo de Contexto de Modelo) que memoriza eficientemente aspectos clave de una base de código (lógica, estilo y estándares), a la vez que permite actualizaciones dinámicas y una rápida recuperación. Está diseñado para ser independiente del lenguaje, aprovechando la comprensión del LLM del código en múltiples lenguajes.
Related MCP Servers
- -securityAlicense-qualityThis is an MCP server for PostgREST. It allows LLMs perform database queries and operations on Postgres databases via PostgREST. This server works with both Supabase projects (which use PostgREST) and standalone PostgREST servers.Last updated -8452,105Apache 2.0
- -securityFlicense-qualityA Model Context Protocol server that provides AI assistants with structured access to your Logseq knowledge graph, enabling retrieval, searching, analysis, and creation of content within your personal knowledge base.Last updated -51
- AsecurityAlicenseAqualityAn MCP server that connects to a Swagger specification and helps an AI to build all the required models to generate a MCP server for that service.Last updated -52177MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that integrates with DeepSource to provide AI assistants with access to code quality metrics, issues, and analysis results.Last updated -92904MIT License
Appeared in Searches
- Retrieve the latest documentation of libraries in word embeddings form for LLMs
- Using local LLMs for code writing, reviewing, and rule generation
- Assistance with reviewing and merging code changes in a merge request
- Resources or Assistance for Learning to Code
- Developing Transformer-based deep learning models with PyTorch, PyTorch Lightning, and GluonTS for integration in AI-powered IDEs