Skip to main content
Glama

Minds: Synthetic Market Research

Start Confirmed Study Run

start_study_run
DestructiveIdempotent

Runs one reviewed draft revision after explicit confirmation in a later user turn; skipping review is not confirmation. One execution submits the whole draft as a single durable run. It is refused as a whole before using Minds or quota if the revision, capabilities, method or source-readability checks fail. Advanced methods need explicit opt-in. Each Mind answers in order seeing its own earlier answers; askIf gates items. Contradictions are flagged, never rewritten.

Input Schema

NameRequiredDescriptionDefault
draftYesExact saved draft and revision the user reviewed and confirmed in a later turn.
studyNoStudy id or name. Omit to use the active Study of this MCP session.
confirmedYesTrue only after the user explicitly confirms this exact displayed draft revision in a later turn.
audienceIdsNoOptional subset of the Study's Audiences to include.
idempotencyKeyNoStable UUID for safe retries.
modelConnectionNoVerified caller-team connection for Mind answers and verbatim rendering. Select only when the user requests it; confirmation pins this connection revision, and retries must keep it. Supporting analysis retains platform models.
advancedMethodOptInNoExplicit opt-in for an advanced method. Omit or false to keep simple methods.

Output Schema

NameRequiredDescriptionDefault
runIdNoDurable run; poll it with get_study_status (study.id and runId).
statusNoRun status, or stimulus_unavailable / plan_limited when nothing started.
resumedNoWith resume: true when the stopped run was queued again.
studyIdNoStudy the block runs in.
planLimitNoPresent when a plan limit refused, truncated or stopped Study work.
workspaceUrlNoMinds workspace link for the Study.
executionStartedNoFalse when nothing started.
skippedQuestionCountNoQuestions left out of this run by the Free plan Study answer allowance.
requestedQuestionCountNoQuestions in the confirmed plan.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / planLimit / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "billingMode": {
      -        "description": "prepaid (purchased response balance) or subscription (recurring allowance), when known.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "context": {
      -        "description": "sharedStudyUsage or sharedMindUsage when the owner pays for the refused work.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "executionStarted": {
      -        "description": "Whether any question of this request ran.",
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "kind": {
      -        "description": "study_answers (Free plan monthly Study answers) or response_credits (synthetic-response allowance).",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "limit": {
      -        "description": "Allowance of the current period, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "message": {
      -        "description": "One user-facing sentence with the link(s).",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "outcome": {
      -        "description": "refused (nothing started or charged), partial (only the first questions run), stopped (a run stopped at the limit), or resume_refused.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "periodEnd": {
      -        "description": "When the allowance renews (ISO 8601), when known.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "remaining": {
      -        "description": "Allowance left, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "requested": {
      -        "description": "Responses or answers the refused work needed, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "responseCreditsUrl": {
      -        "description": "Absolute link to buy response credits; only for response_credits and absent when the shared owner must act.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "resumable": {
      -        "description": "True when the run can be continued in place with resume_study_run runId once the plan allows it.",
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "runId": {
      -        "description": "The run concerned, when one exists.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "skippedQuestionCount": {
      -        "description": "Questions the limit kept from running.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "skippedQuestions": {
      -        "anyOf": [
      -          {
      -            "items": {},
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Questions not asked: { index (zero-based), text }."
      -      },
      -      "totalQuestionCount": {
      -        "description": "Questions in the request or run, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "upgradeUrl": {
      -        "description": "Absolute link to the Minds plans page; absent when the shared owner must act.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "used": {
      -        "description": "Allowance used in the current period, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "billingMode": {
      +        "description": "prepaid (purchased response balance) or subscription (recurring allowance), when known.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "context": {
      +        "description": "sharedStudyUsage or sharedMindUsage when the owner pays for the refused work.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "executionStarted": {
      +        "description": "Whether any question of this request ran.",
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "kind": {
      +        "description": "study_answers (Free plan monthly Study answers) or response_credits (synthetic-response allowance).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "limit": {
      +        "description": "Allowance of the current period, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "message": {
      +        "description": "One user-facing sentence with the plans link.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "outcome": {
      +        "description": "refused (nothing started or charged), partial (only the first questions run), stopped (a run stopped at the limit), or resume_refused.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "periodEnd": {
      +        "description": "When the allowance renews (ISO 8601), when known.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "plansUrl": {
      +        "description": "Absolute link to the public Minds plans page; absent when the shared owner must act.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "remaining": {
      +        "description": "Allowance left, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "requested": {
      +        "description": "Responses or answers the refused work needed, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "resumable": {
      +        "description": "True when the run can be continued in place with resume_study_run runId once the plan allows it.",
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "runId": {
      +        "description": "The run concerned, when one exists.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "skippedQuestionCount": {
      +        "description": "Questions the limit kept from running.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "skippedQuestions": {
      +        "anyOf": [
      +          {
      +            "items": {},
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Questions not asked: { index (zero-based), text }."
      +      },
      +      "totalQuestionCount": {
      +        "description": "Questions in the request or run, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "used": {
      +        "description": "Allowance used in the current period, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / planLimit / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "executionStarted": {
      -        "description": "Whether any question of this request ran.",
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "kind": {
      -        "description": "study_answers (Free plan monthly Study answers) or response_credits (synthetic-response allowance).",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "limit": {
      -        "description": "Allowance of the current period, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "message": {
      -        "description": "One user-facing sentence with the link(s).",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "outcome": {
      -        "description": "refused (nothing started or charged), partial (only the first questions run), stopped (a run stopped at the limit), or resume_refused.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "periodEnd": {
      -        "description": "When the allowance renews (ISO 8601), when known.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "remaining": {
      -        "description": "Allowance left, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "requested": {
      -        "description": "Responses or answers the refused work needed, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "responseCreditsUrl": {
      -        "description": "Absolute link to buy response credits; only for response_credits.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "resumable": {
      -        "description": "True when the run can be continued in place with resume_study_run runId once the plan allows it.",
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "runId": {
      -        "description": "The run concerned, when one exists.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "skippedQuestionCount": {
      -        "description": "Questions the limit kept from running.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "skippedQuestions": {
      -        "anyOf": [
      -          {
      -            "items": {},
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Questions not asked: { index (zero-based), text }."
      -      },
      -      "totalQuestionCount": {
      -        "description": "Questions in the request or run, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "upgradeUrl": {
      -        "description": "Absolute link to the Minds plans page.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "used": {
      -        "description": "Allowance used in the current period, when known.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "billingMode": {
      +        "description": "prepaid (purchased response balance) or subscription (recurring allowance), when known.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "context": {
      +        "description": "sharedStudyUsage or sharedMindUsage when the owner pays for the refused work.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "executionStarted": {
      +        "description": "Whether any question of this request ran.",
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "kind": {
      +        "description": "study_answers (Free plan monthly Study answers) or response_credits (synthetic-response allowance).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "limit": {
      +        "description": "Allowance of the current period, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "message": {
      +        "description": "One user-facing sentence with the link(s).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "outcome": {
      +        "description": "refused (nothing started or charged), partial (only the first questions run), stopped (a run stopped at the limit), or resume_refused.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "periodEnd": {
      +        "description": "When the allowance renews (ISO 8601), when known.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "remaining": {
      +        "description": "Allowance left, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "requested": {
      +        "description": "Responses or answers the refused work needed, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "responseCreditsUrl": {
      +        "description": "Absolute link to buy response credits; only for response_credits and absent when the shared owner must act.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "resumable": {
      +        "description": "True when the run can be continued in place with resume_study_run runId once the plan allows it.",
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "runId": {
      +        "description": "The run concerned, when one exists.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "skippedQuestionCount": {
      +        "description": "Questions the limit kept from running.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "skippedQuestions": {
      +        "anyOf": [
      +          {
      +            "items": {},
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Questions not asked: { index (zero-based), text }."
      +      },
      +      "totalQuestionCount": {
      +        "description": "Questions in the request or run, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "upgradeUrl": {
      +        "description": "Absolute link to the Minds plans page; absent when the shared owner must act.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "used": {
      +        "description": "Allowance used in the current period, when known.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare destructive, idempotent and open-world, and the description adds real context beyond them: atomic pre-flight refusal before consuming Minds or quota on revision/capability/method/source-readability failures, ordered Mind answering with askIf gating, and contradictions flagged but never rewritten. What it does not cover is the run's reversibility/cancellation story, which matters for a destructiveHint=true tool.

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 confirmation gate is front-loaded and nearly every clause earns its place (quota, ordering, gating, contradictions). The middle is dense with semicolon-joined clauses, which costs a little readability, but there is no 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 destructive, idempotent, nested-object tool with 7 parameters it covers confirmation semantics, validation behavior, execution ordering and failure handling, and the output schema already documents returns. It omits the natural next step (get_study_status) and how resume_study_run relates to a started run, which would complete the picture.

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?

With 100% schema coverage the baseline is 3, and the description adds genuine meaning: 'confirmed' is scoped to the exact displayed revision in a later turn, advancedMethodOptIn is framed as an opt-in gate rather than a plain boolean, and modelConnection selection is restricted to explicit user request. It still leaves audienceIds and idempotencyKey unaddressed in prose.

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 and resource (runs one reviewed draft revision) with the gating condition (explicit confirmation in a later turn) built into the first sentence. It is clearly distinguishable from siblings like run_study_questions, resume_study_run and create_study_plan, and adds that the whole draft is submitted as a single durable run.

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 condition (after explicit confirmation in a later turn) and an explicit when-not ('skipping review is not confirmation'), plus a constraint for advanced methods ('need explicit opt-in'). It does not name the sibling to use instead for unconfirmed drafts (revise_study_plan/render_study_plan) or for continuation (resume_study_run), which keeps it short of a 5.

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.