Update Goal
update_goalUpdate goal fields: title, horizon (moves section), status, bottleneckNote, lever.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| lever | No | ||
| title | No | ||
| status | No | ||
| horizon | No | ||
| bottleneckNote | No |
update_goalUpdate goal fields: title, horizon (moves section), status, bottleneckNote, lever.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| lever | No | ||
| title | No | ||
| status | No | ||
| horizon | No | ||
| bottleneckNote | No |
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
Input schema / properties / bottleneckNote / descriptionRemoved value: -"Updated bottleneck constraint"Input schema / properties / horizon / descriptionRemoved value: -"Move to this horizon (lands at the end of the section)"Input schema / properties / id / descriptionRemoved value: -"Goal ID"Input schema / properties / lever / descriptionRemoved value: -"Updated lever action"Input schema / properties / status / descriptionRemoved value: -"Goal status"Input schema / properties / title / descriptionRemoved value: -"New title"Input schema / properties / bottleneckNote / maxLengthAdded value: +5000Input schema / properties / id / maxLengthAdded value: +64Input schema / properties / lever / maxLengthAdded value: +5000Input schema / properties / title / maxLengthAdded value: +500Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a non-read-only, idempotent, non-destructive operation, so the description's burden is reduced. It adds useful behavioral detail with 'horizon (moves section)', but does not disclose permissions or other side effects beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler. It front-loads the action and immediately enumerates the relevant fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with strong annotations, the description is mostly adequate, but the lack of an output schema and 0% parameter documentation leaves some ambiguity around return behavior and the meaning of less obvious fields. It is not fully self-sufficient but covers the core operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description's field list is the primary documentation of what is updatable. It adds one semantic detail (horizon moves section) but does not explain domain-specific fields like lever or bottleneckNote, nor the meaning of enum values for status and horizon.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update') and resource ('goal fields') and enumerates all editable fields, which clearly distinguishes it from siblings like update_tasks and create_goal. It is immediately clear what the tool operates on and what can be changed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance about when to use this tool versus alternatives such as create_goal or update_tasks. The intended usage is implied by the name and field list, but no exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool targets a distinct resource and action: goals, tasks, subtasks, loops, journal, calendar, and stats are cleanly separated. Descriptions include explicit call-order hints (e.g., get_loops before pull_loops) that reduce ambiguity. No two tools appear to do the same thing.
Tool names consistently follow a verb_noun snake_case pattern: create_, get_, update_, delete_, pull_, reorder_, write_. Even non-standard verbs like pull_loops and write_journal fit the same predictable structure, making the API easy to navigate.
Sixteen tools is slightly above the typical well-scoped range, but the coverage justifies it given the multiple domains: goals, tasks, subtasks, loops, journal, calendar, and focus stats. Each tool has a clear purpose, so none feel redundant or padding.
Goals and tasks have full CRUD coverage, and journal read/write plus loop pulling cover important workflows. Minor gaps exist: loops cannot be created, updated, or deleted, and calendar events are read-only, so some agent actions would require workarounds. Overall, the core planning lifecycle is well supported.