MEMO MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| memo_versionA | Get memo version info — the package version and the backend protocol version. Use this to check which version of memo is running. |
| memo_graphA | Navigate the entity knowledge graph (read-only). One consolidated explorer over memo's corpus graph. Pick a
By default this navigates the MEMORY graph only (entities linked through
shared memories). Set |
| memo_saveA | Persist Use memo_save for a durable curated fact, decision, or preference; use memo_offload for bulk dumps of working context. When
|
| memo_listA | List recent memories, optionally filtered by memory type. Read-only. Use this to browse the corpus before choosing an id for
memo_get, memo_update, memo_rename, memo_delete, or history tools.
|
| memo_getA | Fetch one memory by id or unique id prefix. Read-only. Returns the full memory record, When MEMO_EMITTED_LEDGER is on and the resolved id already has an
entry in this session's emission ledger, this call counts as a
recovery against the feature's net-saving estimate (see
|
| memo_updateA | Patch fields on a memory. |
| memo_renameA | Rename one memory title without changing its body or tags. Destructive metadata edit. Use after memo_save or memo_search when a
record has the right content but the wrong title. Pass |
| memo_reindexA | Rebuild memo's searchable index from the markdown vault. Writes only derived index state; markdown remains the source of truth.
Use after hand-editing vault files or changing indexing behavior.
|
| memo_deleteA | Permanently delete one memory by id or unique prefix. Destructive and irreversible (no trash). Elicitation-capable clients are asked to confirm before the delete runs; other clients proceed unchanged. Resolves ambiguous short ids safely and returns an error instead of guessing. When cross-reference indexing is enabled, the response warns about memories that linked to the deleted record. |
| memo_forgetA | Mark one memory as forgotten without deleting its history. Destructive in retrieval behavior: the memory is hidden from normal
recall/search surfaces until memo_unforget restores it. Pass |
| memo_unforgetA | Restore a previously forgotten memory to normal retrieval. Idempotent write. Accepts a full id or unique prefix and returns whether a matching forgotten record was restored. Use after deciding a memory should participate in search and recall again. |
| memo_consolidateA | Detect near-duplicate clusters and propose merges. Read-only — returns proposals without modifying the corpus.
Uses the AdvancedConsolidator under the hood (same as
Both defaults are derived from MEMO_MCP_RESPONSE_BUDGET_TOKENS rather
than picked for round numbers: a returned member carries a 600-char
|
| memo_lintA | Inspect the memory corpus for maintenance issues. Read-only. Returns grouped lint findings such as malformed metadata or
other records that may need cleanup, capped at |
| memo_offloadA | Offload a bulky payload (tool output, log, dump) out of the context
window: memo stores it content-addressed as a reference-tier memory
and returns Use memo_offload for bulk working-context dumps; use memo_save for
curated durable facts meant to be recalled. Idempotent per payload:
re-offloading identical content returns the existing id with
The synopsis is deterministic (no LLM): JSON keys, CSV headers, code
symbols, or compressed text. Reference tier is excluded from
auto-recall, so offloaded blobs never appear in the recall hook.
Fetch the full payload later with |
| memo_get_embedder_profileA | Return the active embedding model profile. Read-only. Use this to inspect the model id, vector dimensions, normalization, and provider that memo uses for semantic search. Useful when verifying compatibility with stored vectors or external retrieval components. |
| memo_unified_briefingA | Load a compact startup briefing from Memo's durable and operational state. Read-only. Call before deciding or answering so prior durable facts can
ground the task. Pass |
| memo_searchA | Search durable memories by text, vector similarity, or hybrid mode. Read-only. Returns raw ranked hits — source records with ids, dates, tags, and excerpts. Use memo_context instead for a budgeted prompt-ready pack, memo_search_trace for scoring diagnostics, and memo_rerank to reorder hits you already have. |
| memo_contextA | Build prompt-ready memory context without calling the answer LLM. Read-only. Unlike memo_search's raw hit list, this returns a budgeted, prompt-ready context pack for direct injection: static profile, dynamic recent context, query hits, omissions, and a readonly prompt wrapper. |
| memo_search_traceA | Search memories and include retrieval trace diagnostics. Read-only. Debug variant of memo_search: use it when investigating ranking, filters, or recall misses rather than for normal lookup. Returns the same style of hits as memo_search plus trace metadata that explains how candidates were selected and scored at each stage. |
| memo_rerankA | Rerank candidate memory hits for a query. Read-only. Performs no retrieval of its own (unlike memo_search) — it only reorders caller-supplied hit dictionaries, e.g. after memo_search or another retrieval source, when you need the most relevant subset ordered for answer synthesis. When reranking is disabled in this install, hits pass through in input order without scores. |
| memo_embed_queryA | Embed one query string with memo's query embedding path. Read-only. Use for diagnostics or integrations that need the exact vector memo would use for retrieval queries. Rejects empty text and returns the vector, dimension, and model id. |
| memo_embed_batchA | Embed one or more document strings with memo's document embedder. Read-only. Use for diagnostics or external indexing when you need document vectors from the same model memo uses internally. Pass a list of strings; an empty list returns no vectors without error. |
| memo_askA | Answer a question using memo retrieval and citations. Read-only. Use when you want a synthesized answer grounded in durable
memories instead of raw hit lists. |
| memo_chat_askA | Answer a conversational question with optional history and context. Read-only. Use instead of memo_ask when prior turns or explicit
|
| memo_provenanceA | Return provenance metadata for one memory. Read-only. Use with a full id or unique prefix when you need origin, lineage, file path, or related audit details for a record before trusting, editing, or citing it. |
| memo_record_diffA | Return recent history events for one memory in chronological order. Read-only. Use to inspect how a memory changed over time before
editing or rolling back. Accepts a full id or unique prefix; |
| memo_historyA | List recent memory history events. Read-only. Use for audit trails across the corpus or filter by |
| memo_session_listA | List tracked memo sessions. Read-only. Use to find recent session ids, transcript paths, and
project context for capture or inspection. |
| memo_session_getA | Fetch metadata for one tracked memo session. Read-only. Use after memo_session_list or memo_start_session when you need the stored transcript path, project, checkpoints, or other session details. Returns None when the session id is unknown. |
| memo_statsA | Return local memo corpus and runtime statistics. Read-only. Use for diagnostics, health checks, and environment inspection. Includes corpus count, storage paths, embedder model, history error count, and recall daemon health when available. |
| memo_idle_captureA | Run idle capture on the current session. Write tool. Extracts durable insights from the newest tracked session
transcript and saves them as memo records. Use after a meaningful unit
of work, or periodically for clients without Stop hooks. Do not use for
normal lookup; call memo_search, memo_ask, or memo_unified_briefing
when you only need to read existing memories. With |
| memo_pop_notificationA | Read and dismiss pending idle-capture notification. Destructive only for the notification queue: returns the pending idle-capture message, then removes that transient notification so it is not shown twice. It never deletes memories or session transcripts. Use after memo_idle_capture or before replying to surface auto-saved insights; use memo_search or memo_list to read durable memory records. |
| memo_start_sessionA | Start a new session for this client. Write tool. Creates or refreshes a tracked session checkpoint used by
capture, grounding, and transcript lookup. Call once at the beginning
of a task or conversation. Pass |
| memo_save_textA | Save a memory from text. Write tool. Persists one plain note from |
| memo_evidence_packA | Return bounded, cited evidence for a question, or an explicit abstention. Read-only, no side effects. Every snippet carries a memo:// citation;
when retrieval coverage stays under |
| memo_operational_stateA | Read current focus, handoffs, attention items, conflicts, and outcomes. Read-only snapshot of the operational journal's current state. Returns
only what is still open unless |
| memo_federation_previewA | Preview the exact memories an ACL would allow into a signed bundle. |
| memo_journal_verifyB | Verify every native operational hash chain. |
| memo_signal_rememberC | Remember a durable, idempotent operational watcher marker. |
| memo_signal_listB | List durable watcher markers, newest epoch first. |
| memo_focus_setA | Set the current focus for a project. Replaces the project's previous focus; the change is journaled with the acting agent's identity. Safe to repeat with the same summary. |
| memo_focus_clearA | Clear a project's current focus. Idempotent: returns {'cleared': false} when no focus was set. |
| memo_handoff_createA | Create a durable handoff for another agent or session. Writes a journaled handoff record that surfaces in memo_operational_state until some agent consumes it. |
| memo_handoff_consumeA | Mark a handoff consumed so it stops surfacing to later agents. Idempotent: returns {'consumed': false} when the id is unknown or the handoff was already consumed; true only on the first consume. |
| memo_attention_addA | Add an item that must be surfaced to later agents. Writes a journaled attention record; severities outside low|medium|high|critical are rejected. |
| memo_attention_ackA | Acknowledge an attention item so it stops being surfaced. Idempotent: returns {'acknowledged': false} when the id is unknown or already acknowledged; true only on the first acknowledgement. |
| memo_conflict_openA | Open a local, auditable reality conflict. Writes a 'detected' conflict record to the hash-chained journal. Resolution is human-only — memo_conflict_resolve reports the CLI command a human must run. |
| memo_conflict_resolveA | Report the local human action required to resolve a conflict. Read-only: never resolves anything itself — it returns the
|
| memo_outcome_recordA | Record whether recalled memories helped a task succeed. Feeds success/failure back into each cited memory's outcome stats —
the signal behind procedure promotion. Idempotent per
|
| memo_procedure_candidatesA | List outcome-backed memories ready for procedural promotion. |
| memo_procedure_promoteA | Promote grounded memories into a reusable procedure/failure pattern. Creates a new durable memory citing the sources; rejects sources whose
outcome stats don't meet the |
| memo_terminal_listA | List deliverable terminals; empty while legacy TTY input is disabled. |
| memo_profileA | Return bounded stable and active memory with evidence metadata. |
| memo_review_dueA | List records whose explicit review date passed or have an open conflict. |
| memo_mark_reviewedA | Record review evidence, verify the memory, and schedule its next review. Replaying the latest still-current review with identical evidence and actor is a no-op, so retries are idempotent. |
| memo_invalidateA | Close one memory's truth-validity interval without deleting it. Sets invalid_at in the record's frontmatter and index; the record itself is retained and stays readable. |
| memo_supersedeA | Close the old memory at the successor's validity start. Only the old record is modified; the close time never precedes the old record's own validity start. |
| memo_write_queue_statusA | Return process-local MCP write queue depth, waits, and rejections. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| briefing | Load memo's startup briefing (durable facts, decisions, operational state) into the conversation. |
| recall | Pull memo's most relevant memories for a topic into the conversation. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| _resource_recent |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jagoff/memo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server