Skip to main content
Glama

Minds: Synthetic Market Research Panels

Server Details

Run AI market research: synthetic customer panels for concept testing, message testing, segments.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
minds-ai-co/minds-mcp
GitHub Stars
2
Server Listing
Minds MCP Server

Available Tools

19 tools
ask_audienceAsk One Standalone Audience QuestionAInspect

Submits exactly one respondent-visible standalone question to one existing Audience, identified by exact ID or fuzzy name. It creates a private Study for that Audience, starts asynchronous responses from its Minds, and returns the Study identifier and links. Automatic classification may reformulate the question; this operation does not promise verbatim wording. Locked respondent wording and response formats require a reviewed and confirmed Study plan. Never use this operation for a questionnaire, battery, section, cohesive question set, or any request with two or more known questions; create a Study and plan the complete multi-question block instead. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the Study created to ask this question. Defaults to the Audience name.
groupIdNoLegacy alias for audienceId. Accepted for compatibility.
questionYesExactly one respondent-visible standalone question for every Mind in the Audience. The system may classify or reformat it, but any text in this field can reach the Minds and influence their answers. Include only the concept, question, and instructions the Minds should receive. Never place planner-only or MCP-client orchestration instructions here.
groupNameNoLegacy alias for audienceName. Accepted for compatibility.
audienceIdNoAudience ID (UUID). Preferred when known.
attachmentsNoFiles/images processed once and given to every Audience member as context. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.
audienceNameNoAudience name to resolve via fuzzy match against the user's Audiences.

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses key behaviors beyond annotations: it creates a private Study, starts asynchronous responses, returns the Study identifier and links, may reformulate the question, and refuses to start if an asset cannot be read. There is no contradiction with the annotations.

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 description is front-loaded with the core action and uses subsequent sentences for routing, behavioral caveats, and file constraints. It is somewhat redundant with the schema's repeated local-file:// warnings, which keeps it from being maximally concise.

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?

Despite having no output schema, the description states what is returned: the Study identifier and links. It covers async behavior, reformulation risk, the multi-question exclusion, and asset accessibility requirements, making it complete for an agent to invoke correctly.

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 adds extra operational meaning: the question field content can reach Minds and should not contain planner-only instructions, audience resolution can be exact ID or fuzzy name, and attachment URLs must be fetchable rather than local paths. This goes beyond the schema descriptions.

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 states a precise verb and resource: submits exactly one respondent-visible standalone question to one existing Audience by ID or fuzzy name. It clearly distinguishes this from multi-question Study creation and from sibling tools by explicitly forbidding questionnaire, battery, or section use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use criteria: exactly one standalone question to one Audience. It also provides a direct alternative: create a Study and plan the complete multi-question block instead. File URL constraints and the no-local-file:// rule give practical invocation guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ask_studyAsk One Standalone Question in a StudyA
Idempotent
Inspect

Submits exactly ONE respondent-visible question in an existing Study. Applicability: one standalone question, or one adaptive follow-up whose wording could not be known before earlier results. Exclusion: never use this operation for a questionnaire, survey, battery, section, cohesive question set, or any request containing two or more known questions—even when every question targets the same Study. The complete known set belongs in one planned and confirmed multi-question block inside the Study and must be submitted once, not question by question. Follow-up questions remain within the existing Study; this operation does not create or enumerate Studies. The full question value may reach respondents and is not planner-only metadata. Scale, categorical, and qualitative questions are classified automatically, and the response includes status and workspace links. Automatic classification may reformulate the question; this operation does not promise verbatim wording. Locked respondent wording and response formats require a reviewed and confirmed Study plan. The question is classified before it is queued, so the returned status is authoritative: queued or running means it was submitted to respondents, while planning_required means it was declined as an unrefined research objective and nothing was submitted. A planning_required response carries the original request plus a proposed headline and respondent questions for study planning. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
linksNoWeb pages given to every Mind as evidence for this question through v1 /studies/{studyId}/runs.
modelNoOptional per-request model override. Must be sent together with provider.
panelIdNoStudy ID (UUID; legacy wire field name: panelId). Omit both panelId and panelName only when continuing the active Study from this MCP session.
studyIdNoStudy ID (UUID). Omit with studyName to continue the active Study from this MCP session.
groupIdsNoLegacy alias for audienceIds. Accepted for compatibility.
keywordsNoSearch keywords used to gather evidence for this question through v1 /studies/{studyId}/runs.
providerNoProvider for the model override. Must be sent together with model.
questionYesExactly ONE respondent-visible standalone question or result-dependent adaptive follow-up for every selected Mind. Never concatenate, enumerate, or otherwise place a questionnaire, survey, battery, section, cohesive question set, or two or more known questions in this field. The system may classify or reformat it, but any text here can reach the Minds and influence their answers. Include only the single question, its necessary stimulus, and respondent-facing instructions. Never place planner-only or MCP-client orchestration instructions here.
panelNameNoStudy name (fuzzy matched; legacy wire field name: panelName). Omit both panelName and panelId only when continuing the active Study from this MCP session.
studyNameNoStudy name (fuzzy matched). Omit with studyId to continue the active Study from this MCP session.
attachmentsNoFiles/images processed once and given to every participating Mind. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.
audienceIdsNoOptional subset of the Study's Audiences to ask; defaults to all Audiences.
historyModeNoControls prior Study-history carryover for this one direct question. Defaults to none, so this measurement is independent of earlier Study questions. last5 is only for a conversational/adaptive question that requires respondent continuity; it costs roughly 2.4x wall-clock for about 0.6pp of accuracy. followup_only carries history only when the submitted question is classified as a conversational follow-up.
sourcePolicyNoUse knowledge_only to forbid web/request sources and require every answer to be grounded in processed Mind knowledge.

TDQS

A4.6/5.0
Behavior5/5

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

Despite useful annotations (idempotentHint, openWorldHint, destructiveHint=false), the description carries substantial extra behavioral weight: automatic classification may reformulate the question so verbatim wording is not promised, the returned status is authoritative (queued/running means actually submitted, planning_required means declined with nothing submitted), and the planning_required payload is described. It also warns the full question value reaches respondents and that MCP cannot read local file:// paths. This far exceeds what the annotations convey.

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 core purpose is front-loaded and essentially every sentence carries decision-relevant content, but the description is verbose. The file:// limitation is stated in the description and then repeated three more times across schema attachment properties, and the 'never use for multi-question' exclusion is restated multiple times. It is substantive, not bloated, but could be tightened by roughly a third without losing information.

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 14-parameter tool with no output schema, the description compensates well: it defines the three possible status outcomes and what planning_required returns, explains classification/reformulation risk, and clarifies file URL constraints and durable storage import. Minor gaps remain—the response shape is only partially described ('status and workspace links'), and active-session continuation semantics live only in the schema—but nothing critical is missing for correct invocation.

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 description coverage is 100%, so the baseline is 3 with the schema doing the heavy lifting. The description adds value beyond the schema for the question parameter by explaining the system may classify or reformat it and that any text can reach Minds, and it reinforces attachment URL constraints. This lifts it above baseline, though the description does not systematically walk through each parameter.

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 opens with a precise verb+resource+scope: 'Submits exactly ONE respondent-visible question in an existing Study.' This is immediately distinguishable from siblings like plan_study_questions, run_study_questions, and create_study because it scopes to a single question inside an existing Study and explicitly says it does not create or enumerate Studies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit applicability ('one standalone question, or one adaptive follow-up whose wording could not be known before earlier results') and an explicit exclusion: never for questionnaires, surveys, batteries, sections, cohesive question sets, or two or more known questions. It also names the correct alternative routing—the complete known set belongs in 'one planned and confirmed multi-question block'—so an agent knows exactly when to choose a different tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_audience_from_briefCreate a Grounded Audience from a BriefA
Idempotent
Inspect

