Skip to main content
Glama

Minds: Synthetic Market Research

Create Study Plan

create_study_plan
Destructive

Creates a non-executing draft in an existing Study with its Audiences already attached. The setup operation for two or more known questions: every question known now belongs in this one draft, in cohesive named modules. A one-question draft is only for genuinely standalone research or an adaptive follow-up. request designs questions; questions preserves a fixed instrument verbatim. Each Mind sees only its own earlier answers; askIf applies respondent-level skip logic. With multiple attachments, stimulus.questionAttachments assigns each question; [] means none. Saving bounded history may prune older revisions. Research has not started; the returned draft revision needs review and later explicit confirmation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
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. Changed3 schema fields changed
    • 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. Changed3 schema fields changed
    • 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/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true and non-idempotency, so the safety profile is covered. The description adds value beyond them by clarifying the operation is non-executing, that 'saving bounded history may prune older revisions,' and that the returned draft revision requires review and later explicit confirmation. No return format or pagination detail, but the confirmation/pruning notes are genuine additions.

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 core action is front-loaded in the first sentence and the remaining sentences are dense but largely earn their place, each carrying a distinct constraint (module grouping, request vs questions, askIf routing, attachment mapping, pruning, confirmation). It reads as a packed block rather than flowing prose, but there is little filler.

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?

For a 7-parameter tool with nested objects and a high-stakes mutation workflow, the description covers the main invocation paths, the request/questions fork, the confirmation flow, and side effects. An output schema exists, so return-value explanation is not needed. It is complete enough to call correctly, with only minor gaps around multi-call sequencing with revise_study_plan.

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 100%, so the baseline is 3. The description still adds meaning by stating the mutually exclusive selection heuristic ('request designs questions; questions preserves a fixed instrument verbatim') and clarifying that stimulus.questionAttachments assigns each question with [] meaning none, which helps an agent choose between the two paths rather than just reading field docs.

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?

Opens with a specific verb and resource: 'Creates a non-executing draft in an existing Study with its Audiences already attached.' The 'non-executing' scope distinguishes it from start_study_run and the draft/revision framing separates it from create_study, though no sibling tool is named explicitly.

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?

Gives a clear when-to-use rule ('two or more known questions: every question known now belongs in this one draft') and a when-not ('A one-question draft is only for genuinely standalone research or an adaptive follow-up'). It also routes between the request and questions parameters, but does not name sibling tools like revise_study_plan or save_study_draft as alternatives.

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.