Skip to main content

kgn

KGN — Knowledge Graph Node

CI PyPI version Python 3.12+ License: MIT codecov Tests Code style: ruff

Manage your AI agent's knowledge — parse, store, query, and collaborate.

KGN is a developer-friendly CLI + MCP server for teams building with AI agents. Write knowledge nodes in simple YAML+Markdown files (.kgn), define relationships between them (.kge), and let KGN handle storage, similarity search, conflict detection, and multi-agent task handoffs — all backed by PostgreSQL + pgvector.

Hybrid architecture: PostgreSQL is the local working engine; GitHub is the long-term source of truth. Export, commit, and push in one command.


Table of Contents


Architecture

For a deep dive into KGN's internal design — layer structure, module dependencies, database schema, data flows, and more — see the full Architecture Guide with 16 interactive Mermaid diagrams.

graph LR
    A[".kgn / .kge"] --> B["Parser"]
    B --> C["IngestService"]
    C --> D[("PostgreSQL<br/>+ pgvector")]
    D --> E["CLI · MCP · LSP · Web"]
    E --> F["Git / GitHub Sync"]

Why KGN?

AI agents are powerful, but they forget everything between sessions — and when multiple agents collaborate, they can conflict, duplicate work, or lose track of decisions.

KGN gives your agents a shared, queryable memory:

Problem KGN Solution
Agents forget past decisions Persistent knowledge graph in PostgreSQL
Duplicate work across agents Conflict detection + similarity search
No task coordination Built-in task queue with lease management
Hard to audit agent actions Structured activity log per agent
Context window overflow Subgraph extraction — only what's relevant
IDE friction for .kgn files VS Code extension with LSP support

Quick Start

📖 New to KGN? Follow the step-by-step Getting Started Guide ( 한국어 ) — no prior experience required.

Install

pip install kgn-mcp

Start Database

git clone https://github.com/baobab00/kgn.git && cd kgn
docker compose -f docker/docker-compose.yml up -d postgres

First Run

kgn init --project my-project
kgn ingest examples/ --project my-project --recursive
kgn status --project my-project
Embedding Provider Setup

To use embedding features, set your OpenAI API key in the .env file:

# .env
KGN_OPENAI_API_KEY=sk-your-api-key-here
KGN_OPENAI_EMBED_MODEL=text-embedding-3-small    # default

If the API key is not set, ingest works normally and embedding is silently skipped (graceful degradation).

# Test provider connection
kgn embed provider test
Docker All-in-One

Run PostgreSQL + kgn CLI together with Docker:

docker compose -f docker/docker-compose.yml up -d --build
docker compose -f docker/docker-compose.yml exec kgn kgn init --project my-project
docker compose -f docker/docker-compose.yml exec kgn kgn --help

Place .kgn/.kge files in docker/workspace/ directory.


MCP Server (Claude Integration)

The MCP (Model Context Protocol) server enables Claude to directly read, write, and manage tasks in the knowledge graph.

# stdio mode (Claude Desktop / Claude Code default)
kgn mcp serve --project my-project

# HTTP SSE mode
KGN_MCP_TRANSPORT=sse KGN_MCP_PORT=8000 kgn mcp serve --project my-project

# streamable-http mode
KGN_MCP_TRANSPORT=streamable-http kgn mcp serve --project my-project

Claude Desktop integration — add to claude_desktop_config.json:

{
  "mcpServers": {
    "kgn": {
      "command": "uv",
      "args": ["run", "kgn", "mcp", "serve", "--project", "my-project"]
    }
  }
}
MCP Tools (12 tools)
Tool Category Description
get_node Read Get node by ID
query_nodes Read Search nodes in project (type/status filter)
get_subgraph Read BFS subgraph extraction from node
query_similar Read Vector similarity Top-K search
task_checkout Task Check out highest-priority task (with auto lease recovery)
task_complete Task Mark task as complete (auto-unblocks dependent tasks)
task_fail Task Mark task as failed
workflow_list Workflow List registered workflow templates
workflow_run Workflow Execute a workflow template (creates subtask DAG)
ingest_node Write Ingest node from .kgn string
ingest_edge Write Ingest edge from .kge string
enqueue_task Write Enqueue TASK node
Git/GitHub Sync
# Export DB → filesystem (+ auto-generate Mermaid README)
kgn sync export --project my-project --target ./sync