Creates a grounded Audience of synthetic Minds from a population or audience brief. It can combine authoritative web research, supplied sources, research files, and reviewed spreadsheet distributions; persists provenance and allocation audits; supports balanced, segment-coverage, and benchmark-depth sizing; can individually train every member of a large reviewed-dataset cohort in the background (trainMembers); is idempotent for identical inputs; and keeps the Audience private unless link sharing is enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional Audience name override. When omitted, the server names the Audience from the brief or the LLM detection result.
textNoLegacy alias for `brief`. Accepted for back-compat.
briefNoFree-text brief describing the population the Audience should represent. E.g. "California high school students grades 9-12", "Berlin Späti customers", "Spanish lawyers", "management team of Coca Cola". The server runs deep web research on this brief to find demographic / psychographic distributions from authoritative sources, then generates personas that proportionally reflect those distributions.
filesNoOptional already-uploaded research files. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset. The server analyzes these through the same extended screener/questionnaire path as the in-app New Audience uploader, including study roles, screening and quota rules, review distributions, and grounding provenance.
linksNoOptional URLs scraped server-side for additional context (e.g. an article describing the population).
keywordsNoOptional Exa web-search seeds added alongside the brief.
memberCountNoExact number of Minds to create. Pass this whenever the user states a size ("exactly 50 per region", "genau 50 Minds je Zelle") instead of relying on the server to parse the number out of the brief. When omitted, the size is inferred from the brief and, failing that, from the creation mode's evidence-based automatic sizing. Two separate refusals apply: 403 MODE_CAP above 20 in "balanced" mode (switch to segment_coverage or benchmark_depth), and 403 PLAN_LIMIT above your plan's per-Audience cap. The 6000 accepted here is the absolute system ceiling, not your allowance — call get_audience_limits for the real one. The Audience is never created at a partial size.
trainMembersNoOpt-in per-Mind training for large reviewed-dataset cohorts (default false). By default a reviewed-dataset Audience of more than ~40 Minds is bulk-created immediately ready: exact demographics, but no per-Mind research training (empty system prompt, no knowledge items). Set true to create those Minds untrained instead and enqueue each one through the same per-member training pipeline the in-app draft flow uses, preserving its deterministic cohort profile and the request locale. The tool still returns as soon as the Audience exists — training continues in the background (structuredContent.audience.memberTraining reports what was queued); poll each member with GET /api/v1/minds/{id}/training. Has no effect on Audiences whose members are already trained individually.
cohortAllocationNoDeterministic allocation controls. Reviewed respondent datasets default to observed, which preserves the strongest privacy-safe structural relationships while keeping exact marginals; other sources default to independence. Use distributionNames/maxDistributions to choose axes, minSegmentCount for a feasible floor, and seed for reproducible external runs.
groundingPreviewNoReview the quota axes BEFORE any Mind exists. When true, the server runs research grounding and returns the axes it would allocate on — with Study-outcome axes demoted and listed in flaggedDistributions — without creating an Audience or Minds and without consuming a generation allowance. Present the axes to the user for approval, then call again without groundingPreview (same brief and options) to create, passing any axis names to drop as excludeDistributions.
includeWebSearchNoSet false to skip Exa web search and extraction completely. The Audience is then grounded only on the brief and supplied files, links, keywords, and structurally parsed respondent data.
groupCreationModeNoLegacy alias for audienceCreationMode — same values, same behaviour. How the Audience is sized. "balanced" (default): compact and representative for everyday research. It is the only mode with a hard wall on a size you state — a memberCount above 20 is refused with 403 MODE_CAP. "segment_coverage": two representatives per limiting grounded cell, from a 10-Mind floor; automatic sizing stops at 50, but a memberCount you state is bounded only by your plan. "benchmark_depth": repeated representation of limiting grounded cells for validation-ready segmentation; bounded by your plan allowance. The deeper two require a Team (enterprise) plan — on other plans the server SILENTLY downgrades to "balanced" and echoes the effective mode in structuredContent.audience.audienceCreationMode. Call get_audience_limits to see the ceilings that apply to your account.
datasetSegmentationNoReviewed variable roles, distributions, and privacy-safe pairwise relationships returned by preview_audience_dataset_segmentation. Requires audienceCreationMode="benchmark_depth". Structural variables shape one generalizable representative cohort; outcomes remain held out and joint combinations remain audit evidence only. Copy `respondentCount` and `recommendedMindCount` through from the preview — they cap the cohort size.
audienceCreationModeNoHow the Audience is sized. "balanced" (default): compact and representative for everyday research. It is the only mode with a hard wall on a size you state — a memberCount above 20 is refused with 403 MODE_CAP. "segment_coverage": two representatives per limiting grounded cell, from a 10-Mind floor; automatic sizing stops at 50, but a memberCount you state is bounded only by your plan. "benchmark_depth": repeated representation of limiting grounded cells for validation-ready segmentation; bounded by your plan allowance. The deeper two require a Team (enterprise) plan — on other plans the server SILENTLY downgrades to "balanced" and echoes the effective mode in structuredContent.audience.audienceCreationMode. Call get_audience_limits to see the ceilings that apply to your account.
excludeDistributionsNoExact axis names (copied from a preview) that must not be used as cohort quotas. Applied deterministically after grounding; the evidence stays visible in reviewDistributions.
isLinkSharingEnabledNoSet true ONLY when the user explicitly asked for a public/shareable link. Defaults to false: the Audience is private to its owner and no share URL is generated. Enabling this publishes the Audience — including its grounding, sources and personas — at a world-readable URL that needs no login. Do not enable it to "be helpful".

TDQS

A4.7/5.0
Behavior5/5

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

The description substantially augments the annotations: it states idempotency ('is idempotent for identical inputs'), the privacy default ('keeps the Audience private unless link sharing is enabled' plus the explicit 'Do not enable it to be helpful' warning), silent downgrade behavior ('the server SILENTLY downgrades to balanced'), specific refusal codes (403 MODE_CAP, 403 PLAN_LIMIT), background training semantics, and the 'never created at a partial size' guarantee. No contradictions with readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false.

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 main description is a single dense, semicolon-heavy sentence — every clause earns its place and the core purpose is front-loaded. Parameter descriptions are verbose but each adds non-obvious operational detail. The density is justified for a 16-parameter tool, though splitting the lead sentence would improve scannability.

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 a 16-parameter, 0-required-param tool with no output schema, this is remarkably complete: it documents refusals, plan downgrades, the preview-then-create flow, background training polling (GET /api/v1/minds/{id}/training), file URL constraints, and output locations via structuredContent references. No significant gap for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage the baseline is 3, but the parameter docs add substantial operational meaning: memberCount explains the two refusal codes and the 6000 system ceiling vs. plan allowance, trainMembers explains the ~40-Mind bulk-creation default and queued training pipeline, isLinkSharingEnabled warns about world-readable publication, and files explains that local file:// paths are unreadable. This is far beyond schema-type documentation.

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 — 'Creates a grounded Audience of synthetic Minds from a population or audience brief' — and enumerates distinct capabilities (web research, provenance audits, sizing modes, background training, idempotency, privacy default). The title reinforces the purpose, and the resource (Audience creation) cleanly separates it from study-oriented siblings like create_study and ask_audience.

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?

The top-level description doesn't name sibling alternatives, but parameter docs embed strong workflow guidance: 'Call get_audience_limits for the real one' (memberCount), the groundingPreview two-call pattern ('Present the axes to the user for approval, then call again without groundingPreview'), and datasetSegmentation's requirement that audienceCreationMode="benchmark_depth". This provides clear when/how context, though it doesn't explicitly exclude sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_studyCreate a StudyA
Idempotent
Inspect

Creates a new Study workspace from existing Audiences or inline Audience configurations; it does not ask questions or run research. Follow-up research in an existing Study does not require another Study. Every questionnaire, survey, battery, section, cohesive question set, or request with two or more known questions belongs in one planned and confirmed multi-question block inside that Study. Never submit such a known set as separate direct questions. A direct question is appropriate only when exactly one standalone question is known or the next question depends on earlier results. Composite creation is atomic and rolls back partial Audience failures. Studies are private by default; enabling link sharing also publishes the attached Audiences and Minds.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the Study workspace (e.g., "Brand Perception Study", "Q4 Market Research")
groupIdsNoLegacy alias for audienceIds.
audienceIdsNoPreferred field for existing Audience IDs to attach — use list_audiences to find IDs.
groupConfigsNoLegacy alias for audienceConfigs.
audienceConfigsNoPreferred field for new Audiences to create and attach atomically.
isLinkSharingEnabledNoSet true ONLY when the user explicitly asked for a public/shareable Study link. Defaults to false: the Study is private to its owner and no share URL is generated. Enabling this ALSO publishes every attached Audience and every Mind inside them at world-readable URLs — including pre-existing Audiences passed via audienceIds. Do not enable it to "be helpful".

TDQS

A4.5/5.0
Behavior5/5

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

The description adds meaningful behavioral context beyond the annotations: composite creation is atomic and rolls back partial Audience failures, Studies are private by default, and enabling link sharing publishes attached Audiences and Minds. These are non-obvious side effects an agent needs to know. No contradiction with the annotations.

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, and every sentence contributes usage or behavioral guidance. The enumeration 'questionnaire, survey, battery, section, cohesive question set, or request with two or more known questions' is somewhat verbose but not padding.

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?

Combined with the rich schema and annotations, the description gives an agent enough to use the tool correctly: creation sources, multi-question workflow rules, atomicity, and privacy side effects. The only modest gap is that no output or return value is described, though no output schema exists.

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%, and the schema already documents each parameter, preferred vs legacy aliases, defaults, and the sharing side effect in detail. The description only reinforces the conceptual split between existing Audiences and inline configurations without adding new parameter-level semantics, so the baseline score of 3 is appropriate.

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 states a specific action and resource: 'Creates a new Study workspace from existing Audiences or inline Audience configurations.' It also explicitly distinguishes itself by noting it 'does not ask questions or run research,' which separates it from sibling tools like ask_study and ask_audience.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use and when-not-to-use guidance: follow-up research does not require another Study, multi-question sets must not be submitted as separate direct questions, and a direct question is appropriate only for a standalone or dependent next question. This is actionable routing guidance beyond simple context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_audienceExport Audience BriefA
Idempotent
Inspect

Exports an Audience brief through the same unified branded renderer used by the web app. Supports Markdown, PDF, DOCX, and PPTX. Binary artifacts are returned as base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRegenerate instead of returning a cached artifact.
formatNoExport format: "md" (default), "pdf", "docx", or "pptx"
groupIdNoLegacy alias for audienceId. Accepted for compatibility.
groupNameNoLegacy alias for audienceName. Accepted for compatibility.
audienceIdNoAudience ID (UUID).
audienceNameNoAudience name (fuzzy matched).

TDQS

A4/5.0
Behavior4/5

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

The description adds value beyond the annotations by disclosing that output uses the unified branded renderer, supports specific formats, and returns binary artifacts as base64. This is especially helpful because there is no output schema. It does not contradict the idempotentHint or destructiveHint annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler, with the key action and resource front-loaded. The format list and base64 return behavior each earn their place.

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?

Given the rich parameter schema and idempotent annotation, the description covers the essential outcomes: what is exported, supported formats, and return encoding. It lacks explicit prose about cached-artifact behavior or identifier selection, but the force parameter and schema descriptions cover those gaps. Without an output schema, the base64 statement is essential and present.

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 documents all parameters and aliases. The description adds no parameter-specific meaning beyond naming the export formats, which the schema already enumerates. Baseline 3 is appropriate.

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 uses a specific verb ('Exports') and resource ('an Audience brief'), which clearly distinguishes it from sibling tools like export_study, export_heatmap, and export_mind. The target resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for exporting audience briefs, but it does not explicitly state when to use it over the other export siblings or provide any when-not guidance. Sibling differentiation is left to inference from the tool name and the word 'Audience brief'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_heatmapExport Website HeatmapA
Idempotent
Inspect

