Skip to main content
Glama
kruschdev

PG-Git (Semantic Memory MCP)

by kruschdev

PG-Git (セマンティックメモリ MCP)

PostgreSQLをバックエンドに持つ永続的なリポジトリ管理システム兼セマンティックメモリMCPサーバーです。Gitオブジェクトをファイルシステム上に緩やかに保存するのではなく、PG-GitはGitの有向非巡回グラフ(DAG)全体をPostgreSQLにネイティブに格納します。さらに、AI IDE向けに自動生成された時間減衰を伴うセマンティックベクトル埋め込みも完備しています。

npm version License: MIT Node Ollama DB

🧠 なぜ PG-Git なのか?

標準的なAIコーディングエージェントのエコシステムにおいて、コードベースの検索は厳格なgrep検索やコストのかかるAST解析に依存しています。PG-Gitは、Gitとベクトルデータベースを直接橋渡しすることで、これを根本から変革します:

  1. セマンティックコード検索: 単なる構文ではなく、コードが「何をするか」に基づいて検索します。

  2. 指数関数的な時間減衰: PG-Gitは古いベクトルを数学的に減衰させます。エージェントは、6ヶ月前に書かれた非常に似ているが使われていないコードよりも、昨日書いたコードを優先します。

  3. ローカルファーストの純粋性: クラウドAPIは使用しません。nomic-embed-text を使用したOllamaにより、100%プライベートなオンデバイスでのベクトル化を実現します。

  4. ACID準拠: ネイティブなトランザクションにより、マルチノードでのアクセスやAIスウォームエージェントの同時実行においても完全な安全性を保証します。

Related MCP server: memory-bank-mcp

⚡ クイックスタート

Ollama が実行されており、nomic-embed-text モデルがプルされている必要があります:

ollama run nomic-embed-text

1. 依存関係のインストールとマイグレーション pgvector が有効なPostgreSQLインスタンスが実行されている必要があります。

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

2. GitHub履歴のインポート ローカルの .git リポジトリを即座にインポートできます。PG-GitはGit履歴をネイティブに解析し、すべてのBLOBに対してセマンティック埋め込みを生成し、PostgreSQLへ安全に重複排除して格納します:

npm run import

3. エージェント / IDE設定への追加 (例: 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の起動 (オプション) PG-Gitには、セマンティックリポジトリをブラウズするための洗練された2ペインのIDEインターフェースが含まれています。

npm run dev

🚀 実践的な使用例

PG-Gitを効果的に使用するには、IDEエージェントに通常通り話しかけるだけです。エージェントはMCPツール (pg_git_semantic_search, pg_git_list_repos, pg_git_read_tree, pg_git_read_blob) を使用してデータベースとやり取りします。

例1: 特定のロジックを探す

あなた: 「メモリMCPの時間減衰はどこで処理されていますか?」 エージェント: [pg_git_semantic_search を呼び出し] 「krusch-memory-mcp リポジトリ内の server/index.js にロジックを見つけました。exp(-DECAY_RATE * age_in_days) という式を使用しています。」

例2: リポジトリツリーを読む

あなた: 「pg-gitプロジェクトのフォルダ構造はどうなっていますか?」 エージェント: [pg_git_read_tree を呼び出し] 「ルートディレクトリの構造は以下の通りです...」

時間減衰はどのように機能するか?

pg_git_semantic_search を呼び出す際、PG-Gitはコサイン類似度が最も高い一致を返します。ただし、BLOBの last_seen_at タイムスタンプに基づいて「指数関数的な時間減衰」を適用します。非常によく似たコードが2つある場合、新しい 方が大幅に高いスコアを持つため、古い実装に基づいてエージェントがハルシネーションを起こすことを防ぎます。


🤖 自律型エージェントのワークフロー (/close)

PG-Gitをエージェントのワークフローに統合することで、セマンティックメモリを常に最新の状態に保つことができます。

タスクから離れるときはいつでも、エージェントにスナップショットスクリプトを実行するように指示してください。エージェントは自律的に以下の処理を行います:

  1. 現在のプロジェクトフォルダをGitのBLOBとツリーにハッシュ化する。

  2. Ollamaにpingを送り、新規または変更されたファイルを埋め込む。

  3. 状態を直接PostgreSQLにコミットする。

実行コマンド:

npm run snapshot

🛠️ 設定と環境変数

変数

説明

デフォルト

DB_HOST

PostgreSQL ホストアドレス

localhost

DB_PORT

PostgreSQL ポート

5432

DB_NAME

データベース名

postgres

DB_USER

データベースユーザー

postgres

DB_PASSWORD

データベースパスワード

postgres

OLLAMA_URL

ローカルOllamaインスタンスのエンドポイント

http://localhost:11434

EMBED_MODEL

使用するOllamaテキスト埋め込みモデル

nomic-embed-text

ライセンス

MITライセンス。作成者: 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