Skip to main content
Glama

Minds: Synthetic Market Research

Server Details

Minds is a synthetic market research platform. This MCP server lets ChatGPT, Claude, and Cursor build Audiences from a brief, run durable Studies and Question Blocks, compare segments, and export results. OAuth 2.1 or Minds API key.

Ownership verified
Status
Healthy
Uptime
96.9% over 43 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
minds-ai-co/minds-mcp
GitHub Stars
3
Server Listing
Minds MCP Server

TDQS

A3.9/5.0

Scored across 24 tools

Disambiguation4/5

Most tools have clearly distinct purposes, and descriptions explicitly delineate boundaries (e.g., ask_audience vs ask_study vs plan_study_questions). Some overlap remains among draft-related tools (save_study_draft vs plan_study_questions) and question-asking tools, but the detailed descriptions largely resolve them.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (e.g., create_audience_from_brief, list_studies, run_study_questions, export_study). Minor multi-word objects exist but there is no mixing of conventions or verb styles.

Tool Count3/5

At 24 tools, the surface is heavy for the domain. While each tool appears to have a clear role, several could potentially be consolidated (e.g., multiple list_* and export_* operations), making the count borderline per the rubric.

Completeness3/5

Core workflows for audience and study lifecycle are covered, but there is no delete_audience or delete_study (explicitly noted as unavailable in descriptions), and no update operations for audiences or studies. These are notable lifecycle gaps that could force workarounds.

Available Tools

24 tools
ask_audienceAsk One Standalone Audience QuestionAInspect

Asks exactly one standalone question of one existing Audience. It creates a private Study for that Audience, starts asynchronous answers from its Minds, and returns the Study identifier and its links.

Automatic classification may reformulate a context-dependent question. The accepted task and its answer contract are returned together, with the original request retained separately. Requests needing clarification or generated questions return planning_required before execution.

Out of scope: a questionnaire, battery, section or any request with two or more known questions. That complete set runs as one planned multi-question block inside a Study.

Attachments must be fetchable HTTP(S) URLs or existing Minds workspace uploads; the Study refuses to start if its Minds cannot read one.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the Study created to ask this question. Defaults to the Audience name.
audienceNoWhich Audience to ask. Give the id when known, otherwise the name.
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. If the question offers a fixed set of answer options, say so in the text as the respondent would read it. The research reader identifies the question and its answer contract together. Include the complete authored labels, ordering and selection instructions. Numbered answer options do not by themselves make a request a multi-question battery. An invalid or ambiguous reading stops for retry or planning before execution.
attachmentsNoFiles/images processed once and given to every Audience member as context. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder "chat"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset.

Output Schema

ParametersJSON Schema
NameRequiredDescription
runIdNoDurable run identifier.
localeNoStudy display locale.
statusNoqueued once submitted, or planning_required when the request needs a reviewed multi-question plan (nothing was submitted).
apiBaseNoMinds base URL.
studyIdNoStudy the question was asked in.
questionNoThe submitted question.
questionIdNoIdentifier of this question; pass it to get_study_status to follow only this question.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
sharedStudyUrlNoPublic share link, or null when link sharing is off.
executionStartedNoFalse when nothing was submitted.
proposedQuestionsNoFor planning_required: the respondent questions detected or proposed.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=false, openWorldHint=true), the description discloses that classification may reformulate the question, that the accepted task plus answer contract are returned with the original request retained, that ambiguous requests return planning_required before execution, and that the Study refuses to start if Minds cannot read an attachment. This is rich behavioral context an agent could not infer from the annotations alone.

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 definition is front-loaded with the core action, then layers scope exclusions and attachment constraints. Every sentence carries information, though the attachment sentence partially duplicates the schema's lengthy attachment prose, making the block slightly heavier than strictly necessary.

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 mutation tool with nested params and an output schema, the description covers routing, the planning_required fallback, attachment fetchability constraints, and Study-refusal behavior — everything an agent needs to call it correctly without the output schema needing description-side explanation of return values.

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 audience, question, attachments, and name in detail; the description largely parallels it. It adds only marginal framing, such as the note that numbered answer options do not by themselves constitute a battery, so the 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?

The opening sentence states a precise verb+resource+scope: 'Asks exactly one standalone question of one existing Audience,' then enumerates the side effects (private Study, async answers, returns Study id and links). This cleanly distinguishes it from siblings like ask_study, run_study_questions, and plan_study_questions that operate on full question sets.

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?

It gives an explicit negative boundary — 'Out of scope: a questionnaire, battery, section or any request with two or more known questions' — and routes that case to a 'planned multi-question block inside a Study,' which implicitly names the sibling alternative. It stops short of naming ask_study directly, but the when-to-use and when-not-to-use conditions are both clear.

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: one standalone question, or one adaptive follow-up whose wording could not be known before earlier results.

Out of scope: a questionnaire, battery, section or any request with two or more known questions. That complete set belongs in one planned and confirmed multi-question block, submitted once rather than question by question.

The question text can reach the Minds, so it carries only the question, its stimulus and respondent-facing instructions — never planner or client orchestration notes. Scale, categorical and qualitative questions are classified automatically, and the result carries the question id, status and workspace links.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel override for this question. Use connection for a verified team model connection, or name with provider; the two are mutually exclusive.
studyNoWhich Study to ask in. Omit entirely to continue the active Study from this MCP session.
evidenceNoMaterial given to every participating Mind for this question, and the policy governing what else it may use.
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. If the question offers a fixed set of answer options, say so in the text as the respondent would read it. The research reader identifies the question and its answer contract together. Include the complete authored labels, ordering and selection instructions. Numbered answer options do not by themselves make a request a multi-question battery. An invalid or ambiguous reading stops for retry or planning before execution.
responseNoShape of each answer, and whether earlier Study questions carry over.
audienceIdsNoOptional subset of the Study's Audiences to ask; defaults to all Audiences.

Output Schema

ParametersJSON Schema
NameRequiredDescription
runIdNoDurable run identifier.
localeNoStudy display locale.
statusNoqueued once submitted, or planning_required when the request needs a reviewed multi-question plan (nothing was submitted).
apiBaseNoMinds base URL.
studyIdNoStudy the question was asked in.
questionNoThe submitted question.
questionIdNoIdentifier of this question; pass it to get_study_status to follow only this question.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
sharedStudyUrlNoPublic share link, or null when link sharing is off.
executionStartedNoFalse when nothing was submitted.
proposedQuestionsNoFor planning_required: the respondent questions detected or proposed.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false). The description adds genuinely new context: the question text reaches the Minds and must exclude orchestration notes, classification of question types is automatic, and the result carries question id/status/workspace links. It does not, however, discuss execution cost or failure modes.

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

Conciseness4/5

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

Three short paragraphs, front-loaded with the core action and then the out-of-scope rule. Dense but each sentence carries a distinct constraint; the caution about what may appear in question text is restated twice between description and schema.

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 six-parameter tool with an output schema and heavy annotation coverage, the description covers scope, exclusions, behavioral constraints on the question payload, and a hint at return contents. Nothing an agent needs to call it 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?

Schema coverage is 100%, so every parameter including the nested model/study/evidence/response objects is already documented. The description restates the 'one question only' constraint on the question field, which the schema also states, adding little beyond the 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 verb and resource ('Submits exactly one respondent-visible question in an existing Study') with an explicit scope boundary, immediately distinguishing it from the batch/questionnaire siblings like plan_study_questions and 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?

The 'Out of scope' paragraph names the exact condition that disqualifies this tool (two or more known questions) and routes that case to a planned multi-question block submitted once — a clear when-not rule with an alternative.

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 an Audience from a free-text brief. The server researches the population, derives its defensible dimensions, and builds Minds with an explicit profile each and exact segment allocation.

New briefs default to the webapp draft workflow: streamed research, distributions, then proposed Minds for review. Rework with draft.preview=true, draft.id, draft.sha256 and a separate draft.rework instruction. Create the exact approved roster with draft.preview=false and its id/checksum only after user acceptance. grounding.preview=false remains available for explicitly requested direct creation. grounding.preview returns the quota axes for review before any Mind exists; passing the reviewed grounding back with its checksum creates the Audience from exactly what was reviewed. composition.memberCount states a size, and the mode ceilings that bound it come from the Audience-limits operation.

Creation is asynchronous: the result carries the operation to poll while it runs. Audiences are 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.
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.
draftNoThe webapp Audience draft workflow. Preview proposes real Minds before Create; id and sha256 identify the exact reviewed roster. Rework revises that draft.
researchNoExtra material the grounding research reads alongside the brief, and whether web search runs at all.
groundingNoReview the quota axes before any Mind exists, and pass a reviewed snapshot back unchanged to create from it.
compositionNoHow many Minds to create and how the cohort is allocated across the grounded axes.
operationIdNoResume a queued preview or creation by its returned jobId. Reads its v1 operation status without creating or charging anything. Supply this alone; do not repeat the creation brief to check progress. Once the creation completed, the result also says whether every Mind can chat yet (the Audience is ready then) and how many are still learning from their sources in the background; call it again to follow that.
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".

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNoCreation state of the Audience.
previewNoResearch and allocation preview; no Audience or Minds have been created.
audienceNoThe created or previewed Audience with its Minds and grounding.
operationNoDurable creation operation, while creation is still running.
readinessNoWhen a completed operation is read back: member rollup from GET /api/v1/audiences/{id}/progress. isReady = every Mind can chat (the Audience is ready); learning = ready Minds still learning from their sources in the background; fullyTrained = none still learning; research.phase = researching while the Audience's background research runs (it is usable meanwhile), researched once merged and applied.
workspaceUrlNoMinds workspace link for the Audience.
audienceReviewNoReviewed Audience brief, distributions and creation options for the widget.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnly=false, destructive=false, idempotent=true, openWorld=true. The description goes well beyond: creation is asynchronous and returns an operation to poll, previews consume no generation allowance and materialize no Minds, mismatched checksums fail closed before materialization, and the Audience is private unless link sharing is explicitly enabled. It also notes refusals (MODE_CAP, PLAN_LIMIT, no-evidence refusal) and the silent downgrade of deeper modes on non-enterprise plans.

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?

Front-loaded with purpose and mostly information-dense, with each clause carrying a distinct mode or constraint. It is long and overlaps noticeably with the already-verbose schema descriptions, so some of paragraph two is redundant rather than additive.

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

