← All projects

Knowledge

My personal memory as a typed graph, with a web app, a REST API and an MCP server so AI assistants can read and write it.

Status
Active · 2026
Stack
  • Python
  • FastAPI
  • PostgreSQL
  • pgvector
  • SvelteKit
  • MCP

Knowledge is where everything I want to remember lives: notes, people, places, projects, tasks, machines, the D&D campaigns I play in. It replaced my Obsidian vault.

How it works

Everything is a node with a type, a few typed fields and a Markdown body, and nodes are joined by typed edges ("works at", "part of", "uses"). The catalogue of types, fields and edge types is itself data in Postgres, so I can grow the model without a migration.

  • Web app: an installable PWA to browse, search and edit, with passkey sign-in.
  • MCP server: an AI assistant can search the graph, resolve a name to the right node, create what's missing and link it all. It can't change the catalogue on its own: it files proposals that I approve in the web app.
  • Search: full text plus semantic search with pgvector. The embeddings come from a local multilingual model in a sidecar service, so nothing leaves the house.
  • Secrets are encrypted and never go out through the API or the MCP.

Why

I wanted one place that both I and an assistant could rely on, with structure where it helps (dates, statuses, relationships) and free text everywhere else. Building it myself meant I could make the AI side a first-class citizen instead of an afterthought.

Tests run against a real Postgres, and it deploys to my homelab with every push to main.