# Import filesystem → DB
kgn sync import --project my-project --source ./sync

# Push/pull to GitHub
kgn sync push --project my-project --target ./sync
kgn sync pull --project my-project --target ./sync

# Mermaid visualization
kgn graph mermaid --project my-project
kgn graph readme --project my-project --target ./sync

# Branch/PR management
kgn git branch list --target ./sync
kgn git pr create --project my-project --target ./sync --title "PR title"
Web Dashboard
pip install kgn-mcp[web]
kgn web serve --project my-project --port 8080

Open http://localhost:8080 — Graph View, Task Board, Health Dashboard, Search & Filter.

VS Code Extension
code --install-extension baobab00.vscode-kgn
pip install kgn-mcp[lsp]    # for LSP features

Syntax Highlighting, Diagnostics, Auto-completion, Hover, Go to Definition, CodeLens, Subgraph Preview.

Error Code System

All MCP error responses are returned as structured JSON:

{
  "error": "Error message",
  "code": "KGN-300",
  "detail": "Detailed description",
  "recoverable": false
}
Code Category Description Retryable
KGN-100 Infrastructure Database connection failed ✅
KGN-101 Infrastructure Embedding provider unavailable ✅
KGN-200 Ingest YAML front matter parse error ❌
KGN-201 Ingest Required field missing ❌
KGN-202 Ingest Invalid field value ❌
KGN-300 Query Node not found ❌
KGN-301 Query Invalid UUID format ❌
KGN-302 Query Subgraph depth limit exceeded ❌
KGN-400 Task No READY tasks available ❌
KGN-401 Task Task not in expected state ❌
KGN-402 Task Lease expired ✅
KGN-999 Internal Unexpected server error ✅

Multi-Agent Orchestration

KGN supports multi-agent collaborative workflows where multiple AI agents work together on a knowledge graph with role-based access control, task handoff, and conflict resolution.

  • 5 Agent Roles — genesis, worker, reviewer, indexer, admin with role-based access control
  • 3 Workflow Templates — design-to-impl, issue-resolution, knowledge-indexing
  • Task Handoff — Automatic context propagation between workflow steps
  • Advisory Locking — Prevents concurrent modifications to the same node
  • Conflict Resolution — Detects conflicts and auto-creates review tasks
  • Observability — Agent activity timeline, task flow stats, bottleneck detection
Agent Roles & Workflow Details
Role Create Checkout Description
genesis GOAL, SPEC, ARCH, CONSTRAINT, ASSUMPTION — Project bootstrapping
worker SPEC, ARCH, LOGIC, TASK, SUMMARY ✅ (role-filtered) Implementation work
reviewer DECISION, ISSUE, SUMMARY ✅ (role-filtered) Code review & decisions
indexer SUMMARY — Knowledge indexing
admin All types ✅ (all tasks) Full access
Template Steps Description
design-to-impl GOAL → SPEC → ARCH → TASK(impl) → TASK(review) Full design-to-implementation pipeline
issue-resolution ISSUE → TASK(fix) → TASK(verify) Bug fix workflow
knowledge-indexing GOAL → TASK(index) → TASK(review) Knowledge capture pipeline
kgn agent list --project my-project
kgn agent role --project my-project --agent-id <uuid> --role worker
kgn agent stats --project my-project --agent-id <uuid>
kgn agent timeline --project my-project --agent-id <uuid>

CLI Commands

Run kgn --help for the full command list.

Key commands summary:

