Skip to content

mmw_sync_status

On this page you will learn what mmw_sync_status shows, how to read each sync state, and what to do when session history upload stops.

The running example: a developer has consented to uploading Claude Code sessions and asks the agent “are my sessions being uploaded to MMW?”.

mmw_sync_status is the only tool that answers locally, without contacting the MMW server. The local agent mmw-agent (version 0.1.4) adds it to the server’s tool list. It shows:

  • whether a person consented to uploading local AI session history;
  • this device’s identifier;
  • the result of the last sync cycle.

The tool only reads. It cannot grant consent: consent is given by a person in a terminal with mmw-agent consent. Clients without the agent (claude.ai, ChatGPT, direct HTTP) do not have this tool.

Annotations: readOnlyHint: true, idempotentHint: true.

None. The input schema is an empty object.

A text block with JSON:

FieldDescription
consentnull if there is no consent. Otherwise an object: granted (true), clients (for example ["claude-code", "codex"]), granted_at (consent time).
device_idThis computer’s identifier, dev-…; null if not created yet.
last_cycleResult of the last sync cycle (see below).
StateMeaningWhat to do
idleThe agent just started; no cycle has run yet.Wait: a cycle runs every 15 seconds by default.
consent_requiredNo consent. discovered shows how many sessions were found on the computer, hint gives a tip.Run mmw-agent consent in a terminal if you want history uploaded.
okThe cycle succeeded.Nothing.
quota_exceededPlan storage for session history is full; includes used_bytes and max_bytes.Upgrade the plan. Full history is on Enterprise.
server_busyThe server is temporarily not accepting history (low on space). Nothing is lost.Nothing: the agent retries later on its own.
offlineThe server is unreachable; error gives the reason.Check the network. The agent catches up once the server is back.
unsupportedThe server has no session sync.Check MMW_ENDPOINT.
errorUnexpected cycle error; error gives type and text.Check mmw-agent status and contact support.

Fields of a successful (ok) cycle: sources (sessions processed), chunks and bytes (what was sent), local_redactions (secrets removed on the computer), skipped_by_plan_history (sessions older than the plan’s retention), conflicts, truncated, plan, history_days, at (cycle time).

A call with no arguments:

arguments
{}
{
"consent": {
"granted": true,
"clients": ["claude-code"],
"granted_at": "2026-10-05T08:30:12.004512+00:00"
},
"device_id": "dev-5c0e9b7f3a2d4e1f8b6a0c9d7e5f4a3b",
"last_cycle": {
"state": "ok",
"sources": 4,
"chunks": 2,
"bytes": 183422,
"local_redactions": 1,
"skipped_by_plan_history": 0,
"conflicts": [],
"truncated": [],
"plan": "pro",
"history_days": 90,
"at": "2026-10-05T09:15:44.871003+00:00"
}
}

The tool itself returns no errors: anything that went wrong shows up in last_cycle. Agent errors when calling other tools:

TextCause
MMW rejected the API key (check MMW_API_KEY in the MCP config)The server answered 401 or 403 to the key.
MMW server unreachable: … Session sync will catch up automatically.No connection to the server. While it is unreachable, the tool list contains only mmw_sync_status.
Empty reply from MMW serverThe server returned an empty response.

With the mmwhub.tech endpoint, agent messages are in English; MMW_LANG=en forces English explicitly.

  • Uploaded sessions are stored compressed, but searching them and extracting facts into memory are not built yet: they do not appear in search.
  • To withdraw consent: mmw-agent revoke; uploads stop immediately.