v1.0 BETA. Major rewrite: brain-mcp is now a thin MCP server wrapping the
Bob protocol. Storage moved from cloud Postgres
(SHELET ref-impl) to local parquets under ~/.bob/.
Pre-release. To install: pip install brain-mcp --pre. To stay on v0.4.0:
pip install brain-mcp (default — no --pre flag).
- Storage:
~/.bob/turns.parquet(Bob protocol output) replaces hosted Supabase. - Tools: 9 read-only tools (
bob_health,bob_search,bob_recent,bob_conversations_by_date,bob_tunnel_state,bob_what_do_i_think,bob_thinking_trajectory,bob_open_threads,bob_dropped) replace the 25 SHELET-skill surface. - Dependencies: only
mcp+duckdb. v0.x deps (lancedb, pandas, pyarrow, fastembed, anthropic, fastapi, jinja2) moved to optionallegacyextras. - Pitch: "memory belongs to the rememberer is architecture, not morality."
- Cloud Supabase connection (no more anon keys / DB URLs in env).
- Semantic search (v1.0 is keyword-only; embeddings are a separate future protocol).
- brainmcp.dev hosted dashboard dependency.
- v0.x users staying on
brain-mcp==0.4.0are unaffected. No auto-upgrade. - v0.x env vars (
BRAIN_MCP_DB_URL,BRAIN_MCP_API_KEY) are now ignored — remove them when upgrading. - v0.x CLI (
brain_mcp.cli:main) is no longer the script entry point. To use it:python -m brain_mcp.cli(legacy import path preserved).
- Install Bob (the protocol that produces
~/.bob/turns.parquet): pastehttps://apiiam.com/bob/init.0into any MCP-aware LLM session. pip install brain-mcp --pre(oruv tool install brain-mcp --pre).- Register:
{"brain": {"command": "uvx", "args": ["brain-mcp", "--pre"]}}in~/.claude/mcp.json(or your client's MCP config).
All notable changes to Brain MCP will be documented in this file.
This release reframes brain-mcp as the first SHELET-compliant MCP server. Every tool now declares the layer it operates on, what it reads, what it writes, and what citations it must return. See ADR-001 for the full rationale.
.claude/skills/pack — 25 SKILL.md manifests, one per MCP tool, stratified across L0 (raw accounting) / L1 (deterministic retrieval) / L2 (synthesis with citations required) / L3 (fusion / route-to-attention) / utilitymake verify-skills— new Makefile target +scripts/verify_skills.pythat validates every manifest against 8 invariants (required fields, layer/citations consistency, body sections). Wired into GitHub Actions CI alongside pytest.- SHELET citation helper —
_cite(source_id, ts)inbrain_mcp/server/tools_prosthetic.pyproduces canonical[source_id · YYYY-MM-DD]markers. Rollout started oncontext_recovery,tunnel_state(Sources footer), andwhat_do_i_think(per-decision / per-question / per-quote citations). - Supabase Migration 003 —
supabase/migrations/003_shelet_l0_to_l3.sqlships the L0-L3 canonical schema with CHECK-enforced citations, layer-bounded RLS policies, andbrain.resolve_citations(l3_id)recursive citation-chain resolver. Optional layer, off by default. See ADR-002. - ADR-001 — full decision record for the SHELET adoption (context, stratification table, 7-day implementation sprint, consequences)
- ADR-002 — Supabase canonical backend plan (migration ships now, Python adapter deferred to v0.5.0)
- Critical launch blocker:
brain_mcp/summarize/summarize.pyno longer reads the enhanced-extraction prompt from../../../clawd/cogro/prompts/enhanced-extraction-v5.txt. The prompt now ships inside the package atbrain_mcp/_prompts/enhanced-extraction-v5.txtand is loaded viaimportlib.resources. Public installs no longer fail on firstbrain-mcp summarizewithFileNotFoundError. Legacy cogro sibling path is kept as a third-tier fallback for backwards compatibility. pyproject.tomladds"brain_mcp" = ["_prompts/*.txt"]to[tool.setuptools.package-data]so the prompt ships with the wheel.
- r/mcp launch post rewritten — new framing: "the first SHELET-compliant MCP server. 25 stratified skills, structural citation discipline, layer-bounded permissions." Links to ADR-001 and Migration 003.
- Package description: "Turn your AI conversations into a searchable second brain with cognitive prosthetic tools" → "SHELET-compliant cognitive prosthetic for AI agents — 25 stratified MCP skills with structural citation discipline"
- Python Supabase adapter (
brain_mcp/supabase_adapter.py) brain-mcp setup --supabaseCLI flag- Full citation rollout across remaining L2/L3 tools (
thinking_trajectory,dormant_contexts,open_threads,switching_cost,alignment_check,cognitive_patterns)
- Home page: Live stats cards, activity sparkline, sync status, recent searches, source overview, domain threads
- Search page: 3 modes (semantic/keyword/summaries), debounced input, filters (source/role/date), conversation viewer with highlighting, search history, load-more pagination
- Sources page: Auto-discovery, source cards with stats, sync-all, per-source re-ingest, SSE progress streaming
- Onboarding wizard: 5-step Alpine.js stepper (discover → ingest → embedding → summaries → connect), MCP config generation, auto-configure for Claude/Cursor
- Tool status page: 25 tools grouped by 7 categories, health detection across 5 data layers, individual + batch testing with latency, interactive tool runner, fix suggestions for degraded tools
- Settings page: Config management (TOML read/write), disk usage, embedding/summary status bars, API key validation, cron install/remove/status, MCP config export
- Background task system: TaskManager with SSE streaming, thread-safe updates, used across sync/test operations
- 100 tests (58 core + 42 dashboard), all passing
brain-mcp versioncommandbrain-mcp summarizecommand (with guided setup if not configured)brain-mcp dashboardcommand (placeholder for v0.2.0)- Claude Desktop auto-discovery in
brain-mcp init - Dashboard-first UX: running
brain-mcpwith no args opens dashboard
- Test assertion for server_name after v0.1.7 rename
- Removed orphaned
config.pyandarchitecture.htmlfrom repo
- Default behavior:
brain-mcp(no subcommand) → opens dashboard instead of printing help
- Renamed MCP server from
braintomy-brainto avoid collisions with user configs
brain-mcp init --fullcrash when embedding not installed- Config key collision with other MCP servers (now uses
brain-mcpkey)
- Embedding is now fully optional —
pip install brain-mcp[embed]for semantic search - Better UX: clear messages when optional features aren't installed
- Missing
pytzdependency
- Claude Code config path: uses
~/.claude.json(not~/.claude/mcp.json)
- Claude Code and Desktop setup paths
- Added
pipx installas recommended install method
- Claude Desktop/Code config path detection
- Safer embedding pipeline (handles missing model gracefully)
- Missing
einopsdependency for embedding model
- 25 MCP tools across 7 categories: search, conversations, synthesis, stats, prosthetic, GitHub, analytics
- 4 conversation ingesters: Claude Code, ChatGPT, Clawdbot, Generic JSONL
- Local embedding pipeline using nomic-embed-text-v1.5 (768-dim vectors)
- LanceDB vector search for semantic similarity queries
- DuckDB SQL over parquet for fast keyword search and analytics
- Cognitive prosthetic tools: tunnel_state, context_recovery, switching_cost, dormant_contexts, open_threads, cognitive_patterns, tunnel_history, trust_dashboard
- Synthesis tools: what_do_i_think, alignment_check, thinking_trajectory, what_was_i_thinking
- Optional LLM summarization (Anthropic, OpenAI, Ollama) for structured conversation analysis
- Progressive feature tiers: works with just conversations, improves with embeddings, and again with summaries
- CLI with init, ingest, embed, serve, setup, doctor, status, sync commands
- Auto-discovery of Claude Code and ChatGPT conversations
- npx support for zero-install usage
- Configurable principles for alignment_check (YAML format)
- 100% local — no telemetry, no cloud, no phone-home