Skip to main content
Glama

Minds: Synthetic Market Research

Save Study Draft

save_study_draft
Destructive

Creates or checkpoints an unfinished Quick or Custom Study draft without starting research. It saves the objective, context, selected Audiences, method, questions, sources, and current planner step. Revisions change only the fields given and require the exact draft ID and expected revision; stale writes are rejected. For a retryable creation, choose idempotencyKey before the first save and reuse it after an uncertain result.

Input Schema

NameRequiredDescriptionDefault
nameNoSidebar name for the Study draft.
draftNoWhich durable draft to revise, and the retry key. Omit to create a new draft.
contextNoResearch context captured so far: only the user's brief and material relevant to the research question, never tool errors, status messages, internal links or process notes.
plannerNoPlanner state to restore when the draft is reopened.
methodIdNoResearch method selected for the draft. Use list_research_methods as the availability authority. When omitted on create, guided-research applies; when omitted on a revision, the saved method is kept.
questionsNoManual research questions in their intended order. When omitted on create, the draft has none; when omitted on a revision, the saved questions are kept.
audienceIdsNoExisting Audience IDs selected for the Study. Preferred.
conversationFilesNoStudy context files for the draft: images, video and audio are stimulus respondents see, documents are background. They are kept on later saves of the same draft. 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
draftNoThe saved draft.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / context / description
      Previous value: -"Research context captured so far."New value: +"Research context captured so far: only the user's brief and material relevant to the research question, never tool errors, status messages, internal links or process notes."
    • changedInput schema / properties / context / properties / notes / description
      Previous value: -"Additional research context or constraints."New value: +"Research context the Minds should see: the brief, concept or other material relevant to the research question, and the user's constraints. When the draft starts, these notes are shown to every Mind. Never tool errors, status or retry messages, Minds or other internal links, or your own process notes."
    • changedInput schema / properties / context / properties / objective / description
      Previous value: -"Research objective or intent captured so far."New value: +"The user's research objective or intent captured so far. Never tool errors, status or retry messages, Minds or other internal links, or your own process notes."
    • changedInput schema / properties / context / properties / sourceUrls / description
      Previous value: -"Ordered source URLs supplied as Study context. When omitted on create, the draft has none; when omitted on a revision, the saved URLs are kept."New value: +"Ordered source URLs the user supplied as material for the research. Never Minds workspace or other internal links. When omitted on create, the draft has none; when omitted on a revision, the saved URLs are kept."
  2. Changed12 schema fields changed
    • removedInput schema / properties / context / default
      Removed value: -{}
    • removedInput schema / properties / context / properties / sourceUrls / default
      Removed value: -[]
    • changedInput schema / properties / context / properties / sourceUrls / description
      Previous value: -"Ordered source URLs supplied as Study context."New value: +"Ordered source URLs supplied as Study context. When omitted on create, the draft has none; when omitted on a revision, the saved URLs are kept."
    • removedInput schema / properties / methodId / default
      Removed value: -"guided-research"
    • changedInput schema / properties / methodId / description
      Previous value: -"Research method selected for the draft. Use list_research_methods as the availability authority."New value: +"Research method selected for the draft. Use list_research_methods as the availability authority. When omitted on create, guided-research applies; when omitted on a revision, the saved method is kept."
    • removedInput schema / properties / planner / default
      Removed value: -{}
    • removedInput schema / properties / planner / properties / currentStep / default
      Removed value: -"context"
    • changedInput schema / properties / planner / properties / currentStep / description
      Previous value: -"Exact planner step to reopen, such as context, audiences, method, questions, or confirm. The legacy value groups remains accepted when reopening an older draft."New value: +"Exact planner step to reopen, such as context, audiences, method, questions, or confirm. The legacy value groups remains accepted when reopening an older draft. When omitted on create, context applies; when omitted on a revision, the saved step is kept."
    • removedInput schema / properties / planner / properties / mode / default
      Removed value: -"custom"
    • changedInput schema / properties / planner / properties / mode / description
      Previous value: -"Planning mode to restore. Defaults to custom for agent-authored planning state."New value: +"Planning mode to restore. When omitted on create, custom applies; when omitted on a revision, the saved mode is kept."
    • removedInput schema / properties / questions / default
      Removed value: -[]
    • changedInput schema / properties / questions / description
      Previous value: -"Manual research questions in their intended order."New value: +"Manual research questions in their intended order. When omitted on create, the draft has none; when omitted on a revision, the saved questions are kept."
  3. Changed1 schema field changed
    • addedInput schema / properties / conversationFiles
      Added value: +{
      +  "description": "Study context files for the draft: images, video and audio are stimulus respondents see, documents are background. They are kept on later saves of the same draft. 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.",
      +  "items": {
      +    "properties": {
      +      "download_url": {
      +        "description": "Download URL the chat host supplies for this file.",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "file_id": {
      +        "description": "The chat host's ID for this file.",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "file_name": {
      +        "description": "File name when the host supplies it.",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "mime_type": {
      +        "description": "MIME type when the host supplies it.",
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "download_url",
      +      "file_id"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  4. Changed13 schema fields changed
    • addedInput schema / properties / context
      Added value: +{
      +  "default": {},
      +  "description": "Research context captured so far.",
      +  "properties": {
      +    "notes": {
      +      "description": "Additional research context or constraints.",
      +      "type": "string"
      +    },
      +    "objective": {
      +      "description": "Research objective or intent captured so far.",
      +      "type": "string"
      +    },
      +    "sourceUrls": {
      +      "default": [],
      +      "description": "Ordered source URLs supplied as Study context.",
      +      "items": {
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "website": {
      +      "description": "Primary website associated with the research context.",
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedInput schema / properties / currentStep
      Removed value: -{
      -  "default": "context",
      -  "description": "Exact planner step to reopen, such as context, audiences, method, questions, or confirm. The legacy value groups remains accepted when reopening an older draft.",
      -  "maxLength": 100,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • addedInput schema / properties / draft
      Added value: +{
      +  "description": "Which durable draft to revise, and the retry key. Omit to create a new draft.",
      +  "properties": {
      +    "expectedRevision": {
      +      "description": "Exact current revision. Required with draftId so stale updates cannot overwrite newer planning state.",
      +      "exclusiveMinimum": 0,
      +      "maximum": 9007199254740991,
      +      "type": "integer"
      +    },
      +    "id": {
      +      "description": "Existing Study draft ID to revise. Omit to create a new durable draft.",
      +      "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"
      +    },
      +    "idempotencyKey": {
      +      "description": "Creation only: choose a stable key before the first save and reuse it after an uncertain result. Reuse returns the existing draft; use draftId and expectedRevision to change it.",
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedInput schema / properties / draftId
      Removed value: -{
      -  "description": "Existing Study draft ID to revise. Omit to create a new durable draft.",
      -  "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"
      -}
    • removedInput schema / properties / expectedRevision
      Removed value: -{
      -  "description": "Exact current revision. Required with draftId so stale updates cannot overwrite newer planning state.",
      -  "exclusiveMinimum": 0,
      -  "maximum": 9007199254740991,
      -  "type": "integer"
      -}
    • removedInput schema / properties / groupIds
      Removed value: -{
      -  "description": "Legacy alias for audienceIds. Accepted for compatibility.",
      -  "items": {
      -    "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"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / idempotencyKey
      Removed value: -{
      -  "description": "Creation only: choose a stable key before the first save and reuse it after an uncertain result. Reuse returns the existing draft; use draftId and expectedRevision to change it.",
      -  "maxLength": 200,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / mode
      Removed value: -{
      -  "default": "custom",
      -  "description": "Planning mode to restore. Defaults to custom for agent-authored planning state.",
      -  "enum": [
      -    "quick",
      -    "custom"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / notes
      Removed value: -{
      -  "description": "Additional research context or constraints.",
      -  "type": "string"
      -}
    • removedInput schema / properties / objective
      Removed value: -{
      -  "description": "Research objective or intent captured so far.",
      -  "type": "string"
      -}
    • addedInput schema / properties / planner
      Added value: +{
      +  "default": {},
      +  "description": "Planner state to restore when the draft is reopened.",
      +  "properties": {
      +    "currentStep": {
      +      "default": "context",
      +      "description": "Exact planner step to reopen, such as context, audiences, method, questions, or confirm. The legacy value groups remains accepted when reopening an older draft.",
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "mode": {
      +      "default": "custom",
      +      "description": "Planning mode to restore. Defaults to custom for agent-authored planning state.",
      +      "enum": [
      +        "quick",
      +        "custom"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedInput schema / properties / sourceUrls
      Removed value: -{
      -  "default": [],
      -  "description": "Ordered source URLs supplied as Study context.",
      -  "items": {
      -    "format": "uri",
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / website
      Removed value: -{
      -  "description": "Primary website associated with the research context.",
      -  "format": "uri",
      -  "type": "string"
      -}
  5. Changed1 schema field changed
    • addedInput schema / properties / idempotencyKey
      Added value: +{
      +  "description": "Creation only: choose a stable key before the first save and reuse it after an uncertain result. Reuse returns the existing draft; use draftId and expectedRevision to change it.",
      +  "maxLength": 200,
      +  "minLength": 1,
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "draft": {
      +      "description": "The saved draft."
      +    }
      +  },
      +  "type": "object"
      +}
  7. Changed1 schema field changed
    • changedInput schema / properties / currentStep / description
      Previous value: -"Exact planner step to reopen, such as context, groups (Audiences), method, questions, or confirm."New value: +"Exact planner step to reopen, such as context, audiences, method, questions, or confirm. The legacy value groups remains accepted when reopening an older draft."
  8. Changed4 schema fields changed
    • addedInput schema / properties / audienceIds
      Added value: +{
      +  "description": "Existing Audience IDs selected for the Study. Preferred.",
      +  "items": {
      +    "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"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / currentStep / description
      Previous value: -"Exact planner step to reopen, such as context, groups, method, questions, or confirm."New value: +"Exact planner step to reopen, such as context, groups (Audiences), method, questions, or confirm."
    • removedInput schema / properties / groupIds / default
      Removed value: -[]
    • changedInput schema / properties / groupIds / description
      Previous value: -"Existing Audience group IDs selected for the Study."New value: +"Legacy alias for audienceIds. Accepted for compatibility."
  9. Changed4 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / draftId / pattern
      Added value: +"^([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)$"
    • addedInput schema / properties / expectedRevision / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / groupIds / items / pattern
      Added value: +"^([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)$"
  10. Added

TDQS

A4.4/5.0
Behavior4/5

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

Adds substantive behavior beyond the annotations: revisions are partial ('change only the fields given'), require draft ID plus expected revision, and stale writes are rejected, plus per-key retry semantics for creation. It does not explain the destructiveHint=true flag — an agent might read the partial-update rule as non-destructive, so the one annotation that signals risk is left unaddressed.

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?

Four sentences, front-loaded with identity and scope, then persistence, then revision safety, then retry mechanics — a sound ordering with no filler. Dense but every sentence carries distinct information; only slight cost is the packing of three separate rules into the last two sentences.

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 an 8-parameter nested mutation tool with an output schema and annotations, the description covers what an agent needs: create vs revise, partial-update semantics, optimistic concurrency, and idempotency for retries. Return-value explanation is correctly omitted since an output schema exists.

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 baseline would be 3; the description earns above that by tying the draft/expectedRevision pair to a concurrency guarantee and explaining the create-vs-revise split of the draft object. It does not add field-level meaning (name, audienceIds, conversationFiles are left entirely to the schema).

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 pair and resource: 'Creates or checkpoints an unfinished Quick or Custom Study draft', and immediately scopes it with 'without starting research', which separates it from create_study and start_study_run. The enumeration of what is persisted (objective, context, Audiences, method, questions, sources, planner step) makes the boundary unmistakable.

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 clear situational guidance: use it for drafts before research starts, and use idempotencyKey for a retryable creation ('choose idempotencyKey before the first save and reuse it after an uncertain result'). It does not explicitly name the alternative to pick when the user does want to launch research (create_study), leaving that contrast implicit rather than spelled out.

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.