mnemo_recallLABSCO SUMMARY
Memory that keeps its own house in order.
Two decisions separate this from a save-and-recall wrapper. Memories are classified as they are written and raw session logs are parked in a second tier, so recall does not hand back the transcript of the conversation you are already in. And facts get their own key-value store with a confidence ladder, because "what is my name" is a lookup rather than a search. It is one maintainer's production system rather than a hosted service, so you run the server, the model and the storage.
What it is
A local memory server with an MCP bridge in front of it. A Python API server holds memories in SQLite with FTS5 and semantic recall, and integrations/mcp-bridge/server.js is the stdio process your client actually launches. Memory is sorted at save time into two tiers: Tier 1 smart notes, classified into categories such as topology, current_state, doctrine, incident, identity, relationship and decision, and Tier 2 raw session logs tagged session_log, kept in full but excluded from default recall — pass exclude_categories=[] to search both. Several agents can point at one server, which is what makes cross-agent recall and overnight synthesis possible.
What you get
- Core memory over MCP —
mnemo_save,mnemo_recall,mnemo_search,mnemo_share - A structured fact store for what semantic search answers badly —
mnemo_fact_save,mnemo_fact_get,mnemo_fact_query,mnemo_fact_demote, holding (entity, attribute, value) triples on a three-state confidence ladder:verified→high_probability→false, with contradictions raised over the bus and a Discord webhook - Wiki pages still searchable through the bridge —
wiki_search,wiki_read,wiki_index - A hand-written project pad that registers only when
BRAIN_DIRpoints at one —read_brain_file,write_brain_file,list_brain_files, plusopie_startupandsession_end - A beta behavioural-claim layer with a review queue, where nothing reaches the profile without an explicit promotion —
passport_get_user_context,passport_observe_behavior,passport_list_pending_observations,passport_promote_observation,passport_forget_or_override - Capture without touching the agent:
mnemo-cortex watch --backfilltails Claude Code and OpenClaw session files from the outside, andMNEMO_AUTO_CAPTURE=truestarts the watcher whenever the server starts - Overnight cross-agent synthesis, so each agent begins the day knowing what the others did
- USB courier sync between two full installations —
mnemo-cortex stick init --encrypt,stick sync,stick watch --notify, with optional AES-256 whose key never lives on the stick and conflicts preserved rather than overwritten - A deployment check that names what failed —
mnemo-cortex health, with--json,--quiet,--agents,--servicesand--check-mcp <YOUR_MCP_CONFIG_PATH>for cron - A bridge-level log of every tool call, off unless
MNEMO_DUMP=on— one JSONL file per agent per day carryingtool,params,response,latency_ms,okanderror
Requirements
Python 3.11 or newer for the server, and Node.js 18 or newer when you run the MCP bridge — that is the path Claude Desktop, LM Studio and OpenClaw use. Install from a clone with pip install -e ., which registers mnemo-cortex and the alias mnemo; mnemo-cortex init writes the config to ~/.agentb/agentb.yaml, and mnemo-cortex start listens on http://localhost:50001 with no auth token on loopback by default. Ollama is the recommended local reasoning and embedding provider, and the wizard also accepts OpenAI, Google, Anthropic or OpenRouter keys. The bridge reads MNEMO_URL, MNEMO_AGENT_ID and MNEMO_SHARE; where the server wants a key it comes from MNEMO_AUTH_TOKEN or ~/.mnemo-auth-token. Linux, macOS and Windows are all supported — since v4.4.1 the server runs natively on Windows with no WSL. ChatGPT is not an MCP client here: it reaches the server through a bearer-authenticated, tenant-pinned two-route gate instead.
Setup effort
Build from source — git clone https://github.com/GuyMannDude/mnemo-cortex.git
USE CASES
Starting a session without re-explaining your setup
The agent recalls what it learned last time and reads the project pad you curate by hand, so the first message is work rather than context.
Getting a name, a port or a path right every time
Store it as a fact instead of a memory and it comes back by exact lookup, with a confidence state rather than a paragraph that happened to rank well.
Keeping two agents on the same page
Point both at one server and share a memory across them; the overnight pass compacts each agent's recent work into shared context for the next morning.
Correcting something the store believes and shouldn't
Demote the wrong fact without having to supply a replacement, then assert the right one when you have it — the ladder records both moves.
Capturing conversations you didn't think to save
The watcher tails your agent's session files from outside and ingests every exchange, so what you needed later is already in the store.
22 tools
Listed in project docs. Your client may show a different list.
mnemo_searchmnemo_savemnemo_sharemnemo_fact_getmnemo_fact_querymnemo_fact_savemnemo_fact_demotepassport_get_user_contextpassport_observe_behaviorpassport_list_pending_observationspassport_promote_observationpassport_forget_or_overrideagent_startupopie_startupread_brain_filelist_brain_fileswrite_brain_filesession_endwiki_searchwiki_readwiki_indexBEFORE YOU INSTALL
What to know first
Tools you get
22 tools named in the project's documentation.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/GuyMannDude/mnemo-cortex.git
cd mnemo-cortex
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
mnemo-cortex init
mnemo-cortex start
cd integrations/mcp-bridge
npm ciMCP Clients
Claude Desktop — Windows
{
"mcpServers": {
"mnemo-cortex": {
"command": "node",
"args": [
"C:/Users/<YOUR_USERNAME>/mnemo-cortex/integrations/mcp-bridge/server.js"
],
"env": {
"MNEMO_URL": "http://localhost:50001",
"MNEMO_AGENT_ID": "claude-desktop",
"MNEMO_SHARE": "separate"
}
}
}
}Claude Desktop — Linux
{
"mcpServers": {
"mnemo-cortex": {
"command": "node",
"args": [
"/home/<YOUR_USERNAME>/mnemo-cortex/integrations/mcp-bridge/server.js"
],
"env": {
"MNEMO_URL": "http://localhost:50001",
"MNEMO_AGENT_ID": "claude-desktop",
"MNEMO_SHARE": "separate"
}
}
}
}LM Studio
{
"mcpServers": {
"mnemo-cortex": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MNEMO_CORTEX>/integrations/mcp-bridge/server.js"
],
"env": {
"MNEMO_URL": "http://localhost:50001",
"MNEMO_AGENT_ID": "lmstudio"
}
}
}
}AnythingLLM
{
"mcpServers": {
"mnemo-cortex": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MNEMO_CORTEX>/integrations/mcp-bridge/server.js"
],
"env": {
"MNEMO_URL": "http://localhost:50001",
"MNEMO_AGENT_ID": "anythingllm"
}
}
}
}Jan
{
"mcpServers": {
"mnemo-cortex": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MNEMO_CORTEX>/integrations/mcp-bridge/server.js"
],
"env": {
"MNEMO_URL": "http://localhost:50001",
"MNEMO_AGENT_ID": "jan"
}
}
}
}Open WebUI, LobeChat
node <YOUR_PATH_TO_MNEMO_CORTEX>/integrations/mcp-bridge/server.jsllama.cpp
llama-server -m qwen3-8b.gguf --mcp-config <YOUR_MCP_CONFIG>Ollama — mcphost
{
"mcpServers": {
"mnemo-cortex": {
"type": "local",
"command": [
"node",
"<YOUR_PATH_TO_MNEMO_CORTEX>/integrations/mcp-bridge/server.js"
],
"environment": {
"MNEMO_URL": "http://localhost:50001",
"MNEMO_AGENT_ID": "ollama-mcphost"
}
}
}
}