|
8 | 8 |
|
9 | 9 | A production-quality SQLite-backed MCP Memory stack with WAL concurrent safety (10+ sessions), FTS5 BM25 search, session tracking, task management, bridge sync, collaboration workflows, and a native system tray task manager. |
10 | 10 |
|
11 | | -Drop-in compatible with `@modelcontextprotocol/server-memory` for the core 9 knowledge-graph tools, with 41 additional tools split across companion FastMCP micro-servers for sessions, tasks, bridge sync, collaboration, entity linking, and intelligence workflows (50 tools total). Includes a PyQt6 desktop app for visual task management and standalone automation scripts. |
| 11 | +Drop-in compatible with `@modelcontextprotocol/server-memory` for the core 9 knowledge-graph tools, with 47 additional tools split across companion FastMCP micro-servers for sessions, tasks, bridge sync, collaboration, entity linking, and intelligence workflows (56 OSS tools total). Includes a PyQt6 desktop app for visual task management and standalone automation scripts. |
12 | 12 |
|
13 | 13 | ## Why SQLite? |
14 | 14 |
|
@@ -37,7 +37,7 @@ SQLite hits the sweet spot: |
37 | 37 | - **Cross-project sharing** -- Optional `project` field scopes entities; omit it to share across all projects |
38 | 38 | - **Cross-machine sync** -- Bridge tools push/pull shared entities between machines via a private git repo |
39 | 39 | - **Premium runtime boundary** -- The OSS core can gate-load a separate private premium repo via signed entitlement checks, explicit owner approval, audit logging, and local revocation |
40 | | -- **Drop-in compatible core** -- All 9 tools from `@modelcontextprotocol/server-memory` work identically in `sqlite_memory`, with 41 more tools available from companion servers |
| 40 | +- **Drop-in compatible core** -- All 9 tools from `@modelcontextprotocol/server-memory` work identically in `sqlite_memory`, with 47 more tools available from companion servers |
41 | 41 | - **Zero required dependencies beyond stdlib** -- Only `fastmcp` is required for MCP protocol; `sqlite3` is Python stdlib. Optional `orjson`, `sqlite-vec`, and `sentence-transformers` add speed and semantic search |
42 | 42 | - **Automatic FTS sync** -- Full-text index stays in sync with every write operation |
43 | 43 | - **JSONL migration** -- Optionally import existing `memory.json` knowledge graphs on first run |
@@ -83,6 +83,84 @@ The public runtime will only attempt to mount them when all of the following are |
83 | 83 |
|
84 | 84 | Without a valid entitlement and local approval path, the premium runtime stays off and private extensions are not mounted. |
85 | 85 |
|
| 86 | +### Premium feature packs |
| 87 | + |
| 88 | +The premium layer is not meant to be a vague "enterprise edition". It is structured as a set of **gated operational packs** that sit on top of the OSS memory core. |
| 89 | + |
| 90 | +#### 1. ACL / RBAC control plane |
| 91 | + |
| 92 | +This pack is for teams that need more than "who has the database file". |
| 93 | + |
| 94 | +- define premium roles per global, project, client, or mailbox scope |
| 95 | +- assign those roles to users, teams, or agents |
| 96 | +- evaluate whether a principal may read, write, ingest, publish, or escalate within a given scope |
| 97 | + |
| 98 | +The point is not cosmetic permissions. The point is to stop one shared memory instance from becoming a flat trust domain once multiple people, clients, mailboxes, and AI agents are involved. |
| 99 | + |
| 100 | +#### 2. Governance / audit decision layer |
| 101 | + |
| 102 | +This pack records why a high-impact memory action was allowed, rejected, escalated, or published. |
| 103 | + |
| 104 | +- record governance decisions with rationale, evidence, and risk level |
| 105 | +- summarize the active governance surface for review |
| 106 | +- keep premium review activity in an auditable path instead of burying it in ad hoc notes |
| 107 | + |
| 108 | +This matters when the system starts influencing partner communication, escalation handling, or management-facing summaries. |
| 109 | + |
| 110 | +#### 3. Communication memory / multi-mailbox ingestion |
| 111 | + |
| 112 | +This pack turns the memory layer into a client-thread and operational follow-up surface. |
| 113 | + |
| 114 | +- register multiple mailboxes or shared inboxes |
| 115 | +- ingest thread/message metadata with client scope and participants |
| 116 | +- build follow-up queues based on the latest thread state |
| 117 | +- keep communication memory separated by mailbox and client boundary |
| 118 | + |
| 119 | +This is the premium line where the product stops being only "knowledge memory" and starts acting like governed operational memory. |
| 120 | + |
| 121 | +#### 4. Partner digest / management summary pipelines |
| 122 | + |
| 123 | +This is the premium summarization layer built on top of governance and communication memory. |
| 124 | + |
| 125 | +- partner-grade digests |
| 126 | +- management summaries |
| 127 | +- unresolved-risk and escalation views |
| 128 | +- high-signal briefings over selected scopes rather than global memory dumps |
| 129 | + |
| 130 | +These workflows are intentionally premium-only because they combine communication access, ranking, and decision framing in ways that should not run by default. |
| 131 | + |
| 132 | +#### 5. Advanced ranking / orchestration |
| 133 | + |
| 134 | +This pack is for cases where the public retrieval baseline is not enough. |
| 135 | + |
| 136 | +- premium reranking over client, partner, and mailbox context |
| 137 | +- queue prioritization and escalation ordering |
| 138 | +- multi-step orchestration for premium-only retrieval and digest pipelines |
| 139 | + |
| 140 | +The public repo exposes the runtime boundary for this. The proprietary heuristics and orchestration logic stay outside the OSS tree. |
| 141 | + |
| 142 | +#### 6. High-control deployment surfaces |
| 143 | + |
| 144 | +This is the control layer for customers that need stronger operational guarantees. |
| 145 | + |
| 146 | +- explicit entitlements |
| 147 | +- local revocation |
| 148 | +- owner approval for protected premium features |
| 149 | +- separate private runtime packaging |
| 150 | +- optional extra service boundaries for the most sensitive premium logic |
| 151 | + |
| 152 | +This is where the premium design stops depending on trust in the local machine and starts depending on gated execution, auditability, and runtime separation. |
| 153 | + |
| 154 | +### Current premium bootstrap scope |
| 155 | + |
| 156 | +The current private premium bootstrap is organized around three real pack families: |
| 157 | + |
| 158 | +- `acl_rbac` |
| 159 | +- `governance_audit` |
| 160 | +- `multi_mailbox_ingestion` |
| 161 | + |
| 162 | +That bootstrap is intentionally separate from the OSS repo. The public repo ships the airlock, contract, schema hooks, and template. The premium logic itself stays outside the OSS tree. |
| 163 | + |
86 | 164 | See: |
87 | 165 |
|
88 | 166 | - [`premium_contract.py`](premium_contract.py) |
@@ -122,7 +200,7 @@ pip install -e . |
122 | 200 | # Add the core drop-in server |
123 | 201 | claude mcp add sqlite_memory python /path/to/server.py |
124 | 202 |
|
125 | | -# Add companion servers for the full 50-tool stack |
| 203 | +# Add companion servers for the full 56-tool OSS stack |
126 | 204 | claude mcp add sqlite_tasks python /path/to/task_server.py |
127 | 205 | claude mcp add sqlite_session python /path/to/session_server.py |
128 | 206 | claude mcp add sqlite_bridge python /path/to/bridge_server.py |
@@ -162,7 +240,7 @@ Add these server/file pairs to your `~/.claude/settings.json` under `mcpServers` |
162 | 240 | | `sqlite_collab` | `collab_server.py` | Collaborator and public-knowledge workflows | |
163 | 241 | | `sqlite_entity` | `entity_server.py` | Task-entity linking and merge helpers | |
164 | 242 | | `sqlite_intel` | `intel_server.py` | Context assessment and enrichment tools | |
165 | | -| `sqlite_unified` | `unified_server.py` | Optional all-in-one server that mounts the full 50-tool stack | |
| 243 | +| `sqlite_unified` | `unified_server.py` | Optional all-in-one server that mounts the full 56-tool OSS stack | |
166 | 244 |
|
167 | 245 | Each server should share the same environment values: |
168 | 246 |
|
@@ -269,17 +347,17 @@ CREATE VIRTUAL TABLE IF NOT EXISTS memory_fts USING fts5( |
269 | 347 |
|
270 | 348 | ## Tool Reference |
271 | 349 |
|
272 | | -The 50 tools are grouped by MCP server: |
| 350 | +The 56 OSS tools are grouped by MCP server: |
273 | 351 |
|
274 | 352 | | MCP server | Tool count | Tools | |
275 | 353 | |---|---:|---| |
276 | 354 | | `sqlite_memory` | 9 | `create_entities`, `add_observations`, `create_relations`, `delete_entities`, `delete_observations`, `delete_relations`, `read_graph`, `search_nodes`, `open_nodes` | |
277 | 355 | | `sqlite_session` | 5 | `session_save`, `session_recall`, `search_by_project`, `knowledge_health`, `resume_context` | |
278 | | -| `sqlite_tasks` | 6 | `create_task_or_note`, `update_task`, `query_tasks`, `task_digest`, `archive_done_tasks`, `bump_overdue_priority` | |
279 | | -| `sqlite_bridge` | 6 | `bridge_push`, `bridge_pull`, `bridge_status`, `assign_task`, `review_shared_tasks`, `process_recurring_tasks` | |
| 356 | +| `sqlite_tasks` | 7 | `create_task_or_note`, `update_task`, `query_tasks`, `find_by_title`, `task_digest`, `archive_done_tasks`, `bump_overdue_priority` | |
| 357 | +| `sqlite_bridge` | 7 | `bridge_push`, `bridge_pull`, `bridge_status`, `bridge_doctor`, `assign_task`, `review_shared_tasks`, `process_recurring_tasks` | |
280 | 358 | | `sqlite_collab` | 9 | `manage_collaborators`, `share_knowledge`, `review_shared_knowledge`, `request_publish`, `cancel_publish`, `search_public_knowledge`, `rate_public_knowledge`, `get_knowledge_ratings`, `update_verification` | |
281 | 359 | | `sqlite_entity` | 7 | `link_task_entity`, `unlink_task_entity`, `get_task_links`, `get_entity_tasks`, `suggest_task_links`, `find_entity_overlaps`, `merge_entities` | |
282 | | -| `sqlite_intel` | 8 | `assess_context`, `queue_clarification`, `record_human_answer`, `extract_candidate_claims`, `promote_candidate`, `build_context_pack`, `explain_impact`, `enrich_context` | |
| 360 | +| `sqlite_intel` | 12 | `assess_context`, `queue_clarification`, `record_human_answer`, `extract_candidate_claims`, `promote_candidate`, `build_context_pack`, `explain_impact`, `audit_memory`, `replay_memory`, `govern_fact`, `list_memory_issues`, `enrich_context` | |
283 | 361 |
|
284 | 362 | ## Bridge Sync (Cross-Machine) |
285 | 363 |
|
|
0 commit comments