Skip to main content
Glama

Minds: Synthetic Market Research

Revise Study Plan

revise_study_plan
Destructive

Revises one saved draft at its current draft.id and draft.revision without starting research. Accepts edits, refinement, clarification answers or response-format corrections. Stale revisions fail. Fixed questions stay verbatim when only clarification answers change. Bounded history may prune older revisions; the changed draft requires review again.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
draftYesExisting draft and current revision, with the requested changes or clarification answers.
studyNoStudy id or name. Omit to use the active Study of this MCP session.
policyNoResearch method and locale for this plan. Each Mind automatically uses its relevant knowledge alongside the assigned Study stimulus.
requestNoPlanner input containing the research objective, questionnaire, survey, battery, section, cohesive question set, audit request, or analysis request. Required for a new draft. Include EVERY question already known in this one request so the planner can group the complete set into cohesive named modules for one confirmed multi-question run inside the Study; never create one planning request per known question. This request is not sent verbatim to Minds; the exact proposed respondent-visible questions are returned in the draft for review.
stimulusNoSource and attachments shown to the respondents, with per-question assignments.
questionsNoFixed instrument: use INSTEAD of request when the user supplies a pre-registered or fixed questionnaire whose wording, order, and response formats must not change. The planner is bypassed; every question is stored verbatim, in this order, with exactly this response contract. Cannot be combined with refinement, answers, questionResponses, or suggestQuestionStimuli in the same call; answer the draft's confirmation questions afterwards with draft.id, draft.revision and draft.answers alone, which keeps these questions exactly. Repeated question texts or colliding ids are rejected. A saved Study template's configuration.questions can be passed here (each item's text and response); pass its configuration.methodId as policy.methodId so the template's method runs. Without it a fixed instrument runs as Custom research (guided-research).
idempotencyKeyNoOptional stable retry key. When omitted the tool derives one from its own arguments, so a repeated identical call (including a host retry after a timeout) returns the draft revision that was already saved instead of planning again. Pass a fresh key to force a new plan for identical input.
conversationFilesNoStimulus files for the planned block, added to stimulus.attachments. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
studyIdNoStudy the plan belongs to.
revisionNoDraft revision to confirm.
nextActionNoWhat to do next: show the draft and wait for explicit confirmation.
draftPlanIdNoDraft plan to confirm with start_study_run.
draftReviewNoThe saved draft as reviewed: questions, methods, outputs and confirmation choices.
audienceAttachmentNoWith study.audienceIds: attached (added now) and alreadyAttached Audience IDs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / draft / properties / questionResponses / items / properties / exclusiveOptions
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 100,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / draft / properties / questionResponses / items / properties / optionSets
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "condition": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "assignmentId": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "levelIds": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "maxItems": 100,
      +            "minItems": 1,
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "assignmentId",
      +          "levelIds"
      +        ],
      +        "type": "object"
      +      },
      +      "label": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "options": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "maxItems": 100,
      +        "minItems": 2,
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "condition",
      +      "label",
      +      "options"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 100,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / draft / properties / questionResponses / items / properties / scaleExceptions
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 100,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / questions / items / properties / response / properties / exclusiveOptions
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 100,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / questions / items / properties / response / properties / optionSets
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "condition": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "assignmentId": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "levelIds": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "maxItems": 100,
      +            "minItems": 1,
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "assignmentId",
      +          "levelIds"
      +        ],
      +        "type": "object"
      +      },
      +      "label": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "options": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "maxItems": 100,
      +        "minItems": 2,
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "condition",
      +      "label",
      +      "options"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 100,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / questions / items / properties / response / properties / scaleExceptions
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 100,
      +  "minItems": 1,
      +  "type": "array"
      +}
  2. Changed4 schema fields changed
    • changedInput schema / properties / draft / properties / edits / description
      Previous value: -"Save exact edits to draftPlanId and revision without a model call. Preserves method configuration, source policy, item IDs and exact wording. Questions are the complete selected instrument in module order, including each item's askIf (omitted means none); method-specific batteries are read-only. Cannot combine with planner inputs."New value: +"Save exact edits to draftPlanId and revision without a model call. Preserves method configuration, item IDs and exact wording. Each new revision includes relevant Mind knowledge. Questions are the complete selected instrument in module order, including each item's askIf (omitted means none); method-specific batteries are read-only. Cannot combine with planner inputs."
    • changedInput schema / properties / policy / description
      Previous value: -"Research method, locale and permitted source policies for this plan."New value: +"Research method and locale for this plan. Each Mind automatically uses its relevant knowledge alongside the assigned Study stimulus."
    • removedInput schema / properties / policy / properties / mindSourcePolicyOverrides
      Removed value: -{
      -  "description": "Experimental per-Mind treatment assignments stored in the exact draft revision. Each Mind may appear once; unlisted Minds use sourcePolicy. Use only for a preregistered source-policy experiment.",
      -  "items": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "mindId": {
      -        "description": "Exact Mind UUID in the Study cohort.",
      -        "format": "uuid",
      -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -        "type": "string"
      -      },
      -      "sourcePolicy": {
      -        "description": "Request-scoped evidence treatment for this Mind.",
      -        "enum": [
      -          "request_only",
      -          "auto"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "mindId",
      -      "sourcePolicy"
      -    ],
      -    "type": "object"
      -  },
      -  "maxItems": 2000,
      -  "type": "array"
      -}
    • removedInput schema / properties / policy / properties / sourcePolicy
      Removed value: -{
      -  "description": "Evidence policy stored in the draft and reviewed before execution. Defaults to request_only for a controlled Study. Use auto only for an explicitly designed experiment that should allow relevant Mind-knowledge retrieval; response-mode rules still control live web search.",
      -  "enum": [
      -    "request_only",
      -    "auto"
      -  ],
      -  "type": "string"
      -}
  3. Changed1 schema field changed
    • changedInput schema / properties / stimulus / properties / questionAttachments / description
      Previous value: -"Question-to-file mapping. In multi-asset blocks map every question, using [] for no assets; an omitted question receives every asset and an asset on no question is shown with every question. Each question at most once; every referenced attachment id must resolve."New value: +"Question-to-file mapping. An omitted question receives every asset. An asset placed on no question is shown with every question, including questions mapped to []. Each question at most once; every referenced attachment id must resolve."
  4. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, idempotentHint=false and openWorldHint=true. The description adds real behavioral context beyond them: optimistic-concurrency failure on stale revisions, verbatim preservation of fixed questions when only answers change, bounded-history pruning, and that the changed draft needs re-review. It stops short of describing return/pagination behavior.

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 short sentences, front-loaded with the action and scope, then preconditions and side effects. No filler; every clause carries a distinct fact an agent needs.

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

Completeness4/5

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

With rich annotations, 100% schema coverage and an output schema, the description covers the essentials an agent needs (concurrency, side effects, re-review). It could go slightly further on how edits/answers interact, but nothing critical 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 description coverage is 100%, so the baseline is 3, but the description adds meaningful semantics for the two identity parameters: draft.id and draft.revision must be the current values and stale ones fail, which the schema does not state. Remaining parameters rely on the schema's own rich descriptions.

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?

States a specific verb+resource ('Revises one saved draft') and pins the scope to the existing draft.id/revision, explicitly noting it does NOT start research. This cleanly separates it from save_study_draft (exact edits, no model call) and create_study_plan (new draft).

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?

Enumerates the accepted invocation cases ('edits, refinement, clarification answers or response-format corrections') and states the stale-revision precondition, giving clear context for when to call it. It does not, however, name the sibling to prefer for a plain verbatim edit versus a model-assisted revision, so the when-not is left implicit.

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.