Exports a completed website heatmap from a Study result, identified by the message ID reported with the completed result. Returns the same ZIP archive as the web app, including its unified-renderer PDF report, Markdown, images, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRegenerate the ZIP archive instead of returning the cached artifact.
panelIdNoStudy ID (UUID; legacy wire field name: panelId)
studyIdNoStudy ID (UUID).
messageIdYesID of the completed Study result containing the website heatmap. Completed Study results report this identifier when the answer carries a heatmap.
panelNameNoStudy name (fuzzy matched; legacy wire field name: panelName)
studyNameNoStudy name (fuzzy matched).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish idempotency and non-destructiveness. The description adds useful behavioral context by specifying the exact return artifact: the same ZIP archive as the web app, containing a PDF report, Markdown, images, and metadata. This goes beyond the structured annotations and does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with no filler. The first sentence front-loads the action and key identifier; the second specifies the output contents. Every clause contributes meaningful information.

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 a tool with a single required parameter and full schema coverage for optional parameters, the description provides everything needed to call it correctly: what is exported, where the identifier comes from, and what the returned artifact contains. The absence of an output schema is mitigated by the explicit description of the ZIP contents.

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?

The input schema has 100% description coverage for all six parameters, so the description is not required to explain parameter semantics. The description only reinforces messageId's role as the completed-result identifier, adding no information beyond the schema. Baseline 3 is appropriate.

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 uses a specific verb ('Exports') and clearly identifies the resource ('website heatmap') and source ('from a Study result' with 'message ID'). This differentiates it from sibling export tools like export_audience, export_mind, and export_study by resource type.

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?

The description gives a clear usage condition: export only a completed website heatmap identified by the message ID reported with the completed result. It does not explicitly name alternatives or exclusions, but the resource-specific wording makes the intended context unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_mindExport Mind Persona ProfileA
Idempotent
Inspect

Generates a branded profile for one existing Mind, identified by exact ID or fuzzy name. Markdown is returned inline by default; PDF, DOCX, and PPTX artifacts are returned as base64 with a workspace link.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRegenerate instead of returning a cached artifact.
formatNoExport format: "md" (default) markdown persona profile (returned inline), "pdf" portrait branded profile, "docx" Word document, "pptx" editable branded deck
mindIdNoMind ID (UUID)
mindNameNoMind name (fuzzy matched)

TDQS

A4.5/5.0
Behavior4/5

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

The description adds behavior beyond annotations by explaining the default return mode (inline Markdown) and the binary artifact behavior (base64 plus workspace link). Since annotations already indicate idempotence and non-destructiveness, this focused extra context is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, tightly written, front-loading the core action and then adding the return format distinction. No filler or redundant repetition of the title.

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?

Given no output schema, the description still provides enough: what is generated, how to identify the target, supported formats, and the return mode for each format. A complete call is derivable without additional assumptions.

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?

The schema covers all 4 parameters with descriptions, so the baseline is solid. The description adds useful context on how formats behave and clarifies that both exact ID and fuzzy name are valid identifiers, which helps an agent select the right operationally.

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 uses a specific verb and resource: 'Generates a branded profile for one existing Mind.' It clearly distinguishes itself from sibling export tools (export_group, export_panel, export_heatmap) by naming the target resource and the identifier mechanism.

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?

The description gives clear context: use this when exporting a profile for an existing Mind, identified by exact ID or fuzzy name. It does not explicitly name sibling export tools as alternatives, but the intended scope is unmistakable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_studyExport Study ResultsA
Idempotent
Inspect

Starts an asynchronous export of Study results and returns an export job ID. Supports executive briefs and full reports in PDF, DOCX, PPTX, or Markdown, plus raw data in CSV, XLS, or SPSS SAV.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoReport kind. Defaults to full_report, except CSV/XLS/SAV which default to raw_data.
forceNoRegenerate instead of returning a cached artifact.
formatNoExport format: "pdf" (default), "docx", "pptx", "csv", "xls", "sav", or "md" (also accepts "markdown"). Executive-summary and full-report PPTX exports use a slide-native 16:9 layout.
lengthNoRequested report detail for executive_brief and full_report exports.
panelIdNoStudy ID (UUID; legacy wire field name: panelId). Omit both panelId and panelName only when exporting the active Study from this MCP session.
studyIdNoStudy ID (UUID). Omit with studyName to export the active Study.
panelNameNoStudy name (fuzzy matched; legacy wire field name: panelName). Omit both panelName and panelId only when exporting the active Study from this MCP session.
studyNameNoStudy name (fuzzy matched). Omit with studyId to export the active Study.
scheduledRunIdNoExport only the messages produced by one scheduled run of this Study, instead of the whole timeline. Use the run ID from the Study schedule history.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish idempotence and non-destructiveness, so the description's added value is its clarification that exports are asynchronous and yield a job ID. This is behavior beyond the structured annotations and helps an agent know not to expect the artifact in the immediate response. Some context, such as how to retrieve completion status, is left implicit but is not critical for the call itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two focused, front-loaded sentences: it immediately conveys the asynchronous behavior and return value before listing supported outputs. No filler or redundant explanation.

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 tool with 9 parameters but comprehensive schema descriptions, the description gives enough high-level orientation around purpose, formats, and the job-ID return. It lacks only minor operational detail such as how to poll the eventual export status, but the return contract is explicit and the remaining complexity is handled by the schema.

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?

The input schema has 100% parameter description coverage, so the schema already explains every parameter thoroughly. The description's format summary is helpful orientation but doesn't add significant semantic meaning beyond the schema. The 3 baseline is appropriate because the schema carries the semantic load.

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 names a specific action and resource ('starts an asynchronous export of Study results') and clearly separates this from sibling exporters like export_audience, export_heatmap, and export_mind by scoping it to Study results. It also states what the caller receives: an export job ID.

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?

The description gives clear context for when to call it: when exporting Study results asynchronously, in one of several listed formats. It does not explicitly name sibling tools or say when not to use them, but the resource scope and format list are enough to route an agent correctly in most cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_audience_limitsGet Audience LimitsA
Read-onlyIdempotent
Inspect

Call this before creating an Audience whenever a size is in play — the user named a number, asked for "as many as possible", or you are choosing a creation mode. Returns the ceilings that apply to THIS account: the per-Audience plan cap including any negotiated Enterprise allowance, the custom-size maximum, and per-mode ceilings.

Read the two mode ceilings carefully, they are different things: automaticSizingCeiling bounds the size the server picks when you send no memberCount, while explicitCountCeiling bounds a size you state. Only "balanced" has the latter — exceed it and creation is refused with MODE_CAP. In the deeper modes a stated size is bounded by memberCap alone.

Prefer calling this over guessing: being refused mid-creation is expensive, because the build has already been enqueued by then.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoReport only this creation mode. Omit to see every mode.

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark this as read-only and idempotent, and the description adds substantial behavioral context beyond that: it distinguishes automaticSizingCeiling from explicitCountCeiling, explains that only 'balanced' mode has the explicit ceiling, and discloses the MODE_CAP refusal behavior and the fallback to memberCap. This goes far beyond what the annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a bold, actionable directive, followed by precise, non-redundant details about the returned ceilings and failure behavior. Every sentence earns its place, and the warning about expensive mid-creation failures justifies the tool's importance without fluff.

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 a read-only, optional-parameter tool, the description fully covers when to call it, what it returns, how the mode parameter alters behavior, and what error occurs on exceeding a ceiling. Even without an output schema, it enumerates the key returned fields and their semantics, leaving no critical gap for an agent deciding to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents the optional mode parameter at 100% coverage, and the description adds meaning by explaining what each mode ceiling represents and how mode choice affects which ceiling applies. It clarifies the consequences of omitting memberCount and of stating a size, making the mode parameter semantically richer than the schema alone.

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 uses a specific verb and resource ('returns the ceilings that apply to THIS account') and clearly frames the tool as a pre-creation check for Audience sizes. It distinguishes itself from creation and listing siblings by emphasizing that it reports limits rather than creating or listing anything.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use triggers: 'Call this before creating an Audience whenever a size is in play', with concrete examples like a named number, 'as many as possible', or choosing a creation mode. It also actively recommends the tool over guessing, explaining the cost of being refused mid-creation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_study_runGet Multi-Question Run StatusA
Read-onlyIdempotent
Inspect

Returns durable progress or results for one confirmed multi-question run inside a Study, including its immutable confirmed plan, server-prepared execution plan, respondent-visible question audit, question progress, response artifacts, deterministic method calculations, and stage readiness.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdNoMulti-question run ID returned by run_study_questions. Preferred.
panelIdNoLegacy alias for the Study workspace ID. Accepted for compatibility.
studyIdNoStudy workspace ID (UUID). When panelId is supplied for compatibility, studyId may carry the legacy run identifier.
panelNameNoLegacy alias for studyName. Accepted for compatibility.
studyNameNoStudy workspace name for fuzzy matching.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds substantial context beyond annotations by detailing the exact contents of the response (immutable plan, execution plan, question audit, progress, artifacts, deterministic calculations, stage readiness). This is especially valuable given there is no output schema.

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 result is front-loaded in the first clause, and the long enumeration of response components is information-dense rather than redundant. It is a single well-structured sentence, though slightly long due to the itemized list.

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?

With no output schema, the description compensates by enumerating the returned artifacts and noting durability. It also clarifies the run is inside a Study and confirmed, which helps set expectations. It does not mention error cases or how to choose among the five optional identifiers, but the schema covers the identifiers fully.

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%, and each parameter has a clear explanatory description, including which is preferred (runId) and which are legacy aliases. The description adds no new parameter-level meaning; baseline 3 applies when schema carries the full burden.

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?

Description uses a specific verb ('Returns') and a specific resource ('progress or results for one confirmed multi-question run inside a Study'), followed by a precise enumeration of returned components. This clearly distinguishes it from sibling tools like get_study_status and get_study_summary that operate at the study level rather than the run level.

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?

The phrase 'one confirmed multi-question run' implies this is called after a run has been created, giving clear context. However, it does not explicitly state when not to use it or name alternatives such as get_study_status, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_study_statusGet Study StatusA
Read-onlyIdempotent
Inspect

Returns the current Study state, live progress for in-flight questions, completed per-Audience results, linked Minds, Study links, and the status of a specific asynchronous export job when export identifiers are supplied. Values can be numeric answers or classified summary labels; message fields contain the original Mind responses when available. locale is the Study display locale, not a guarantee of the language of every response.

