Skip to main content
Glama
kruschdev

PG-Git (Semantic Memory MCP)

by kruschdev

PG-Git (Semantischer Speicher MCP)

Ein persistentes, auf PostgreSQL basierendes Repository-Verwaltungssystem und semantischer Speicher-MCP-Server. Anstatt Git-Objekte lose im Dateisystem zu speichern, speichert PG-Git den gesamten gerichteten azyklischen Graphen (DAG) nativ in PostgreSQL, komplett mit automatisch generierten, zeitlich abnehmenden semantischen Vektor-Embeddings für KI-IDEs.

npm version License: MIT Node Ollama DB

🧠 Warum PG-Git?

Im Standard-Ökosystem für KI-Coding-Agenten basiert die Suche in Codebasen auf starren Grep-Suchen oder teurem AST-Parsing. PG-Git ändert dies grundlegend, indem es Git direkt mit Vektordatenbanken verbindet:

  1. Semantische Codesuche: Finden Sie Code basierend darauf, was er tut, nicht nur anhand seiner Syntax.

  2. Exponentieller zeitlicher Zerfall: PG-Git lässt ältere Vektoren mathematisch zerfallen. Ihr Agent wird Code, den Sie gestern geschrieben haben, gegenüber hochgradig ähnlichem, veraltetem Code, der vor 6 Monaten geschrieben wurde, priorisieren.

  3. Local-First-Prinzip: Keine Cloud-APIs. Es verwendet Ollama mit nomic-embed-text für 100 % private Vektorisierung auf dem Gerät.

  4. ACID-konform: Native Transaktionen gewährleisten vollständige Sicherheit für den Zugriff durch mehrere Knoten und gleichzeitige KI-Schwarm-Agenten.

Related MCP server: memory-bank-mcp

⚡ Schnellstart

Sie müssen Ollama mit dem geladenen Modell nomic-embed-text ausführen:

ollama run nomic-embed-text

1. Abhängigkeiten installieren & migrieren Sie benötigen eine laufende PostgreSQL-Instanz mit aktiviertem pgvector.

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

2. Importieren Sie Ihre GitHub-Historie Sie können jedes lokale .git-Repository sofort importieren. PG-Git analysiert nativ die Git-Historie, generiert semantische Embeddings für alle Blobs und dedupliziert diese sicher in PostgreSQL:

npm run import

3. Zur Konfiguration Ihres Agenten / Ihrer IDE hinzufügen (z. B. 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. Web-UI starten (optional) PG-Git enthält eine elegante IDE-Oberfläche mit zwei Bereichen zum Durchsuchen Ihrer semantischen Repositories.

npm run dev

🚀 Praxisbeispiele

Um PG-Git effektiv zu nutzen, sprechen Sie einfach wie gewohnt mit Ihrem IDE-Agenten. Er verwendet die MCP-Tools (pg_git_semantic_search, pg_git_list_repos, pg_git_read_tree, pg_git_read_blob), um mit der Datenbank zu kommunizieren.

Beispiel 1: Spezifische Logik finden

Sie: "Wo behandeln wir den zeitlichen Zerfall für den Speicher-MCP?" Agent: [Ruft pg_git_semantic_search auf] "Ich habe die Logik in server/index.js innerhalb des krusch-memory-mcp-Repos gefunden. Sie verwendet die Formel exp(-DECAY_RATE * age_in_days)."

Beispiel 2: Einen Repository-Baum lesen

Sie: "Wie sieht die Ordnerstruktur für das pg-git-Projekt aus?" Agent: [Ruft pg_git_read_tree auf] "Hier ist die Struktur des Stammverzeichnisses..."

Wie funktioniert der zeitliche Zerfall?

Beim Aufruf von pg_git_semantic_search gibt PG-Git die Übereinstimmungen mit der höchsten Kosinus-Ähnlichkeit zurück. Es wendet jedoch einen exponentiellen zeitlichen Zerfall basierend auf dem last_seen_at-Zeitstempel des Blobs an. Wenn Sie zwei sehr ähnliche Codeabschnitte haben, erhält der neuere einen deutlich höheren Wert, was verhindert, dass Ihr Agent aufgrund veralteter Implementierungen halluziniert.


🤖 Der autonome Agenten-Workflow (/close)

Sie können PG-Git in Ihren Agenten-Workflow integrieren, um sicherzustellen, dass Ihr semantischer Speicher immer auf dem neuesten Stand ist.

Wenn Sie eine Aufgabe beenden, weisen Sie Ihren Agenten an, das Snapshot-Skript auszuführen. Der Agent wird autonom:

  1. Den aktuellen Projektordner in Git-Blobs und -Trees hashen.

  2. Ollama anpingen, um neue oder geänderte Dateien einzubetten.

  3. Den Status direkt in PostgreSQL committen.

Befehl zum Ausführen:

npm run snapshot

🛠️ Konfiguration & Umgebungsvariablen

Variable

Beschreibung

Standardwert

DB_HOST

PostgreSQL-Host-Adresse.

localhost

DB_PORT

PostgreSQL-Port.

5432

DB_NAME

Datenbankname.

postgres

DB_USER

Datenbankbenutzer.

postgres

DB_PASSWORD

Datenbankpasswort.

postgres

OLLAMA_URL

Der Endpunkt für Ihre lokale Ollama-Instanz.

http://localhost:11434

EMBED_MODEL

Das zu verwendende Ollama-Text-Embedding-Modell.

nomic-embed-text

Lizenz

MIT-Lizenz. Erstellt von 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