mureo_state_get
Read and parse the latest STATE.json to get campaign state, authoritative server time, and auto-evaluate past-due observations for daily operations.
Instructions
Read STATE.json and return its parsed v2 document: version, last_synced_at, platforms (per-platform campaigns), legacy v1 campaigns, and action_log. Returns an empty default doc when the file is absent. The response also carries server_now — the server's clock as ISO 8601 with UTC offset (e.g. 2026-07-28T10:12:33+09:00). It is the authoritative current date: every OTHER date in the document (last_synced_at, reports.*.period, action_log timestamps) is history and must never be read as 'today'. The response also names the file it read — path (the STATE.json consulted) and the runtime workspace_id (and notices when the runtime has any). server_now, path, workspace_id and notices are response fields only — do not write them back into STATE.json. A notice means the runtime does not consider this session to be on the workspace it should be on; workspace-bound skills stop on it rather than proceed. action_log scopes the returned log to cut context cost: all (default) returns the full history unchanged; pending returns only entries with an OPEN observation_due — past-due ones you still owe an outcome evaluation, and future-due ones still under observation — dropping plain log entries and entries a later rollback (rollback_of) or evaluation record (evaluation_of) already closed; none omits the log entirely. Each pending entry carries an index field (its position in the FULL log) so you can close it after evaluating — append an entry with evaluation_of: <index> — without ever loading the whole history. When filtered (pending / none) the response carries action_log_scope (the mode) and action_log_total (the full pre-filter entry count) so the log you were shown is never mistaken for the complete history. decisions scopes the recorded decisions trail the same way and independently: all (default) or none. Unless auto_evaluate is false, the call also CLOSES every past-due observation this document decides on its own and reports them in auto_evaluations / auto_evaluation_skipped.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Optional path to the file. Defaults to STRATEGY.md / STATE.json in the MCP server's current working directory. Paths outside cwd are refused. | |
| decisions | No | Scope of the returned decisions trail. ``all`` (default) = every recorded decision. ``none`` = omit the section; the response still carries ``decisions_total`` and a ``decisions_scope`` marker, so an omitted trail is never read as an empty one. Independent of ``action_log``. | |
| action_log | No | Scope of the returned action_log. ``all`` (default) = the full history, byte-identical to the legacy behaviour. ``pending`` = only entries with an open ``observation_due`` (past-due + future-due), for the daily-check evidence loop. ``none`` = omit the log. Filtered responses add ``action_log_scope`` + ``action_log_total`` markers. | |
| auto_evaluate | No | Close past-due observations automatically (default true). Before reading, mureo evaluates every open ``action_log`` entry whose ``observation_due`` has passed and whose outcome its own document determines — a campaign-level action with a numeric ``metrics_at_action``, on a platform whose campaign metrics were collected on or after the due date — and WRITES an ``evaluation_of`` record for each, so it leaves the pending set. The response then carries ``auto_evaluations`` (what was closed, with the verdict) and ``auto_evaluation_skipped`` (what still needs the manual ``mureo_outcome_evaluate`` + ``evaluation_of`` append, each with a reason). Pass false for a strictly read-only call — an inspection, a dry run, or a host that must not have its STATE.json touched by a read; the two keys are then omitted entirely and you owe every past-due entry a manual evaluation. |