Skip to main content
Glama

audit

Read-only

Review recent write history for macos-apps-mcp, including before/after pointers and callers, to manually reverse changes. Filter older entries with an optional ISO datetime; returns up to 50.

Instructions

Recent write audit entries (newest first) — what macos-apps-mcp changed, with before/after pointers, enough to reverse a change by hand. since optional ISO datetime (call now() to ground it) drops older entries; bounded to the last 50. Each entry carries dry_run (resolved from the tool's default when the caller omitted it, so a preview reads true) and caller (the MCP client's name and version, plus session for a shim); caller is reported by the client, never an identity check. Read-only; no permission (reads a local log at ~/.local/state/macos-apps-mcp).

Input Schema

NameRequiredDescriptionDefault
sinceNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.15.1

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/destructiveHint annotations: discloses the 50-entry cap, the on-disk source path (~/.local/state/macos-apps-mcp), that no permission is required, that `dry_run` is resolved from the tool's default rather than the caller's override, and that `caller` is client-reported and not an identity check. These are exactly the caveats an agent needs to interpret results correctly.

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

Conciseness4/5

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

Front-loads what the tool returns and the recency ordering before the caveats, and nearly every clause adds information. It is dense and runs long as one paragraph, with the parenthetical asides stacked, which costs a point on structure but not on value.

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?

Given a single optional parameter and an output schema, the description still explains the notable per-entry fields (`dry_run`, `caller`, `session`) an agent could misread, and covers scope, cap, and storage. Nothing needed to call or interpret it is missing.

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

Parameters5/5

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

Schema coverage is 0% and the only parameter is an untyped anyOf string, so the description carries the full burden — it does, defining `since` as an optional ISO datetime that drops older entries and recommending `now()` as the grounding source. Without this the agent would have no idea of format or semantics.

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?

States a specific verb and resource — 'Recent write audit entries (newest first)' — plus the value proposition (before/after pointers sufficient to reverse a change by hand). No sibling tool in the list does anything comparable, so the agent can distinguish it immediately.

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

Usage Guidelines4/5

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

Gives clear usage context: use `since` to drop older entries, and explicitly directs the agent to call `now()` to ground a relative time — a concrete routing instruction to a sibling. It also sets an expectation ceiling ('bounded to the last 50'). It does not state when not to use it, which keeps it short of a 5.

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