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

TableJSON 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.
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

TableJSON Schema
NameRequiredDescriptionDefault
draftNoThe saved draft.

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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."
  2. 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"
      +}
  3. 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"
      -}
  4. 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"
      +}
  5. 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"
      +}
  6. 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."
  7. 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."
  8. 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)$"
  9. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations establish mutation/destructive/non-idempotent behavior, and the description goes further by disclosing partial-update semantics ('Revisions change only the fields given'), optimistic-concurrency enforcement (exact draft ID plus expectedRevision, stale writes rejected), and retry mechanics via idempotencyKey. It does not explain why destructiveHint=true or what can be lost on a stale-overwrite attempt, which leaves one meaningful gap given the destructive annotation.

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?

Three sentences, front-loaded with the create/checkpoint purpose before revision rules and the retry hint. Each sentence carries distinct information (purpose, revision safety, retry key), though the final sentence is dense and slightly buries the idempotency guidance inside the purpose paragraph.

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?

With an output schema present, return values need no explanation. The description covers the create-vs-revise distinction, per-field omission defaults on create versus revision, concurrency control, and retry strategy - everything an agent needs to call this 8-parameter mutating tool correctly.

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 id, idempotencyKey, expectedRevision, mode, methodId, and omission-default semantics are already documented per property; that sets the baseline at 3. The description reinforces the idempotency contract with 'choose before the first save and reuse it after an uncertain result,' which adds a little usage meaning but no format or syntax detail beyond 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?

The description gives a specific verb+resource+scope: 'Creates or checkpoints an unfinished Quick or Custom Study draft without starting research.' The phrase 'without starting research' implicitly separates it from create_study, and 'checkpoints an unfinished draft' separates it from create_study's completed-study path. An agent can route between save_study_draft, create_study, and list_study_drafts without opening a schema.

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?

Clear context is given for both branches: create when no draft ID exists, revise when one does, and idempotencyKey is recommended before a first save and reused after an uncertain result. It never names create_study explicitly as the alternative for starting research, leaving the exclusion implicit rather than stated, so it falls short of full when/when-not/alternatives guidance.

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.