Completeness5/5

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

With an output schema present, return values need no explanation, and the description still covers the async lifecycle, how to resume via operationId, and the privacy default. For an 8-parameter tool with nested objects and multiple creation modes, nothing an agent needs to call it correctly is missing.

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, but the description adds cross-parameter composition semantics: the preview-then-commit sequence (pass reviewed snapshot back unchanged with its checksum), the trade-off between draft.preview and grounding.preview, and why composition.memberCount should be passed when a size is stated. This sequencing value is not derivable from any single parameter description.

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 an Audience from a free-text brief') plus the mechanism: the server researches the population, derives dimensions, and builds Minds with explicit profiles and exact segment allocation. It also differentiates from siblings by routing to the Audience-limits operation for ceilings and to import_audience_sources for file contents.

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?

Explicit routing for every mode: new briefs default to the draft workflow, rework uses draft.preview=true with id/sha256, final creation uses draft.preview=false only after user acceptance, grounding.preview is called out as quota-only review, and direct creation via grounding.preview=false is flagged as the explicitly-requested exception. Alternatives (import_audience_sources, app upload for PDFs/images, get_audience_limits) are named with the conditions that select them.

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 Study workspace from existing Audiences or inline Audience configurations. It does not ask questions or run research, and follow-up research inside an existing Study needs no new Study.

This always creates: a matching name never attaches to an existing Study, and only a byte-identical repeat of the same call replays the Study the first one made, reported as replayed: true. Settle the Audience set before calling — nothing adds an Audience to an existing Study afterwards, and Studies cannot be deleted here, so calling again with one extra Audience leaves a permanent duplicate.

Any request with two or more known questions belongs in one planned and confirmed multi-question block inside the Study, submitted once rather than as separate direct questions.

Creation is atomic and rolls back partial Audience failures. Studies are private; enabling link sharing also publishes the attached Audiences and their Minds.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the Study workspace (e.g., "Brand Perception Study", "Q4 Market Research")
audienceIdsNoPreferred field for existing Audience IDs to attach — use list_audiences to find IDs.
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".

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoStudy name.
studyIdNoCreated Study.
replayedNoTrue when an identical request returned the Study created earlier.
audiencesNoAudiences attached to the Study.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
publicShareIdNoPublic share identifier, or null.
sharedStudyUrlNoPublic share link, or null when link sharing is off.
isLinkSharingEnabledNoWhether the public share link is on.

TDQS

A4.7/5.0
Behavior5/5

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

Goes far beyond the annotations by disclosing atomic rollback of partial Audience failures, always-creates-new semantics, byte-identical replay behavior with 'replayed: true', permanent no-delete consequences, and link-sharing side effects that publish Audiences and Minds. This rich context helps an agent anticipate side effects that readOnly/destructive hints alone would not convey.

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?

Dense but every sentence earns its place: core action first, exclusions second, idempotency and irreversible consequences next, then atomicity and privacy. The front-loading of 'does not ask questions or run research' prevents immediate misuse.

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?

