MCP Tools
memtomem exposes its LTM features as MCP tools. New users should keep the default core mode: it gives agents the common tools directly and routes everything else through mem_do, which keeps the agent’s visible tool list small.
Tool Modes
Section titled “Tool Modes”Set the mode with MEMTOMEM_TOOL_MODE in your MCP client config.
| Mode | Tools exposed | Use when |
|---|---|---|
core (default) | 9 total, including mem_do | Best default for most agents |
standard | 38, including mem_do | You want common management tools directly visible |
full | 100 current tools | You are debugging, documenting, or using a client that handles large tool lists well |
The following example is for a manual MCP-only connection. If a client plugin already supplies memtomem, check that client’s coexistence rule in Connect an AI Client before adding it.
Example:
{ "mcpServers": { "memtomem": { "command": "memtomem-server", "env": { "MEMTOMEM_TOOL_MODE": "core" } } }}Core Mode
Section titled “Core Mode”In core mode, the agent sees the tools needed for daily memory work:
| Tool | Purpose |
|---|---|
mem_status | Check server, storage, embedding, and index status |
mem_stats | Return index statistics |
mem_add | Store a new memory |
mem_search | Hybrid search over indexed memory |
mem_recall | Browse recent or date-filtered memory |
mem_index | Index a file or directory |
mem_list | List indexed memories / sources |
mem_read | Read an indexed source file |
mem_do | Route all non-core actions by name |
Tell the agent what you want in natural language. It will usually pick the right core tool.
mem_do
Section titled “mem_do”mem_do provides access to every remaining action. It takes an action and optional params.
mem_do(action="help")mem_do(action="help", params={"category": "context"})mem_do(action="schedule_list")mem_do(action="context_diff", params={"scope": "project_shared"})mem_do(action="context_artifact_transfer", params={"asset_type": "skill", "name": "my-skill", "mode": "copy", "to_scope": "project_shared"})mem_do(action="version")Use mem_do(action="help") from your MCP client to see the action catalog for the installed version.
The v0.6.8 registry has 100 current tools and 94 mem_do actions.
mem_context_migrate was removed and mem_candidate_evidence was added;
the unchanged total does not imply unchanged membership. Pinned Context adds mem_pinned_list/get/set/delete and
mem_context_compose; review-first formation adds
mem_formation_scan and mem_candidate_propose/list/review/recover/evidence. The new
full-mode surface also includes mem_context_pull for preview-first runtime
imports and mem_quality_replay for deterministic Quality Lab replays.
mem_do(action="version") returns the server version, capability map, and a
secret-free runtime_profile describing the effective embedding/rerank runtime
and missing optional dependencies.
mem_candidate_propose creates a privacy-scanned pending review item rather
than durable memory. It requires content, source, source_ref, and an
idempotency_key; approved candidates alone pass through the normal write
path. Reusing a key with identical content returns the original pending
candidate; reusing it with different content is rejected.
mem_candidate_evidence compares a candidate with indexed memories in the caller’s scope, not other pending candidates or pinned context. A potential-conflict label is advisory, not a factual verdict or an automatic approval/rejection.
OpenCode
Section titled “OpenCode”The published opencode-memtomem@0.3.11 plugin bundles Core 0.6.8. OpenCode
uses the singular plugin key; there is no opencode plugin add command:
{"plugin": ["opencode-memtomem@0.3.11"]}For MCP tools without the plugin’s slash commands and skills, configure a local
server in opencode.json:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "memtomem": { "type": "local", "command": ["uvx", "--isolated", "--from", "memtomem[all]==0.6.8", "memtomem-server"], "enabled": true, "timeout": 60000, "environment": {"MEMTOMEM_TOOL_MODE": "core"} } }}An existing manual mcp.memtomem entry takes precedence over the plugin’s
default, so only one server runs. Keep that exact key for a manual server, or
remove the entry to use the plugin server. A different key such as
mcp."memtomem-local" is not deduplicated and runs both. See the
OpenCode connection guide for the full
set of choices.
Common Actions
Section titled “Common Actions”| Category | Examples |
|---|---|
| Namespace | ns_list, ns_set, ns_assign, ns_update, ns_rename, ns_delete |
| Tags | tag_list, tag_rename, tag_merge, tag_delete |
| Sessions | session_start, session_end, session_list |
| Scratch | scratch_set, scratch_get, scratch_promote |
| Context Gateway | context_detect, context_init, context_generate, context_diff, context_sync, context_pull, context_artifact_transfer (move/copy skills, agents, commands across projects and tiers), context_version, context_promote |
| Maintenance | dedup_scan, dedup_merge, decay_scan, decay_expire, cleanup_orphans, auto_tag |
| Import / export | export, import, import_obsidian, import_notion, ingest |
| Quality / analytics | quality_replay, activity, timeline, eval, reflect |
When to Change Modes
Section titled “When to Change Modes”Stay in core when:
- You are setting up memtomem for an agent.
- You want lower prompt/tool-list overhead.
- You are not sure which mode you need.
Use standard when an MCP client works better with direct tools than mem_do routing.
Use full when you are testing, writing docs, or manually exercising every tool. full intentionally exposes a large surface.
CLI Mirrors
Section titled “CLI Mirrors”Most common MCP operations have CLI equivalents:
| MCP | CLI |
|---|---|
mem_status | mm status |
mem_add | mm add |
mem_search | mm search |
mem_index | mm index |
mem_do(action="context_sync") | mm context sync |
mem_do(action="schedule_list") | mm schedule list |
If an agent is struggling to call the right tool, run the CLI command once yourself and then ask the agent to follow the same operation.
Full-mode tool names
Section titled “Full-mode tool names”These are the 100 current names in full mode, distinct from the nine tools exposed by default in core mode.
mem_activitymem_addmem_add_redaction_statsmem_agent_registermem_agent_searchmem_agent_sharemem_askmem_auto_tagmem_batch_addmem_candidate_evidencemem_candidate_listmem_candidate_proposemem_candidate_recovermem_candidate_reviewmem_cleanup_orphansmem_configmem_conflict_checkmem_consolidatemem_consolidate_applymem_context_artifact_migratemem_context_artifact_transfermem_context_composemem_context_detectmem_context_diffmem_context_generatemem_context_initmem_context_memory_migratemem_context_promotemem_context_pullmem_context_syncmem_context_versionmem_decay_expiremem_decay_scanmem_dedup_mergemem_dedup_scanmem_deletemem_domem_editmem_embedding_resetmem_entity_scanmem_entity_searchmem_evalmem_expandmem_exportmem_fetchmem_formation_scanmem_importmem_import_notionmem_import_obsidianmem_importance_scanmem_indexmem_linkmem_listmem_ns_assignmem_ns_deletemem_ns_getmem_ns_listmem_ns_renamemem_ns_setmem_ns_updatemem_pinned_deletemem_pinned_getmem_pinned_listmem_pinned_setmem_policy_addmem_policy_deletemem_policy_listmem_policy_runmem_procedure_listmem_procedure_savemem_quality_replaymem_readmem_recallmem_reflectmem_reflect_savemem_relatedmem_resetmem_schedule_deletemem_schedule_listmem_schedule_registermem_schedule_run_nowmem_scratch_getmem_scratch_promotemem_scratch_setmem_searchmem_search_feedbackmem_search_historymem_search_suggestmem_session_endmem_session_listmem_session_startmem_statsmem_statusmem_tag_deletemem_tag_listmem_tag_mergemem_tag_renamemem_timelinemem_unlinkmem_watchdog