Skip to main content
Glama
chaos-xxl

Protocol Chaos reference server

by chaos-xxl

event_note

Records a user's exact words on an Event, appending to an existing one or opening a new Event when no eventId is given. Use it to preserve verbatim notes and avoid duplicate matters.

Instructions

Record the user's words on an Event, or start a new Event with them. Changes nothing else (it gives a title only to an Event that has none). With eventId the words are appended; without it a new Event starts in state emerging, optionally titled and placed under parentEventId. Check the directory first so one matter does not become two. Verbatim rule: text is the user's actual words, trimmed and otherwise unchanged, never a summary or a third-person paraphrase such as "The user confirmed…"; when a message covers several Events, pass the part about this Event, still in the user's words. Interpretation belongs in the fields. Returns a receipt.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
viaNoWhere the words came from when they were not said in this conversation, e.g. "example-export".
textYesThe user's actual words, verbatim. Never a summary or a third-person paraphrase.
actorYesWho is writing: your own identity, e.g. {"kind": "agent", "id": "laptop"}. Never the owner or another writer.
titleNoFor a new Event, or an Event without a title: a name that identifies it on its own.
eventIdNoAn Event id from the directory or a receipt.
accountSourceNoWhose words they are: user (default), agent_response (your own sentence, such as an inference) or authorized_external (relayed from an application the user authorized).
parentEventIdNoFor a new Event only: the larger Event it is part of.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare this is a non-read-only, non-destructive write, so the description carries most of the weight and does so well: it scopes the side effect ('Changes nothing else (it gives a title only to an Event that has none)'), names the resulting state ('emerging'), and notes it 'Returns a receipt.' It does not mention permissions, idempotency, or whether appended words can be removed, which keeps it short of a 5.

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

Conciseness5/5

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

Front-loaded with the core action and mode split, then constraints, then the verbatim rule. Despite several sentences, every one carries a rule the agent must obey (title scoping, directory check, no paraphrase, split multi-Event messages), with no filler or restatement of the name.

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

Completeness4/5

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

For a 7-parameter mutation with a nested actor object and no output schema, the description covers the important behaviors and does state the return shape ('a receipt') at a high level. Not explaining receipt fields is acceptable, though actor/accountSource semantics are only in the schema, not elaborated here.

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 description coverage is 100%, so the baseline is 3, but the description adds cross-parameter conditional semantics the schema states only piecemeal: eventId presence selects append-vs-create, title applies only to new or untitled Events, and parentEventId applies only to a new Event. The verbatim constraint on text is also reinforced beyond the schema's single-line note.

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

Purpose4/5

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

States a specific verb and resource ('Record the user's words on an Event, or start a new Event with them') and covers both operating modes. It only hints at sibling separation via 'Interpretation belongs in the fields,' never naming event_record_expression or the other event_* tools, so differentiation is inferential rather than explicit.

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?

Gives explicit branch conditions: 'With eventId the words are appended; without it a new Event starts in state emerging, optionally titled and placed under parentEventId.' It also adds a precondition ('Check the directory first so one matter does not become two') and routes interpretation elsewhere, leaving little to infer.

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