Skip to main content
Glama

BotSpot: AI Trading, Backtests and Bots

Record external wait in visible plan

record_external_wait_in_plan
Idempotent

Generic factual plan helper for the moment after a domain tool starts asynchronous work and returns a real externalWaitId. Identity and revision come from that stored hook wait; pass externalWaitId instead of copying externalKind, externalId, revisionId, or sourceExternalId. Legacy identity fields are optional assertions and must match the stored record. It completes the current visible item and turns waitingItemTarget into the waiting row, reusing that row's label and completion criteria when waitingItem is omitted, or appends one waiting row only when that future work is not already visible. waitingItemTarget must identify a distinct later row; omit it when waitingItem defines a new row. If both targets accidentally identify the current row and a complete waitingItem is supplied, the helper safely appends that new row after the current item. It carries the returned facts without matching or interpreting item labels. It does not start, stop, retry, interpret, or otherwise change external work. Do not call it when the domain tool failed or returned no externalWaitId.

Input Schema

NameRequiredDescriptionDefault
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.
evidenceNo
externalIdNoOptional assertion against the stored hook identity. Prefer externalWaitId alone.
revisionIdNo
waitingItemNoWaiting-row fields for a newly inserted row or intentional overrides for a distinct existing waitingItemTarget. When this defines a new row, omit waitingItemTarget. Omit waitingItem when waitingItemTarget already identifies the complete future row.
externalKindNoOptional assertion against the stored hook identity. Prefer externalWaitId alone.
conversationIdNoOptional conversation UUID. Omit this field to use the current MCP conversation context; never pass placeholders such as `current`.
externalWaitIdYesThe durable external wait id returned by the same domain-tool result.
sourceExternalIdNo
currentItemTargetNoThe visible plan item advanced by the domain tool. Omit to use the current actionable item.
waitingItemTargetNoAn already-visible future plan item that should become the waiting row. It must be strictly after currentItemTarget and must not identify the same item. Omit it when waitingItem defines a new row to insert.
currentItemOutcomeNo
currentItemEvidenceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the idempotentHint/destructiveHint annotations, the description discloses the actual effect: it completes the current visible item, converts waitingItemTarget into the waiting row (reusing its label/criteria), appends a new row only when future work isn't already visible, and handles the accidental same-row case by safely appending. It also bounds behavior explicitly, noting it does not start/stop/retry/interpret external work and does not match item labels.

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 purpose is front-loaded and every clause carries information, but the text is a dense run-on block of long sentences covering edge cases. It is appropriately informative yet harder to parse than necessary for an agent skimming definitions.

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 high-complexity nested tool with no output schema, the description covers precondition (externalWaitId present), mutation effects, row-reuse vs append logic, same-row fallback, and explicit non-behaviors. An agent has what it needs to invoke it correctly without inferring effects.

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?

With 13 parameters and 62% schema coverage, the description adds real cross-parameter meaning: pass externalWaitId alone and treat externalKind/externalId/revisionId/sourceExternalId as optional assertions that must match the stored record, and it clarifies the waitingItem/waitingItemTarget/currentItemTarget interplay. Some nested fields (evidence, waitDetails, currentItemOutcome) are left to the schema.

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 states a specific operation: a plan helper that fires after a domain tool starts async work and returns a real externalWaitId, completing the current visible item and materializing a waiting row. It clearly separates itself from sibling plan tools like add_plan_item/update_plan_item by tying invocation to an externalWaitId hook. It does not name the siblings it replaces, so the differentiator is implied rather than explicit.

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 an explicit when: after async work starts and an externalWaitId is returned, and an explicit when-not: 'Do not call it when the domain tool failed or returned no externalWaitId.' It also guides the waitingItem vs waitingItemTarget decision and when to omit each. It stops short of naming alternative plan tools for agents who don't have an externalWaitId.

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.