Skip to main content
Glama
kruschdev

PG-Git (Semantic Memory MCP)

by kruschdev

PG-Git (Semantic Memory MCP)

Постоянная система управления репозиториями на базе PostgreSQL и MCP-сервер семантической памяти. Вместо того чтобы хранить объекты Git разрозненно в файловой системе, PG-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. Используется Ollama с nomic-embed-text для 100% приватной векторизации на устройстве.

  4. Соответствие ACID: Нативные транзакции обеспечивают полную безопасность для доступа с нескольких узлов и одновременной работы роя AI-агентов.

Related MCP server: memory-bank-mcp

⚡ Быстрый старт

У вас должен быть запущен Ollama с загруженной моделью nomic-embed-text:

ollama run nomic-embed-text

1. Установка зависимостей и миграция Вам потребуется запущенный экземпляр PostgreSQL с включенным расширением pgvector.

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

2. Импорт истории GitHub Вы можете мгновенно импортировать любой локальный .git репозиторий. PG-Git нативно проанализирует историю Git, создаст семантические эмбеддинги для всех блобов и безопасно дедуплицирует их в 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. Запуск веб-интерфейса (опционально) PG-Git включает в себя элегантный двухпанельный интерфейс 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] "Я нашел логику в server/index.js внутри репозитория krusch-memory-mcp. Она использует формулу exp(-DECAY_RATE * age_in_days)."

Пример 2: Чтение дерева репозитория

Вы: "Какова структура папок проекта pg-git?" Агент: [Вызывает pg_git_read_tree] "Вот структура корневого каталога..."

Как работает временное затухание?

При вызове pg_git_semantic_search PG-Git возвращает результаты с наивысшим косинусным сходством. Однако он применяет экспоненциальное временное затухание на основе метки времени last_seen_at для каждого блоба. Если у вас есть два очень похожих фрагмента кода, более новый из них получит значительно более высокий балл, что предотвратит галлюцинации агента на основе устаревших реализаций.


🤖 Рабочий процесс автономного агента (/close)

Вы можете интегрировать PG-Git в свой агентский рабочий процесс, чтобы ваша семантическая память всегда была актуальной.

Всякий раз, когда вы завершаете задачу, попросите агента запустить скрипт создания снимка (snapshot). Агент автономно выполнит следующее:

  1. Хеширует текущую папку проекта в блобы и деревья Git.

  2. Обратится к Ollama для векторизации любых новых или измененных файлов.

  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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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.
    20
    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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kruschdev/pg-git-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server