Skip to main content
Glama

BotSpot: AI Trading, Backtests and Bots

Replace plan item list

replace_plan_items
DestructiveIdempotent

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.

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": {
      "items": "<items>"
    },
    "name": "replace_plan_items"
  }
}

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.9/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds critical semantics: whole-list replacement, display order, preservation of supplied ids, and that omitted existing items are marked removed. It further clarifies that externalKind and externalId belong inside items[].evidence rather than at the item top level.

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?

The description is front-loaded with purpose and usage, and most sentences carry actionable semantics. It is long and dense due to the external-id/evidence rules, but very little of the text is pure waste.

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

Completeness5/5

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

For a destructive, complex plan-mutation tool with 5 parameters and no output schema, the description covers replacement behavior, item requirements, reference semantics, external evidence placement, and the fact that the tool performs no domain work. An agent has enough information to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 60%, but the description compensates by explaining array order, required item fields, follow-up references via parentItemId or dependsOnItemIds, external evidence placement, and planId/conversationId usage constraints. This meaning goes well beyond what the schema alone provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it replaces the complete visible item list for the active plan in one call while preserving supplied item ids. It also distinguishes the operation from repeated add_plan_item retries and from domain work.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: list/status synchronization, reorder cleanup, recording unsuccessful or partial attempts with follow-up items, and marking an item completed while appending a waiting validation item after external work returns an id. It also names add_plan_item as the less suitable alternative for reconciled retries.

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.