Skip to main content
Glama

ChatStack - App Cost Estimator

Submit the pending choice

send_action

Submit the user's pending choice. Set action_type to a value from pending_gate_payload.allowed_actions. In Review each step, action_type is required; confirmed_by_user=true is preferred and is not a substitute for it. In Run it for me, omit action_type and payload to advance one milestone, and do not ask the user to choose – show the user that milestone's Auto-complete decision receipt and pipe-table. Do not ask them to approve it. Call send_action once per result, and only again on the next result while next_tool is send_action. When next_tool is submit_prd, stop and offer submission. An approve moves one phase: stories to requirements, requirements to the technical spec, then the tech spec to the estimate. In Review each step, stories_reject, requirements_reject, and techspec_reject show the current table again and wait. When the user describes the change, call send_turn with their exact words and show the regenerated table that comes back. mode_select_a, mode_select_b, and mode_select_c are only the How much time pick: Normal, Quick estimate, or Detailed. Do not use them for Review each step or Run it for me. That choice is send_turn with interaction_mode. For clarifying_questions_submit, set payload.answers by question id with the letter only, such as {"q1":"A","q2":"B"}, not "1A". A plain reply such as "1B, 2A, 3C", or any wording that combines options, goes through send_turn. Do not split one question into several letters.

Input Schema

NameRequiredDescriptionDefault
payloadNo
thread_idYesInterview thread id from start_session.
action_typeNoWidget action type from allowed_actions. Optional in auto_complete; defaults fill the pending gate.
interview_handleYesOpaque interview handle from start_session. Pass it on every later tool.
confirmed_by_userNoPreferred when the user explicitly chose. Not required when action_type is already set to an allowed_actions value with a complete payload.

Output Schema

NameRequiredDescriptionDefault
resultNo

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 only declare non-read-only, non-destructive, closed-world; the description adds what actually happens: one call per result, re-call only while next_tool is send_action, an approve advances exactly one phase, and reject actions re-display the current table and wait. It also covers the auto-complete path's receipt/pipe-table behavior and the instruction not to ask for approval.

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 purpose and the required-input rule are front-loaded, and nearly every sentence carries a routing or formatting constraint. It is dense and full of chained conditionals that would read better as a short list, but there is no filler.

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 stateful widget-submission tool with an output schema and nested payload, it covers mode differences, the next_tool handoff, rejection loops, and the exact answer format. Nothing an agent needs in order to call it correctly is missing.

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 80%, but the description still adds meaning the schema lacks: action_type must come from allowed_actions, action_type and payload are omitted in auto-complete, confirmed_by_user is preferred but not a substitute, and payload.answers must be keyed by question id with letter-only values like {"q1":"A"}. That last example directly disambiguates a nested-object parameter the schema leaves as untyped additionalProperties.

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 opening sentence states a specific verb and resource ('Submit the user's pending choice') and immediately narrows the action_type source to pending_gate_payload.allowed_actions. It explicitly distinguishes itself from siblings by naming send_turn and submit_prd and describing the handoff conditions.

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 spells out both modes: in Review each step action_type is required, in Run it for me omit action_type and payload. It names the alternative (send_turn with interaction_mode) and the exact cases where mode_select_* must not be used, and tells the agent to stop and offer submission when next_tool is submit_prd.

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.

Resources