sourcesage

Integrations

  • Stores knowledge about code entities, relationships, patterns, and style conventions from a codebase, with support for incremental updates when code changes.

  • Referenced for source code management and contributions, allowing users to clone the repository and submit pull requests.

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:

  1. El LLM analiza archivos de código (en cualquier idioma)
  2. El LLM utiliza herramientas MCP para registrar entidades, relaciones, patrones y convenciones de estilo.
  3. SourceSage almacena este conocimiento en una estructura gráfica eficiente en tokens
  4. 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

# Clone the repository git clone https://github.com/yourusername/sourcesage.git cd sourcesage # Install the package pip install -e .

Uso

Ejecución del servidor MCP

# Run the server sourcesage # Or run directly from the repository python -m sourcesage.mcp_server

Conectarse a Claude para escritorio

  1. Abrir Claude para escritorio
  2. Vaya a Configuración > Desarrollador > Editar configuración
  3. Agregue lo siguiente a su claude_desktop_config.json :

Si ha instalado el paquete:

{ "mcpServers": { "sourcesage": { "command": "sourcesage", "args": [] } } }

Si está ejecutando desde un directorio local sin instalar:

{ "sourcesage": { "command": "uv", "args": [ "--directory", "/path/to/sourcesage", "run", "main.py" ] }, }
  1. Reiniciar Claude para escritorio

Herramientas disponibles

SourceSage proporciona las siguientes herramientas MCP:

  1. 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 ID
  2. register_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 ID
  3. register_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 ID
  4. register_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 ID
  5. add_entity_observation : Agregar una observación a una entidad
    Input: - entity_name: Name of the entity - observation: Observation to add Output: Confirmation message
  6. query_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 entities
  7. get_entity_details : Obtener información detallada sobre una entidad
    Input: - entity_name: Name of the entity Output: Detailed information about the entity
  8. query_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 patterns
  9. query_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 conventions
  10. get_knowledge_statistics : Obtener estadísticas sobre el gráfico de conocimiento
Input: None Output: Statistics about the knowledge graph
  1. clear_knowledge : Borra todo el conocimiento del gráfico
Input: None Output: Confirmation message

Ejemplo de flujo de trabajo con Claude

  1. 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."
  2. Registrar entidades : Claude utilizará la herramienta register_entity para almacenar entidades de código
    "I'll register the main class in this file."
  3. Registrar relaciones : Claude utilizará la herramienta register_relationship para almacenar relaciones
    "I'll register the inheritance relationship between these classes."
  4. 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?"
  5. 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:

  1. Aprovecha la comprensión del LLM : utiliza la capacidad del LLM para comprender la semántica del código en todos los lenguajes.
  2. Almacena conocimiento semántico : se centra en el significado y las relaciones, no solo en la sintaxis.
  3. Es independiente del lenguaje : funciona con cualquier lenguaje de programación que el LLM comprenda
  4. Optimiza la eficiencia del token : almacena el conocimiento de una manera que minimiza el uso del token
  5. 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.

-
security - not tested
A
license - permissive license
-
quality - not tested

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.

  1. Características
    1. Cómo funciona
      1. Instalación
        1. Uso
          1. Ejecución del servidor MCP
          2. Conectarse a Claude para escritorio
          3. Herramientas disponibles
        2. Ejemplo de flujo de trabajo con Claude
          1. En qué se diferencia
            1. Contribuyendo
              1. Licencia

                Related MCP Servers

                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol (MCP) server that enables semantic search and retrieval of documentation using a vector database (Qdrant). This server allows you to add documentation from URLs or local files and then search through them using natural language queries.
                  Last updated -
                  14
                  74
                  JavaScript
                  Apache 2.0
                  • Apple
                • -
                  security
                  F
                  license
                  -
                  quality
                  An MCP server that enables language models to access code intelligence features like completions, definitions, and references across multiple programming languages through the Language Server Protocol.
                  Last updated -
                  Python
                • -
                  security
                  A
                  license
                  -
                  quality
                  A MCP server that transforms code repositories from GitHub, GitLab, or local directories into LLM-friendly formats, preserving context and structure for better AI processing.
                  Last updated -
                  1
                  Python
                  Apache 2.0
                • -
                  security
                  A
                  license
                  -
                  quality
                  An MCP server that analyzes codebases and generates contextual prompts, making it easier for AI assistants to understand and work with code repositories.
                  Last updated -
                  2
                  Python
                  MIT License

                View all related MCP servers

                ID: wnhfsg4ui5