Skip to main content
Glama

Report on your task

worker_report
Idempotent

progress (one line, renews the lease; stop at once when continue is false), question (ends this run; the AI that gave the task answers with a follow-up), result (summary and evidence; never call your work verified) or failed (reason). Any rejected report means stop.

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": {
      "task_id": "<task_id>",
      "lease_token": "<lease_token>",
      "report_id": "<report_id>",
      "kind": "<kind>"
    },
    "name": "worker_report"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindYes
lineNo
reasonNo
summaryNo
task_idYes
activityNoOptional with progress: recent steps, the app's own task list and its latest interim message.
evidenceNo
questionNo
after_seqNoWith progress: the last follow-up message you have read.
assistantNoOnly when several assistants share this connection (for example two Grok Bots of one account, or several Dots in one ChatGPT account): your own fixed name for Prometheor, a Grok Bot its bot id, otherwise a short name in lowercase. Pass the same value on every call (delegate, worker_setup, worker_claim, worker_report), so Prometheor keeps your tasks, your wake and the answers to your questions apart from the others'. Leave it out when you are the only one.
report_idYesNew for every report; reuse it only to retry the same report.
lease_tokenYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Adds real behavior beyond the annotations: progress renews the lease, question terminates the run and triggers a follow-up from the delegating AI, and a rejected report means stop. It also implicitly reveals that the response carries a 'continue' flag and follow-up messages, which matters with no output schema. Gaps remain — nothing explains what 'stop' entails concretely, what a rejection payload looks like, or the retry/idempotency contract that idempotentHint=true implies (only the schema's report_id note covers that). No contradiction with annotations: the tool is a state-changing write (readOnlyHint=false) and the description treats it as such.

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?

A single sentence with zero filler, and the most operationally urgent fact (a rejected report means stop; stop when continue is false) is given prominence. The parenthetical enumeration of kind values is dense enough that the first read can be misparsed as prose rather than a list of allowed values, which costs it the top score.

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

Completeness3/5

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

For a 12-parameter tool with nested objects and no output schema, the description covers the request side well but says almost nothing about what comes back — the continue flag, the seq/follow-up cursor used by after_seq, or what a rejection looks like — all of which the agent must react to correctly. 'Stop' is the terminal rule yet is left undefined. Adequate to submit a well-formed report; not complete enough to handle the loop it drives.

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 only 33%, but the description compensates by mapping kind values to their payload fields: progress→line, question→question, result→summary and evidence, failed→reason. That conditional field guidance is exactly what the JSON schema cannot express and is the highest-value content here. It adds nothing about lease_token, task_id, after_seq, assistant, or the activity object, which the schema documents on its own.

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 enumerates the four report modes (progress, question, result, failed) with a concrete effect for each (lease renewal, ending the run, summary+evidence, failure reason), which tells an agent precisely what this tool submits. It never states the verb+resource outright ('submit a report on your claimed task') — that framing comes from the title — and it does not distinguish itself from task_status/task_result/task_review, so it stops short of 5.

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 per-mode usage conditions and hard stop rules: 'stop at once when continue is false', 'ends this run', and 'Any rejected report means stop'. What is missing is routing against alternatives — nothing says when to use this versus task_result/task_review or when a worker should call worker_claim again.

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