Skip to main content
Glama

Helper: ask the human to decide

helper_decide
Destructive

For a helper session that is not in the call: puts its own question on the Decision Board, shown with the sender 'Helper : <helper_name>'. Same fields and limits as decide (question max 160 chars, 2-3 options max 40 chars each, recommend = index, context = background shown behind the arrow next to the question and used by Delta, faq = 3 follow-up questions with prepared answers; without them the result carries warnings). Change or delete only own questions (same credential and from), else 403. Returns id and number; the answer comes from helper_next, never from the main agent's next. card_type done = completion report instead of a question: title (whole sentence, max 160), summary (max 600), evidence [{label, url?}] (max 5, http(s) only), live (bool), ask (optional follow-up question); no question/options/recommend/context/faq (422). The server shows the single button Seen; it never counts as an open decision. Same sender and same title while unseen updates that card. When the person marks it, helper_next gets {type: decision, card_type: done, id, number, verdict: seen, title, text? (answer to ask), by, answered_by, answered_via, answered_by_label}.

Input Schema

NameRequiredDescriptionDefault
idNoId of an own open decision to change or delete.
askNocard_type done: optional follow-up question (one sentence ending with ?), answered in a text field next to Seen.
faqNoUp to 3 likely follow-up questions with prepared answers [{q, a}] (max 200 chars each), hidden, for the voicebot. Without context and 3 faq the result carries `warnings`.
goalNoOptional goal of this entry: number or title of a goal of the account (0 or empty = no goal). Unknown goals are ignored. Without it the entry inherits the goal of your last status (helpers: no inheriting).
liveNocard_type done: true = it is live (marked on the card).
titleNocard_type done: what is finished, one whole sentence, max 160 chars, no bare numbers.
ttl_sNoOptional: seconds until this card is hidden from the board if it is still open (or answered). Omit it and the card stays until it is answered or your session ends; never set a default.
deleteNotrue = remove the decision `id`.
contextNoBackground (max 1500 chars) the person opens with the arrow next to the question; Delta reads its first sentences aloud with the card and explains from it, so write it for the ear: an example, one key number, no lists. Only reader-relevant, one line per part: Was / Warum / Bei Ja / Bei Nein.
optionsNoOptional: 2 to 3 answer options, max 40 characters each.
summaryNocard_type done: short report, max 600 chars.
evidenceNocard_type done: up to 5 proofs [{label, url?}], url only http(s).
questionNoThe question, max 160 chars (required when creating).
card_typeNodecision (default) or done: a completion report ('work finished') with title, summary, evidence, live, ask instead of question/options; the person only marks it Seen, no decision.
recommendNoIndex (0-based) of the recommended option.
credentialYesHelper credential `token` from helper_credential or POST /api/helper/credential.
helper_nameYesName of this helper session, 1-40 chars (shown on the call page as `from`).
no_questionNoId of a question_check event from helper_next: confirms the line was no question to the person (pass it alone).

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / goal
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional goal of this entry: number or title of a goal of the account (0 or empty = no goal). Unknown goals are ignored. Without it the entry inherits the goal of your last status (helpers: no inheriting).",
      +  "title": "Goal"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / context / description
      Previous value: -"Background (max 1500 chars) the person opens with the arrow next to the question; Delta explains from it. Only reader-relevant, one line per part: Was / Warum / Bei Ja / Bei Nein."New value: +"Background (max 1500 chars) the person opens with the arrow next to the question; Delta reads its first sentences aloud with the card and explains from it, so write it for the ear: an example, one key number, no lists. Only reader-relevant, one line per part: Was / Warum / Bei Ja / Bei Nein."
  3. Changed1 schema field changed
    • addedInput schema / properties / ttl_s
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional: seconds until this card is hidden from the board if it is still open (or answered). Omit it and the card stays until it is answered or your session ends; never set a default.",
      +  "title": "Ttl S"
      +}
  4. Changed7 schema fields changed
    • addedInput schema / $defs / EvidenceItem
      Added value: +{
      +  "properties": {
      +    "label": {
      +      "description": "What it proves, max 80 chars (e.g. 'All 412 tests green').",
      +      "title": "Label",
      +      "type": "string"
      +    },
      +    "url": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Optional http(s) link (PR, CI run, live page).",
      +      "title": "Url"
      +    }
      +  },
      +  "required": [
      +    "label"
      +  ],
      +  "title": "EvidenceItem",
      +  "type": "object"
      +}
    • addedInput schema / properties / ask
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "card_type done: optional follow-up question (one sentence ending with ?), answered in a text field next to Seen.",
      +  "title": "Ask"
      +}
    • addedInput schema / properties / card_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "decision (default) or done: a completion report ('work finished') with title, summary, evidence, live, ask instead of question/options; the person only marks it Seen, no decision.",
      +  "title": "Card Type"
      +}
    • addedInput schema / properties / evidence
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/EvidenceItem"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "card_type done: up to 5 proofs [{label, url?}], url only http(s).",
      +  "title": "Evidence"
      +}
    • addedInput schema / properties / live
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "card_type done: true = it is live (marked on the card).",
      +  "title": "Live"
      +}
    • addedInput schema / properties / summary
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "card_type done: short report, max 600 chars.",
      +  "title": "Summary"
      +}
    • addedInput schema / properties / title
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "card_type done: what is finished, one whole sentence, max 160 chars, no bare numbers.",
      +  "title": "Title"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / context / description
      Previous value: -"Background for Delta only (max 1500 chars, not shown on the card): 2-4 plain sentences: what, why, yes ->, no ->."New value: +"Background (max 1500 chars) the person opens with the arrow next to the question; Delta explains from it. Only reader-relevant, one line per part: Was / Warum / Bei Ja / Bei Nein."
  6. Changed1 schema field changed
    • addedInput schema / properties / no_question
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Id of a question_check event from helper_next: confirms the line was no question to the person (pass it alone).",
      +  "title": "No Question"
      +}
  7. Changed2 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "FaqPair": {
      +    "properties": {
      +      "a": {
      +        "description": "The prepared answer, max 200 chars.",
      +        "title": "A",
      +        "type": "string"
      +      },
      +      "q": {
      +        "description": "A likely follow-up question of the person, max 200 chars.",
      +        "title": "Q",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "q",
      +      "a"
      +    ],
      +    "title": "FaqPair",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / faq
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/FaqPair"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Up to 3 likely follow-up questions with prepared answers [{q, a}] (max 200 chars each), hidden, for the voicebot. Without context and 3 faq the result carries `warnings`.",
      +  "title": "Faq"
      +}
  8. Changed1 schema field changed
    • addedInput schema / properties / context
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Background for Delta only (max 1500 chars, not shown on the card): 2-4 plain sentences: what, why, yes ->, no ->.",
      +  "title": "Context"
      +}
  9. Added

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations, it discloses permissions and side effects: only own questions can be changed or deleted, otherwise 403; duplicate unseen titles update the existing card; missing context/faq produces warnings; and card_type done shows only a Seen button. These are substantial behavioral details not already in 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.

Conciseness3/5

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

The purpose is front-loaded, but the description is a dense run-on covering many clauses, and it spends space explaining return values despite the presence of an output schema. It is information-rich but not well structured for quick scanning.

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 complex helper tool with 18 parameters, the description covers the core workflow, permissions, limits, card types, update behavior, and answer routing. Anything not covered in prose is fully documented in the input schema, and an output schema exists for return values.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 18 parameters. The description adds some semantic meaning for context, faq, and card_type done, but it repeats many schema limits and omits goal, ttl_s, delete, and no_question entirely, so the baseline 3 is appropriate.

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 names a specific verb and resource: placing a question on the Decision Board from a helper session. It distinguishes itself from decide by saying 'Same fields and limits as decide' and from the main agent's next by routing answers through helper_next.

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 a clear when condition ('For a helper session that is not in the call') and covers change/delete and card_type done. The alternative routing to helper_next is explicit, though it does not spell out a full 'use decide instead when...' exclusion.

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.