mgi-mind
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MGIMIND_TOKEN | No | Bearer token for the server. The Docker image prints one on startup; pin a stable token with `-e MGIMIND_TOKEN=your-token` (e.g. `docker run -p 8765:8765 -e MGIMIND_TOKEN=your-token -v mgimind-data:/data madgodinc/mgi-mind`). Also required as `--agent-token` when binding `serve-http` to a non-loopback host. | |
| MGIMIND_MODEL_VARIANT | No | Selects the install-mode model profile. One of `cpu`, `gpu`, or `auto`. | auto |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mind_searchC | Semantic search across memories, with optional metadata filters (author, source, date window, multiple libraries). |
| mind_browseA | Browse/list memories by metadata WITHOUT a search query: inventory, not ranking. Newest first. Use to answer 'what did agent X write recently', 'everything from this source', 'all memories since a date'. Same filters as mind_search. |
| mind_recall_allA | Unified recall across all memory types at once (facts + memories + procedures) for one query. Current facts first, then semantic memories, then matching error->fix procedures. One call instead of three separate searches. |
| mind_should_searchA | Decide whether to search memory BEFORE answering a user query. Returns priority (must-search / should-search / answer-directly), the reason, and which libraries to search first. Call this on a turn when unsure; it implements the search-before-answer trigger policy (named project, meta-cue like 'did I tell you', negation to verify, cross-session reference). Advisory: it cannot force a search. |
| mind_visualizeA | Open the 3D memory visualization in the user's browser: the brain as glowing cores (memories, facts, regions) wired by neurons, with live pulses. Call this when the user asks to SEE or SHOW their memory / 'the brain' / how memory looks. Spawns a local viewer and returns the URL. |
| mind_addC | Add a memory entry |
| mind_provenance_addA | Persist an externally-sourced snippet (code, doc, RFC quote, commit message, etc.) into mgi-mind with a mandatory provenance citation. The agent supplies the snippet AS PLAIN UTF-8: no HTML, no markup. Call this ONLY when the snippet was just produced by a code-search or doc-search MCP in the same session; do NOT fill provenance fields from memory. |
| mind_doctorC | Check system health |
| mind_contextB | Generate compact context briefing for session start |
| mind_ingestA | Auto-ingest memory. PRIMARY: pass a |
| mind_learnA | Record a procedural-memory lesson (error -> fix). Stored unverified by default (a manual lesson has no truth signal); surfaced with low weight until confirmed. Pass verified=true ONLY with a deterministic signal (test green / exit 0). |
| mind_recallA | Recall error->fix playbooks for an error and/or a task context. Ranking blends relevance with trust: a verified or proven fix gets a boost, a repeatedly-failing one is demoted, but a strongly-matching unverified fix still surfaces. |
| mind_procedure_outcomeA | Record whether a recalled procedure worked when reused. worked=false raises its fail count and demotes it, so the store self-corrects instead of ossifying on a bad fix. |
| mind_outcomeA | v1.5: Record a typed external-signal outcome on any memory (not only procedures). Use this when a test passed/failed, code compiled, a user explicitly confirmed/denied a fact, or a citing memory referenced this one. Idempotent on (memory_id, signal_type, source): re-posting the same triple updates the existing entry rather than appending a duplicate. Signals contribute to the fact's external_signal_score, which feeds the duel rule and the §3 Mechanism 2 doubt-window guardrail. When memory_id is a PROCEDURE and signal_type is test_passed or code_compiled, this also bumps the procedure's success/fail counters: so a green test after a mind_learn fix marks that playbook verified without a separate mind_procedure_outcome call. Pass the procedure id returned by mind_learn. |
| mind_historyC | Show recent additions chronologically |
| mind_consolidateA | Preview what |
| mind_restoreA | Restore an ARCHIVED (soft-forgotten) memory by id, returning it to search. Archiving (consolidate --archive-cold) reversibly hides cold memories instead of deleting them; this is the undo. |
| mind_webB | Read a webpage as Markdown, optionally save to library |
| mind_exportB | Export all data to JSON or Markdown files |
| mind_importC | Import markdown files from a directory (Obsidian, etc.) |
| mind_statsB | Show memory statistics |
| mind_quarantineA | Inspect, promote, or expire entries that the relevance gate filtered into the quarantine layer. Single tool with |
| mind_vaultA | Vault is terminal-only by design. This tool explains how the user runs the equivalent |
| mind_sessionA | Manage the agent's session record across runs. Single tool with |
| mind_factA | Knowledge-graph facts (subject -> predicate -> object). Single tool with |
| mind_libraryA | Library namespaces. Single tool with |
| mind_predicateA | v1.4: register and inspect predicate cardinality (single | temporal-single | multi). Cardinality controls how |
| mind_blockA | Pinned core-memory blocks (persona / user / current-project): a few small, named notes that are ALWAYS injected at the top of the session context, not ranked retrieval. Use for stable, always-relevant facts the agent must not have to search for. action=set overwrites, get/list read, remove deletes. Content is capped (4KB/block, 32 blocks); this is core memory, not a second store: put searchable knowledge in mind_add instead. |
| mind_skillA | Skills: the house way of doing a kind of work, matched against the task you are ABOUT TO START (mind_recall is the other half: it answers an error that already happened). action=match takes a task description and returns the playbooks that apply, ranked by relevance and by how they have actually worked out. Call it before starting non-trivial work, the way you would check for a house rule. action=set writes one (name is the identity, so writing the same name edits it and keeps its history), list/show read, remove deletes, outcome records whether applying it worked (verify=true only for a deterministic signal, never a hunch). |
| mind_fact_addA | DEPRECATED: use mind_fact(action="add"). Removed in v2.0. (Add a knowledge graph fact) |
| mind_fact_queryA | DEPRECATED: use mind_fact(action="query"). Removed in v2.0. (Query facts about a subject) |
| mind_fact_invalidateA | DEPRECATED: use mind_fact(action="invalidate"). Removed in v2.0. (Soft-delete a fact by ID (for superseding a changed single-valued fact)) |
| mind_session_startA | DEPRECATED: use mind_session(action="start"). Removed in v2.0. (Start a new session) |
| mind_session_lastA | DEPRECATED: use mind_session(action="last"). Removed in v2.0. (Get last session summary) |
| mind_session_endA | DEPRECATED: use mind_session(action="end"). Removed in v2.0. (End the active session for an agent) |
| mind_createA | DEPRECATED: use mind_library(action="create"). Removed in v2.0. (Create a new library) |
| mind_listA | DEPRECATED: use mind_library(action="list"). Removed in v2.0. (List all libraries) |
| mind_deleteA | DEPRECATED: use mind_library(action="delete"). Removed in v2.0. (Delete a specific memory by ID) |
| mind_quarantine_listA | DEPRECATED: use mind_quarantine(action="list"). Removed in v2.0. (List entries the v0.11 relevance gate filtered into the quarantine layer. These are not surfaced by mind_search by design: use this tool when you suspect a fact was filtered (e.g., the user keeps repeating something the gate would reject as low-signal). Newest first.) |
| mind_quarantine_showA | DEPRECATED: use mind_quarantine(action="show"). Removed in v2.0. (Show a single quarantined entry with its full content and the gate reason. Returns 'not in quarantine' for regular memory ids: the surface is honest about what it can see.) |
| mind_quarantine_promoteA | DEPRECATED: use mind_quarantine(action="promote"). Removed in v2.0. (Explicitly promote a quarantined entry to ordinary memory by id. The automatic promotion path is re-asserting the same content via mind_ingest; use this when you know the entry should be live without re-ingesting.) |
| mind_vault_storeB | DEPRECATED: use mind_vault(action="store"). Removed in v2.0. (Explain how to store a secret (never accepts the secret over MCP)) |
| mind_vault_getA | DEPRECATED: use mind_vault(action="get"). Removed in v2.0. (Explain how to retrieve a secret (never returns plaintext over MCP)) |
| mind_vault_listA | DEPRECATED: use mind_vault(action="list"). Removed in v2.0. (Explain how to list stored secret keys (terminal-only; needs the master password)) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 44 tools
There are genuine clusters of near-synonymous tools: mind_search/mind_browse/mind_recall/mind_recall_all, mind_add/mind_ingest, and mind_outcome vs mind_procedure_outcome (the former explicitly subsumes the latter). Worse, ~15 deprecated aliases (mind_fact_add, mind_quarantine_list, mind_vault_get, mind_session_start, etc.) directly duplicate the newer action-based tools, so an agent can easily pick the wrong one. Descriptions are unusually careful, which keeps this from scoring lower, but the overlap is real.
Nearly everything is snake_case under a shared mind_ prefix and follows a predictable verb_noun style (mind_search, mind_add, mind_learn). The main deviation is the new action-based noun-only tools (mind_fact, mind_library, mind_vault, mind_session, mind_quarantine) plus stateless names like mind_doctor and mind_context. Readable, but the mixed verb-style/noun-with-action convention is a minor inconsistency.
44 tools is far beyond the reasonable band for this domain, and the count is inflated by ~15 deprecated tools that still appear in the surface alongside their replacements. Even the ~29 active tools is heavy for what is essentially a memory store. Deprecation flags help, but shipping both generations at once bloats the set.
The lifecycle is unusually thorough: add/ingest, semantic search, browse, cross-type recall, knowledge-graph facts, procedures, skills, pinned blocks, sessions, vault, quarantine, provenance, outcome signals, export/import, consolidate, restore, stats and health checks. The only minor gap is that there is no clear in-place edit/update path for an ordinary memory (append + invalidate/delete are the only mutations).