Skip to content

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.

Set the mode with MEMTOMEM_TOOL_MODE in your MCP client config.

ModeTools exposedUse when
core (default)9 total, including mem_doBest default for most agents
standard38, including mem_doYou want common management tools directly visible
full100 current toolsYou 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" }
}
}
}

In core mode, the agent sees the tools needed for daily memory work:

ToolPurpose
mem_statusCheck server, storage, embedding, and index status
mem_statsReturn index statistics
mem_addStore a new memory
mem_searchHybrid search over indexed memory
mem_recallBrowse recent or date-filtered memory
mem_indexIndex a file or directory
mem_listList indexed memories / sources
mem_readRead an indexed source file
mem_doRoute 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 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.

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.

CategoryExamples
Namespacens_list, ns_set, ns_assign, ns_update, ns_rename, ns_delete
Tagstag_list, tag_rename, tag_merge, tag_delete
Sessionssession_start, session_end, session_list
Scratchscratch_set, scratch_get, scratch_promote
Context Gatewaycontext_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
Maintenancededup_scan, dedup_merge, decay_scan, decay_expire, cleanup_orphans, auto_tag
Import / exportexport, import, import_obsidian, import_notion, ingest
Quality / analyticsquality_replay, activity, timeline, eval, reflect

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.

Most common MCP operations have CLI equivalents:

MCPCLI
mem_statusmm status
mem_addmm add
mem_searchmm search
mem_indexmm 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.

These are the 100 current names in full mode, distinct from the nine tools exposed by default in core mode.

  • mem_activity
  • mem_add
  • mem_add_redaction_stats
  • mem_agent_register
  • mem_agent_search
  • mem_agent_share
  • mem_ask
  • mem_auto_tag
  • mem_batch_add
  • mem_candidate_evidence
  • mem_candidate_list
  • mem_candidate_propose
  • mem_candidate_recover
  • mem_candidate_review
  • mem_cleanup_orphans
  • mem_config
  • mem_conflict_check
  • mem_consolidate
  • mem_consolidate_apply
  • mem_context_artifact_migrate
  • mem_context_artifact_transfer
  • mem_context_compose
  • mem_context_detect
  • mem_context_diff
  • mem_context_generate
  • mem_context_init
  • mem_context_memory_migrate
  • mem_context_promote
  • mem_context_pull
  • mem_context_sync
  • mem_context_version
  • mem_decay_expire
  • mem_decay_scan
  • mem_dedup_merge
  • mem_dedup_scan
  • mem_delete
  • mem_do
  • mem_edit
  • mem_embedding_reset
  • mem_entity_scan
  • mem_entity_search
  • mem_eval
  • mem_expand
  • mem_export
  • mem_fetch
  • mem_formation_scan
  • mem_import
  • mem_import_notion
  • mem_import_obsidian
  • mem_importance_scan
  • mem_index
  • mem_link
  • mem_list
  • mem_ns_assign
  • mem_ns_delete
  • mem_ns_get
  • mem_ns_list
  • mem_ns_rename
  • mem_ns_set
  • mem_ns_update
  • mem_pinned_delete
  • mem_pinned_get
  • mem_pinned_list
  • mem_pinned_set
  • mem_policy_add
  • mem_policy_delete
  • mem_policy_list
  • mem_policy_run
  • mem_procedure_list
  • mem_procedure_save
  • mem_quality_replay
  • mem_read
  • mem_recall
  • mem_reflect
  • mem_reflect_save
  • mem_related
  • mem_reset
  • mem_schedule_delete
  • mem_schedule_list
  • mem_schedule_register
  • mem_schedule_run_now
  • mem_scratch_get
  • mem_scratch_promote
  • mem_scratch_set
  • mem_search
  • mem_search_feedback
  • mem_search_history
  • mem_search_suggest
  • mem_session_end
  • mem_session_list
  • mem_session_start
  • mem_stats
  • mem_status
  • mem_tag_delete
  • mem_tag_list
  • mem_tag_merge
  • mem_tag_rename
  • mem_timeline
  • mem_unlink
  • mem_watchdog