Skip to main content

A second brain for humans and their agents — MCP server backed by SQLite FTS5.

Project description

Kraang

Kraang

A second brain for you and your agents.

Kraang is an MCP (Model Context Protocol) server that gives AI assistants persistent memory backed by SQLite with FTS5 full-text search. It stores, searches, and manages knowledge notes so your agent can recall what matters.

Quick Start

uv pip install kraang

Add to your MCP client configuration (e.g. Claude Desktop):

{
  "mcpServers": {
    "kraang": {
      "command": "kraang",
      "env": { "KRAANG_DB_PATH": "~/.kraang/brain.db" }
    }
  }
}

If KRAANG_DB_PATH is not set, it defaults to ~/.kraang/brain.db.

Tool Reference

Tool Description Parameters
add_note Add a new note title, content, tags?, category?, metadata?
search_notes Full-text search with filters query, tags?, category?, status?, limit?
update_note Update an existing note note_id, title?, content?, tags?, category?, status?
delete_note Delete a note note_id
list_tags List all tags (none)
list_categories List all categories (none)
list_notes Browse/list notes status?, limit?, offset?
get_stale_items Find notes not updated recently days?
daily_digest Activity summary (none)
suggest_related Find related notes note_id, limit?

Prompts

Prompt Description
review_stale Review stale notes and suggest actions (update/archive/delete)
summarize_kb Get a high-level summary of the knowledge base
find_gaps Identify underrepresented topics and organization improvements

Development

git clone https://github.com/johnnygreco/kraang.git && cd kraang
uv sync --extra dev
make test
make lint

Run the full check suite:

make coverage   # tests + coverage report
make format     # auto-format with ruff

Architecture

Kraang uses a layered architecture:

  1. Models (models.py) -- Pydantic schemas define the data contracts: Note, NoteCreate, NoteUpdate, SearchQuery, etc.
  2. Store Protocol (store.py) -- An async NoteStore protocol that any storage backend must implement.
  3. SQLite Backend (sqlite_store.py) -- The default implementation using SQLite with FTS5 for full-text search and BM25 ranking.
  4. MCP Server (server.py) -- Exposes the store as MCP tools and resources over stdio, ready for any MCP-compatible client.

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kraang-0.1.0.tar.gz (138.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kraang-0.1.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file kraang-0.1.0.tar.gz.

File metadata

  • Download URL: kraang-0.1.0.tar.gz
  • Upload date:
  • Size: 138.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for kraang-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7e66898a523b6428b95b29a24882ed457c4450bd8fcf76cd4eee43096a2529c7
MD5 862c6f67151451015cca2b005465e64a
BLAKE2b-256 31e9d3e0b00ac00b01c3f8b8d37cabce3d0a547aef3060a71d2973741d584856

See more details on using hashes here.

File details

Details for the file kraang-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kraang-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for kraang-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e4d0586ce36b432e5b07be2a5a9527431043ada93778a2fa2e73b552656a906
MD5 479473f0aa38d0a10f6f384b00d02240
BLAKE2b-256 a99eb8d87e8b3cc55783f93b6f766ec67c56300fcfa01b36820771a1674fb40e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page