Skip to main content
Glama

Post an annotation

post_annotation

Record something that explains the data on the timeline: a change you made (a config edit, a flag flip), a deploy, or a comment. It is a record and runs nothing. Put what it concerns in attributes with OpenTelemetry names, such as service.name. A deploy needs vcs.ref.head.revision or service.name. Posting the same key again with the same fields is a safe retry.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "type": "<type>",
      "message": "<message>"
    },
    "name": "post_annotation"
  }
}

Input Schema

NameRequiredDescriptionDefault
keyNoYour own id for it, unique in the organization.
typeYes
datasetNoThe dataset it concerns. Default: the whole organization.
messageYesWhat happened.
ended_atNoRFC 3339 with a zone, for a window such as a load test.
attributesNo
started_atNoRFC 3339 with a zone. Default: now.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations it states the tool performs no action ('runs nothing') and describes retry behavior for repeated posts with the same key and fields. This is useful context that the annotations alone do not convey; permission requirements and any rate limits are still unstated, and the retry note sits in mild tension with idempotentHint=false, though it does not contradict it.

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?

Four tight sentences, front-loaded with the core purpose and followed by the operational facts an agent needs (no execution, attribute naming, deploy requirements, retry safety). Dense but free of filler.

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?

With seven parameters, a nested attributes object, and no output schema, the description supplies the non-obvious guidance an agent needs, particularly attribute naming conventions and per-type requirements. It omits what a successful post returns and how the organization-unique key behaves on conflict, which are minor for this complexity.

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?

The schema documents most fields (71% coverage), and the description adds real meaning on top: attributes should use OpenTelemetry-style names with service.name as an example, and deploy-type annotations require vcs.ref.head.revision or service.name. It does not explain key uniqueness beyond what the schema already says, nor when to set started_at or ended_at.

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?

The description uses a concrete verb and resource ('Record ... an annotation on the timeline') and enumerates the three kinds of thing it records (change, deploy, comment). The clause 'It is a record and runs nothing' separates it from execution-oriented siblings such as run_query or run_surface, though no sibling is named.

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?

It gives clear conditions for use ('a change you made ... a deploy, or a comment') and a type-specific precondition that a deploy needs vcs.ref.head.revision or service.name. It does not contrast with note_dataset, note_field, or record_onboarding_state, which is the remaining gap.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources