Skip to main content
Glama
kruschdev

PG-Git (Semantic Memory MCP)

by kruschdev

PG-Git (시맨틱 메모리 MCP)

PostgreSQL 기반의 영구적인 저장소 관리 시스템이자 시맨틱 메모리 MCP 서버입니다. 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 기록을 네이티브로 파싱하고, 모든 블롭에 대한 시맨틱 임베딩을 생성하며, 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. 웹 UI 시작 (선택 사항) 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 호출] "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은 코사인 유사도가 가장 높은 결과를 반환합니다. 하지만 블롭의 last_seen_at 타임스탬프를 기반으로 지수적 시간 감쇠를 적용합니다. 매우 유사한 두 개의 코드 조각이 있는 경우, 더 최신 코드의 점수가 훨씬 높게 측정되어 에이전트가 오래된 구현을 기반으로 환각을 일으키는 것을 방지합니다.


🤖 자율 에이전트 워크플로우 (/close)

PG-Git을 에이전트 워크플로우에 통합하여 시맨틱 메모리를 항상 최신 상태로 유지할 수 있습니다.

작업을 마칠 때마다 에이전트에게 스냅샷 스크립트를 실행하도록 지시하세요. 에이전트는 자율적으로 다음을 수행합니다:

  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 제작.

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