Skip to main content
Glama
kruschdev

PG-Git (Semantic Memory MCP)

by kruschdev

PG-Git (Memoria Semántica MCP)

Un sistema de gestión de repositorios persistente basado en PostgreSQL y servidor MCP de memoria semántica. En lugar de almacenar objetos de Git de forma dispersa en el sistema de archivos, PG-Git almacena todo el Grafo Acíclico Dirigido (DAG) de forma nativa en PostgreSQL, completo con incrustaciones vectoriales semánticas generadas automáticamente y con decaimiento temporal para IDEs de IA.

npm version License: MIT Node Ollama DB

🧠 ¿Por qué PG-Git?

En el ecosistema estándar de agentes de codificación por IA, la búsqueda en bases de código depende de búsquedas rígidas con grep o de un costoso análisis AST. PG-Git cambia esto fundamentalmente al conectar Git directamente con bases de datos vectoriales:

  1. Búsqueda Semántica de Código: Encuentra código basado en lo que hace, no solo en su sintaxis.

  2. Decaimiento Temporal Exponencial: PG-Git aplica un decaimiento matemático a los vectores más antiguos. Tu agente priorizará el código que escribiste ayer sobre código obsoleto altamente similar escrito hace 6 meses.

  3. Pureza Local-First: Sin APIs en la nube. Utiliza Ollama con nomic-embed-text para una vectorización 100% privada y en el dispositivo.

  4. Compatible con ACID: Las transacciones nativas garantizan una seguridad total para la accesibilidad de múltiples nodos y agentes de enjambre de IA concurrentes.

Related MCP server: memory-bank-mcp

⚡ Inicio Rápido

Debes tener Ollama ejecutándose con el modelo nomic-embed-text descargado:

ollama run nomic-embed-text

1. Instalar Dependencias y Migrar Necesitarás una instancia de PostgreSQL en ejecución con pgvector habilitado.

npm install
cp .env.example .env
# Edit .env with your PostgreSQL credentials
node db/migrate.js

2. Importar tu Historial de GitHub Puedes importar instantáneamente cualquier repositorio .git local. PG-Git analizará de forma nativa el historial de Git, generará incrustaciones semánticas para todos los blobs y los desduplicará de forma segura en PostgreSQL:

npm run import

3. Añadir a la Configuración de tu Agente / IDE (ej. mcp_config.json):

{
  "mcpServers": {
    "pg-git-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/pg-git/server/mcp.js"],
      "env": {
        "OLLAMA_URL": "http://localhost:11434",
        "EMBED_MODEL": "nomic-embed-text"
      }
    }
  }
}

4. Iniciar la Interfaz Web (Opcional) PG-Git incluye una elegante interfaz de IDE de doble panel para navegar por tus repositorios semánticos.

npm run dev

🚀 Ejemplos de Uso en el Mundo Real

Para utilizar PG-Git de manera efectiva, simplemente habla con tu agente de IDE normalmente. Utilizará las herramientas MCP (pg_git_semantic_search, pg_git_list_repos, pg_git_read_tree, pg_git_read_blob) para interactuar con la base de datos.

Ejemplo 1: Encontrar lógica específica

Tú: "¿Dónde manejamos el decaimiento temporal para el MCP de memoria?" Agente: [Llama a pg_git_semantic_search] "Encontré la lógica en server/index.js dentro del repositorio krusch-memory-mcp. Utiliza la fórmula exp(-DECAY_RATE * age_in_days)."

Ejemplo 2: Leer un árbol de repositorio

Tú: "¿Cuál es la estructura de carpetas para el proyecto pg-git?" Agente: [Llama a pg_git_read_tree] "Aquí está la estructura del directorio raíz..."

¿Cómo funciona el Decaimiento Temporal?

Al llamar a pg_git_semantic_search, PG-Git devuelve las coincidencias con mayor similitud de coseno. Sin embargo, aplica un Decaimiento Temporal Exponencial basado en la marca de tiempo last_seen_at del blob. Si tienes dos fragmentos de código muy similares, el más nuevo tendrá una puntuación significativamente más alta, evitando que tu agente alucine basándose en implementaciones obsoletas.


🤖 Flujo de Trabajo del Agente Autónomo (/close)

Puedes integrar PG-Git en tu flujo de trabajo de agente para asegurar que tu memoria semántica esté siempre actualizada.

Cada vez que dejes una tarea, dile a tu agente que ejecute el script de instantánea. El agente hará lo siguiente de forma autónoma:

  1. Calculará el hash de la carpeta actual del proyecto en Blobs y Árboles de Git.

  2. Consultará a Ollama para incrustar cualquier archivo nuevo o modificado.

  3. Confirmará el estado directamente en PostgreSQL.

Comando para ejecutar:

npm run snapshot

🛠️ Configuración y Variables de Entorno

Variable

Descripción

Predeterminado

DB_HOST

Dirección del host de PostgreSQL.

localhost

DB_PORT

Puerto de PostgreSQL.

5432

DB_NAME

Nombre de la base de datos.

postgres

DB_USER

Usuario de la base de datos.

postgres

DB_PASSWORD

Contraseña de la base de datos.

postgres

OLLAMA_URL

El endpoint para tu instancia local de Ollama.

http://localhost:11434

EMBED_MODEL

El modelo de incrustación de texto de Ollama a utilizar.

nomic-embed-text

Licencia

Licencia MIT. Creado por kruschdev.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides persistent semantic memory backed by PostgreSQL and pgvector for storing and searching thoughts via vector embeddings. It enables dimensional organization, conflict detection, and historical tracking of facts, decisions, and observations.
    12 npm
    AGPL 3.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    A universal MCP server providing persistent, structured memory through a knowledge graph with graph storage, semantic vector search, and multi-hop traversal for AI agents and IDEs.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A secure and scalable Git MCP server giving AI agents powerful version control for local and (soon) serverless environments.
    177 npm
    Apache 2.0