Skip to main content
Glama

Question Update

question_update
Destructive

Change a question's settings: answer type, required flag, internal name, or itemDetails (scale range, AI interview options). Send only what changes; nested settings are merged with the current values. Wording and answer options are not changed here: use question_update_text for those. Needs surveyVersion = versions.current from survey_get (stale versions are rejected); the result returns the next surveyVersion. On a published survey the change is live at once.

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": {
      "surveyId": "<surveyId>",
      "surveyItemId": "<surveyItemId>",
      "surveyVersion": "<surveyVersion>",
      "item": "<item>"
    },
    "name": "question_update"
  }
}

Input Schema

NameRequiredDescriptionDefault
itemYes
surveyIdYesSurvey ID (required to fetch current question state for merging)
surveyItemIdYesQuestion ID (survey_items[].id from survey_get)
surveyVersionYesCurrent survey version: versions.current from survey_get, or the surveyVersion your last edit returned. A stale version is rejected (WRONG_VERSION). The result returns the next one as surveyVersion.

Output Schema

NameRequiredDescriptionDefault
resultYes

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=false, and the description adds behavior the agent could not infer: nested settings are merged rather than replaced, stale versions are rejected with WRONG_VERSION, the call returns the next surveyVersion, and the change goes live immediately on a published survey. That last point materially explains why destructiveHint is true.

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

Conciseness5/5

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

Four sentences, each load-bearing: capability, merge semantics, sibling routing, then versioning/live-effect. The mutable fields are front-loaded and the routing clause comes before the version mechanics, matching the order an agent needs them.

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 nested-object mutation with four required params, the description covers the version handshake, the merge model, sibling disambiguation, and the immediate-effect caveat; return values are covered by the existing output schema. Nothing needed to invoke it correctly is missing.

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?

Schema coverage is 75%, so the nested item fields are largely documented already, but the description adds the merge contract for itemDetails ("nested settings are merged with the current values") which the schema does not state. It also names the concrete itemDetails payloads (scale range, AI interview options) that the schema leaves as a generic "type-specific settings" object.

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?

"Change a question's settings" names a specific verb and resource, then enumerates the exact mutable surface (answer type, required flag, internal name, itemDetails). It explicitly carves out the sibling territory: wording and answer options belong to question_update_text, so an agent can route without opening either schema.

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?

Gives both a when-not ("Wording and answer options are not changed here: use question_update_text for those") and a hard prerequisite (surveyVersion = versions.current from survey_get, stale rejected). The "send only what changes" instruction tells the agent how to call it, not just whether to.

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