Skip to main content
Glama

BotSpot: AI Trading, Backtests and Bots

Replace plan item list

replace_plan_items
Idempotent

Codex-style whole-plan update. Replaces the complete visible item list for the active plan in one call while preserving item ids when supplied. Use this when the visible checklist needs simple list/status synchronization or reorder cleanup. The array order is the display order. Omitted existing items are marked removed. Use this to record an unsuccessful/partial attempt and add explicit follow-up work in the same visible mutation. The follow-up item should reference the attempt with parentItemId or dependsOnItemIds. Prefer this over repeated add_plan_item retries when several unsuccessful/partial attempts need their follow-up references reconciled together. After a domain tool starts external work and returns an external id, this is the safest one-call way to mark the current item completed and append the new waiting validation item with externalKind/externalId evidence inside items[].evidence. Never put externalKind or externalId at the item top level; externalWaitId remains an item field. Every item must include label, completionCriteria, and any status/outcome/evidence needed to explain its current state. This does not perform domain work; it only mutates the visible plan.

Input Schema

NameRequiredDescriptionDefault
kindNo
itemsYesThe complete visible plan item list, in display order. Omitted existing items are marked removed.
titleNo
planIdNoOptional plan UUID. In the current conversation, omit planId unless you already have the actual plan id from get_active_plan or a wake message. Never pass a plan item id here; target plan items through target.itemId or target.position.
conversationIdNoOptional conversation UUID. Omit this field to use the current MCP conversation context; never pass placeholders such as `current`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare idempotent and non-destructive; the description adds substantial semantics beyond them: id preservation when `itemId` is supplied, array order equals display order, and — crucially — that omitted existing items are marked removed, which is a real side effect an agent cannot infer from `destructiveHint: false`. It also scopes the tool ('does not perform domain work; it only mutates the visible plan') and gives provenance rules for evidence, which no annotation covers.

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

Conciseness3/5

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

The critical facts (whole-list replacement, display order, omitted items removed) are front-loaded correctly, but the body drifts into three separate workflow recipes and repeats the evidence-placement rule that the schema's own `evidence` description already states. Roughly a third of the text is scenario coaching rather than definition, which makes it denser than it needs to be for tool selection.

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 high-stakes bulk mutation with no output schema, the description covers what gets changed, what gets implicitly removed, and how items should be shaped. Remaining gaps are modest: it does not say what a caller should expect back (replaced count, new revision, errors) or what happens when a supplied `itemId` refers to an item no longer in the plan.

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?

At 60% schema coverage the description must compensate, and it largely does: it explains that `items` is the *complete* list in display order, that each item needs `label`/`completionCriteria`, and that `parentItemId`/`dependsOnItemIds` are the way to reference a prior attempt. The strongest addition is the placement rule — externalKind/externalId go inside `items[].evidence`, never at item top level, while `externalWaitId` stays on the item — which prevents a specific, likely error. It says nothing about the top-level `kind` and `title` parameters.

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 opening states a specific verb and resource: 'Replaces the complete visible item list for the active plan in one call while preserving item ids when supplied.' That is far more precise than the title. However, it never distinguishes itself from the closely related siblings `update_plan_item`, `update_plan_items`, or `remove_plan_item` — only `add_plan_item` is named — so an agent still has to infer replace-vs-update semantics from the tool name.

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 several concrete triggering conditions: list/status synchronization, reorder cleanup, recording an unsuccessful/partial attempt with a follow-up, and reconciling follow-up references after external work returns an external id. It also states an explicit alternative preference ('Prefer this over repeated add_plan_item retries'). It lacks the negative case — it never says when to prefer the narrower `update_plan_item`/`update_plan_items` or `remove_plan_item` instead.

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.