Update, August 2026 — this project is now Pomnia. It was rewritten from Python to TypeScript, the vault is encrypted, and the server speaks MCP over HTTP. The repository this post links to is frozen. Current version: github.com/lobrzut/pomnia · pomnia.ai · the new write-up
I run IT and cybersecurity ops by day and tinker in a homelab at night. The problem I kept hitting: useful context from Cursor and Claude Code sessions evaporates when the chat ends. Notes end up scattered. RAG demos are cloud-first. I wanted something I own.
So I built Brain AI Hub: a portable second brain with a local LLM, markdown vault, semantic search, and MCP hooks for IDE agents.
What it does
-
Local LLM - Ollama (qwen2.5, nomic-embed). OpenAI-compatible API on
:11434. - Knowledge store - Obsidian-style vault, PDF/EPUB library, sqlite-vec RAG, lightweight knowledge graph.
-
Agent bridge - three MCP servers (
brain-vault,brain-library,brain-rag) with one-click deploy to Cursor, Claude Code, VS Code. - Transcript pipeline - distills exports from Claude/Cursor/Antigravity into vault markdown, dedupes, indexes code, runs scheduled jobs.
-
Dashboard - FastAPI UI on
:7860for services, chat, GPU/VRAM, API keys, pipeline status.
Two editions
| Edition | Install |
|---|---|
| Windows portable |
Install.bat then Start.bat - copy the folder, run on another PC |
| Linux server | Run linux/bootstrap.sh on the server (see repo README) - MCP SSE gateway on :7862 for LAN clients |
Install scripts speak English and Polish. Set LANG=en or LANG=pl in locale.env.
MCP in practice
On Windows, Brain deploys stdio MCP configs from the dashboard. On Linux, point Cursor at the SSE gateway:
{
"mcpServers": {
"brain-rag": {
"url": "http://192.168.1.10:7862/sse/brain-rag"
}
}
}
Agents can search your vault, pull library chunks, and run skills without sending data to a third-party memory API.
Why MCP instead of only RAG?
RAG answers retrieval. MCP gives agents tools: write a note, list vault files, trigger a skill, query the code index. That matches how Cursor and Claude Code actually work: function calls mid-session, not a single embedding search at prompt time.
Stack
Python, FastAPI, Ollama, sqlite-vec, PowerShell (Windows), systemd (Linux). Homelab-friendly: MikroTik/UniFi networking, WireGuard, Docker where it helps.
Try it
git clone https://github.com/lobrzut/brain.git
cd brain
# Windows: Install.bat && Start.bat
# Linux: curl -fsSL https://raw.githubusercontent.com/lobrzut/brain/main/linux/bootstrap.sh | sudo bash
Open http://127.0.0.1:7860, connect MCP from the Tools tab, drop a PDF in the library, run a distill job on an old chat export.
Feedback and issues welcome on GitHub.
Top comments (1)
Your exploration of self-hosting with MCP is quite relevant in today's landscape. By integrating document verification mechanisms, you can ensure that the information being processed is accurate and tamper-proof, significantly enhancing the trustworthiness of your applications. Utilizing evidence bundles with SHA-256 hashes can provide a solid foundation for audit trails, allowing for offline verification of the documents used in your system. For more on this, check out docimprint.com/evidence-bundles.