ParametersJSON Schema
NameRequiredDescriptionDefault
panelIdNoStudy ID (UUID; legacy wire field name: panelId). Omit both panelId and panelName only for the active Study from this MCP session.
studyIdNoStudy ID (UUID). Omit with studyName to use the active Study.
panelNameNoStudy name (fuzzy matched; legacy wire field name: panelName). Omit both panelName and panelId only for the active Study from this MCP session.
studyNameNoStudy name (fuzzy matched). Omit with studyId to use the active Study.
exportKindNoAsynchronous export kind whose status should be returned (defaults to full_report).
exportJobIdNoExport job ID returned by export_study. Pass it with exportKind and exportFormat to poll that exact artifact.
exportFormatNoAsynchronous export format whose status should be returned (defaults to pdf). HTML and PNG are accepted here only to finish polling previously created executive-summary jobs.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is known. The description adds meaningful nuance: values may be numeric answers or classified labels, message fields contain original Mind responses when available, and locale is only the display locale, not a language guarantee. These go beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: the first is front-loaded with the primary return resource and its major categories, the second clarifies value semantics, and the third adds an important locale caveat. Every sentence earns its place and no schema content is redundantly repeated.

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 read-only status tool with no output schema, the description inventories the main return categories and clarifies ambiguous fields (values, message, locale). It does not specify the exact export job states or response shape, but the annotations and detailed parameter schema make the description sufficient for selection and invocation.

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 coverage is 100% and each parameter is already documented in detail, including legacy field names, UUID formats, defaults, and omission rules for the active Study. The description adds only the general notion that export identifiers trigger job-status mode, which the schema already supports for the individual parameters. This meets the baseline but does not materially extend 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 opens with a specific verb ('Returns') and names the resource ('current Study state'), then enumerates distinct facets: live progress, completed per-Audience results, linked Minds, Study links, and export job status. This clearly distinguishes it from siblings like get_study_summary or get_study_run, and the export-polling mode is explicitly identified.

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?

The description gives clear context for when the tool applies: querying overall study state, and specifically polling an asynchronous export when export identifiers are supplied. It does not explicitly name alternatives or state when not to use it, but the trigger condition for the export-job mode is stated clearly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_study_summaryGet Study SummaryA
Idempotent
Inspect

Returns or refreshes the semantic summary for a Study as Markdown plus flexible evidence blocks. Website, image, and video analyses retain heatmap-compatible block metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRegenerate even when the covered message range is unchanged.
lengthNostandard
panelIdNoStudy ID (UUID; legacy wire field name: panelId). Omit both panelId and panelName only for the active Study from this MCP session.
refreshNoGenerate or refresh the summary instead of only reading the persisted summary.
studyIdNoStudy ID (UUID). Omit with studyName to use the active Study.
panelNameNoStudy name for fuzzy matching (legacy wire field name: panelName). Omit both panelName and panelId only for the active Study from this MCP session.
studyNameNoStudy name for fuzzy matching. Omit with studyId to use the active Study.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already convey idempotency, non-read-only behavior, and non-destructiveness. The description adds that the tool can 'refresh' a summary rather than only reading it, and that output retains heatmap-compatible metadata, but it does not discuss side effects, rate limits, or what regeneration entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action and output format are front-loaded, and the second sentence adds relevant, non-redundant detail about metadata retention.

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?

The description gives a solid high-level picture of the return format and refresh behavior, but lacks detail about what 'flexible evidence blocks' means and does not situate the tool among related siblings. Given no output schema and a 7-parameter surface, the description is adequate but leaves meaningful gaps.

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 high at 86%, with detailed parameter descriptions for force, length, refresh, and Study identifiers. The tool description itself adds no parameter-specific semantics, so the baseline score of 3 applies.

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 uses a specific verb ('Returns or refreshes') with a clear resource ('semantic summary for a Study') and output format ('Markdown plus flexible evidence blocks'). It is distinct from sibling tools like get_study_run and get_study_status, which target run state and status rather than the semantic summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance about when to use this tool versus alternatives such as get_study_run, get_study_status, or export_study. Some context about active Study selection exists in parameter descriptions, but the tool description itself does not provide usage direction or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_audiencesList AudiencesA
Read-onlyIdempotent
Inspect

Lists the authenticated user's Audiences, including member Minds, sharing state, and workspace or shared links. Accepts an optional fuzzy name search.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchQueryNoSearch for an Audience by name (fuzzy matching supported)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds value by disclosing the composition of returned lists (member Minds, sharing state, links) and the fuzzy-search capability, which are not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler; the primary action and the optional parameter are front-loaded. Every clause adds information.

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?

