Skip to main content
Glama

List logged changes and write calls

list_actions
Read-onlyIdempotent

Lists local action log newest first, including mailbox changes, approval runs, and write-call audits, to find log IDs for undo, check uncertain writes, or see what changed and when.

Instructions

List the local action log, newest first: logged mailbox changes with their log_ids, approval runs and the audit of write calls; reads no mail and changes nothing.

Use it to find the log_id for undo_action(log_id), to check what a write did before retrying one whose outcome is uncertain, or to answer what changed and when. Filter by the token of one approval, a time range, an action or a client; no filter lists the latest entries.

action filters by one write tool (move finds move_to_trash, archive and move_to_folder; set_read_state, label and reindex likewise), one of those exact actions or preview_action; client_name by an MCP client. Lookup never returns tokens or their digests.

Returns actions and truncated; once records exist also audit, audit_truncated, runs and runs_truncated. Each actions entry has one log_id; each runs entry has a log_ids list, including zero or one chunk; all IDs are 32 lowercase hexadecimal characters. Linked runs include approved_total, done, uncertain, remaining and status: a completed chunk does not imply a completed approval, and a missing run end reads as interrupted. audit lists write calls with their outcome, counts, action_hash and client, naming the exact action of a merged tool's call. Move, archive, draft deletion and unsubscribe preview records appear in actions with their log_id, counts and preview status. Unsubscribe actions with pending_send rows include the draft_ids of the mailto drafts they saved, without recipients, subject or body. Reindex records include run metadata and undoable=false; draft deletion, reindex and preview records cannot be undone.

Input Schema

NameRequiredDescriptionDefault
limitNoEntries per list, 1 to 200.
sinceNoEarliest time, inclusive: a timezone-aware ISO timestamp, or YYYY-MM-DD for the start of that day in the server's local timezone.
tokenNoOnly records of this confirmation token.
actionNoOnly this write tool, one exact action of a merged tool such as archive, or preview_action.
beforeNoLatest time, exclusive: a timezone-aware ISO timestamp, or YYYY-MM-DD to include all of that day in the server's local timezone.
client_nameNoOnly calls from this MCP client name.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the first clause is partly redundant, but the description adds real undisclosed behavior: lookup never returns tokens or digests, a completed chunk does not imply a completed approval, a missing run end reads as interrupted, and certain record types are undoable=false and cannot be undone. That is substantive operational context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead sentence and usage guidance are well front-loaded, but the final paragraph is a dense run-on enumerating returned fields (actions, truncated, audit, runs, approved_total, done, uncertain, status, draft_ids...) that largely restates what the output schema already declares. It could be trimmed without losing call-critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only log tool with six optional filters, an output schema, and non-trivial linked-run semantics, the description covers filtering, default behavior, ID format, truncation flags and edge cases (uncertain outcomes, interrupted runs, pending_send drafts). Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds non-obvious meaning: the action filter matches either a whole merged tool (move finds move_to_trash, archive and move_to_folder) or one exact action of that tool, and client_name matches an MCP client. limit/since/before are left to the schema, hence not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"List the local action log, newest first" names a specific verb, resource and ordering, and immediately scopes it ("logged mailbox changes with their log_ids, approval runs and the audit of write calls; reads no mail and changes nothing"). This distinguishes it clearly from siblings like undo_action, reindex_status and preview_action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states three concrete use cases (find a log_id for undo_action, verify an uncertain write before retrying, answer what changed and when) plus the default behavior when unfiltered ("no filter lists the latest entries"). The agent knows both when to call it and what to expect with no filters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.