Covers all high-stakes aspects an agent needs before calling: idempotency, failure semantics, inability to delete, Audience immutability after creation, multi-question routing, and public-sharing side effects. With an output schema present, the absence of return-format detail is not a gap.

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 each parameter is already documented in the schema. The description adds behavioral context (prefer audienceIds, don't enable link sharing unless explicitly requested) but does not need to restate parameter meanings, so the 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 names a specific verb and resource ('Creates a Study workspace') and immediately differentiates from siblings by stating it does not ask questions or run research. This makes it easy for an agent to distinguish create_study from ask_study and 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?

Explicitly states when not to use: follow-up research inside an existing Study needs no new Study, and two or more known questions belong in a multi-question block instead of separate direct questions. It also gives prerequisites: settle the Audience set before calling because Audiences cannot be added later and duplicates are permanent.

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

delete_study_templateDelete Study TemplateA
Destructive
Inspect

Permanently deletes one saved Study template owned by the authenticated user. The template and its stored configuration are gone; Studies and drafts already created from it are unaffected. Teammates with shared access cannot delete a template they do not own.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesTemplate to delete permanently. Owner only.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoDeletion acknowledgement: { success: true }.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, but the description adds meaningful detail: deletion is permanent, the stored configuration is gone, and existing Studies and drafts survive. It also discloses the ownership restriction, going well beyond what the annotation alone conveys.

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 core action is front-loaded, and each sentence adds a distinct piece of useful context: permanence, side effects on derived resources, and ownership constraints.

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 one-parameter destructive operation with an output schema, the description is complete. It covers what is deleted, what is not affected, and who is allowed to delete, leaving no important ambiguity.

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 already documents templateId with 100% coverage, including that it is the template to delete permanently and owner-only. The description does not add new param-specific detail, 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?

The description states a specific verb and resource: permanently deletes a saved Study template owned by the authenticated user. It clearly distinguishes this from management or listing operations, even without naming a sibling.

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 contextual guidance: only the owner's templates can be deleted)Skip, and shared-access teammates cannot delete templates they do not own. It also clarifies that existing studies and drafts are unaffected, which helps an agent reason about when this action is appropriate. It does not explicitly contrast with sibling alternatives, but the ownership and side-effect information is sufficient for basic routing.

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

export_audienceExport Audience BriefAInspect

Exports an Audience brief, or with kind "validation_report" the report of its validations (overall score calculation, every KPI, per-question answer shares, provenance), through the same renderer used by the web app. Brief: Markdown, PDF, DOCX, PPTX. Validation report: Markdown, PDF, DOCX, XLSX. Binary artifacts are returned as base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoWhat to export: "brief" (default), the Audience brief; or "validation_report", every scored validation of the Audience with the overall score calculation, every KPI with its 95% interval, per-question answer shares and provenance. A validation report needs edit access and a scored validation.
forceNoRegenerate instead of returning a cached artifact.
formatNoExport format: "md" (default), "pdf", "docx"; "pptx" for a brief only; "xlsx" (every table as a sheet) for a validation report only.
audienceNoWhich Audience to export.

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatNoExport format.
contentNoInline Markdown content, for Markdown exports.
filenameNoSuggested file name.
mimeTypeNoMIME type of the file.
audienceIdNoExported Audience.
contentBase64NoBase64 file content, for binary formats.

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds useful behavioral context: it uses the same renderer as the web app and returns binary artifacts as base64. However, it does not disclose any side effects like cache regeneration (mentioned only in the schema), nor does it state that validation reports require edit access. It neither contradicts annotations nor adds substantial behavioral richness beyond 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?

The description is three sentences with no fluff. The first sentence states the main purpose and the kind alternative; the second maps formats to kinds; the third notes base64 encoding. Every sentence earns its place, and the key information is efficiently front-loaded.

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 tool has an output schema and full schema parameter descriptions, the description covers the critical decision points: which kind to export, which formats are compatible, and how binary artifacts are returned. It does not repeat schema details like the edit-access requirement for validation reports, which is acceptable because the schema already provides it. Overall, an agent can invoke the tool correctly with the combination of description and schema.

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. The description goes beyond the schema by explicitly mapping allowed formats to each kind (PPTX only for brief, XLSX only for validation report), which is critical for format selection. It also clarifies the output return as base64, adding value for the format parameter and expected result handling.

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 the specific verb 'Exports' and the resource: an Audience brief or its validation report. It also distinguishes between the two export kinds and, by naming 'Audience', inherently differentiates from sibling export tools like export_study or export_heatmap. The resource specificity is enough for an agent to select this tool correctly.

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?

Usage is implied by the resource name: it exports audience-related content. However, the description does not explicitly state when to choose this tool over alternatives (e.g., no mention of 'use export_study for studies') nor does it outline prerequisites such as edit access for validation reports. It is not misleading, but the guidance is implicit rather than explicit.

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

export_heatmapExport Website HeatmapAInspect

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.
studyNoWhich Study the heatmap belongs to.
messageIdYesID of the completed Study result containing the website heatmap. Completed Study results report this identifier when the answer carries a heatmap.

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatNoExport format.
studyIdNoStudy that ran the heatmap.
studyUrlNoMinds workspace link for the Study.
messageIdNoHeatmap result exported.

TDQS

A4/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false, destructiveHint=false, but no explicit hints on safety. The description adds that it returns a ZIP archive, and mentions the force parameter regenerates the archive instead of returning cached. However, it doesn't disclose potential side effects like generating a large file or requiring specific permissions. The description adds some context but not extensive.

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 concise, two sentences, front-loaded with the main action and key identifier, then details the contents of the ZIP. No waste.

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 tool has an output schema (ZIP contents described), the description doesn't need to explain return values. It does mention the force parameter indirectly by saying 'same ZIP archive as the web app'. The main gap is lack of explicit when-to-use guidance, but overall it's complete for correct 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 covers 100% of parameters with descriptions, so baseline is 3. The description adds no extra meaning beyond the schema, but the schema itself is descriptive (e.g., messageId is 'ID of the completed Study result...'). Thus the description doesn't need to compensate.

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 the tool exports a completed website heatmap from a Study result, identified by messageId. It specifies the exact resource (completed heatmap), the action (export), and the key identifier (messageId), which distinguishes it from siblings like export_study or run_study_heatmap.

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 indicates when to use this tool: when a Study result is completed and reports a message ID. It does not explicitly mention when not to use it or name alternatives, but the context of exporting a heatmap is clear. Since it's the only export-specific heatmap tool among siblings, this is sufficient.

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 ProfileAInspect

Generates a branded profile for one existing Mind, identified by exact ID or the best fuzzy name match among the newest 1,000 Minds. 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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatNoExport format.
mindIdNoExported Mind.
contentNoInline Markdown content, for Markdown exports.
mindUrlNoMinds workspace link for the Mind.
filenameNoSuggested file name.
mimeTypeNoMIME type of the file.
contentBase64NoBase64 file content, for binary formats.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations are all false and thus convey no behavioral claims, so the description carries the burden. It discloses meaningful behavioral details: the selection scope (newest 1,000 Minds), the default inline Markdown return, and that PDF/DOCX/PPTX are returned as base64 with a workspace link. It stops short of mentioning side effects, auth, or rate limits, but for an export operation this is reasonably transparent.

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, both information-dense and front-loaded. The first sentence covers purpose and selection; the second covers output formats and delivery. There is no repetition or filler, and the description earns its 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 that a full output schema exists and parameter descriptions cover all four parameters, the description is adequately complete. It explains the core call behavior and selection semantics. It does not cover error conditions or prerequisites, but those are not essential for an export tool with this level of schema support.

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. The description adds value beyond the schema by explaining that fuzzy matching applies to the newest 1,000 Minds and clarifying that Markdown is returned inline by default, which reinforces and slightly extends the format parameter semantics. It does not cover the force parameter, but that parameter's own schema description is sufficient.

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 verb ('Generates') and resource ('Mind persona profile'), and scopes it to 'one existing Mind' with exact ID or fuzzy name match among the newest 1,000 Minds. This clearly distinguishes it from sibling export tools like export_audience, export_study, and export_heatmap, which target different resource types.

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?

It provides clear context on when to use the tool (to export a Mind persona profile) and describes the primary selection modes (exact ID vs fuzzy name). However, it does not explicitly exclude alternatives or state when not to use this tool in favor of a sibling, so it misses the highest bar for explicit usage routing.

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

export_studyExport Study ResultsAInspect

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.
studyNoWhich Study to export. Omit entirely to use the active Study from this MCP session.
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.
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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindNoExport kind.
jobIdNoAsynchronous export job; poll it with get_study_status.
formatNoExport format.
statusNoExport job status.
studyIdNoExported Study.
downloadUrlNoDownload link, once the export is ready.
workspaceUrlNoMinds workspace link for the Study.

TDQS

A4.1/5.0
Behavior4/5

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

It discloses the asynchronous execution model and the job-ID return, which are not visible in the annotations. It does not describe job lifecycle, caching side effects, or permissions, but the schema's force parameter hints at caching; overall this is useful behavioral context beyond the structured hints.

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 async behavior and job ID are front-loaded, and the supported format matrix follows. Every clause earns its place.

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 the fully self-describing schema (100% coverage, enums, nested object, defaults) and the presence of an output schema, the description provides the high-level contract an agent needs: async, job-ID-returning export with a clear format/kind matrix. No critical invocation detail is missing at the description level.

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 six parameters, enums, defaults, and the nested study object. The description mentions the supported formats and report kinds, but that information is already present in the schema and adds no new parameter-level meaning.

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 (starts an asynchronous export), the resource (Study results), and the returned artifact (export job ID). This clearly separates it from sibling export tools that target audiences, heatmaps, or mind maps.

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 makes it clear the tool is for Study-result exports, but it does not explicitly state when to prefer it over export_audience, export_heatmap, or export_mind, nor does it list any exclusions. Usage is implied by the resource name and format list, not spelled out.

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

get_audience_creation_progressAudience creation progressA
Read-onlyIdempotent
Inspect

Read one Audience creation operation and its members’ training progress. Never starts or retries creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
audienceCreationNoCurrent Audience creation and member training snapshot.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld=false, so the safety profile is covered. The description adds a genuine operational guarantee beyond that — it does not start or retry creation — which matters for an agent deciding whether this call has side effects. No polling/refresh guidance is given, keeping it below 5.

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 short sentences, front-loaded with the read scope and closed with the negative side-effect guarantee. Nothing is wasted.

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?

An output schema exists, so return-value detail is rightly omitted, and the description covers scope plus the key non-mutation guarantee. It is nearly complete for a single-param read tool, lacking only any hint about progress semantics or whether repeated polling is expected.

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 0% for the single required operationId, and the description only implies it identifies 'one Audience creation operation' without naming the parameter or explaining any constraints. The format constraint lives in the schema, so this is a marginal addition — baseline 3 given one undocumented param.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Read) and resource (one Audience creation operation plus members' training progress), which is distinguishable from create_audience_from_brief and list_audiences. It does not explicitly name a sibling, so it falls short of a 5.

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 clause 'Never starts or retries creation' implicitly routes the agent here for polling rather than for triggering creation, which is useful. However, no alternative tool is named and no explicit when-to-use condition is given, so guidance remains implied.

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

Returns the Audience size ceilings that apply to the authenticated account before an Audience is created: the per-Audience plan cap including any configured team allowance, the custom-size maximum, and the per-mode ceilings. Relevant whenever a size is named, "as many as possible" is asked for, or a creation mode is chosen.

The two mode ceilings are different things. automaticSizingCeiling bounds the size the server picks when memberCount is omitted; explicitCountCeiling bounds a size you state, and only "balanced" has one — exceeding it is refused with MODE_CAP. In the deeper modes a stated size is bounded by memberCap alone.

These are sizes for each Audience, not workspace capacity, remaining credits, or a reservation. The response names the account and team the allowance belongs to, which can differ from another connector or browser login.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
creationModesNoAudience creation modes and their limits, when a mode was requested.

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so no side effects are expected. The description adds valuable behavioral context beyond annotations by explaining the distinct meanings of the two mode ceilings, the MODE_CAP refusal behavior, and that the response identifies the account/team which may differ from other connectors. It also clarifies the data scope (per-Audience, not workspace), giving the agent a full picture of the tool's semantics.

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 appropriately detailed without waste. Each sentence serves a distinct purpose: defining outputs, stating relevance, clarifying field semantics, and disambiguating scope. It is well-structured and front-loads the core purpose before diving into nuances. No redundant phrasing or filler.

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 the tool's simplicity (one optional parameter) and the presence of an output schema, the description is remarkably complete. It explains the meaning of the returned fields, when to use the tool, and the error condition (MODE_CAP). It covers all aspects an agent needs to call it correctly and interpret results. There are no apparent gaps.

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 single parameter 'mode' is fully described in the schema (enum with three values, each with a description), giving 100% schema coverage. The description goes further by explaining the practical implications of each mode (e.g., only balanced has an explicitCountCeiling) and the effect of omitting the parameter. This enriches the schema's semantics and helps the agent choose the right value.

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 precisely states the tool returns 'Audience size ceilings' for the authenticated account, listing specific components (per-Audience plan cap, custom-size maximum, per-mode ceilings). It further disambiguates the meaning of the returned fields (automaticSizingCeiling, explicitCountCeiling, memberCap) and clarifies what these are not (workspace capacity, credits, reservation). This is a specific verb+resource action that clearly differentiates from sibling tools like list_audiences or create_audience_from_brief.

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 explicitly states when the tool is relevant: 'Relevant whenever a size is named, "as many as possible" is asked for, or a creation mode is chosen.' It also explains the nuanced behavior of mode ceilings and which mode has an explicit cap, warning that exceeding it is refused with MODE_CAP. This provides clear contextual guidance without ambiguity and implicitly tells the agent when to consult this tool versus alternatives.

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 a Study's current state: progress for in-flight questions, completed per-Audience results, the linked Minds, the Study links, and the status of a requested asynchronous export job. Values can be numeric answers or classified summary labels, and message fields carry the original Mind responses where available. locale is the Study's display locale, not a guarantee of the language of every answer.

An in-flight question reports zero Minds answered for its whole run — partial per-Mind progress is not persisted — and then jumps straight to the finished table, so zero is not evidence that a run is stuck.

Pass questionId to follow a single question, or runId to follow one confirmed multi-question run, which reports question-level counters only. With neither, the response covers every question the Study has run and grows with questions x Audiences x Minds x answer length.

Study deletion is not available here.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdNoMulti-question run ID from run_study_questions. Supplying it returns that run: its confirmed plan, question-level progress and response artifacts, instead of the Study-wide view.
studyNoWhich Study to inspect. Omit entirely to use the active Study from this MCP session.
exportNoPoll one asynchronous export job created by the export operation.
questionIdNoReturn only this question: the questionId from ask_study or ask_audience, or from an activeQuestions/recentResults entry. Keeps the response small. Omit to cover every question the Study has run.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoStudy name.
runIdNoThe multi-question run, when one was requested.
localeNoStudy display locale.
apiBaseNoMinds base URL.
studyIdNoThe Study.
artifactsNoResults and artifacts of the requested run. A response artifact may carry answerConsistency {version, flags: [{mindId, withItem, reason}]}.
audiencesNoAudiences with their Minds.
createdAtNoCreation time (ISO 8601).
updatedAtNoLast update time (ISO 8601).
formationsNoAudience breakdowns available for the results.
exportStatusNoStatus of the requested asynchronous export job, if any.
messageCountNoNumber of Study messages.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
publicShareIdNoPublic share identifier, or null.
recentResultsNoCompleted questions with their per-Audience outputData.
sharedStudyUrlNoPublic share link, or null when link sharing is off.
activeQuestionsNoQuestions still running: questionId, question, status, totalMinds, answeredCount.
failedQuestionsNoQuestions that failed, with an error.
answerConsistencyNoRun with runId only: whether each Mind's answers were checked against each other. version, status (checked | incomplete | failed), checkedMinds, flaggedMinds, flagCount, uncheckedMinds, usage {calls, inputTokens, outputTokens}, and unsavedItems (question indexes whose flags could not be saved) when any. A failed check records only version and status.
isLinkSharingEnabledNoWhether the public share link is on.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds credible behavioral context: in-flight questions report zero Minds without indicating a stuck run, locale is only the display locale, and response size grows with questions × Audiences × Minds × answer length. This exceeds what the annotations alone convey.

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

Conciseness4/5

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

Four short paragraphs front-load purpose and then add caveats and parameter-selection guidance; almost every sentence contributes behavioral or routing information. The 'Study deletion is not available here' note is somewhat tangential, keeping this from a perfect conciseness score.

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?

Complexities are well handled: async export polling is described, the in-flight zero-edge case is explained, parameter combinations are specified, and return values are covered by an output schema. Given the nested schema and 22 siblings, nothing essential for selecting or invoking this tool is missing.

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?

Input schema has 100% description coverage, so the baseline is high; the description adds combination semantics such as passing either questionId or runId and the response-size warning when both are omitted. This goes beyond the per-field schema docs but is not exhaustive for every nested field, hence a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb and resource ('Returns a Study's current state') and lists substantial return contents including progress, per-Audience results, linked Minds, Study links, and export job status. It is clearly not just a summary, but it never names or contrasts the sibling get_study_summary, so it stops short of explicit sibling differentiation.

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?

Explicitly describes when to pass questionId vs runId and what happens with neither, which is strong selection guidance within the tool. It does not, however, contrast this read tool with siblings like get_study_summary or route export creation to export_study, so cross-tool usage guidance is missing.

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 SummaryAInspect

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.
studyNoWhich Study to summarize. Omit entirely to use the active Study from this MCP session.
lengthNostandard
refreshNoGenerate or refresh the summary instead of only reading the persisted summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
blocksNoSemantic summary blocks.
studyIdNoSummarized Study.
summaryNoWhole-Study summary.
metadataNoSummary metadata.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the non-read-only nature is covered. The description adds that the summary retains heatmap-compatible block metadata for certain analyses, which is a useful output detail, but it doesn't disclose side effects beyond what 'refreshes' implies. Given the annotations, the description adds modest value without contradicting 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?

The description is a single, efficient sentence that front-loads the core action ('Returns or refreshes') and follows with the output format and a specific metadata detail. Every clause contributes meaning with no waste.

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 presence of an output schema and the annotations, the description covers the main purpose and output format. It doesn't explain the nuances of refresh vs force or study selection, but those are handled by the schema parameter descriptions. For a tool with four optional parameters, this is largely complete, with minor gaps around usage scenarios.

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 75% (three of four parameters have descriptions). The tool description does not elaborate on parameter meanings beyond the schema; it mentions output format but not parameter semantics. The length parameter lacks a description in the schema, and the description doesn't compensate. Since coverage is high, a baseline 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 clearly states the tool's purpose: it returns or refreshes the semantic summary for a Study, and specifies the output as Markdown plus flexible evidence blocks. It also notes a distinguishing detail about heatmap-compatible block metadata for website/image/video analyses, which helps differentiate it from sibling tools like get_study_status or list_studies.

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 retrieving or refreshing summaries, but does not explicitly state when to use it versus alternatives or when to set the refresh or force flags. It doesn't name any sibling tools or give conditions for choosing this tool over others. The usage context is implicit rather than explicit.

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

import_audience_sourcesImport Audience Research SourcesA
Idempotent
Inspect

Imports supplied UTF-8 text, Markdown, CSV and JSON research files into account-owned storage. Accepts file contents rather than local paths. Identical file imports are safe to retry. Optional caller-reviewed grounding JSON binds distributions to existingFiles followed by files in sourceIdx order, returning a normalized snapshot and checksum for audience preview and creation. This operation creates no Audience or Minds and performs no web search or independent verification of supplied percentages.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
existingFilesNo
groundingJsonNoOptional explicitly supplied distribution JSON (the grounding object, not respondent rows). Sources are bound to the files in request order: existingFiles followed by files. Import does not assert independent verification of the supplied percentages.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoImport result from the Minds API: accepted sources and their processing state.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already indicate idempotence and non-destructiveness; the description reinforces this with 'Identical file imports are safe to retry' and adds material behavioral caveats: it creates no Audience or Minds, performs no web search, and does not independently verify supplied percentages. It also discloses the return of a normalized snapshot and checksum.

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 dense sentences with no filler; every statement earns its place. Key constraints are front-loaded, such as accepted formats, inline content, retry safety, and the no-verification caveat.

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 the 3-parameter schema, output schema, and annotations, the description is complete enough for an agent to invoke it correctly. It covers parameter intent, ordering, side-effect boundaries, safety, and even foreshadows the normalized snapshot and checksum return without duplicating the output schema.

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?

Only 33% of schema properties carry descriptions, but the description compensates well. It explains acceptable file formats and inline content, names and orders the binding of existingFiles followed by files, and frames groundingJson as optional caller-reviewed distribution JSON. This adds real meaning beyond the raw 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 opening sentence names a specific verb ('Imports'), a clear resource ('UTF-8 text, Markdown, CSV and JSON research files'), and the destination ('account-owned storage'). It also distinguishes itself from audience-creation siblings by explicitly stating it 'creates no Audience or Minds.'

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 practical invocation context: callers must supply file contents rather than local paths, may pass optional grounding JSON, and can safely retry identical imports. It does not name sibling alternatives or provide explicit 'use this when' conditions, but the boundaries are clear enough because it states what the operation does not do.

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, most recently updated first, one page at a time (limit, default 20, and offset; nextOffset continues), with Mind counts, sharing state, and workspace or shared links. includeMinds adds each Audience's member Minds. searchQuery returns the best fuzzy name match instead of a page. Each Audience carries a workspaceUrl, the authenticated workspace link that stays valid verbatim, plus the top-level workspaceUrl for the Audience list; sharedAudienceUrl, when present, is the public share link for recipients.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoAudiences per page, most recently updated first (default 20, max 100).
offsetNoNumber of Audiences to skip; pass nextOffset from the previous page to continue.
searchQueryNoSearch for an Audience by name (fuzzy matching supported). Returns the best match.
includeMindsNoAlso return each Audience's member Minds (id, name, discipline). Default false: Audiences carry a Mind count only.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoPage size used.
offsetNoOffset of this page.
audiencesNoAudiences: id, name, workspaceUrl, mindCount, sharing state, and member Minds when includeMinds was set.
nextOffsetNoOffset of the next page; absent on the last page.
shownCountNoNumber of items in this response.
totalCountNoTotal number of items available.
workspaceUrlNoMinds workspace link.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds substantial behavioral context beyond that: one-page-at-a-time pagination with nextOffset continuation, 'most recently updated first' ordering, searchQuery returning the best fuzzy match 'instead of a page,' and the nuance that workspaceUrl stays valid verbatim while sharedAudienceUrl is the public share link.

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?

A single dense paragraph with no filler, front-loaded with the core list behavior before parameter and URL details. The heavy parenthetical style makes it slightly harder to parse than a bulleted structure, but every clause earns its place and nothing is wasted.

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 an output schema present and annotations covering the safety profile, the description covers scope, ordering, pagination, returned fields, both optional parameters, and URL semantics. Only edge-case behavior (e.g., empty searchQuery results or no matching names) is left unspecified, which is a minor gap for an otherwise complete read-only tool.

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 input schema already documents all four parameters (100% coverage), so the baseline is 3. The description adds cross-parameter semantics the schema cannot express: searchQuery overrides pagination rather than filtering within it, includeMinds extends each Audience with member Minds, and nextOffset serves as the continuation cursor. This meaningfully exceeds the 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?

The description names a specific verb (Lists), resource (the authenticated user's Audiences), and ordering (most recently updated first), which clearly distinguishes it from siblings such as list_studies, export_audience, and ask_audience. Its scope, pagination, and optional-behavior details make the purpose unambiguous even before consulting the schema.

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

Usage Guidelines4/5

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

The description establishes clear context: this is the paginated-listing tool for the user's own Audiences, with searchQuery and includeMinds as behavioral alternatives. However, it never names a sibling explicitly or states a 'when not to use' condition, so exclusion guidance is implied rather than stated.

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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
methodsNoResearch methods and whether each can run.

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already mark this as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds behavioral value beyond annotations by specifying the output's distinguishing dimensions (availability, complexity, executable status, fallback metadata) and the executable vs. experimental/planned distinction.

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 with no filler: the first identifies the resource and the fields returned, and the second adds the key categorical distinction. The most important scoping information is front-loaded.

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 list tool with one optional, well-documented parameter and an output schema, the description provides everything an agent needs to invoke it correctly. It communicates the purpose, the returned metadata dimensions, and the dynamic executability distinction 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%, so the includePlanned parameter is fully self-documenting in the schema. The description does not add detail about the parameter, but it is consistent with the schema's mention of planned/non-executable methods, so the baseline 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 verb ('Lists') and a specific resource ('Minds research methods'), and adds the key distinguishing attributes: availability, complexity, executable status, and fallback metadata. It also clarifies that the method distinguishes executable from experimental/planned methods, so an agent can tell it apart from sibling list tools such as list_studies or list_audiences.

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 clearly conveys when to use the tool: when an agent needs to enumerate research methods and understand which are currently runnable. It does not explicitly name alternatives or exclusion conditions, but no sibling tool appears to provide this same resource, so the usage context is clear enough.

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, most recently updated first, one page at a time: limit (default 20) and offset, with nextOffset to continue. Each row carries the Study's Audiences with their Mind counts, stored message count, sharing state and links. searchQuery returns the best fuzzy name match instead of a page.

A Study is the persistent workspace holding its Audiences, questions, multi-question blocks, results, exports and history. Its Minds and per-question results come from the Study status rather than this listing. Study deletion is not available here.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoStudies per page, newest first (default 20, max 100).
offsetNoNumber of Studies to skip; pass nextOffset from the previous page to continue.
searchQueryNoSearch for a Study by name (fuzzy matching supported). Returns the best match.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoPage size used.
offsetNoOffset of this page.
studiesNoStudies: id, name, question count, dates, sharing state, Audiences with Mind counts, and links.
nextOffsetNoOffset of the next page; absent on the last page.
shownCountNoNumber of items in this response.
totalCountNoTotal number of items available.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds context about what the listing includes (audiences, mind counts, message counts, sharing state, links) and what it does not include (Minds and results, which come from study status). It also notes that deletion is not available. This adds value beyond annotations, but it does not describe the exact return structure or output schema, which is partially covered by the 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 description is well-structured, with the main functionality in the first sentence and important exclusions and context in the second paragraph. It is not overly verbose, but the second paragraph could be slightly more concise. The key information is front-loaded, making it easy for an agent to quickly understand the tool's purpose.

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 tool's moderate complexity, the description covers the essential aspects: what it lists, pagination, search behavior, and what it does not include. The output schema exists, so return values are documented. The description is sufficient for an agent to decide when to use this tool and what parameters to set, though it could be slightly more explicit about when to choose this over other list tools.

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 documentation covers all three parameters with detailed descriptions, including limits, defaults, and how to continue pagination. The description adds context about pagination (nextOffset) and the behavior of searchQuery, but the schema already provides clear semantics. Since schema coverage is 100%, the description's added value is moderate but not critical.

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 the verb 'Lists' with the resource 'the authenticated user's Studies' and specifies the ordering (most recently updated first) and pagination. It also distinguishes this tool from siblings by noting that Minds and results come from 'Study status' rather than this listing, and that deletion is not available here.

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 clearly states the context of use: to list the user's studies with pagination, and mentions that searchQuery returns the best fuzzy name match instead of a page. However, it does not explicitly state when to use this tool versus alternatives like 'list_study_drafts' or 'list_study_templates', though the description implies the distinction by mentioning the full Study workspace and the lack of deletion.

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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
draftNoThe requested draft, or null.
draftsNoResumable drafts.
totalCountNoNumber of drafts returned.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds genuine behavioral context beyond this: the dual-mode behavior (list-all vs single retrieve), the 'durable' qualifier distinguishing drafts from ephemeral states, and the scope of what is returned. This is valuable added context with no contradiction to 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?

Two sentences with no filler; the primary listing purpose is front-loaded, and the second sentence clarifies the dual-mode behavior and scoping. Efficient and well-ordered, though it could be tighter still.

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

Completeness3/5

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

For a simple read tool with one optional parameter at 100% coverage, an output schema present, and annotations covering safety, the description is mostly adequate. The main gap is the lack of explicit routing to sibling tools (e.g., using list_studies for completed studies), which is only implied.

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 baseline is 3. The description does add some parameter-linked meaning by explaining the behavioral branch: providing a draftId yields the complete saved planning state, while omitting it lists all drafts. This is modest value beyond the schema, not a full compensation, so 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Lists durable unfinished study drafts') and covers the second mode (returning the complete saved planning state for one exact draft ID). It differentiates drafts from running or completed studies, which conceptually separates it from the sibling list_studies, though it doesn't name the sibling explicitly.

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 clause 'Draft records are distinct from running or completed studies' implies when to use this tool versus alternatives like list_studies or save_study_draft, but the guidance is implied rather than explicit. It does not name any sibling or give a clear when-not-to-use directive.

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

list_study_templatesList Study TemplatesA
Read-onlyIdempotent
Inspect

Lists your own and team-shared Study templates, most used first, or returns one exact template including its revision, research method, questions, response settings and question attachments. configuration.methodId names the registered research method the Study runs under, and configuration.questions is a fixed, pre-registered instrument ready to be transcribed into a question plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdNoOmit to list your own and team-shared Study templates.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoStudy templates.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds valuable context beyond annotations: ordering by most used, the list-vs-single mode, and semantics of configuration.methodId and configuration.questions.

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?

Two focused sentences with the primary action and scope front-loaded. The second sentence is dense with useful domain semantics, though phrases like 'fixed, pre-registered instrument' add jargon without much additional clarity.

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 simple read-only tool with one optional parameter and an output schema, this covers the essential behaviors: list vs single retrieval, ordering, and key response fields. Pagination and permissions are not mentioned, but annotations and schema fill most of the remaining gaps.

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 sole parameter templateId has 100% schema description coverage, so the baseline is 3. The description goes further by clarifying the consequence of providing an ID ('returns one exact template'), which explains the parameter's behavioral effect.

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 ('Lists'), resource ('Study templates'), scope ('your own and team-shared'), and behavior ('most used first'). The dual-mode description ('or returns one exact template') clearly distinguishes this from sibling tools like list_studies 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 clearly implies this is the template-listing/retrieval tool, but it never names alternatives or gives explicit when-to-use/when-not-to-use guidance. Routing away from list_study_drafts or manage_study_template is left to the agent's inference.

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

manage_study_templateManage Study TemplateAInspect

Saves, explicitly updates or uses a Custom research template. Deleting one is a separate operation.

Templates are private by default; an owner can share one with their current team, and teammates can read and use a shared template but cannot change it.

A template stores its questions, response settings, question attachments and the research method in configuration.methodId. A calculator-backed method (Van Westendorp, Gabor-Granger, MaxDiff, conjoint, Kano, NPS, top-box, key drivers, TURF) designs its own tasks when the Study runs, and the saved questions are asked alongside them. Use creates an independent editable draft in the Minds web app and never starts research; that draft is finished in the app rather than over MCP. There, the questions of a predefined template are adapted to the Study's goal, context and Audiences, in the language of the brief; standardized instrument items keep their wording (a published validated translation, otherwise the original language), and when adaptation fails or would change the template structure, the saved questions are used as written. A custom template keeps its saved wording unless adaptation is requested. Updates and use require the current revision, and save.requestId makes creation retry-safe.

ParametersJSON Schema
NameRequiredDescriptionDefault
useNo
saveNo
actionYes
updateNo
templateIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoThe template after the requested change, or null.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare only a mutation-shaped safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds substantial behavioral context beyond that: templates are private by default, owner-only sharing, teammates can read/use but not change a shared template, use never launches research, and save.requestId makes creation retry-safe. This is exactly the extra disclosure annotations cannot carry.

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 and multi-sentence, but it is front-loaded with the action set and follows a logical progression (purpose -> sharing -> contents -> method behavior -> use semantics -> revision/retry safety). Most sentences earn their place given the tool's complexity, though the template-adaptation passage is arguably more than an agent needs to select and invoke the tool.

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 complex, nested, five-parameter mutation tool with an output schema (so return values need not be explained), the description covers the critical behavioral and lifecycle concerns: sharing model, use-vs-research separation, revision requirements and retry safety. The main residual gap is per-field semantics for the configuration payload, which neither schema nor description fully addresses.

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 0%, so the description must compensate. It does add meaning for methodId (calculator-backed methods design their own tasks), for save.requestId (retry-safe creation), and for expectedRevision (required for update/use), plus sharing maps to isSharedWithTeam. However, name, goal, studyLocale, question response types, attachments, and templateId receive no semantic explanation, leaving much of a 5-parameter nested schema undocumented in both structured and prose form.

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 opening states a specific verb set (saves, updates, uses) and a precise resource (Custom research template), and immediately distinguishes itself from the delete sibling: 'Deleting one is a separate operation.' An agent can route correctly between manage_study_template and delete_study_template without opening either schema.

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 enumerates the three actions (save/update/use) and gives conditions for each: updates and use require the current revision, and 'use' creates an independent editable draft that 'never starts research' and is finished in the web app. It also names the excluded operation (deletion) explicitly, so the agent knows what this tool will not do.

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 StudyA
Destructive
Inspect

Creates or revises a non-executing draft for a multi-question plan inside an existing Study. Saving never starts research. To change a draft, pass draft.id with its current draft.revision — re-sending a reworded request creates a SECOND draft instead of revising; a stale revision is rejected.

This is the setup operation for any questionnaire, survey, battery, section or request containing two or more known questions: include every question known now in this one draft, grouped into cohesive named modules in respondent order. A one-question draft is only for genuinely standalone research, or a follow-up whose wording depends on results that do not exist yet.

It records respondent-visible questions, response formats and confirmation questions for review.

Pass request to have the planner design the questions, or questions for a fixed instrument, which is transcribed exactly and bypasses the planner; a question sent as qualitative whose own text lists its answers becomes the choice question that text states.

Items are answered in order: each Mind sees its own earlier answers in the run (never another Mind's), so an item may build on an earlier one. For skip logic, give an item askIf instead of "if not, answer N/A" wording: only respondents whose own earlier answer matches are asked.

With 2+ attachments, map each question in stimulus.questionAttachments ([] = none); an omitted question gets every attachment, an unused attachment goes with every question.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftNoRevising an existing draft: which draft and revision, and how it should change. Omit for a new draft.
studyNoWhich Study the plan belongs to. Omit entirely to continue the active Study from this MCP session.
policyNoEvidence policy and language stored in the draft revision and reviewed before execution.
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.
stimulusNoRespondent-visible material for the planned block, and how it is assigned to questions.
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.
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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
studyIdNoStudy the plan belongs to.
revisionNoDraft revision to confirm.
nextActionNoWhat to do next: show the draft and wait for explicit confirmation.
draftPlanIdNoDraft plan to confirm with run_study_questions.
draftReviewNoThe saved draft as reviewed: questions, methods, outputs and confirmation choices.

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint/openWorldHint/idempotentHint), the description discloses non-obvious behavior: saving never starts research, a stale revision is rejected, and re-sending a reworded request creates a SECOND draft rather than revising. These are the exact surprises an agent would otherwise hit, and nothing contradicts 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 purpose and revision rule are front-loaded well, and each paragraph addresses a distinct decision (new vs revise, setup scope, request vs questions, ordering/askIf, attachments). It is dense and somewhat long, but almost every sentence carries actionable information rather than padding.

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 complex, deeply nested 7-parameter tool with an output schema, the description covers the full decision surface: creation vs revision, planner vs fixed instrument, skip logic via askIf, and attachment-to-question mapping. Return values are handled by the output schema, so nothing critical 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?

Schema description coverage is 100%, so the schema already documents the parameters and their mutual exclusions. The description reinforces request-vs-questions and the attachment default rules, but adds little meaning the schema does not already carry, matching the baseline for full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a precise verb+resource+scope: 'Creates or revises a non-executing draft for a multi-question plan inside an existing Study,' and clarifies it never starts research. It is clearly distinguishable in intent from execution tools like run_study_questions, but it never names a sibling tool to route against, so it stops short of a 5.

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?

It gives strong when-to-use and when-not-to-use guidance: two-or-more known questions go in one draft, a one-question draft only for standalone/follow-up research, and explicit new-vs-revise instructions (draft.id + current revision). It does not explicitly name an alternative sibling (e.g. where to execute the plan), so full routing guidance is absent.

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

run_study_heatmapRun Study Asset HeatmapAInspect

Read or start a question asset heatmap, with the same behavior as Minds UI. For a specific video or image pass assetKey: its saved upload path (chat/...) or normalized URL. Only assets assigned to that question can be analyzed. GET returns assetHeatmaps keyed by asset identity; start with assetKey reuses completed analysis for that asset, while start without assetKey can rerun analysis. Website analysis visits the assigned public URL. Starting analysis uses one response per Mind and requires Premium. Selecting a different video does not change the question results.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoget
studyIdNo
assetKeyNo
messageIdYes
studyNameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
studyIdNoStudy the heatmap belongs to.
messageIdNoHeatmap result.

TDQS

A4.1/5.0
Behavior4/5

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

The description adds behavioral details beyond annotations: starting analysis consumes a response per Mind, requires Premium, and that selecting a different video doesn't alter results. It also explains GET vs start behavior and output keying, giving an agent a realistic expectation of side effects and outcomes.

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 compact yet information-dense. It front-loads the core purpose, then details usage, constraints, and side effects without redundancy. Every sentence contributes new information, making it appropriately concise for the tool's complexity.

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 tool's dual actions, parameter nuances, and premium requirement, the description covers the essential calling context. Since an output schema exists, return-value details are not needed. The only notable omission is explicit guidance on where messageId/studyId come from, but that is likely inherited from the study context.

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 0%, so the description must compensate. It explains assetKey format (upload path or normalized URL) and the action enum's behavioral meaning. However, it leaves messageId (required), studyId, and studyName unexplained, which is a gap for a required 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 clearly states the tool reads or starts a question asset heatmap, with a specific verb and resource. It also mentions behavior parity with Minds UI and distinguishes itself from siblings like run_study_questions or export_heatmap by focusing on the asset heatmap aspect for a question.

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?

It provides concrete usage context: when to pass assetKey (saved path or URL), the difference between start with assetKey (reuse analysis) and without (rerun), and a prerequisite (Premium). It doesn't explicitly name alternative tools, but the guidance is clear enough for an agent to decide when to invoke it.

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 one stored draft revision inside its Study, after the person has explicitly confirmed that exact revision. One execution submits the whole draft — every named module and every question — as a single durable run; there is no per-question or per-module execution.

Before queuing, the server revalidates the revision, method availability and reviewed capabilities, and checks that required respondent-visible material is readable. It refuses the entire run if it is not, before any Mind is used or any quota spent.

Items are answered in order, as one respondent would: every Mind answers an item in parallel, and each Mind sees its own earlier answers in this run, never another Mind's. So an item may build on an earlier one, and order effects can arise as in a fielded survey. Items with askIf are asked only of Minds whose own earlier answer matched. After the run, answers that contradict the same Mind's other answers are flagged for review, never changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftYesThe exact confirmed draft revision to execute.
studyNoWhich Study to run in. Omit entirely to use the active Study from this MCP session.
confirmedYesMust be true only after the user explicitly confirms this exact draft revision.
audienceIdsNoOptional subset of the Study's Audiences to include.
idempotencyKeyNoStable UUID for safe retries.
modelConnectionNoVerified caller-team connection for Mind answers and verbatim rendering. Select only when the user requests it; confirmation pins this connection revision, and retries must keep it. Supporting analysis retains platform models.
advancedMethodOptInNoExplicit opt-in for an advanced method. Omit or false to keep simple methods.

Output Schema

ParametersJSON Schema
NameRequiredDescription
runIdNoDurable run; poll it with get_study_run.
statusNoRun status, or stimulus_unavailable / plan_limited when nothing started.
studyIdNoStudy the block runs in.
workspaceUrlNoMinds workspace link for the Study.
executionStartedNoFalse when nothing started.

TDQS

A4.4/5.0
Behavior5/5

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

With annotations limited to readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=true, the description carries substantial extra behavioral weight: pre-queue revalidation with whole-run refusal before 'any Mind is used or any quota spent,' parallel answering with strict per-Mind answer isolation, askIf conditional asking, order-effect disclosure, and post-run contradiction flagging that is 'never changed.' This is rich, decision-relevant execution semantics far beyond what the annotations convey, and nothing contradicts 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?

The description is front-loaded: the opening sentence states purpose and scope, and each subsequent paragraph earns its place by covering validation gates, execution ordering, askIf behavior, and post-run flagging. For a 7-parameter tool with nested objects and an orchestration engine, the length is proportional; there is no filler or repetition.

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 tool's high complexity and the existence of an output schema (so return values need not be explained), the description covers the essential runtime semantics comprehensively: atomicity, validation-before-cost, concurrency, askIf routing, and contradiction handling. The only notable gap is the post-queue lifecycle — the description never says how an agent observes the queued run's progress or outcome, though the sibling get_study_status and the output schema partially cover that.

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 each parameter thoroughly; the baseline of 3 applies. The description adds conceptual glue — tying draft+confirmed into a single all-or-nothing execution and explaining that audienceIds/modelConnection scoping happens within one durable run — but it introduces no new per-parameter syntax or format details beyond what the schema 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 first sentence states a specific verb and resource: 'Executes one stored draft revision inside its Study, after the person has explicitly confirmed that exact revision.' It further scopes itself with 'every named module and every question — as a single durable run; there is no per-question or per-module execution,' which clearly distinguishes it from per-item tools and the sibling run_study_heatmap. An agent can tell exactly what this tool does and what it is not.

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 a hard usage gate ('after the person has explicitly confirmed that exact revision') reinforced by the confirmed parameter, and the schema-level parameter docs add situational guidance ('Select only when the user requests it' for modelConnection; 'Omit entirely to use the active Study'). However, it never explicitly names alternatives or exclusion conditions versus siblings like ask_study or plan_study_questions, so it falls just short of a 5.

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

save_study_draftSave Study DraftA
Destructive
Inspect

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 replace the saved planning state and require the exact draft ID and expected revision; stale writes are rejected. For a retryable creation, choose idempotencyKey before the first save and reuse it after an uncertain result.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSidebar name for the Study draft.
draftNoWhich durable draft to revise, and the retry key. Omit to create a new draft.
contextNoResearch context captured so far.
plannerNoPlanner state to restore when the draft is reopened.
methodIdNoResearch method selected for the draft. Use list_research_methods as the availability authority.guided-research
questionsNoManual research questions in their intended order.
audienceIdsNoExisting Audience IDs selected for the Study. Preferred.

Output Schema

ParametersJSON Schema
NameRequiredDescription
draftNoThe saved draft.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, and the description goes well beyond that: it discloses that revisions replace saved planning state, stale writes are rejected via expectedRevision, and retryable creation requires a stable idempotencyKey. This gives the agent the full concurrency and retry model, which is exactly the behavioral nuance needed for safe 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?

Four sentences, each carrying distinct information: purpose, payload summary, revision/concurrency behavior, and retry guidance. The main scope is front-loaded and there is no filler or repetition of schema details.

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 complex 7-parameter tool with nested objects and no required parameters, the description covers why to call it, what it saves, and the concurrency/retry model. The presence of an output schema means return values don't need to be described, so nothing critical for correct invocation is missing.

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 valuable relational semantics not obvious from the schema: it explains how draft.id and expectedRevision work together for optimistic concurrency and how idempotencyKey enables safe retries. It also summarizes the payload contents (objective, context, Audiences, method, questions, sources, planner step), tying the parameter groups to their purpose.

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 and resource: 'Creates or checkpoints an unfinished Quick or Custom Study draft without starting research.' It clearly scopes the tool to draft-saving rather than research execution, distinguishing it from siblings like create_study and list_study_drafts without needing to inspect schemas.

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 'without starting research' provides clear context on when this tool is appropriate—saving or checkpointing planning state—and implies create_study is the alternative when research should actually start. It does not explicitly name sibling alternatives or give exclusions, but the draft-versus-research framing is enough for an agent to make the right choice.

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.

  1. 2 tool updates
    • Changedcreate_audience_from_brief6 fields changed
      • addedInput schema / properties / draft
        Added value: +{
        +  "description": "The webapp Audience draft workflow. Preview proposes real Minds before Create; id and sha256 identify the exact reviewed roster. Rework revises that draft.",
        +  "properties": {
        +    "id": {
        +      "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"
        +    },
        +    "preview": {
        +      "type": "boolean"
        +    },
        +    "rework": {
        +      "maxLength": 200000,
        +      "type": "string"
        +    },
        +    "sha256": {
        +      "pattern": "^[a-f0-9]{64}$",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / grounding / properties / preview / description
        Previous value: -"Review the quota axes BEFORE any Mind exists. When true, the server runs research grounding and deterministic cohort allocation without creating an Audience or Minds or consuming a generation allowance. To revise a saved preview without repeating research, pass its unchanged reviewedGroundingJson/SHA pair together with groundingPreview and the revised exclusion/allocation options. Fresh research uses the same durable operation as the public REST API; this tool polls it to completion. The response includes effective target percentages and integer counts; explicit allocation targets that do not match grounded axes fail closed. Present the plan to the user, then call again without groundingPreview and pass reviewedGroundingJson plus reviewedGroundingSha256 unchanged with the same allocation options."New value: +"Review the quota axes BEFORE any Mind exists. When true, the server runs research grounding and deterministic cohort allocation without creating an Audience or Minds or consuming a generation allowance. To revise a saved preview without repeating research, pass its unchanged reviewedGroundingJson/SHA pair together with groundingPreview and the revised exclusion/allocation options. Fresh research uses the same durable operation as the public REST API; this tool returns its operation immediately so the widget can stream sources and distributions. New briefs default to the full webapp draft with proposed Minds; set grounding.preview:true only for a quota-only review. The response includes effective target percentages and integer counts; explicit allocation targets that do not match grounded axes fail closed. Present the plan to the user, then call again without groundingPreview and pass reviewedGroundingJson plus reviewedGroundingSha256 unchanged with the same allocation options."
      • changedInput schema / properties / operationId / description
        Previous value: -"Resume a queued preview or creation by its returned jobId. Reads its v1 operation status without creating or charging anything. Supply this alone; do not repeat the creation brief to check progress."New value: +"Resume a queued preview or creation by its returned jobId. Reads its v1 operation status without creating or charging anything. Supply this alone; do not repeat the creation brief to check progress. Once the creation completed, the result also says whether every Mind can chat yet (the Audience is ready then) and how many are still learning from their sources in the background; call it again to follow that."
      • addedOutput schema / properties / audienceReview
        Added value: +{
        +  "description": "Reviewed Audience brief, distributions and creation options for the widget."
        +}
      • addedOutput schema / properties / preview
        Added value: +{
        +  "description": "Research and allocation preview; no Audience or Minds have been created."
        +}
      • addedOutput schema / properties / readiness
        Added value: +{
        +  "description": "When a completed operation is read back: member rollup from GET /api/v1/audiences/{id}/progress. isReady = every Mind can chat (the Audience is ready); learning = ready Minds still learning from their sources in the background; fullyTrained = none still learning; research.phase = researching while the Audience's background research runs (it is usable meanwhile), researched once merged and applied."
        +}
    • Addedget_audience_creation_progress
  2. 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. 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. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Storage path of a file already uploaded to Minds. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Fetchable HTTP(S), signed, or Minds workspace upload URL. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
    • Changedask_study3 fields changed
      • changedInput schema / properties / evidence / 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Files/images processed once and given to every participating Mind. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / evidence / 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Storage path of a file already uploaded to Minds. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / evidence / 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Fetchable HTTP(S), signed, or Minds workspace upload URL. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
    • Changedcreate_audience_from_brief2 fields changed
      • changedInput schema / properties / research / 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. 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. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. 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 / research / 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"URL of an already-uploaded file. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
    • Changedplan_study_questions5 fields changed
      • changedInput schema / properties / stimulus / properties / attachments / description
        Previous value: -"Files and websites available to the planned Study (one question block, at most 100). With multiple assets, map every question explicitly (use [] for no assets); an asset no question uses is shown with every question. 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. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Files and websites available to the planned Study (one question block, at most 100). With multiple assets, map every question explicitly (use [] for no assets); an asset no question uses is shown with every question. Give each scoped file a stable id. Remote URLs are copied into durable Minds storage before the draft is saved. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / stimulus / 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Storage path of a file already uploaded to Minds. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / stimulus / 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Fetchable HTTP(S), signed, or Minds workspace upload URL. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / stimulus / properties / source / description
        Previous value: -"The one main source this study is about. When Minds must evaluate pasted text, use kind prompt and put the exact respondent-visible material in content. Keep research objectives, requested questions, and planner-only instructions in request. 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. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. 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. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / stimulus / 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. Study tools import external file URLs into durable Minds storage before saving or running. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Fetchable source URL. Pass a fetchable HTTP(S) URL, or an existing Minds workspace upload under chat/<userId>/ (that storage path or its /api/uploads/chat/ URL; request the signed upload with folder \"chat\"). MCP cannot read a local path, and a file the user attached in the chat client is NOT reachable either unless that client also exposes a public URL for it — most do not. When it is not: send the file CONTENTS to import_audience_sources (UTF-8 text, Markdown, CSV, JSON), which takes contents rather than paths. A PDF or image with no public URL has no MCP route at all — it must be uploaded in the Minds app first; say so instead of retrying. Study tools import external file URLs into durable Minds storage before saving or running. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
  3. 1 tool update
    • Changedplan_study_questions2 fields changed
      • changedInput schema / properties / stimulus / properties / attachments / description
        Previous value: -"Files and websites available to the planned Study (one question block, at most 100). With multiple assets, every question needs an explicit assignment and every asset must be used by at least one question. Use [] for no assets. 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. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."New value: +"Files and websites available to the planned Study (one question block, at most 100). With multiple assets, map every question explicitly (use [] for no assets); an asset no question uses is shown with every question. 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. A workspace upload reused as a Study asset must sit under chat/<userId>/: request the signed upload with folder \"chat\" and pass that storage path or its /api/uploads/chat/ URL. A temp/, portfolio/, or context/ path — and any /api/uploads/file-access/ URL — is refused as not belonging to the workspace owner and is never re-fetched; pass a plain external URL instead. The Study refuses to start if Minds cannot read the asset."
      • changedInput schema / properties / stimulus / properties / questionAttachments / description
        Previous value: -"Question-to-file mapping. Multi-asset blocks require every question to be mapped, using [] for no assets; every asset must appear on at least one question. Each question at most once; every referenced attachment id must resolve."New value: +"Question-to-file mapping. In multi-asset blocks map every question, using [] for no assets; an omitted question receives every asset and an asset on no question is shown with every question. Each question at most once; every referenced attachment id must resolve."
  4. 1 tool update
    • Changedexport_audience1 field changed
      • changedInput schema / properties / kind / description
        Previous value: -"What to export: \"brief\" (default), the Audience brief; or \"validation_report\", every scored validation of the Audience with the overall score calculation, every KPI with its 95% interval and flat baseline, per-question answer shares and provenance. A validation report needs edit access and a scored validation."New value: +"What to export: \"brief\" (default), the Audience brief; or \"validation_report\", every scored validation of the Audience with the overall score calculation, every KPI with its 95% interval, per-question answer shares and provenance. A validation report needs edit access and a scored validation."
  5. 1 tool update
    • Changedexport_audience3 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"Export format: \"md\" (default), \"pdf\", \"docx\", or \"pptx\""New value: +"Export format: \"md\" (default), \"pdf\", \"docx\"; \"pptx\" for a brief only; \"xlsx\" (every table as a sheet) for a validation report only."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "md",
        -  "markdown",
        -  "pdf",
        -  "docx",
        -  "pptx"
        -]New value: +[
        +  "md",
        +  "markdown",
        +  "pdf",
        +  "docx",
        +  "pptx",
        +  "xlsx"
        +]
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "What to export: \"brief\" (default), the Audience brief; or \"validation_report\", every scored validation of the Audience with the overall score calculation, every KPI with its 95% interval and flat baseline, per-question answer shares and provenance. A validation report needs edit access and a scored validation.",
        +  "enum": [
        +    "brief",
        +    "validation_report"
        +  ],
        +  "type": "string"
        +}
  6. 3 tool updates
    • Changedask_audience1 field changed
      • changedInput schema / properties / question / description
        Previous value: -"Exactly 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. If the question offers a fixed set of answer options, say so in the text as the respondent would read it. A direct question is classified automatically, and a question whose options are only prose can still be answered as free text, which yields no option breakdown. A question whose options must be ranked, or whose exact option labels and order must be preserved, belongs in a planned multi-question block, where each item carries an explicit response contract."New value: +"Exactly 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. If the question offers a fixed set of answer options, say so in the text as the respondent would read it. The research reader identifies the question and its answer contract together. Include the complete authored labels, ordering and selection instructions. Numbered answer options do not by themselves make a request a multi-question battery. An invalid or ambiguous reading stops for retry or planning before execution."
    • Changedask_study2 fields changed
      • changedInput schema / properties / evidence / properties / sourcePolicy / description
        Previous value: -"Use knowledge_only to forbid web/request sources and require every answer to be grounded in processed Mind knowledge."New value: +"Use knowledge_only to exclude web and request sources. When relevant Mind knowledge is unavailable, subjective answers use the trained profile and factual answers state the evidence limitation."
      • changedInput schema / properties / question / description
        Previous value: -"Exactly 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. If the question offers a fixed set of answer options, say so in the text as the respondent would read it. A direct question is classified automatically, and a question whose options are only prose can still be answered as free text, which yields no option breakdown. A question whose options must be ranked, or whose exact option labels and order must be preserved, belongs in a planned multi-question block, where each item carries an explicit response contract."New value: +"Exactly 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. If the question offers a fixed set of answer options, say so in the text as the respondent would read it. The research reader identifies the question and its answer contract together. Include the complete authored labels, ordering and selection instructions. Numbered answer options do not by themselves make a request a multi-question battery. An invalid or ambiguous reading stops for retry or planning before execution."
    • Changedplan_study_questions18 fields changed
      • addedInput schema / properties / draft / properties / edits / properties / questions / items / properties / response / properties / scalePoints
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "label": {
        +        "type": "string"
        +      },
        +      "value": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "label",
        +      "value"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 100,
        +  "minItems": 2,
        +  "type": "array"
        +}
      • removedInput schema / properties / draft / properties / edits / properties / questions / items / properties / response / properties / scaleRange / items / maximum
        Removed value: -100
      • removedInput schema / properties / draft / properties / edits / properties / questions / items / properties / response / properties / scaleRange / items / minimum
        Removed value: --100
      • changedInput schema / properties / draft / properties / edits / properties / questions / items / properties / response / properties / scaleRange / items / type
        Previous value: -"integer"New value: +"number"
      • changedInput schema / properties / draft / properties / questionResponses / description
        Previous value: -"Explicit response-format edits, one entry per question. Each entry needs questionId (from the latest draft) plus the type the question actually calls for: categorical for one choice, multiselect for several (with maxSelections), ranking when every Mind orders all categoricalOptions, scale with an inclusive integer scaleRange, and qualitative only for a genuinely open answer. Use this to correct an item whose options ended up inside its text."New value: +"Explicit response-format edits, one entry per question. Each entry needs questionId (from the latest draft) plus the type the question actually calls for: categorical for one choice, multiselect for several (with maxSelections), ranking when every Mind orders all categoricalOptions, scale with an inclusive finite numeric scaleRange, and qualitative only for a genuinely open answer. Use this to correct an item whose options ended up inside its text."
      • removedInput schema / properties / draft / properties / questionResponses / items / properties / categoricalOptions / items / minLength
        Removed value: -1
      • addedInput schema / properties / draft / properties / questionResponses / items / properties / scalePoints
        Added value: +{
        +  "description": "Exhaustive allowed scale answers in authored order, each with its literal label and numeric value. Omit for an unenumerated range; never fill missing intermediate points.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "label": {
        +        "type": "string"
        +      },
        +      "value": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "label",
        +      "value"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 100,
        +  "minItems": 2,
        +  "type": "array"
        +}
      • changedInput schema / properties / draft / properties / questionResponses / items / properties / scaleRange / description
        Previous value: -"Inclusive integer response range as [minimum, maximum]; required for scale responses."New value: +"Inclusive finite numeric response bounds as [minimum, maximum], only when specified. Numeric responses may be unbounded. Fractional and wide ranges retain their authored values."
      • removedInput schema / properties / draft / properties / questionResponses / items / properties / scaleRange / items / maximum
        Removed value: -100
      • removedInput schema / properties / draft / properties / questionResponses / items / properties / scaleRange / items / minimum
        Removed value: --100
      • changedInput schema / properties / draft / properties / questionResponses / items / properties / scaleRange / items / type
        Previous value: -"integer"New value: +"number"
      • changedInput schema / properties / questions / items / properties / response / description
        Previous value: -"Exact execution contract for this item. Pick by what the question asks of a respondent: a fixed set of choices is categorical (exactly one) or multiselect (several, with maxSelections); putting every option in order is ranking; a numeric judgement is scale with an inclusive integer scaleRange; only a genuinely open answer in the respondent's own words is qualitative. categorical, multiselect and ranking all carry the choices in categoricalOptions, which keep their exact labels and order even with attachments; files are evidence and do not generate replacement A/B options."New value: +"Exact execution contract for this item. Pick by what the question asks of a respondent: a fixed set of choices is categorical (exactly one) or multiselect (several, with maxSelections); putting every option in order is ranking; a numeric judgement is scale with an inclusive finite numeric scaleRange; only a genuinely open answer in the respondent's own words is qualitative. categorical, multiselect and ranking all carry the choices in categoricalOptions, which keep their exact labels and order even with attachments; files are evidence and do not generate replacement A/B options."
      • removedInput schema / properties / questions / items / properties / response / properties / categoricalOptions / items / minLength
        Removed value: -1
      • addedInput schema / properties / questions / items / properties / response / properties / scalePoints
        Added value: +{
        +  "description": "Exhaustive allowed scale answers in authored order, each with its literal label and numeric value. Omit for an unenumerated range; never fill missing intermediate points.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "label": {
        +        "type": "string"
        +      },
        +      "value": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "label",
        +      "value"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 100,
        +  "minItems": 2,
        +  "type": "array"
        +}
      • changedInput schema / properties / questions / items / properties / response / properties / scaleRange / description
        Previous value: -"Inclusive integer response range as [minimum, maximum]; required for scale responses."New value: +"Inclusive finite numeric response bounds as [minimum, maximum], only when specified. Numeric responses may be unbounded. Fractional and wide ranges retain their authored values."
      • removedInput schema / properties / questions / items / properties / response / properties / scaleRange / items / maximum
        Removed value: -100
      • removedInput schema / properties / questions / items / properties / response / properties / scaleRange / items / minimum
        Removed value: --100
      • changedInput schema / properties / questions / items / properties / response / properties / scaleRange / items / type
        Previous value: -"integer"New value: +"number"
  7. 2 tool updates
    • Changedget_study_status2 fields changed
      • addedOutput schema / properties / answerConsistency
        Added value: +{
        +  "description": "Run with runId only: whether each Mind's answers were checked against each other. version, status (checked | incomplete | failed), checkedMinds, flaggedMinds, flagCount, uncheckedMinds, usage {calls, inputTokens, outputTokens}, and unsavedItems (question indexes whose flags could not be saved) when any. A failed check records only version and status."
        +}
      • changedOutput schema / properties / artifacts / description
        Previous value: -"Results and artifacts of the requested run."New value: +"Results and artifacts of the requested run. A response artifact may carry answerConsistency {version, flags: [{mindId, withItem, reason}]}."
    • Changedplan_study_questions6 fields changed
      • addedInput schema / properties / draft / properties / edits / properties / questions / items / properties / askIf / properties / categoryIn
        Added value: +{
        +  "items": {
        +    "maxLength": 500,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 100,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedInput schema / properties / draft / properties / edits / properties / questions / items / properties / askIf / properties / categoryNotIn
        Added value: +{
        +  "items": {
        +    "maxLength": 500,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 100,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / properties / questions / items / properties / askIf / description
        Previous value: -"Routing: ask this item only of respondents whose own answer to an earlier categorical or multiselect item (questionId) matched. Give exactly one of answerIn or answerNotIn with that item's exact option labels. Respondents not asked are recorded as not asked and excluded from this item's results."New value: +"Routing: ask this item only of respondents whose own answer to an earlier item (questionId) matched. Give exactly one of: answerIn or answerNotIn with an earlier categorical or multiselect item's exact option labels; or categoryIn or categoryNotIn for an earlier open (qualitative) item, whose answers are coded into the categories named for it (one frame per item, at most 12) once it has been answered; an answer fitting none of them counts as none. Scale and ranking items cannot gate. Respondents not asked are recorded as not asked and excluded from this item's results."
      • addedInput schema / properties / questions / items / properties / askIf / properties / categoryIn
        Added value: +{
        +  "items": {
        +    "maxLength": 500,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 100,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedInput schema / properties / questions / items / properties / askIf / properties / categoryNotIn
        Added value: +{
        +  "items": {
        +    "maxLength": 500,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 100,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / properties / questions / items / properties / text / description
        Previous value: -"Exact respondent-visible question text, including any anchors or labels. Stored as given. Answer options do NOT belong here: list them in response.categoricalOptions instead. A question whose text spells out its choices but is typed qualitative is answered as free text, every Mind converges on the same most likely wording, and the chart shows one option at 100%. State the options here only as a respondent would read them, and always carry the same options in response.categoricalOptions so the contract and the wording agree."New value: +"Exact respondent-visible question text, including any anchors or labels. Stored as given. Answer options do NOT belong here: list them in response.categoricalOptions instead. A question whose text spells out its choices but is typed qualitative is answered as free text, every Mind converges on the same most likely wording, and the chart shows one option at 100%. State the options here only as a respondent would read them, and always carry the same options in response.categoricalOptions so the contract and the wording agree. Skip and filter instructions (\"No -> go to Q12\", \"only if Q3 = Yes\") do not belong in the text either: transcribe each as askIf. A jump from an answer of item G to item N gives every item between G and N answerNotIn [that answer]; a filter gives answerIn. Tell the person about any instruction you cannot map to exact items and options instead of guessing it."
  8. 1 tool update
    • Changedcreate_audience_from_brief1 field changed
      • changedInput schema / properties / research / properties / includeWebSearch / description
        Previous value: -"Set 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."New value: +"Set 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. Note that a study report, questionnaire, screener or respondent dataset grounds the Audience but is deliberately withheld from the members' own knowledge, so it cannot be the evidence they answer from; with nothing left to ground on, creation is refused rather than producing Minds with no evidence. Leave it true unless the supplied sources include material the members themselves should read."
  9. 3 tool updates
    • Changedask_audience1 field changed
      • changedInput schema / properties / question / description
        Previous value: -"Exactly 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."New value: +"Exactly 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. If the question offers a fixed set of answer options, say so in the text as the respondent would read it. A direct question is classified automatically, and a question whose options are only prose can still be answered as free text, which yields no option breakdown. A question whose options must be ranked, or whose exact option labels and order must be preserved, belongs in a planned multi-question block, where each item carries an explicit response contract."
    • Changedask_study1 field changed
      • changedInput schema / properties / question / description
        Previous value: -"Exactly 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."New value: +"Exactly 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. If the question offers a fixed set of answer options, say so in the text as the respondent would read it. A direct question is classified automatically, and a question whose options are only prose can still be answered as free text, which yields no option breakdown. A question whose options must be ranked, or whose exact option labels and order must be preserved, belongs in a planned multi-question block, where each item carries an explicit response contract."
    • Changedplan_study_questions6 fields changed
      • changedInput schema / properties / draft / properties / edits / description
        Previous value: -"Save exact edits to draftPlanId and revision without a model call. Preserves method configuration, source policy, item IDs and exact wording. Questions are the complete selected instrument in module order; method-specific batteries are read-only. Cannot combine with planner inputs."New value: +"Save exact edits to draftPlanId and revision without a model call. Preserves method configuration, source policy, item IDs and exact wording. Questions are the complete selected instrument in module order, including each item's askIf (omitted means none); method-specific batteries are read-only. Cannot combine with planner inputs."
      • addedInput schema / properties / draft / properties / edits / properties / questions / items / properties / askIf
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "answerIn": {
        +      "items": {
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 100,
        +      "minItems": 1,
        +      "type": "array"
        +    },
        +    "answerNotIn": {
        +      "items": {
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 100,
        +      "minItems": 1,
        +      "type": "array"
        +    },
        +    "questionId": {
        +      "maxLength": 80,
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "questionId"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / draft / properties / questionResponses / description
        Previous value: -"Explicit response-format edits, one entry per question. Each entry needs questionId (from the latest draft) plus type qualitative, categorical, multiselect, ranking (every Mind orders all categoricalOptions), or scale with an inclusive integer scaleRange."New value: +"Explicit response-format edits, one entry per question. Each entry needs questionId (from the latest draft) plus the type the question actually calls for: categorical for one choice, multiselect for several (with maxSelections), ranking when every Mind orders all categoricalOptions, scale with an inclusive integer scaleRange, and qualitative only for a genuinely open answer. Use this to correct an item whose options ended up inside its text."
      • addedInput schema / properties / questions / items / properties / askIf
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Routing: ask this item only of respondents whose own answer to an earlier categorical or multiselect item (questionId) matched. Give exactly one of answerIn or answerNotIn with that item's exact option labels. Respondents not asked are recorded as not asked and excluded from this item's results.",
        +  "properties": {
        +    "answerIn": {
        +      "items": {
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 100,
        +      "minItems": 1,
        +      "type": "array"
        +    },
        +    "answerNotIn": {
        +      "items": {
        +        "maxLength": 500,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 100,
        +      "minItems": 1,
        +      "type": "array"
        +    },
        +    "questionId": {
        +      "maxLength": 80,
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "questionId"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / questions / items / properties / response / description
        Previous value: -"Exact execution contract for this item: type qualitative, categorical (with categoricalOptions), multiselect, ranking (with categoricalOptions every Mind puts in order), or scale (with inclusive integer scaleRange). Supplied categoricalOptions keep their exact labels and order even with attachments; files are evidence and do not generate replacement A/B options."New value: +"Exact execution contract for this item. Pick by what the question asks of a respondent: a fixed set of choices is categorical (exactly one) or multiselect (several, with maxSelections); putting every option in order is ranking; a numeric judgement is scale with an inclusive integer scaleRange; only a genuinely open answer in the respondent's own words is qualitative. categorical, multiselect and ranking all carry the choices in categoricalOptions, which keep their exact labels and order even with attachments; files are evidence and do not generate replacement A/B options."
      • changedInput schema / properties / questions / items / properties / text / description
        Previous value: -"Exact respondent-visible question text, including any anchors or labels. Stored as given."New value: +"Exact respondent-visible question text, including any anchors or labels. Stored as given. Answer options do NOT belong here: list them in response.categoricalOptions instead. A question whose text spells out its choices but is typed qualitative is answered as free text, every Mind converges on the same most likely wording, and the chart shows one option at 100%. State the options here only as a respondent would read them, and always carry the same options in response.categoricalOptions so the contract and the wording agree."

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for AI-native LinkedIn prospecting. It enables lead research, audience building, conversation management, and controlled outreach actions such as messaging and publishing through an OAuth-protected remote endpoint.
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Public MCP server for agent-created, human-friendly, short-lived surveys. Enables agents to ask structured questions and retrieve answers.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for creating and managing Mindola lenses, which are grounded AI pages that answer questions from your own material with citations. Enables AI assistants to create lenses, add knowledge, and monitor status through natural language.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.