The tool is simple (one optional param, read-only, no output schema), and the description covers the main output facets and search behavior. It does not mention pagination or empty-result behavior, but these are minor for a straightforward list tool.

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% for the single searchQuery parameter, and the description largely restates the schema's fuzzy-name-search semantics. It adds 'optional' but no new meaning beyond the schema, so baseline 3 applies.

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 clear verb ('Lists') and resource ('the authenticated user's Audiences'), and adds specific content details (member Minds, sharing state, links) that distinguish it from sibling list tools like list_studies. The optional fuzzy search is also noted. This is a specific, non-tautological definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for browsing the user's audiences and offers an optional search, but it does not explicitly state when to prefer this over alternatives such as ask_audience or export_audience. No exclusions or alternative routing are provided, so an agent must infer usage from the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_research_methodsList Research MethodsA
Read-onlyIdempotent
Inspect

Lists Minds research methods with availability, complexity, executable status, and fallback metadata. Results distinguish currently executable methods from experimental or planned methods.

ParametersJSON Schema
NameRequiredDescriptionDefault
includePlannedNoInclude methods that are currently planned/non-executable so the model can explain framework compatibility. Availability is dynamic; only entries with executable:true can run.

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds meaningful behavioral detail: availability is dynamic and only entries with executable:true can actually run. It also mentions fallback metadata, which is useful beyond the structured annotation info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences front-load the main purpose and immediately clarify the executable-versus-planned distinction. Every clause contributes meaning; no redundancy or 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?

This is a straightforward read-only list tool with one optional parameter, and the description covers the primary output fields. There is no output schema, so the description's list of availability, complexity, executable status, and fallback metadata provides enough context for an agent to understand what it will receive without over-explaining.

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% and the includePlanned parameter is well-explained in the schema itself. The tool description does not add any additional parameter-specific meaning, so this stays at the baseline 3.

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 uses a specific verb and resource ('Lists Minds research methods') and clearly states the key reported attributes: availability, complexity, executable status, and fallback metadata. It also distinguishes the distinction between executable and planned methods, which separates it from sibling list tools like list_groups and list_panels.

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?

The description gives clear context on when this tool is useful—when you need to know which research methods are executable versus experimental/planned. The parameter description reinforces this by saying the model can 'explain framework compatibility,' but no explicit alternative tools or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_studiesList StudiesA
Read-onlyIdempotent
Inspect

Lists the authenticated user's Studies with their Audiences, Minds, status, sharing state, and workspace or shared links. Accepts an optional fuzzy name search. A Study is the persistent workspace that contains its Audiences, questions, multi-question blocks, results, exports, and history.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchQueryNoSearch for a Study by name (fuzzy matching supported)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description does not need to restate safety. It adds useful behavioral context: the scope is limited to the authenticated user's Studies, and it specifies which fields are returned and that name search is fuzzy. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the operation and resource, followed by a crisp definition of a Study. No filler or redundancy; every clause adds information.

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 a simple read-only list operation with one optional parameter and no output schema, the description covers scope, returned fields, filtering, and the domain concept. Nothing essential for calling the tool correctly is missing.

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?

The single parameter searchQuery is already fully described in the schema (fuzzy matching by Study name); the description essentially repeats 'optional fuzzy name search'. With 100% schema coverage, no additional parameter semantics are needed.

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 ('Lists'), a clear resource ('the authenticated user's Studies'), and enumerates the included fields (Audiences, Minds, status, sharing state, links). This makes the tool's purpose unambiguous and distinguishes it from resource-specific siblings like list_audiences and list_study_drafts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need a user's Studies along with their associated data and optional fuzzy name search. However, it gives no explicit guidance about when to prefer list_study_drafts, list_audiences, or other sibling tools, and mentions no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_study_draftsList Study DraftsA
Read-onlyIdempotent
Inspect

Lists durable unfinished study drafts, or returns the complete saved planning state for one exact draft ID. Draft records are distinct from running or completed studies.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftIdNoExact study draft ID to retrieve. Omit to list all resumable study drafts owned by the authenticated user.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description builds on that by adding that it covers durable unfinished drafts and returns the complete saved planning state for an exact ID. No contradiction is present, and the additional context is useful for invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences deliver the core function and key distinction with no filler. The most important usage distinction is front-loaded before the clarifying sentence about draft records.

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 tool with a single optional parameter and read-only annotations, the description covers what it lists, what it retrieves by ID, and how drafts relate to other study statuses. The absence of an output schema means return format details are not fully specified, but the description gives enough context for effective selection and use.

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?

The schema already fully documents the optional draftId with 100% coverage, so the baseline is 3. The description adds meaningful operational meaning beyond the schema by linking draftId omission to listing and draftId presence to returning saved planning state.

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 names a precise verb and resource: listing durable unfinished study drafts or retrieving a complete saved planning state for one draft ID. It also explicitly distinguishes draft records from running or completed studies, which differentiates the tool from planning/run siblings.

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?

The description gives clear context by describing both operating modes and noting that drafts are separate from running or completed studies. It implies when to use this tool for resumable drafts rather than active studies, though it does not explicitly name alternative sibling tools or provide direct when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_study_questionsPlan a Multi-Question Block in a StudyAInspect

Creates or revises a non-executing draft for a multi-question plan inside an existing Study. Applicability: this is the setup operation for every questionnaire, survey, battery, section, cohesive question set, or request containing two or more known questions—even when the user did not say “study.” Include every question known now in this ONE draft, group related questions into cohesive named modules (question blocks or batteries), preserve their logical order, and execute them later as one confirmed run inside the Study. Never split a known set across one-question drafts or sequential runs. A one-question draft is valid only for genuinely standalone research; an adaptive follow-up whose wording depends on unavailable results can be planned later. The draft records intent, respondent-visible stimulus and questions, response formats, locale, method, outputs, confirmation questions, and revision metadata. It does not start research. When the user supplies a fixed or pre-registered instrument whose wording, order, and response formats must not change, pass it as questions (one entry per item with its exact response contract) instead of request; the planner is then bypassed and the draft is an exact transcription. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoThe 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. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.
answersNoAnswers to the draft confirmation questions.
panelIdNoStudy ID (UUID; legacy wire field name: panelId). Omit both panelId and panelName only to continue the active Study from this MCP session.
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.
studyIdNoStudy ID (UUID). Omit with studyName to continue the active Study.
revisionNoCurrent draft revision; required with draftPlanId.
panelNameNoStudy name for fuzzy matching (legacy wire field name: panelName). Omit both panelName and panelId only to continue the active Study from this MCP session.
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. Repeated question texts or colliding ids are rejected.
studyNameNoStudy name for fuzzy matching. Omit with studyId to continue the active Study.
refinementNoHow the user wants the existing draft changed.
attachmentsNoFiles available to the planned Study. Without questionAttachments every question receives every file. With questionAttachments each question receives only its assigned files. Give each scoped file a stable id. Remote URLs are copied into durable Minds storage before the draft is saved. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.
draftPlanIdNoExisting draft ID to revise after the user answers a confirmation question.
studyLocaleNoLanguage for the plan, questions, responses, labels, and summary. Set this explicitly when the user requests a language.
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.
questionResponsesNoExplicit response-format edits, one entry per question. Each entry needs questionId (from the latest draft) plus type qualitative, categorical, multiselect, or scale with an inclusive integer scaleRange.
questionAttachmentsNoQuestion-to-file mapping. It may cover a subset of the planned questions: mapped questions receive exactly the named attachments, unmapped questions keep every study-level file. Each question at most once; every referenced attachment id must resolve.
suggestQuestionStimuliNoDefault true. Lets the planner tie an attached image, video, or document to the one question that is about it (attachmentIds on those questions). Pass false to leave questions unassigned unless questionAttachments names them.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations are thin (only readOnlyHint=false, destructiveHint=false), so the description carries the burden and delivers: it affirms mutation yet non-execution, discloses the planner-bypass for fixed instruments ('the planner is then bypassed and the draft is an exact transcription'), and states hard asset constraints (no file:// read/upload, durable storage import, 'The Study refuses to start if Minds cannot read the asset'). No contradiction with the annotations; the non-destructive draft semantics align with destructiveHint=false.

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?

Roughly 220 words for a 17-parameter, dual-mode tool, and nearly every sentence earns its place: applicability, exclusions, draft contents, non-execution, fixed-instrument path, and asset constraints. It is front-loaded with the core purpose. Minor redundancy: the file:// constraint is repeated extensively in the schema and could be trimmed in the description.

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 tool with two mutually exclusive modes, 17 parameters, attachment workflows, and no output schema, the description covers the critical operational facts: what the draft records (intent, stimuli, questions, response formats, locale, method, outputs, confirmation questions, revision metadata), that it doesn't execute, and the asset-readability precondition. Minor gap: the confirmation-question → answers → revision loop (draftPlanId/revision) is only implied, not spelled out as a workflow.

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 description coverage is 100%, so the schema already documents all 17 parameters; the baseline is 3. The description adds genuine cross-parameter decision guidance beyond the schema: choose questions instead of request for fixed instruments, include every known question in ONE request, and never split known sets into per-question drafts. That lifts it above baseline.

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 action (creates or revises a non-executing draft), the resource (multi-question plan inside an existing Study), and the key constraint (non-executing). It also pins the scope precisely as the setup operation for every multi-question request, even when the user doesn't say 'study.' The phrase 'It does not start research' and 'non-executing draft' clearly separate it from execution-oriented siblings like run_study_questions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit applicability ('setup operation for every questionnaire, survey, battery, section, cohesive question set'), explicit exclusions ('A one-question draft is valid only for genuinely standalone research'), and a hard never-rule ('Never split a known set across one-question drafts or sequential runs'). It also routes to the alternative execution path ('execute them later as one confirmed run inside the Study') and to the fixed-instrument mode via the questions parameter instead of request.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_study_questionsRun a Confirmed Multi-Question BlockA
Idempotent
Inspect

Executes the exact stored multi-question draft revision inside the target Study after explicit confirmation. One execution submits the ENTIRE draft—all named modules and all questions—as one durable run. Never execute each known question separately and never create one run per module. This operation is valid only after the person explicitly confirms the exact draft revision. The server reloads and validates the revision, method availability, runner configuration, reviewed capabilities, optional advanced-method consent, and idempotency key before queuing durable research. MCP cannot upload or read a local file:// path: attach the file through the client and use its signed HTTPS URL, upload it to Minds first, or use another fetchable HTTPS URL. Before invoking any Mind or using Study quota, the server verifies that required respondent-visible source material is readable and refuses the entire run if it is not.

ParametersJSON Schema
NameRequiredDescriptionDefault
panelIdNoStudy ID (UUID; legacy wire field name: panelId). Omit both panelId and panelName only to run the confirmed draft in the active Study from this MCP session.
studyIdNoStudy ID (UUID). Omit with studyName to run in the active Study.
groupIdsNoLegacy alias for audienceIds. Accepted for compatibility.
revisionYesExact draft revision the user reviewed.
confirmedYesMust be true only after the user explicitly confirms this exact draft revision.
panelNameNoStudy name for fuzzy matching (legacy wire field name: panelName). Omit both panelName and panelId only to run the confirmed draft in the active Study from this MCP session.
studyNameNoStudy name for fuzzy matching. Omit with studyId to run in the active Study.
audienceIdsNoOptional subset of the Study's Audiences to include.
draftPlanIdYesExact draft plan ID returned by plan_study_questions.
idempotencyKeyNoStable UUID for safe retries.
advancedMethodOptInNoExplicit opt-in for an advanced method. Omit or false to keep simple methods.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already indicate a non-read-only, idempotent operation, and the description adds substantial behavioral context: server-side validation of revision, method availability, runner configuration, reviewed capabilities, consent, and idempotency key; refusal of the entire run when source material is unreadable; and the MCP file:// limitation. No contradiction with annotations.

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 description is dense but purposeful, with each sentence contributing operational guidance: single-run behavior, confirmation requirement, server validations, file:// constraint, and readability refusal. It loses one point for mild redundancy about explicit confirmation and a long validator list that could be slightly tightened.

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 11-parameter, high-stakes execution tool with no output schema, the description covers the essential preconditions, failure modes, and invocation constraints: confirmation, monolithic execution, idempotency, advanced-method opt-in, file path limitations, and source-material accessibility. Combined with the detailed schema, an agent has sufficient context to call it 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 every parameter is already documented in detail. The description reinforces the confirmation gate, idempotency key role, and advanced-method consent, but it does not add significant meaning for individual parameters beyond what the schema already provides.

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 clearly states that this tool 'Executes the exact stored multi-question draft revision inside the target Study after explicit confirmation.' It also clarifies the critical distinction from fragmented usage: one execution submits the entire draft as one durable run, not per-question or per-module runs.

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?

The description explicitly says this operation is valid only after explicit confirmation, and gives a clear 'never' instruction against executing questions separately or creating per-module runs. However, it does not name alternative sibling tools, such as plan_study_questions or get_study_run, so routing guidance is present but not fully complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_study_draftSave Study DraftAInspect

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 require the exact draft ID and expected revision, and stale writes are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoPlanning mode to restore. Defaults to custom for agent-authored planning state.custom
nameNoSidebar name for the Study draft.
notesNoAdditional research context or constraints.
draftIdNoExisting Study draft ID to revise. Omit to create a new durable draft.
websiteNoPrimary website associated with the research context.
groupIdsNoLegacy alias for audienceIds. Accepted for compatibility.
methodIdNoResearch method selected for the draft. Use list_research_methods as the availability authority.guided-research
objectiveNoResearch objective or intent captured so far.
questionsNoManual research questions in their intended order.
sourceUrlsNoOrdered source URLs supplied as Study context.
audienceIdsNoExisting Audience IDs selected for the Study. Preferred.
currentStepNoExact planner step to reopen, such as context, audiences, method, questions, or confirm. The legacy value groups remains accepted when reopening an older draft.context
expectedRevisionNoExact current revision. Required with draftId so stale updates cannot overwrite newer planning state.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations are all negative signals (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the description carries the full behavioral burden. It discloses two non-obvious traits: revisions require the exact draftId plus expectedRevision pairing, and stale writes are rejected — a concurrency guarantee that materially changes how an agent must invoke an update. This is exactly the kind of context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero filler: scope, persisted state, and concurrency rule each earn their place, and the primary purpose is front-loaded in the first clause. The ~48-word length is appropriate because the schema already carries parameter-level detail, so the description does not repeat it.

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 mutating tool with zero required parameters and no output schema, the definition thoroughly covers the invocation contract: what state is saved, how revisions behave, and when it does not apply. The one gap is the return contract — it never states that a create returns a draftId, which a downstream workflow would need for later revisions or a subsequent create_study call, so the agent must infer it.

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% with rich per-parameter descriptions (e.g., groupIds is a 'Legacy alias for audienceIds', methodId defers to list_research_methods), establishing a baseline of 3. The description adds framing on top: it groups the 13 parameters into a coherent persisted state bundle and reinforces the draftId/expectedRevision dependency that underlies the stale-write guard.

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?

Opens with a specific verb-resource pair — "Creates or checkpoints an unfinished Quick or Custom Study draft" — and delimits scope with "without starting research," which distinguishes it from the create_study sibling. The sentence enumerating exactly what gets saved (objective, Audiences, method, questions, sources, planner step) further pins down what the tool owns.

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?

The description establishes clear context: this tool persists incomplete planner state for later restoration, and "without starting research" signals a when-not condition. It stops short of naming the explicit alternatives (create_study for launching a study, list_study_drafts for reading drafts), so routing to siblings relies on inference rather than an explicit when-to-use/when-not-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updates
    • Changedcreate_audience_from_brief2 fields changed
      • addedInput schema / properties / excludeDistributions
        Added value: +{
        +  "description": "Exact axis names (copied from a preview) that must not be used as cohort quotas. Applied deterministically after grounding; the evidence stays visible in reviewDistributions.",
        +  "items": {
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 200,
        +  "type": "array"
        +}
      • addedInput schema / properties / groundingPreview
        Added value: +{
        +  "description": "Review the quota axes BEFORE any Mind exists. When true, the server runs research grounding and returns the axes it would allocate on — with Study-outcome axes demoted and listed in flaggedDistributions — without creating an Audience or Minds and without consuming a generation allowance. Present the axes to the user for approval, then call again without groundingPreview (same brief and options) to create, passing any axis names to drop as excludeDistributions.",
        +  "type": "boolean"
        +}
    • Changedplan_study_questions2 fields changed
      • addedInput schema / properties / idempotencyKey
        Added value: +{
        +  "description": "Optional 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.",
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / questions
        Added value: +{
        +  "description": "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. Repeated question texts or colliding ids are rejected.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "description": "Stable item id (lower-cased to a slug). Defaults to q<position>.",
        +        "maxLength": 80,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "module": {
        +        "description": "Optional module (battery) label. Consecutive questions with the same label form one module.",
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "response": {
        +        "additionalProperties": false,
        +        "description": "Exact response contract for this item: type qualitative, categorical (with categoricalOptions), multiselect, or scale (with inclusive integer scaleRange).",
        +        "properties": {
        +          "categoricalOptions": {
        +            "description": "Predefined answer choices; only valid for categorical or multiselect responses.",
        +            "items": {
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "maxItems": 100,
        +            "minItems": 2,
        +            "type": "array"
        +          },
        +          "maxSelections": {
        +            "description": "Maximum choices a respondent may select; only valid for multiselect responses.",
        +            "maximum": 100,
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "scaleRange": {
        +            "description": "Inclusive integer response range as [minimum, maximum]; required for scale responses.",
        +            "items": {
        +              "maximum": 100,
        +              "minimum": -100,
        +              "type": "integer"
        +            },
        +            "maxItems": 2,
        +            "minItems": 2,
        +            "type": "array"
        +          },
        +          "type": {
        +            "enum": [
        +              "qualitative",
        +              "categorical",
        +              "multiselect",
        +              "scale"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      "text": {
        +        "description": "Exact respondent-visible question text, including any anchors or labels. Stored as given.",
        +        "maxLength": 2000,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "text",
        +      "response"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 200,
        +  "minItems": 1,
        +  "type": "array"
        +}
  2. 2 tool updates
    • Changedexport_study2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Export format: \"pdf\" (default), \"html\" or \"png\" for executive summaries, \"docx\", \"pptx\", \"csv\", \"xls\", \"sav\", or \"md\" (also accepts \"markdown\"). Executive-summary PPTX exports use a slide-native 16:9 layout."New value: +"Export format: \"pdf\" (default), \"docx\", \"pptx\", \"csv\", \"xls\", \"sav\", or \"md\" (also accepts \"markdown\"). Executive-summary and full-report PPTX exports use a slide-native 16:9 layout."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "pdf",
        -  "html",
        -  "png",
        -  "docx",
        -  "pptx",
        -  "csv",
        -  "xls",
        -  "sav",
        -  "md",
        -  "markdown"
        -]New value: +[
        +  "pdf",
        +  "docx",
        +  "pptx",
        +  "csv",
        +  "xls",
        +  "sav",
        +  "md",
        +  "markdown"
        +]
    • Changedget_study_status1 field changed
      • changedInput schema / properties / exportFormat / description
        Previous value: -"Asynchronous export format whose status should be returned (defaults to pdf)."New value: +"Asynchronous export format whose status should be returned (defaults to pdf). HTML and PNG are accepted here only to finish polling previously created executive-summary jobs."
  3. 1 tool update
    • Changedplan_study_questions2 fields changed
      • changedInput schema / properties / questionAttachments / description
        Previous value: -"Complete question-to-file mapping. When present, every planned question must appear exactly once and every referenced attachment id must resolve."New value: +"Question-to-file mapping. It may cover a subset of the planned questions: mapped questions receive exactly the named attachments, unmapped questions keep every study-level file. Each question at most once; every referenced attachment id must resolve."
      • addedInput schema / properties / suggestQuestionStimuli
        Added value: +{
        +  "description": "Default true. Lets the planner tie an attached image, video, or document to the one question that is about it (attachmentIds on those questions). Pass false to leave questions unassigned unless questionAttachments names them.",
        +  "type": "boolean"
        +}
  4. 2 tool updates
    • Changedcreate_audience_from_brief4 fields changed
      • changedInput schema / properties / audienceCreationMode / description
        Previous value: -"Audience creation mode. Preferred. Use balanced for everyday research, segment_coverage for coverage of limiting grounded cells, or benchmark_depth for validation-ready repeated representation."New value: +"How the Audience is sized. \"balanced\" (default): compact and representative for everyday research. It is the only mode with a hard wall on a size you state — a memberCount above 20 is refused with 403 MODE_CAP. \"segment_coverage\": two representatives per limiting grounded cell, from a 10-Mind floor; automatic sizing stops at 50, but a memberCount you state is bounded only by your plan. \"benchmark_depth\": repeated representation of limiting grounded cells for validation-ready segmentation; bounded by your plan allowance. The deeper two require a Team (enterprise) plan — on other plans the server SILENTLY downgrades to \"balanced\" and echoes the effective mode in structuredContent.audience.audienceCreationMode. Call get_audience_limits to see the ceilings that apply to your account."
      • changedInput schema / properties / groupCreationMode / description
        Previous value: -"Audience creation mode. \"balanced\" (default): compact, representative Audience for everyday research. \"segment_coverage\": two representatives per limiting grounded audience cell, with a 10-Mind evidence floor and 50-Mind mode ceiling. \"benchmark_depth\": repeated representation of limiting grounded audience cells for validation-ready benchmark / survey-style segmentation, with the paid allowance as its ceiling. The deeper modes require a Team (enterprise) plan — on other plans the server SILENTLY downgrades to \"balanced\" and echoes the effective mode in the response (structuredContent.audience.audienceCreationMode). This field is the legacy alias for audienceCreationMode."New value: +"Legacy alias for audienceCreationMode — same values, same behaviour. How the Audience is sized. \"balanced\" (default): compact and representative for everyday research. It is the only mode with a hard wall on a size you state — a memberCount above 20 is refused with 403 MODE_CAP. \"segment_coverage\": two representatives per limiting grounded cell, from a 10-Mind floor; automatic sizing stops at 50, but a memberCount you state is bounded only by your plan. \"benchmark_depth\": repeated representation of limiting grounded cells for validation-ready segmentation; bounded by your plan allowance. The deeper two require a Team (enterprise) plan — on other plans the server SILENTLY downgrades to \"balanced\" and echoes the effective mode in structuredContent.audience.audienceCreationMode. Call get_audience_limits to see the ceilings that apply to your account."
      • changedInput schema / properties / memberCount / description
        Previous value: -"Exact number of Minds to create in the Audience. Pass this whenever the user states a size (\"exactly 50 per region\", \"genau 50 Minds je Zelle\") instead of relying on the server to parse the number out of the brief prose. When omitted, the size is inferred from the brief and, failing that, from the creation mode's evidence-based automatic sizing. Rejected with 403 PLAN_LIMIT when it exceeds the plan's per-Audience cap; the Audience is never created at a partial size."New value: +"Exact number of Minds to create. Pass this whenever the user states a size (\"exactly 50 per region\", \"genau 50 Minds je Zelle\") instead of relying on the server to parse the number out of the brief. When omitted, the size is inferred from the brief and, failing that, from the creation mode's evidence-based automatic sizing. Two separate refusals apply: 403 MODE_CAP above 20 in \"balanced\" mode (switch to segment_coverage or benchmark_depth), and 403 PLAN_LIMIT above your plan's per-Audience cap. The 6000 accepted here is the absolute system ceiling, not your allowance — call get_audience_limits for the real one. The Audience is never created at a partial size."
      • changedInput schema / properties / memberCount / maximum
        Previous value: -9007199254740991New value: +6000
    • Addedget_audience_limits
  5. 3 tool updates
    • Changedask_audience1 field changed
      • addedInput schema / properties / attachments / items / properties / id
        Added value: +{
        +  "description": "Stable asset ID used by questionAttachments to assign this file to specific planned questions.",
        +  "maxLength": 255,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedask_study1 field changed
      • addedInput schema / properties / attachments / items / properties / id
        Added value: +{
        +  "description": "Stable asset ID used by questionAttachments to assign this file to specific planned questions.",
        +  "maxLength": 255,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedplan_study_questions3 fields changed
      • changedInput schema / properties / attachments / description
        Previous value: -"Files that every question in this planned Study must evaluate. Use one distinct entry per creative (for example four A/B/C/D videos). Remote URLs are copied into durable Minds storage before the draft is saved. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."New value: +"Files available to the planned Study. Without questionAttachments every question receives every file. With questionAttachments each question receives only its assigned files. Give each scoped file a stable id. Remote URLs are copied into durable Minds storage before the draft is saved. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
      • addedInput schema / properties / attachments / items / properties / id
        Added value: +{
        +  "description": "Stable asset ID used by questionAttachments to assign this file to specific planned questions.",
        +  "maxLength": 255,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / questionAttachments
        Added value: +{
        +  "description": "Complete question-to-file mapping. When present, every planned question must appear exactly once and every referenced attachment id must resolve.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "attachmentIds": {
        +        "description": "Stable ids from attachments that this question alone receives.",
        +        "items": {
        +          "maxLength": 255,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "maxItems": 20,
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "questionNumber": {
        +        "description": "One-based question position in the returned plan, across modules in order.",
        +        "maximum": 9007199254740991,
        +        "minimum": 1,
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "questionNumber",
        +      "attachmentIds"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
  6. 1 tool update
    • Changedcreate_study1 field changed
      • removedInput schema / properties / groupConfigs / items / properties / sparkIds
        Removed value: -{
        -  "description": "Legacy alias for mindIds.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
  7. 4 tool updates
    • Changedask_audience3 fields changed
      • changedInput schema / properties / attachments / description
        Previous value: -"Files/images processed once and given to every Audience member as context. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."New value: +"Files/images processed once and given to every Audience member as context. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / attachments / items / properties / path / description
        Previous value: -"Storage path of a file already uploaded to Minds. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."New value: +"Storage path of a file already uploaded to Minds. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / attachments / items / properties / url / description
        Previous value: -"Fetchable HTTP(S), signed, or Minds workspace upload URL. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."New value: +"Fetchable HTTP(S), signed, or Minds workspace upload URL. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
    • Changedask_study3 fields changed
      • changedInput schema / properties / attachments / description
        Previous value: -"Files/images processed once and given to every participating Mind. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."New value: +"Files/images processed once and given to every participating Mind. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / attachments / items / properties / path / description
        Previous value: -"Storage path of a file already uploaded to Minds. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."New value: +"Storage path of a file already uploaded to Minds. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / attachments / items / properties / url / description
        Previous value: -"Fetchable HTTP(S), signed, or Minds workspace upload URL. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."New value: +"Fetchable HTTP(S), signed, or Minds workspace upload URL. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
    • Changedcreate_audience_from_brief2 fields changed
      • changedInput schema / properties / files / description
        Previous value: -"Optional already-uploaded research files. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset. The server analyzes these through the same extended screener/questionnaire path as the in-app New Audience uploader, including study roles, screening and quota rules, review distributions, and grounding provenance."New value: +"Optional already-uploaded research files. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset. The server analyzes these through the same extended screener/questionnaire path as the in-app New Audience uploader, including study roles, screening and quota rules, review distributions, and grounding provenance."
      • changedInput schema / properties / files / items / properties / url / description
        Previous value: -"URL of an already-uploaded file. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."New value: +"URL of an already-uploaded file. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
    • Changedplan_study_questions3 fields changed
      • addedInput schema / properties / attachments
        Added value: +{
        +  "description": "Files that every question in this planned Study must evaluate. Use one distinct entry per creative (for example four A/B/C/D videos). Remote URLs are copied into durable Minds storage before the draft is saved. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.",
        +  "items": {
        +    "properties": {
        +      "name": {
        +        "description": "File name visible in the Study.",
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "path": {
        +        "description": "Storage path of a file already uploaded to Minds. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.",
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": {
        +        "description": "MIME type when known.",
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "url": {
        +        "description": "Fetchable HTTP(S), signed, or Minds workspace upload URL. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset.",
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • changedInput schema / 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. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."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. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / source / properties / url / description
        Previous value: -"Fetchable source URL. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. The Study refuses to start if Minds cannot read the asset."New value: +"Fetchable source URL. MCP cannot read or upload a local file:// path. Use a fetchable HTTP(S) URL, a signed URL supplied by the client for the attached file, or an existing Minds workspace upload URL/path. Study tools import external file URLs into durable Minds storage before saving or running. The Study refuses to start if Minds cannot read the asset."
  8. 3 tool updates
    • Changedcreate_audience_from_brief1 field changed
      • addedInput schema / properties / trainMembers
        Added value: +{
        +  "description": "Opt-in per-Mind training for large reviewed-dataset cohorts (default false). By default a reviewed-dataset Audience of more than ~40 Minds is bulk-created immediately ready: exact demographics, but no per-Mind research training (empty system prompt, no knowledge items). Set true to create those Minds untrained instead and enqueue each one through the same per-member training pipeline the in-app draft flow uses, preserving its deterministic cohort profile and the request locale. The tool still returns as soon as the Audience exists — training continues in the background (structuredContent.audience.memberTraining reports what was queued); poll each member with GET /api/v1/minds/{id}/training. Has no effect on Audiences whose members are already trained individually.",
        +  "type": "boolean"
        +}
    • Changedcreate_study5 fields changed
      • changedInput schema / properties / groupConfigs / description
        Previous value: -"Legacy alias for audienceConfigs. Accepted for compatibility."New value: +"Legacy alias for audienceConfigs."
      • removedInput schema / properties / groupConfigs / items / properties / mindIds / description
        Removed value: -"Mind IDs to add to this Audience — use list_minds to find IDs"
      • removedInput schema / properties / groupConfigs / items / properties / name / description
        Removed value: -"Audience name (optional — defaults to \"Audience N\"). E.g., \"Gen Z Consumers\", \"Marketing Experts\""
      • changedInput schema / properties / groupConfigs / items / properties / sparkIds / description
        Previous value: -"Legacy alias for mindIds. Accepted for back-compat."New value: +"Legacy alias for mindIds."
      • changedInput schema / properties / groupIds / description
        Previous value: -"Legacy alias for audienceIds. Accepted for compatibility."New value: +"Legacy alias for audienceIds."
    • Changedsave_study_draft1 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."
  9. 28 tool updates
    • Addedask_audience
    • Removedask_group
    • Removedask_panel
    • Addedask_study
    • Addedcreate_audience_from_brief
    • Removedcreate_group_from_brief
    • Removedcreate_panel
    • Addedcreate_study
    • Addedexport_audience
    • Removedexport_group
    • Changedexport_heatmap5 fields changed
      • changedInput schema / properties / messageId / description
        Previous value: -"ID of the completed panel message containing the website heatmap. Completed panel results report this identifier when the answer carries a heatmap."New value: +"ID of the completed Study result containing the website heatmap. Completed Study results report this identifier when the answer carries a heatmap."
      • changedInput schema / properties / panelId / description
        Previous value: -"Panel ID (UUID)"New value: +"Study ID (UUID; legacy wire field name: panelId)"
      • changedInput schema / properties / panelName / description
        Previous value: -"Panel name (fuzzy matched)"New value: +"Study name (fuzzy matched; legacy wire field name: panelName)"
      • addedInput schema / properties / studyId
        Added value: +{
        +  "description": "Study ID (UUID).",
        +  "type": "string"
        +}
      • addedInput schema / properties / studyName
        Added value: +{
        +  "description": "Study name (fuzzy matched).",
        +  "type": "string"
        +}
    • Removedexport_panel
    • Addedexport_study
    • Removedget_panel_status
    • Removedget_panel_study
    • Removedget_panel_summary
    • Addedget_study_run
    • Addedget_study_status
    • Addedget_study_summary
    • Addedlist_audiences
    • Removedlist_groups
    • Removedlist_panels
    • Addedlist_studies
    • Removedplan_panel_study
    • Addedplan_study_questions
    • Removedrun_panel_study
    • Addedrun_study_questions
    • Changedsave_study_draft4 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."
  10. 18 tool updates
    • Changedask_group2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / attachments / items / additionalProperties
        Removed value: -false
    • Changedask_panel6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / attachments / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / keywords
        Added value: +{
        +  "description": "Search keywords used to gather evidence for this question. Reaches parity with v1 /panels/{panelId}/runs.",
        +  "items": {
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "label": {
        +        "description": "Search keyword or phrase",
        +        "type": "string"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "label"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / links
        Added value: +{
        +  "description": "Web pages given to every Mind as evidence for this question. Reaches parity with v1 /panels/{panelId}/runs, which has always accepted links.",
        +  "items": {
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "label": {
        +        "description": "Human-readable label for the link",
        +        "type": "string"
        +      },
        +      "url": {
        +        "description": "URL to fetch as evidence for this question",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "label"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / model
        Added value: +{
        +  "description": "Optional per-request model override. Must be sent together with provider.",
        +  "type": "string"
        +}
      • addedInput schema / properties / provider
        Added value: +{
        +  "description": "Provider for the model override. Must be sent together with model.",
        +  "enum": [
        +    "anthropic",
        +    "openai",
        +    "google"
        +  ],
        +  "type": "string"
        +}
    • Changedcreate_group_from_brief25 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / cohortAllocation / additionalProperties
        Removed value: -false
      • removedInput schema / properties / cohortAllocation / properties / targetOverrides / items / additionalProperties
        Removed value: -false
      • removedInput schema / properties / cohortAllocation / properties / targetOverrides / items / properties / segments / items / additionalProperties
        Removed value: -false
      • removedInput schema / properties / datasetSegmentation / additionalProperties
        Removed value: -false
      • removedInput schema / properties / datasetSegmentation / properties / columns / items / additionalProperties
        Removed value: -false
      • removedInput schema / properties / datasetSegmentation / properties / columns / items / properties / distribution / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / datasetSegmentation / properties / columns / items / properties / distribution / items / properties / respondentCount / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / datasetSegmentation / properties / columns / items / properties / distribution / items / properties / value / default
        Added value: +""
      • changedInput schema / properties / datasetSegmentation / properties / columns / items / properties / distribution / items / properties / value / type
        Previous value: -[
        -  "string",
        -  "null"
        -]New value: +"string"
      • addedInput schema / properties / datasetSegmentation / properties / columns / items / properties / otherRespondentCount / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / datasetSegmentation / properties / columns / items / properties / validRespondentCount / maximum
        Added value: +9007199254740991
      • removedInput schema / properties / datasetSegmentation / properties / combinations / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / datasetSegmentation / properties / combinations / items / properties / respondentCount / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / datasetSegmentation / properties / recommendedMindCount / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / datasetSegmentation / properties / respondentCount / maximum
        Added value: +9007199254740991
      • removedInput schema / properties / datasetSegmentation / properties / variables / items / additionalProperties
        Removed value: -false
      • removedInput schema / properties / datasetSegmentation / properties / variables / items / properties / distribution / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / datasetSegmentation / properties / variables / items / properties / distribution / items / properties / respondentCount / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / datasetSegmentation / properties / variables / items / properties / distribution / items / properties / value / default
        Added value: +""
      • changedInput schema / properties / datasetSegmentation / properties / variables / items / properties / distribution / items / properties / value / type
        Previous value: -[
        -  "string",
        -  "null"
        -]New value: +"string"
      • addedInput schema / properties / datasetSegmentation / properties / variables / items / properties / otherRespondentCount / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / datasetSegmentation / properties / variables / items / properties / validRespondentCount / maximum
        Added value: +9007199254740991
      • removedInput schema / properties / files / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / memberCount / maximum
        Added value: +9007199254740991
    • Changedcreate_panel2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / groupConfigs / items / additionalProperties
        Removed value: -false
    • Changedexport_group1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedexport_heatmap1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedexport_mind1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedexport_panel2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / scheduledRunId
        Added value: +{
        +  "description": "Export only the messages produced by one scheduled run of this panel, instead of the whole transcript. Use the run id from the panel's schedule history.",
        +  "type": "string"
        +}
    • Changedget_panel_status2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / panelId / 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)$"
    • Changedget_panel_study3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / panelId / 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 / studyId / 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)$"
    • Changedget_panel_summary2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / panelId / 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)$"
    • Changedlist_groups1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist_panels1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist_research_methods1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedlist_study_drafts2 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)$"
    • Changedplan_panel_study5 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / draftPlanId / 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 / panelId / 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 / revision / maximum
        Added value: +9007199254740991
      • removedInput schema / properties / source / additionalProperties
        Removed value: -false
    • Changedrun_panel_study6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / draftPlanId / 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 / 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)$"
      • addedInput schema / properties / idempotencyKey / 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 / panelId / 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 / revision / maximum
        Added value: +9007199254740991
    • Changedsave_study_draft4 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)$"
  11. 3 tool updates
    • Changedask_panel1 field changed
      • addedInput schema / properties / historyMode
        Added value: +{
        +  "description": "**Control cross-item carryover.** Defaults to none: every question is an independent measurement and the run processes them in parallel. **Use last5 only when the panel is a conversation** or when a respondent staying coherent across items is what the customer is buying; it costs roughly 2.4x wall-clock for about 0.6pp of accuracy. followup_only carries history for conversational turns but not questionnaire items.",
        +  "enum": [
        +    "last5",
        +    "followup_only",
        +    "none"
        +  ],
        +  "type": "string"
        +}
    • Changedexport_panel3 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Export format: \"pdf\" (default), \"html\" or \"png\" for executive summaries, \"docx\", \"pptx\", \"csv\", \"xls\", or \"md\" (also accepts \"markdown\"). Executive-summary PPTX exports use a slide-native 16:9 layout."New value: +"Export format: \"pdf\" (default), \"html\" or \"png\" for executive summaries, \"docx\", \"pptx\", \"csv\", \"xls\", \"sav\", or \"md\" (also accepts \"markdown\"). Executive-summary PPTX exports use a slide-native 16:9 layout."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "pdf",
        -  "html",
        -  "png",
        -  "docx",
        -  "pptx",
        -  "csv",
        -  "xls",
        -  "md",
        -  "markdown"
        -]New value: +[
        +  "pdf",
        +  "html",
        +  "png",
        +  "docx",
        +  "pptx",
        +  "csv",
        +  "xls",
        +  "sav",
        +  "md",
        +  "markdown"
        +]
      • changedInput schema / properties / kind / description
        Previous value: -"Report kind. Defaults to full_report, except CSV/XLS which default to raw_data."New value: +"Report kind. Defaults to full_report, except CSV/XLS/SAV which default to raw_data."
    • Changedget_panel_status1 field changed
      • changedInput schema / properties / exportFormat / enum
        Previous value: -[
        -  "pdf",
        -  "html",
        -  "png",
        -  "docx",
        -  "pptx",
        -  "csv",
        -  "xls",
        -  "md"
        -]New value: +[
        +  "pdf",
        +  "html",
        +  "png",
        +  "docx",
        +  "pptx",
        +  "csv",
        +  "xls",
        +  "sav",
        +  "md"
        +]
  12. 1 tool update
    • Changedexport_heatmap1 field changed
      • changedInput schema / properties / messageId / description
        Previous value: -"ID of the completed panel message containing the website heatmap"New value: +"ID of the completed panel message containing the website heatmap. Completed panel results report this identifier when the answer carries a heatmap."
  13. 2 tool updates
    • Changedexport_panel2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Export format: \"pdf\" (default), \"docx\", \"pptx\", \"csv\", \"xls\", or \"md\" (also accepts \"markdown\")"New value: +"Export format: \"pdf\" (default), \"html\" or \"png\" for executive summaries, \"docx\", \"pptx\", \"csv\", \"xls\", or \"md\" (also accepts \"markdown\"). Executive-summary PPTX exports use a slide-native 16:9 layout."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "pdf",
        -  "docx",
        -  "pptx",
        -  "csv",
        -  "xls",
        -  "md",
        -  "markdown"
        -]New value: +[
        +  "pdf",
        +  "html",
        +  "png",
        +  "docx",
        +  "pptx",
        +  "csv",
        +  "xls",
        +  "md",
        +  "markdown"
        +]
    • Changedget_panel_status1 field changed
      • changedInput schema / properties / exportFormat / enum
        Previous value: -[
        -  "pdf",
        -  "docx",
        -  "pptx",
        -  "csv",
        -  "xls",
        -  "md"
        -]New value: +[
        +  "pdf",
        +  "html",
        +  "png",
        +  "docx",
        +  "pptx",
        +  "csv",
        +  "xls",
        +  "md"
        +]
  14. 3 tool updates
    • Changedask_group1 field changed
      • changedInput schema / properties / question / description
        Previous value: -"Research question to survey across the group"New value: +"Respondent-visible research input for every Mind in the group. The system may classify or reformat it, but any text in this field can reach the Minds and influence their answers. Include only the concept, question, and instructions the Minds should receive. Never place planner-only or MCP-client orchestration instructions here."
    • Changedask_panel1 field changed
      • changedInput schema / properties / question / description
        Previous value: -"Research question to survey across all groups"New value: +"Respondent-visible research input for every selected Mind. The system may classify or reformat it, but any text in this field can reach the Minds and influence their answers. Include only the concept, question, and instructions the Minds should receive. Never place planner-only or MCP-client orchestration instructions here."
    • Changedplan_panel_study3 fields changed
      • changedInput schema / properties / request / description
        Previous value: -"The research objective, question set, audit request, or analysis request. Required for a new draft."New value: +"Planner input containing the research objective, question set, audit request, or analysis request. Required for a new draft. This request is not sent verbatim to Minds; the exact proposed respondent-visible questions are returned in the draft for review."
      • changedInput schema / properties / source / description
        Previous value: -"The one main source, question, website, image, video, document, or questionnaire this study is about."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."
      • addedInput schema / properties / source / properties / content
        Added value: +{
        +  "description": "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.",
        +  "maxLength": 20000,
        +  "minLength": 1,
        +  "type": "string"
        +}
  15. 1 tool update
    • Changedget_panel_status4 fields changed
      • addedInput schema / properties / exportFormat
        Added value: +{
        +  "description": "Asynchronous export format whose status should be returned (defaults to pdf).",
        +  "enum": [
        +    "pdf",
        +    "docx",
        +    "pptx",
        +    "csv",
        +    "xls",
        +    "md"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / exportJobId / description
        Previous value: -"PDF export job ID returned by export_panel. Pass it with exportKind to poll that exact artifact."New value: +"Export job ID returned by export_panel. Pass it with exportKind and exportFormat to poll that exact artifact."
      • changedInput schema / properties / exportKind / description
        Previous value: -"Asynchronous PDF export kind whose status should be returned (defaults to full_report)."New value: +"Asynchronous export kind whose status should be returned (defaults to full_report)."
      • changedInput schema / properties / exportKind / enum
        Previous value: -[
        -  "executive_brief",
        -  "full_report"
        -]New value: +[
        +  "executive_brief",
        +  "full_report",
        +  "raw_data"
        +]
  16. 5 tool updates
    • Addedexport_group
    • Addedexport_heatmap
    • Addedexport_mind
    • Changedexport_panel3 fields changed
      • addedInput schema / properties / force
        Added value: +{
        +  "description": "Regenerate instead of returning a cached artifact.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "Report kind. Defaults to full_report, except CSV/XLS which default to raw_data.",
        +  "enum": [
        +    "executive_brief",
        +    "full_report",
        +    "raw_data"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / length
        Added value: +{
        +  "description": "Requested report detail for executive_brief and full_report exports.",
        +  "enum": [
        +    "brief",
        +    "standard",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
    • Changedget_panel_status2 fields changed
      • addedInput schema / properties / exportJobId
        Added value: +{
        +  "description": "PDF export job ID returned by export_panel. Pass it with exportKind to poll that exact artifact.",
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / exportKind
        Added value: +{
        +  "description": "Asynchronous PDF export kind whose status should be returned (defaults to full_report).",
        +  "enum": [
        +    "executive_brief",
        +    "full_report"
        +  ],
        +  "type": "string"
        +}
  17. 1 tool update
    • Changedexport_panel2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Export format: \"pdf\" (default) branded report, \"pptx\" editable branded deck, \"csv\" spreadsheet, \"xls\" Excel, \"json\" raw data, \"md\" (or \"markdown\") markdown report"New value: +"Export format: \"pdf\" (default), \"docx\", \"pptx\", \"csv\", \"xls\", or \"md\" (also accepts \"markdown\")"
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "pdf",
        -  "pptx",
        -  "json",
        -  "csv",
        -  "xls",
        -  "md",
        -  "markdown"
        -]New value: +[
        +  "pdf",
        +  "docx",
        +  "pptx",
        +  "csv",
        +  "xls",
        +  "md",
        +  "markdown"
        +]
  18. 1 tool update
    • Changedplan_panel_study1 field changed
      • addedInput schema / properties / questionResponses / items / properties / maxSelections
        Added value: +{
        +  "description": "Maximum choices a respondent may select; only valid for multiselect responses.",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, from audience creation and study management to question planning/execution and exports. Even the similar ask_audience and ask_study are unambiguously differentiated by scope (audience-level vs study-level), and the extensive descriptions reinforce the boundaries.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., list_audiences, create_study, export_study). There are no mixed conventions or vague verbs, making the naming highly predictable.

Tool Count4/5

With 19 tools, the count is at the upper end of reasonable for a complex domain like market research panels, but each tool serves a distinct function. The set is not bloated; it reflects the multifaceted nature of managing audiences, studies, questions, and exports.

Completeness3/5

The surface covers the core research lifecycle—create audience/study, plan and run questions, monitor status, and export results. However, it lacks update and delete operations for audiences and studies, which are typical CRUD gaps that agents may encounter. The workflow is otherwise complete.