View Subtasks
get_subtasksList subtasks of a parent. Returns ids usable as refs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Task id, #N, or title |
get_subtasksList subtasks of a parent. Returns ids usable as refs.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Task id, #N, or title |
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
Input schema / properties / ref / descriptionPrevious value: -"Task ref: id from the list, #N, or title"New value: +"Task id, #N, or title"Input schema / properties / ref / maxLengthAdded value: +500Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, idempotentHint=true, destructiveHint=false), lowering the burden on the description. The description adds genuine behavioral value by disclosing that the return value is a set of ids that can be fed back as refs to other tools, which an agent needs to know when chaining calls. It does not contradict the annotations.
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?
Two sentences with zero waste. The primary function is front-loaded in the first sentence, and the second sentence communicates the output format without padding. Every word earns its place.
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 single-parameter read-only tool with strong annotation coverage, this is nearly complete: an agent needs only a ref and knows it will get ref-usable ids back. The remaining gaps are minor but real — it does not specify whether 'subtasks' means only direct children or includes nested descendants, nor does it cover ordering or empty-result behavior. These do not block correct invocation.
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 coverage is 100% and the ref parameter is already documented as accepting 'Task id, #N, or title', so the baseline is 3. The description adds semantic value above the baseline by linking the output to the parameter: the returned ids are specifically 'usable as refs', meaning they satisfy this same parameter format in downstream calls. This creates a useful input-output contract.
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 uses a specific verb ('List') with a clear resource ('subtasks of a parent'), and the 'of a parent' scoping distinguishes this from the sibling get_tasks tool. The second sentence adds an output contract (ids usable as refs) that further defines the tool's role. This is unambiguous and informative.
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 usage context is implied by the purpose: call this when you have a parent task and want its subtasks. However, there is no explicit guidance about alternatives, such as using get_tasks to list all tasks or reorder_subtasks when restructuring is needed. No exclusions or when-not-to-use conditions are stated.
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.