Group Example Description
Core kgn init, kgn ingest, kgn status, kgn health Initialize, ingest, status, health
Query kgn query nodes, kgn query subgraph, kgn query similar Search, subgraph, similarity
Task kgn task enqueue/checkout/complete/fail/list/log Task orchestration
Embed kgn embed, kgn embed provider test Embedding management
Conflict kgn conflict scan/approve/dismiss Conflict detection/management
Sync kgn sync export/import/status/push/pull DB ↔ file ↔ GitHub sync
Git kgn git init/status/diff/log/branch/pr Git/GitHub management
Graph kgn graph mermaid/readme Mermaid visualization
MCP kgn mcp serve MCP server (stdio/sse/streamable-http)
Agent kgn agent list/role/stats/timeline Multi-agent orchestration
Web kgn web serve Web visualization dashboard
LSP kgn lsp serve Language Server (VS Code integration)
Expired Task Recovery

When a checked-out task exceeds its lease_expires_at, it is considered expired. requeue_expired resets expired IN_PROGRESS tasks to READY and increments attempts.

  • MCP: checkout automatically calls requeue_expired beforehand
  • CLI: Manual invocation or cron schedule required
  • When max_attempts (default 3) is exceeded, the task transitions to FAILED

File Formats

.kgn — Knowledge Graph Node
---
kgn_version: "0.1"
id: "new:my-node"        # UUID or new:slug
type: SPEC               # GOAL, ARCH, SPEC, LOGIC, DECISION, ISSUE, TASK, CONSTRAINT, ASSUMPTION, SUMMARY
title: "Node title"
status: ACTIVE            # ACTIVE, DEPRECATED, SUPERSEDED, ARCHIVED
project_id: "my-project"
agent_id: "my-agent"
tags: ["tag1", "tag2"]
confidence: 0.9
---

## Context
...
## Content
...
.kge — Edge Definition
---
kgn_version: "0.1"
project_id: "my-project"
agent_id: "my-agent"
edges:
  - from: "new:node-a"
    to:   "new:node-b"
    type: DEPENDS_ON      # DEPENDS_ON, IMPLEMENTS, RESOLVES, SUPERSEDES, DERIVED_FROM, CONTRADICTS, CONSTRAINED_BY
    note: "Edge description"
---

See examples/ directory for practical .kgn and .kge file examples.

Development

# Lint
uv run ruff check .

# Format
uv run ruff format .

# Test
uv run pytest --tb=short -q

# Coverage
uv run pytest --cov=kgn --cov-report=term-missing

Tech Stack

Layer Technology
Language Python 3.12+
CLI Typer + Rich
DB PostgreSQL 16 + pgvector
ORM/SQL psycopg3 (native async-ready)
Validation Pydantic v2
AI Protocol MCP 1.26.0 via FastMCP
Embeddings OpenAI text-embedding-3-small (optional)
Git/GitHub bidirectional sync (DB \u2194 GitHub)
Logging structlog (JSON / console)
Web FastAPI + Uvicorn + Jinja2 + Cytoscape.js (optional extra)
IDE VS Code extension + pygls LSP (optional extra)
Infra Docker Compose + GitHub Actions CI
Quality ruff + pytest (2081+ tests, 93%+ coverage)

License

MIT

Metadata

Release files for kgn-mcp 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kgn-mcp 0.12.0
File Size Uploaded
kgn_mcp-0.12.0.tar.gz 513.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kgn-mcp 0.12.0
File Interpreter ABI Platform
kgn_mcp-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 747.2 kB

Release files / kgn_mcp-0.12.0.tar.gz

Download URL kgn_mcp-0.12.0.tar.gz
Size 513.4 kB
Tags Source
SHA-256 checksum
How to use checksums
be99ef8dd685037e673765c89aa5a9c7a250a31b46a91868c1497e2420a38edb
BLAKE2b-256 checksum
How to use checksums
a963358821b32550e33927a61edaf8fcc19b455e1779607d4359e683344cbff3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 18, 2026.

Transparency log

Release files / kgn_mcp-0.12.0-py3-none-any.whl

Download URL kgn_mcp-0.12.0-py3-none-any.whl
Size 233.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
98fc060971cacff970a38795cb0ee6401cf8a6aa4c4cc7a37c1edc09af5104a6
BLAKE2b-256 checksum
How to use checksums
35faa0533f797a2e009f872377b695b6055e0d51c7139978cd5ebba8f2653f23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page