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

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. Write only the user's research brief and context relevant to the research question. Never tool errors, status or retry messages, Minds or other internal links, or your own process notes.
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 or questionResponses in the same call (refused); suggestQuestionStimuli has no effect here, place files with questionAttachments; 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

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.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
audienceAttachmentNoWith study.audienceIds: attached (added now) and alreadyAttached Audience IDs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / workspaceUrl
      Added value: +{
      +  "description": "Authenticated Minds workspace link for the Study.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed5 schema fields changed
    • changedInput schema / properties / questions / description
      Previous value: -"Fixed 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)."New value: +"Fixed 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 or questionResponses in the same call (refused); suggestQuestionStimuli has no effect here, place files with questionAttachments; 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)."
    • changedInput schema / properties / request / description
      Previous value: -"Planner 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."New value: +"Planner 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. Write only the user's research brief and context relevant to the research question. Never tool errors, status or retry messages, Minds or other internal links, or your own process notes."
    • changedInput schema / properties / stimulus / properties / source / description
      Previous value: -"The one main source this study is about. When Minds must evaluate pasted text, use kind prompt and put the exact respondent-visible material in content. Keep research objectives, requested questions, and planner-only instructions in request. Accepts a public HTTP(S) URL or a file already in the user's Minds uploads under chat/<userId>/ (its storage path or its /api/uploads/chat/ URL). MCP cannot read a local path. Files shared in the conversation (uploaded or generated images, PDFs, documents) go in the tool's top-level conversationFiles field where the tool has one; elsewhere a PDF or image without a public URL has no MCP route and is uploaded in the Minds app first. Plain text contents (UTF-8 text, Markdown, CSV, JSON) can go to import_audience_sources. External URLs are copied into Minds storage before a Study is saved or run. temp/, portfolio/ and context/ paths and /api/uploads/file-access/ URLs belong to other owners and are not accepted. A Study does not start until Minds can read every file."New value: +"The one main source this study is about. When Minds must evaluate pasted text, use kind prompt and put the exact respondent-visible material in content. Keep research objectives, requested questions, and planner-only instructions in request. Content is only the material respondents judge; the planner sets aside anything else it finds there. Accepts a public HTTP(S) URL or a file already in the user's Minds uploads under chat/<userId>/ (its storage path or its /api/uploads/chat/ URL). MCP cannot read a local path. Files shared in the conversation (uploaded or generated images, PDFs, documents) go in the tool's top-level conversationFiles field where the tool has one; elsewhere a PDF or image without a public URL has no MCP route and is uploaded in the Minds app first. Plain text contents (UTF-8 text, Markdown, CSV, JSON) can go to import_audience_sources. External URLs are copied into Minds storage before a Study is saved or run. temp/, portfolio/ and context/ paths and /api/uploads/file-access/ URLs belong to other owners and are not accepted. A Study does not start until Minds can read every file."
    • changedInput schema / properties / stimulus / properties / source / properties / content / description
      Previous value: -"Exact respondent-visible pasted text. Use only with kind prompt when Minds must evaluate a concept, message, description, or other text. Do not include planner-only instructions."New value: +"Exact respondent-visible pasted text: the material the user shared for the Minds to judge. Use only with kind prompt when Minds must evaluate a concept, message, description, or other text. Do not include planner-only instructions. Never tool errors, status or retry messages, Minds or other internal links, or your own process notes."
    • changedInput schema / properties / stimulus / properties / suggestQuestionStimuli / description
      Previous value: -"Default true. Lets the planner assign each attached file or website to one or more questions (attachmentIds on those questions). Pass false to leave questions unassigned unless questionAttachments names them."New value: +"Default true. Lets the planner assign each attached file or website to one or more questions (attachmentIds on those questions). Pass false to leave questions unassigned unless questionAttachments names them. Only planned drafts (request) use it: with questions (a fixed instrument) no planner runs and it has no effect, so place files on those questions with questionAttachments."
  3. 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"
      +}
  4. 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"
      -}
  5. 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."
  6. Added

TDQS

A3.7/5.0
Behavior4/5

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

Beyond the annotations it discloses that the result is a non-executing draft, that "Research has not started," that the returned revision "needs review and later explicit confirmation," and that "Saving bounded history may prune older revisions" — a genuine side effect worth knowing given destructiveHint=true. It also explains respondent-level routing semantics for askIf and per-Mind answer isolation. It leaves out the idempotency behavior (that a repeated identical call returns the already-saved revision), which the schema documents but the prose does not.

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 in the first sentence, which is good. After that the paragraph becomes a grab-bag: question-count policy, planner mode selection, skip logic, attachment routing, revision pruning, and confirmation state, with the skip-logic sentence ("Each Mind sees only its own earlier answers") dropped in abruptly and relying on unexplained domain jargon ("Mind"). It is dense but not wasteful in wording.

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

Completeness3/5

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

For a seven-parameter nested tool with an output schema and full schema coverage, the description covers the important qualitative facts: non-executing draft, review required, revision pruning, and attachment-to-question mapping. Gaps remain around lifecycle placement — it never says when to follow with revise_study_plan, save_study_draft, or run_study_questions, nor does it mention conversationFiles or idempotency, which are the two parameters an agent is most likely to mishandle silently.

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 carries parameter meaning and a 3 is the baseline. The description adds only marginal interpretation, such as "With multiple attachments, stimulus.questionAttachments assigns each question; [] means none" and the request/questions distinction. It does not add syntax, formatting, or precedence guidance (for example study id vs. name resolution) beyond what is already inlined in the schema.

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?

States a specific verb and resource: "Creates a non-executing draft in an existing Study with its Audiences already attached," which is precise enough for an agent to know this is the plan-creation step rather than a run. It also distinguishes its two input modes (request vs. questions). It stops short of naming how it differs from near neighbors like revise_study_plan, plan_study_questions, or save_study_draft, which the sibling list shows are easily confused with it.

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 real conditional guidance: "The setup operation for two or more known questions," plus an explicit exclusion that "A one-question draft is only for genuinely standalone research or an adaptive follow-up." It also routes between the two planning modes ("request designs questions; questions preserves a fixed instrument verbatim"). What is missing is direction to the alternative tools — nothing says to use revise_study_plan for an existing draft or save_study_draft for a later step.

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.