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
98.2% over 84 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
minds-ai-co/minds-mcp
GitHub Stars
4
Server Listing
Minds MCP Server
ChatGPT
–
Claude
–

TDQS

B3.4/5.0

Scored across 45 tools

Disambiguation3/5

Several clusters genuinely overlap: ask_audience vs ask_study both take a single standalone question, and create_study_plan / save_study_draft / use_study_template / plan_study_questions all produce draft artifacts. Deprecated aliases (plan_study_questions, run_study_questions) explicitly duplicate other tools and force the agent to remember which one is canonical. The very long descriptions do help resolve most cases, but boundaries are learned rather than obvious.

Naming Consistency4/5

The set is overwhelmingly consistent snake_case verb_noun (create_study, get_study_status, export_audience, list_studies, revise_study_plan). Minor deviations: read_study_summary instead of get_, vague update_item and set_sharing with weak noun objects, and the deprecated plan_/run_ aliases that break the verb mapping. Still highly predictable overall.

Tool Count2/5

45 tools is heavy for this domain and well past a comfortable surface, especially with two deprecated aliases and four near-identical export tools that consume distinct slots. The lifecycle is real (audiences, studies, drafts, runs, templates, exports, heatmaps, sharing), but it could be consolidated to roughly half the size without losing capability.

Completeness4/5

Coverage is broad and lifecycle-aware: audience creation/recalibration/duplication/export, draft-plan review/revise/start/resume/cancel, results summaries and rendering, templates full CRUD, sharing and plan limits. Gaps are minor: no delete_audience, no explicit update for an in-flight question or run, and deletion of studies is deliberately impossible, so cleanup dead ends exist.

Available Tools

45 tools
ask_audienceAsk One Standalone Audience QuestionA
Destructive
Inspect

Accepts one standalone question request for an existing Audience and creates a private Study. Returns IDs and links; preparing is not question admission. Report the current phase from the receipt and progress.

The server may reword a context-dependent question. The accepted task and its answer contract are returned with the original request. Ambiguous requests 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 can be URLs, Minds uploads or files shared in the conversation (uploaded or generated images, PDFs).

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 question and the instructions the Minds should receive. Material the question is about (a pasted newsletter, email, ad copy or concept text) goes in textAttachments, verbatim, not here. 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. Accepts a public HTTP(S) URL or a file already in the user's Minds uploads under chat/<userId>/ (its storage path or its /api/uploads/chat/ URL). MCP cannot read a local path. Files shared in the conversation (uploaded or generated images, PDFs, documents) go in the tool's top-level conversationFiles field where the tool has one; elsewhere a PDF or image without a public URL has no MCP route and is uploaded in the Minds app first. Plain text contents (UTF-8 text, Markdown, CSV, JSON) can go to import_audience_sources. External URLs are copied into Minds storage before a Study is saved or run. temp/, portfolio/ and context/ paths and /api/uploads/file-access/ URLs belong to other owners and are not accepted. A Study does not start until Minds can read every file.
textAttachmentsNoPasted material the question is about: a newsletter, an email, ad copy, a concept or any other text the user shared and wants the Minds to react to. Put it here verbatim, one entry per piece, instead of inside the question. Each entry is stored as a Markdown file and given to the Minds like an uploaded attachment; a brief or background note sent here is read as such and not shown to them.
conversationFilesNoStimulus files given to every Audience member, alongside any attachments. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

NameRequiredDescription
runIdNoDurable run identifier.
localeNoStudy display locale.
statusNopreparing when the request was accepted for durable interpretation but no question was submitted; queued once a question was submitted; or planning_required when the request needs a reviewed plan and explicit confirmation before execution.
apiBaseNoMinds base URL.
studyIdNoStudy containing this request and, once admitted, its question.
acceptedNoTrue when durable request preparation was accepted; this does not mean a respondent question was submitted.
questionNoThe verified respondent question, when returned. Its text alone does not report whether the request is queued, the Minds are answering or answers are complete; use the current request's receipt and progress.
planLimitNoPresent when a plan limit refused, truncated or stopped Study work.
questionIdNoLogical request or question identifier. Present during preparation as the exact clientRequestId; use this returned questionId with studyId on the first get_study_status check for the current request. It follows preparation and any admitted question, independently of operationId.
waitingForNoPresent when the question is queued behind Minds still training: how many it waits for. It starts once they are ready; nothing has been answered yet.
operationIdNoOpaque durable preparation operation identifier, present while the request is being interpreted. This is separate from questionId and must not be passed as a question filter.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
questionnaireNoFor planning_required when the uploaded files hold a questionnaire: its verbatim questions with their answer formats, the document's skip rules, changed answer labels, pictures and set-aside parts, saved as the exact draft draftPlanId at revision. Nothing ran yet: after the person's explicit confirmation, start that draft with start_study_run.
sharedStudyUrlNoPublic share link, or null when link sharing is off.
clientRequestIdNoThe accepted logical request identifier. A preparing receipt also returns this exact value as questionId for progress reads.
executionStartedNoFalse when no respondent question was submitted, including accepted preparation and planning_required. Submission or queueing does not establish that Minds are answering; use the current request's progress to report answering or completion.
proposedQuestionsNoFor planning_required: the respondent questions detected or proposed.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare a non-read-only, destructive, non-idempotent, open-world mutation, and the description adds real context beyond that: the Study is private, 'preparing is not question admission', the server may reword context-dependent questions, ambiguous requests return planning_required, and a Study does not start until Minds can read every file. It does not spell out cost/credit consumption for asking a live Audience, which is the main remaining gap for a heavy mutation.

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

Conciseness3/5

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

The out-of-scope rule is well placed and front-loaded, but the opening is dense with terse fragments ('preparing is not question admission', 'Report the current phase from the receipt and progress') whose meaning is not self-evident. Several attachment sentences duplicate schema text word-for-word and could be trimmed.

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 six-parameter mutation with an output schema, the description covers the essential decision surface: single-question scope, planning fallback, private Study creation, and attachment handling. Return values need not be explained since an output schema exists, leaving only cost/latency expectations unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter, including the nested attachment objects, is already documented in detail. The description's attachment paragraph largely restates the schema (URL vs Minds upload path, temp/portfolio/context exclusions); the one added nuance is that pasted material belongs in textAttachments rather than the question, which the schema also states.

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

Purpose5/5

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

Opens with a specific verb and resource: accepts exactly one standalone question for an existing Audience and creates a private Study. It explicitly carves out the multi-question case, so an agent can tell it apart from ask_study / plan_study_questions without opening a schema.

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

Usage Guidelines4/5

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

The 'Out of scope' paragraph states a clear when-not-to-use rule (questionnaire, battery, section, or two or more known questions) and says the alternative is a planned multi-question block inside a Study. Ambiguous or generated questions route to planning_required, which is actionable, though the sibling tool for that path is not named.

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

Requests exactly one respondent-visible question: one standalone question, or one adaptive follow-up whose wording could not be known before earlier results. Out of scope: questionnaires, batteries, sections or two or more known questions; use one confirmed block, submitted once rather than question by question. Durably accepts before execution. planning_required requires confirmation. Question text can reach the Minds; exclude planner/client notes. Pasted material: verbatim in evidence.textAttachments. Accepts files shared in the conversation (uploaded or generated images, PDFs). Returns IDs/links. Fixed time-bucket retries can submit again; check status before repeating uncertain writes.

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 and respondent-facing instructions. Material the question is about (a pasted newsletter, email, ad copy or concept text) goes in evidence.textAttachments, verbatim, not here. Never place planner-only or MCP-client orchestration instructions here, nor tool errors, status messages, Minds or other internal links, or your own process notes. 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.
conversationFilesNoStimulus files given to every participating Mind, alongside any evidence.attachments. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

NameRequiredDescription
runIdNoDurable run identifier.
localeNoStudy display locale.
statusNopreparing when the request was accepted for durable interpretation but no question was submitted; queued once a question was submitted; or planning_required when the request needs a reviewed plan and explicit confirmation before execution.
apiBaseNoMinds base URL.
studyIdNoStudy containing this request and, once admitted, its question.
acceptedNoTrue when durable request preparation was accepted; this does not mean a respondent question was submitted.
questionNoThe verified respondent question, when returned. Its text alone does not report whether the request is queued, the Minds are answering or answers are complete; use the current request's receipt and progress.
planLimitNoPresent when a plan limit refused, truncated or stopped Study work.
questionIdNoLogical request or question identifier. Present during preparation as the exact clientRequestId; use this returned questionId with studyId on the first get_study_status check for the current request. It follows preparation and any admitted question, independently of operationId.
waitingForNoPresent when the question is queued behind Minds still training: how many it waits for. It starts once they are ready; nothing has been answered yet.
operationIdNoOpaque durable preparation operation identifier, present while the request is being interpreted. This is separate from questionId and must not be passed as a question filter.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
questionnaireNoFor planning_required when the uploaded files hold a questionnaire: its verbatim questions with their answer formats, the document's skip rules, changed answer labels, pictures and set-aside parts, saved as the exact draft draftPlanId at revision. Nothing ran yet: after the person's explicit confirmation, start that draft with start_study_run.
sharedStudyUrlNoPublic share link, or null when link sharing is off.
clientRequestIdNoThe accepted logical request identifier. A preparing receipt also returns this exact value as questionId for progress reads.
executionStartedNoFalse when no respondent question was submitted, including accepted preparation and planning_required. Submission or queueing does not establish that Minds are answering; use the current request's progress to report answering or completion.
proposedQuestionsNoFor planning_required: the respondent questions detected or proposed.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true; the description goes further by disclosing durability semantics ("Durably accepts before execution"), that question text is shown to the Minds and can influence answers, and that fixed time-bucket retries may resubmit so status should be checked. That is exactly the non-idempotent write behavior an agent needs and is entirely consistent with the annotations.

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

Conciseness4/5

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

The purpose and the exclusion come first, followed by behavioral rules, and no sentence is pure filler. Some lines are telegraphic to the point of opacity ("Durably accepts before execution. planning_required requires confirmation."), which costs a little readability but keeps the definition compact.

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 7-parameter, deeply nested mutation with an output schema, the description covers the question contract, evidence handling, confirmation and retry behavior well. Remaining gaps are the missing sibling contrast (ask_audience vs ask_study) and no statement of what Study state must exist before a question can be accepted, both of which the agent would otherwise have to guess.

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 heavy nested objects (model, study, evidence, response, audienceIds, conversationFiles) are already documented. The description adds a useful routing summary — pasted material goes verbatim into evidence.textAttachments and conversation files go to the top-level conversationFiles field — but that restates the schema rather than adding new parameter meaning. 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?

States a specific verb and resource ("Requests exactly one respondent-visible question") and immediately bounds the unit of work: one standalone question or one result-dependent adaptive follow-up. The out-of-scope sentence excludes questionnaires, batteries, sections and sets of known questions, so the boundary against batch-style siblings is drawn without the agent opening another 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?

Gives an explicit when-not (anything with two or more known questions) and a redirect pattern ("use one confirmed block, submitted once rather than question by question"), plus a confirmation rule for planning_required and a retry rule for uncertain writes. It stops short of naming the sibling tools (run_study_questions, ask_audience), so the agent must infer which tool the "confirmed block" refers to and when to prefer ask_audience over ask_study.

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

attach_study_audiencesAttach Audiences to StudyA
Idempotent
Inspect

Adds existing accessible Audiences without removing others, planning or starting research. Returns attached and alreadyAttached IDs; retries are safe. With link sharing on, the Audiences and their Minds become publicly readable. Access and plan eligibility are validated first.

NameRequiredDescriptionDefault
studyNoStudy id or name. Omit to use the active Study of this MCP session.
audienceIdsYesOne to 50 existing Audiences to attach to this Study.

Output Schema

NameRequiredDescription
studyIdNoStudy receiving the Audiences.
attachedNoAudience IDs added now.
alreadyAttachedNoAudience IDs already attached.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the additive-only semantics, that retries are safe (corroborating idempotentHint), that access and plan eligibility are validated first, and a genuine side effect — with link sharing on, the Audiences and their Minds become publicly readable. That privacy consequence is not derivable from destructiveHint=false or openWorldHint=true.

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 tightly packed sentences with the core action front-loaded, followed by return values, retry safety, side effect, and preconditions — no filler or redundancy despite the density.

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?

An output schema exists, so return-shape explanation is not required, and the description still names the attached/alreadyAttached result fields. Combined with annotations and 100% schema coverage, it supplies everything needed to invoke the tool correctly, including the public-visibility caveat.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are documented in detail (uuid patterns, 1–50 item bound, study id/name precedence, active-Study fallback). The description only restates the 'existing, accessible' qualifier for audienceIds, 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?

Specific verb+resource ('Adds existing accessible Audiences' to a Study) with an explicit scope qualifier — it does not remove others, plan, or start research — which separates it from delete/update/start_study_run siblings. An agent can identify the operation without opening 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?

'Adds existing accessible Audiences' plus 'Access and plan eligibility are validated first' constrains when the call applies and implies the audiences must already exist (routing away from create_audience_from_brief / import_audience_sources). No sibling is named explicitly as the alternative, so it stops short of a full when/when-not statement.

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

cancel_study_questionStop Standalone Study QuestionA
DestructiveIdempotent
Inspect

Stops one standalone Study question by runId, or studyId and questionId: queued or preparing stops at once, being answered stops at its next step. Answers given are kept. An answered or failed question errors unchanged. Not for multi-question runs.

NameRequiredDescriptionDefault
runIdNorunId that ask_study or ask_audience returned for the question to stop. Without it, pass studyId and questionId.
studyIdNoStudy of the question to stop, with questionId, when the runId is not known.
questionIdNoquestionId that ask_study or ask_audience returned for the question to stop, with studyId.

Output Schema

NameRequiredDescription
runIdNoThe question run the cancellation was requested for.
statusNocancelled (no further answers are generated), cancelling (the Minds answering it stop at their next step), preparing (not submitted yet; call again to stop it) or planning_required (waits for a confirmed plan, nothing is being asked). An already answered or failed question returns an error instead.
stoppedNoTrue while the question is cancelled or stopping, also on a repeated call; false when nothing was asked yet.
studyIdNoStudy of the question; read its state with get_study_status and questionId.
questionIdNoThe question's request id, the questionId get_study_status takes.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing state-dependent timing (queued/preparing stops immediately, being answered stops at the next step), data retention ('Answers given are kept'), and the error behavior for already-answered or failed questions. That is exactly the mutation semantics an agent needs before committing a destructive cancel.

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, front-loaded with the action and identifiers, then timing, then data-retention and error behavior. No filler and no repetition beyond what clarity requires.

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?

An output schema exists, so return shape need not be described. What the description must supply for a destructive, state-transitioning cancel — when it takes effect, what survives, what errors, and what scope is excluded — is all present.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter already documents its role and how runId relates to studyId/questionId. The description restates that either/or structure compactly and front-loads it, but adds no format, precedence, or validation detail the schema lacks.

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 ('Stops') and a precisely scoped resource ('one standalone Study question'), plus the two keying modes. The closing clause 'Not for multi-question runs' actively separates it from sibling run tools like run_study_questions and start_study_run.

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

Usage Guidelines4/5

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

Gives an explicit exclusion ('Not for multi-question runs') and points to where the identifiers come from (ask_study / ask_audience). It does not name the sibling an agent should use instead for multi-question runs, so the routing is implied rather than explicit.

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
DestructiveIdempotent
Inspect

Builds grounded Audience/Mind profiles with exact segment allocation. Returns an asynchronous draft/operation for review; create only after the user accepts its roster/quota snapshot and checksum. Rework the same draft.id/sha256 in place, overwriting its saved request, roster and grounding; never start a new brief for that edit. Supports reviewed datasets and public research/files. Existing Audiences use recalibration. Private unless link sharing is enabled.

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 Minds before Create; id and sha256 identify the exact reviewed roster. Rework revises that draft in place: every change the user asks for while reviewing it (size, market, wording, an axis to drop, a file to add) is preview:true with this id and sha256 and the change as rework, never a new brief. The brief may be omitted on a rework; any option sent with it, such as composition.memberCount or research.files, replaces the draft's stored one. Set preview:false with both id and sha256 only after the user confirms the displayed draft; that confirmation needs nothing else (omit the brief and every other option): the server creates exactly the reviewed draft from its stored request.
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.
conversationFilesNoResearch files (screener, questionnaire, report, respondent data), read like research.files. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.
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

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); startsNow = a Study started now runs at once, without leftOut Minds whose training failed for good; 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.
existingAudiencesNoThe caller's existing Audiences with exactly this name (id, name, workspaceUrl), when a new brief was started; this call still creates a separate Audience.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructiveHint, idempotentHint and openWorldHint, yet the description adds materially new behavior: the call returns an asynchronous draft/operation rather than a finished Audience, rework overwrites the stored request, roster and grounding in place, and link sharing makes the Audience world-readable without login. Those are operational consequences an agent could not infer from the flags 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?

Five sentences, front-loaded with purpose followed by the review-then-create condition and the rework rule; no filler. It is dense with schema-specific terms (draft.id/sha256, roster/quota snapshot), which costs a little readability but not correctness.

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 nine-parameter nested tool with an output schema, the description covers the essential lifecycle: async operation, mandatory user acceptance before creation, in-place rework, and the private-by-default posture. Remaining gaps such as plan ceilings and operation polling are delegated to the schema and to get_audience_limits, which is reasonable.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already carries per-field meaning and the baseline would be 3. The description still earns credit by explaining the lifecycle meaning of draft.id/sha256 ('Rework the same draft.id/sha256 in place... never start a new brief for that edit') and the privacy consequence of the link-sharing flag, tying several parameters into one coherent workflow.

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 ('Builds grounded Audience/Mind profiles') plus the distinguishing mechanism ('exact segment allocation'), and it separates this tool from a named sibling behavior ('Existing Audiences use recalibration'). An agent can distinguish it from create_study, import_audience_sources, or recalibrate_audience without opening any 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?

It gives a hard precondition for creation ('create only after the user accepts its roster/quota snapshot and checksum') and routes existing-audience edits to recalibration, which is explicit when-to-use-instead guidance. It stops short of naming import_audience_sources as the route for plain-text grounding, so the alternative set is incomplete rather than absent.

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.

A Study with this exact name is named back and nothing is created, unless allowDuplicateName is true; work in that Study instead. Studies cannot be deleted here, so any extra Study is permanent.

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. It does not change or replace an existing Study.

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.
conversationFilesNoStimulus for the new Study, stored in Minds and returned as attachments (url, path) to pass with its questions. Respondents see a file only once a question carries it. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.
allowDuplicateNameNoCreate even though a Study with exactly this name exists. Only when the user asked for a separate Study with the same name.
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

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.6/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=true and destructiveHint=false; the description goes well beyond them by disclosing atomic rollback of partial Audience failures, that Studies cannot be deleted (extra Studies are permanent), and that link sharing publishes attached Audiences and their Minds at world-readable URLs. The duplicate-name no-op is consistent with the idempotent hint rather than contradicting it.

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?

Purpose is front-loaded in the first sentence and each subsequent paragraph addresses a distinct decision (duplicates, research routing, atomicity, sharing). It is slightly long and the closing sentence ('does not change or replace an existing Study') partly repeats earlier points.

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 available, the description needn't explain returns, and it still covers the aspects structured fields cannot: permanence of created Studies, atomic rollback, privacy side effects of link sharing, and duplicate handling. Nothing an agent needs to call this safely 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% and the schema already carries the key per-parameter warnings (including the isLinkSharingEnabled publishing caveat and the audienceIds/audienceConfigs preference). The description adds routing context around allowDuplicateName and multi-question submission but little parameter-level syntax or defaults beyond what the schema documents, 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?

States a specific verb and resource ("Creates a Study workspace") plus the two source modes (existing Audiences or inline Audience configurations). It also carves out the boundary against siblings ask_audience/ask_study/run_study_questions by saying it does not ask questions or run research.

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 when-not guidance (no research inside it; follow-up research in an existing Study needs no new Study), duplicate-name routing (use the existing Study unless allowDuplicateName is true), and a directive that requests with two or more known questions belong in one planned multi-question block. An agent can distinguish this from plan_study_questions and ask_study from the text alone.

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

create_study_planCreate Study PlanA
Destructive
Inspect

Creates a non-executing draft in an existing Study with its Audiences already attached. The setup operation for two or more known questions: every question known now belongs in this one draft, in cohesive named modules. A one-question draft is only for genuinely standalone research or an adaptive follow-up. request designs questions; questions preserves a fixed instrument verbatim. Each Mind sees only its own earlier answers; askIf applies respondent-level skip logic. With multiple attachments, stimulus.questionAttachments assigns each question; [] means none. Saving bounded history may prune older revisions. Research has not started; the returned draft revision needs review and later explicit confirmation.

NameRequiredDescriptionDefault
studyNoStudy id or name. Omit to use the active Study of this MCP session.
policyNoResearch method and locale for this plan. Each Mind automatically uses its relevant knowledge alongside the assigned Study stimulus.
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. Write only the user's research brief and context relevant to the research question. Never tool errors, status or retry messages, Minds or other internal links, or your own process notes.
stimulusNoSource and attachments shown to the respondents, with per-question assignments.
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 or questionResponses in the same call (refused); suggestQuestionStimuli has no effect here, place files with questionAttachments; answer the draft's confirmation questions afterwards with draft.id, draft.revision and draft.answers alone, which keeps these questions exactly. Repeated question texts or colliding ids are rejected. A saved Study template's configuration.questions can be passed here (each item's text and response); pass its configuration.methodId as policy.methodId so the template's method runs. Without it a fixed instrument runs as Custom research (guided-research).
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.
conversationFilesNoStimulus files for the planned block, added to stimulus.attachments. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

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 start_study_run.
draftReviewNoThe saved draft as reviewed: questions, methods, outputs and confirmation choices.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
audienceAttachmentNoWith study.audienceIds: attached (added now) and alreadyAttached Audience IDs.

TDQS

A3.7/5.0
Behavior4/5

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

Beyond the annotations it discloses that the result is a non-executing draft, that "Research has not started," that the returned revision "needs review and later explicit confirmation," and that "Saving bounded history may prune older revisions" — a genuine side effect worth knowing given destructiveHint=true. It also explains respondent-level routing semantics for askIf and per-Mind answer isolation. It leaves out the idempotency behavior (that a repeated identical call returns the already-saved revision), which the schema documents but the prose does not.

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

Conciseness3/5

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

The purpose is front-loaded in the first sentence, which is good. After that the paragraph becomes a grab-bag: question-count policy, planner mode selection, skip logic, attachment routing, revision pruning, and confirmation state, with the skip-logic sentence ("Each Mind sees only its own earlier answers") dropped in abruptly and relying on unexplained domain jargon ("Mind"). It is dense but not wasteful in wording.

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 seven-parameter nested tool with an output schema and full schema coverage, the description covers the important qualitative facts: non-executing draft, review required, revision pruning, and attachment-to-question mapping. Gaps remain around lifecycle placement — it never says when to follow with revise_study_plan, save_study_draft, or run_study_questions, nor does it mention conversationFiles or idempotency, which are the two parameters an agent is most likely to mishandle silently.

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 carries parameter meaning and a 3 is the baseline. The description adds only marginal interpretation, such as "With multiple attachments, stimulus.questionAttachments assigns each question; [] means none" and the request/questions distinction. It does not add syntax, formatting, or precedence guidance (for example study id vs. name resolution) beyond what is already inlined in the schema.

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 and resource: "Creates a non-executing draft in an existing Study with its Audiences already attached," which is precise enough for an agent to know this is the plan-creation step rather than a run. It also distinguishes its two input modes (request vs. questions). It stops short of naming how it differs from near neighbors like revise_study_plan, plan_study_questions, or save_study_draft, which the sibling list shows are easily confused with it.

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

Usage Guidelines4/5

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

Gives real conditional guidance: "The setup operation for two or more known questions," plus an explicit exclusion that "A one-question draft is only for genuinely standalone research or an adaptive follow-up." It also routes between the two planning modes ("request designs questions; questions preserves a fixed instrument verbatim"). What is missing is direction to the alternative tools — nothing says to use revise_study_plan for an existing draft or save_study_draft for a later step.

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

Only for saved Study templates; it cannot delete Studies, Audiences, Minds or answers. Permanently deletes one template the authenticated user owns; Studies and drafts already created from it are unaffected.

NameRequiredDescriptionDefault
templateIdYesTemplate to delete permanently. Owner only.

Output 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?

Beyond the destructive annotation, the description adds that deletion is permanent, restricted to templates owned by the authenticated user, and does not cascade to Studies or drafts created from the template. These are meaningful behavioral details for a destructive tool.

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

Conciseness5/5

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

Two tightly written sentences. The scope limitation is front-loaded, followed by the deletion effect and non-cascade behavior, with no wasted words.

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 single-parameter destructive tool with full annotations and an output schema, the description covers purpose, exclusions, ownership, permanence, and downstream effects. Nothing essential 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% and the parameter already documents that it is the template to delete permanently and is owner-only. The description reinforces ownership but adds no syntax or format detail beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb-resource pair ('Permanently deletes one template') and explicitly scopes it to saved Study templates. It also distinguishes the target from Studies, Audiences, Minds, and answers, making misuse unlikely.

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 clearly says this is only for saved Study templates and lists the resource types it cannot delete. This provides strong exclusions, though it does not name an alternative tool for those other deletion cases.

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

duplicate_audienceDuplicate AudienceAInspect

Adds an independent copy of an Audience, its Minds and retained knowledge. Unready copies can queue retraining with public web research when retained evidence cannot seed them. Ready copies avoid retraining.

NameRequiredDescriptionDefault
nameNoName of the copy. Defaults to "<name> (copy)".
audienceIdYesAudience to duplicate; you must be able to edit it. The copy is private and gets new Minds (profiles, knowledge, embeddings) plus the grounding, sources, formations and finished validations; it counts against the Mind allowance. While the Audience is still being built the copy is its last good state; copied members without a working version are retrained on their own.
idempotencyKeyNoRetry key. Without one, an identical call within 15 minutes returns the same copy instead of a second one; send a new key only to deliberately make another copy of the same source with the same name.

Output Schema

NameRequiredDescription
dataNoThe new Audience: id, name, mindCount, mindIds, minds and sharing state (always private).
audienceUrlNoMinds workspace link for the new Audience.
idempotencyKeyNoKey of this duplication; reuse it to retry without creating a second copy.

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag a non-read-only, open-world, non-idempotent but non-destructive write. The description adds real value beyond that: it discloses that copying can trigger retraining with public web research, that ready copies skip retraining, and that the copy is independent. Permissions (must be able to edit) and allowance impact are left to the schema, which is a minor gap for a write tool.

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

Conciseness4/5

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

Three sentences, front-loaded with the action and scope, then the two conditional behaviors. Dense but every sentence carries behavioral information; only the unqualified jargon ("Minds", "formations", "retained evidence") slightly reduces first-read clarity.

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?

The tool's complexity is modest (one required param, an output schema, and annotations covering safety and open-world behavior), and the description fills the remaining gap by explaining what gets copied and when retraining occurs. An agent has enough to call it correctly without asking a follow-up.

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 audienceId, name, and idempotencyKey are already fully documented, including defaults and retry semantics. The description adds no parameter-level meaning beyond what the schema provides, which is the baseline-3 case when the schema does the heavy lifting.

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 ("Adds an independent copy of an Audience") and enumerates exactly what is copied (its Minds and retained knowledge), so the agent knows the scope of the operation without opening the schema. The Audience resource is unambiguous against the study-oriented siblings such as duplicate_study.

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 describes outcomes for two states (unready copies queue retraining; ready copies avoid retraining) but never states when an agent should choose this tool, nor points to an alternative such as create_audience_from_brief. Usage is only implied by the act of duplicating.

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

duplicate_studyDuplicate StudyBInspect

Permanently copy a Study with its questions and results over the same Audiences.

NameRequiredDescriptionDefault
nameNoName of the copy. Defaults to "<name> (copy)".
studyIdYesStudy to duplicate; you must be able to open it. The private copy keeps every answer, chart, heatmap, summary and finished run; a schedule is copied paused. Audiences are shared, not copied (use duplicate_audience). Refused while a run is live.
idempotencyKeyNoRetry key. Without one, an identical call within 15 minutes returns the same copy instead of a second one; send a new key only to deliberately make another copy of the same source with the same name.

Output Schema

NameRequiredDescription
dataNoThe new Study: id, name, createdAt and its Audiences with their Minds.
workspaceUrlNoMinds workspace link for the new Study.
idempotencyKeyNoKey of this duplication; reuse it to retry without creating a second copy.

TDQS

B3.4/5.0
Behavior3/5

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

The description adds useful behavioral context beyond annotations: the copy is permanent, includes questions and results, and keeps the same Audiences. However, it omits permissions, run-state restrictions, and idempotency behavior, which are covered only in the schema.

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?

A single front-loaded sentence communicates the core operation with no filler. It is appropriately compact and easy to scan.

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

Completeness4/5

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

The definition is reasonably complete given the rich schema and output schema. Minor behavioral details such as live-run refusal and idempotency defaults live in the schema rather than the description, but the core operation is clear.

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 all three parameters are already documented in the input schema. The description does not add parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

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 and resource: copying a Study, including questions, results, and the same Audiences. It is clear what the tool does, but it does not explicitly differentiate itself from sibling creation or duplication tools.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus create_study, duplicate_audience, or other study tools. The purpose implies duplication, but no alternatives, prerequisites, or exclusions are stated in the description.

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

export_audienceExport Audience BriefA
Destructive
Inspect

Exports an Audience brief or kind validation_report (scores, KPIs, answer shares, provenance) as Markdown/PDF/DOCX/PPTX. Brief PDF/PPTX can fetch public HTTPS member portraits. Starts artifact work; force can replace it. Slow exports may irreversibly email the requesting account.

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

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

A3.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, idempotentHint=false, and openWorldHint=true, but the description adds genuinely new behavior: this kicks off an asynchronous artifact job, force replaces an existing artifact, public HTTPS member portraits may be fetched for brief PDF/PPTX, and slow exports can irreversibly email the requesting account. That last side effect is the kind of non-obvious, irreversible outcome an agent must know before calling. It stops short of saying what specifically is overwritten when force is used.

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 sentences, each carrying a distinct fact (what is exported, external portrait fetch, async/force behavior, email side effect), with the core export purpose front-loaded. The construction 'or kind validation_report' is slightly awkward, but 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?

For a four-parameter tool with an output schema and rich annotations, the description covers output formats, artifact-job semantics, the force/replace behavior, and the irreversible email risk. The main remaining gap is sibling routing relative to the many other export_* tools, which the description never 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 coverage is 100%, so kind, force, format, and audience are already fully documented with enums and format restrictions. The description's only contributions are that force replaces cached artifact work and a summary of what a validation_report contains, which largely restates the schema. Baseline 3 is appropriate when the schema carries the parameter burden.

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 (exports) and resource (Audience brief / validation_report) and enumerates the artifact contents and output formats, so the agent knows exactly what it produces. It does not distinguish itself from nearby siblings such as export_study, export_mind, or export_heatmap, leaving the Audience scoping to be inferred from the audience parameter.

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 rather than stated: the audience parameter and the kind enum tell the agent this is for Audience artifacts, but there is no explicit 'use this when… use export_study instead when…' guidance. The note about validation reports needing edit access and a scored validation appears in the schema, not as routing guidance in the description.

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

export_heatmapExport Website HeatmapA
Destructive
Inspect

Exports a completed website heatmap by Study/message ID as a ZIP of stored screenshots and overlays. Does not recapture the website. force starts fresh archive work and replaces its saved artifact status/reference.

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

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

TDQS

A4.3/5.0
Behavior4/5

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

While the annotation provides a general destructive hint, the description adds necessary detail by stating that 'force starts fresh archive work and replaces its saved artifact status/reference.' This explains the specific behavioral consequence of running the tool.

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 perfectly sized, using two highly dense sentences to convey the entire functional scope and major operational constraints. There is zero wasted language.

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?

It is highly complete for an export operation, specifying the contents of the ZIP file (stored screenshots and overlays) and defining the critical state-changing behavior of the 'force' parameter. This is exactly what an agent needs to understand the tool's full utility.

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 coverage is 100%, meaning the schema thoroughly defines the parameters. The description does not need to elaborate on the semantics of messageId or study ID, resulting in a baseline score.

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 immediately states the action (exports), the resource (website heatmap), the format (ZIP of screenshots/overlays), and the required identifiers (Study/message ID). It clearly differentiates this function from simple retrieval operations like get_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?

It provides crucial usage context by explicitly stating that the tool does not perform live website capture. Furthermore, it explains the function of the 'force' parameter, clarifying when it is necessary to 'starts fresh archive work'.

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

export_mindExport Mind Persona ProfileA
Destructive
Inspect

Exports an existing Mind by ID/name: inline Markdown by default, or PDF/DOCX/PPTX. PDF/PPTX can fetch public HTTPS portraits. Starts artifact work; force can replace an artifact. Slow exports may irreversibly email the requesting account when ready.

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

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.3/5.0
Behavior5/5

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

Beyond the annotations it discloses that the call starts asynchronous artifact work, that `force` can destructively replace an artifact, that portrait fetching for PDF/PPTX makes public HTTPS requests, and that slow exports may irreversibly email the requesting account — non-obvious side effects that align with and enrich destructiveHint/openWorldHint rather than repeating them.

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 format options, and every sentence carries information, though the telegraphic phrasing ("Starts artifact work") costs some clarity that a few more words would fix.

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 covering return values and full parameter descriptions, the description covers the key risk surface — destructive replacement, async completion, and emailing. It omits prerequisites such as what happens when the name does not match or whether a Mind must be shared first.

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 the baseline is 3; the description adds only light meaning (md is returned inline, portraits apply only to PDF/PPTX, force replaces rather than reuses a cached artifact) and leaves the mindId/mindName relationship unexplained.

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 concrete verb and resource ("Exports an existing Mind by ID/name") and enumerates the output modes (inline Markdown default, PDF/DOCX/PPTX), which is enough to distinguish it from the audience/study/heatmap export siblings without opening a schema.

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

Usage Guidelines4/5

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

It establishes the default behavior (inline Markdown unless a format is requested) and when `force` is relevant (replacing an existing artifact), but never states when to prefer this over export_audience/export_study, nor the mindId vs mindName selection rule beyond "ID/name".

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

export_studyExport Study ResultsA
Destructive
Inspect

Queues Study results export: executive/full reports in PDF/DOCX/PPTX/Markdown; raw CSV/XLS/SPSS SAV. Returns job/artifact status. Full reports can fetch public HTTPS portraits. force can replace artifacts. Completed exports can irreversibly email the requesting account.

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.
researchResultIdNoExport only the selected Research Result. Use its saved user-origin message ID from this Study. Omit for a whole-Study export.

Output 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

A3.6/5.0
Behavior4/5

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

Beyond the destructive/openWorld annotations it discloses genuinely new behavior: the export is queued asynchronously, it returns job/artifact status, full reports can fetch external public HTTPS portraits, and completed exports can irreversibly email the requesting account. The email side effect is a real consequence not captured by any annotation, which is exactly what the description should add.

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?

Semicolon-separated clauses front-load the purpose and then layer formats, return behavior, and side effects with no filler. The telegraphic phrasing ("raw CSV/XLS/SPSS SAV") is compact but slightly compressed for the format list.

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

Completeness4/5

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

With an output schema present, it needn't document return shapes, yet it still flags job/artifact status, and it warns about the destructive force flag and irreversible emailing for a mutation tool. The main remaining gap is routing among the many export/render siblings.

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 meaning the schema does not: which formats pair with which report kinds (executive/full vs raw data), and that force replaces existing artifacts. It does not cover the scheduledRunId or researchResultId scoping here, but those are well documented in the schema.

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?

"Queues Study results export" gives a specific verb plus resource, and the format/kinds enumeration (executive/full reports vs raw CSV/XLS/SAV) makes the output space concrete. It never names a sibling, so an agent must still infer the boundary with render_study_results or export_audience.

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

Usage Guidelines2/5

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

The description says what the tool produces but never states when to choose it over alternatives such as render_study_results or export_heatmap, nor any prerequisites. The only selection logic (kind defaults, omitting study to use the active Study) lives in the schema, not in the description.

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-only; never starts or retries work. operationId: creation and member training. audienceId: training, background research, validation.ready (validation's 10-ready-Mind rule), validation.reason MINDS_TRAINING (poll later) or AUDIENCE_TOO_SMALL (add Minds). recalibrationId: its status, retained result or terminal error. Final score needs all members trained and research done.

NameRequiredDescriptionDefault
audienceIdNoAn existing Audience, instead of operationId.
operationIdNoAudience creation operation id.
recalibrationIdNoWith audienceId: the operation id returned by recalibrate_audience.

Output Schema

NameRequiredDescription
audienceIdNoExisting Audience read by audienceId.
audienceCreationNoCurrent Audience creation and member training snapshot.
audienceProgressNoExisting Audience member readiness, background research, coverage, and validation: the default new unscoped training check (validation.ready, with validation.reason MINDS_TRAINING or AUDIENCE_TOO_SMALL when not).
audienceRecalibrationNoOne recalibration receipt: id, status, progress, retained result or terminal error.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the bar is lower. The description still adds value: it reinforces 'never starts or retries work' and explains what different status outcomes mean (validation's 10-ready-Mind rule, retained result vs terminal error, and the condition for a final score). This is genuine behavioral context beyond the annotations.

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

Conciseness3/5

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

It is extremely compact with no filler, but the structure is telegraphic and fragmentary ('operationId: creation and member training.' / 'recalibrationId: its status, retained result or terminal error.'). The behavioral line is front-loaded while the actual purpose is buried, making it harder to parse than it needs to be.

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 values needn't be re-explained, and all three optional parameters are documented with added meaning. The description supplies the status/condition semantics an agent needs to act on the response. It is only slightly short of complete due to the murky purpose framing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline would be 3, but the description goes beyond the schema by mapping each parameter to the distinct progress it reports: operationId→creation/member training, audienceId→training/background research/validation, recalibrationId→status/retained result/terminal error. This adds real semantic value over the schema's terse one-line descriptions.

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

Purpose3/5

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

The description never states a clean verb+resource sentence like 'returns progress of an audience creation/calibration operation'; instead it opens with a behavioral constraint ('Read-only; never starts or retries work') and dumps per-parameter meanings. The purpose is only inferable by assembling the parameter fragments (creation, member training, validation, recalibration status). It does distinguish itself from mutation siblings, but the core purpose statement is missing.

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?

'Read-only; never starts or retries work' plus 'poll later' and 'add Minds' give meaningful implied usage guidance (this is a poller; when validation.reason=MINDS_TRAINING, call again; when AUDIENCE_TOO_SMALL, change inputs). However, no alternative tools are named explicitly – 'add Minds' doesn't point to a sibling, and the retry path isn't routed to recalibrate_audience by name.

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 authenticated account's current plan (planName, as the app names it), its Audience size allowance (per-Audience cap including any team or contract allowance, customSizeMax, per-mode ceilings) and the synthetic responses left, read live; it supersedes limits stated elsewhere. Sample sizes the plan allows: up to customSizeMax Minds per Audience, or several Audiences in one Study for a larger sample, each costing one response per Mind per question.

automaticSizingCeiling bounds the size the server picks when memberCount is omitted; explicitCountCeiling is the stated size above which a deeper mode builds it (only "balanced", on plans with one); otherwise memberCap alone bounds a stated size. Sizes are per Audience for the account and team named, not a reservation.

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

Output Schema

NameRequiredDescription
planNameNoThe plan name the customer sees in the app. Use it, not the tier key in `plan`.
responsesNoSynthetic responses left for the account (`remaining`, `perMonth`, both -1 when unlimited, `renewsAt`); null when the balance could not be read.
creationModesNoAudience creation modes and their limits, when a mode was requested.

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds real behavior: limits are live, they override stated limits elsewhere, how the various ceilings govern auto vs. explicit sizing, and that sizes are per-Audience for the account/team named and not a reservation. This is substantive context beyond the structured fields.

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

Conciseness3/5

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

It is front-loaded with the core purpose, but the middle paragraph is dense and heavily qualified (nested ceiling jargon, mode caveats), making it harder to parse than necessary for a simple read-only limits query.

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?

Because an output schema exists, the return values need not be re-explained; nevertheless the description covers the scoping (account/team, not a reservation), the ceilings, and mode behavior, leaving little ambiguity about what the agent will get. It is essentially complete for this tool.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'mode' enum parameter, so the schema already documents its purpose and omission behavior. The description adds partial semantics by referencing per-mode ceilings and a 'balanced' deeper mode, but does not clarify each enum value, so it only modestly exceeds the schema 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 states a specific verb+resource: it returns the authenticated account's plan name, per-Audience size caps (customSizeMax, ceilings), and remaining synthetic responses, read live. This is clearly distinct from sibling list/creation tools and an agent can identify it as the limits-lookup tool immediately.

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 meaningful routing context by stating the values are 'read live' and that it 'supersedes limits stated elsewhere', steering the agent to trust this tool over other sources. It stops short of explicitly naming sibling alternatives or exclusions, but the context for when to call it is clear.

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

get_shared_mind_knowledgeRead Shared Mind SourcesA
Read-onlyIdempotent
Inspect

Returns stored public Mind sources/assessments by share ID, including shares outside the private workspace. Does not fetch source websites or modify knowledge.

NameRequiredDescriptionDefault
shareIdYesUUID from /minds/shared/{shareId}; not the Mind ID. The share must be public or link-enabled. Uploads, source bodies and private metadata are excluded.

Output Schema

NameRequiredDescription
dataNoShared-page projection: patterns with source assessments and items containing public reference metadata only.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real value by disclosing that cross-workspace public shares are included and that no network fetch happens, but it stops short of describing result shape or any visibility edge cases beyond the share-ID scope.

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 with zero filler; the positive scope is front-loaded and the negative constraints follow as a compact caveat. Nothing repeats structured fields verbatim.

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 one required parameter, full schema coverage, complete annotations and an output schema, the description supplies the scope and the two boundary conditions an agent needs. It is nearly complete; only the absence of routing guidance against sibling tools keeps it from a 5.

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

Parameters3/5

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

Schema coverage is 100% and the shareId property description is unusually rich (UUID from /minds/shared/{shareId}, not the Mind ID, must be public or link-enabled, excluded fields). The description only echoes 'by share ID' and adds no syntax or format detail beyond that, so the baseline 3 applies.

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 and resource ('Returns stored public Mind sources/assessments') plus the keying mechanism (share ID) and a scope qualifier (includes shares outside the private workspace). No sibling tool covers the same resource, so an agent can distinguish it without further reading, though the description never names a contrasting sibling.

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 scope statement and by the two exclusions ('Does not fetch source websites or modify knowledge'), which help an agent rule this tool out for live-site retrieval or writes. It never states when to prefer it over an alternative or what precondition must hold, leaving the agent to infer routing.

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

get_study_heatmapRead Study Asset HeatmapA
Read-onlyIdempotent
Inspect

Reads saved heatmaps of an assigned question asset. Optional assetKey selects its saved upload path or normalized URL. Returns assetHeatmaps without starting analysis, spending responses or visiting websites.

NameRequiredDescriptionDefault
studyIdNo
assetKeyNo
messageIdYes
studyNameNo

Output Schema

NameRequiredDescription
studyIdNoStudy the heatmap belongs to.
messageIdNoHeatmap result.

TDQS

A3.6/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 closed-world, so the safety profile is covered. The description adds real value on top: it signals no cost is incurred ('spending responses'), no external fetching occurs ('visiting websites' — consistent with openWorldHint=false), and only already-saved data is returned.

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 tight sentences with purpose front-loaded and zero filler. The final clause is dense ('spending responses' is slightly cryptic) but every sentence carries information, so it is appropriately sized.

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?

An output schema exists, so return shape need not be described, and annotations cover the safety profile. However, the required messageId and the studyId/studyName parameters are unexplained, leaving the agent without enough to know how to key the call correctly.

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

Parameters2/5

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

Schema description coverage is 0% for all four parameters, so the description carries the full burden, and it only explains one: assetKey ('selects its saved upload path or normalized URL'). The required messageId, plus studyId and studyName, are left completely undocumented in both schema and description, which is a significant gap for the sole required parameter.

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 and resource ('Reads saved heatmaps of an assigned question asset'), which is a distinct action from the sibling start_study_heatmap. The phrase 'without starting analysis' effectively separates it from that sibling, though it never names the alternative explicitly, which keeps it just 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?

The clause 'without starting analysis, spending responses or visiting websites' tells the agent when this tool is the right choice versus triggering a fresh analysis (start_study_heatmap). There is no explicit when-not statement or named alternative, so it stops at clear-context guidance rather than full routing.

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

get_study_planRead Study PlanA
Read-onlyIdempotent
Inspect

Reads the latest saved revision and full review of one draft. Creates or changes nothing and starts no research.

NameRequiredDescriptionDefault
studyNoStudy id or name. Omit to use the active Study of this MCP session.
draftPlanIdYesExisting draft plan to read at its latest revision.

Output 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 start_study_run.
draftReviewNoThe saved draft as reviewed: questions, methods, outputs and confirmation choices.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
audienceAttachmentNoWith study.audienceIds: attached (added now) and alreadyAttached Audience IDs.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the description's "creates or changes nothing" is largely redundant. It does add two facts beyond annotations: that the read returns the latest revision (versioning behavior) and that no research is kicked off. Missing is any note on error behavior for a stale or invalid draftPlanId.

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 short sentences with the retrieval behavior front-loaded and the non-mutation guarantee second. The second sentence partly restates the annotations, but it functions as a routing signal, so it earns most of 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?

For a two-parameter, fully documented read tool with an output schema and complete annotations, nothing essential is missing. The only gap is the absence of guidance on which sibling to use for rendering or revising versus reading, which context makes relatively low-risk.

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%, including the nested study object with id-precedence and active-Study fallback rules, so the schema carries the parameter burden. The description only echoes "one draft," adding no syntax, identifier format, or scoping detail beyond what the schema states. Baseline 3 applies.

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?

Names a specific verb ("Reads") and a specific resource ("the latest saved revision and full review of one draft"), so an agent knows this retrieves an existing draft plan rather than producing one. It does not explicitly name siblings such as render_study_plan or list_study_drafts, so differentiation is implicit rather than stated.

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?

"Creates or changes nothing and starts no research" gives a useful negative boundary that rules out mutation and run-start variants, implying this is the pure retrieval path. However, it never positively says when to pick this over render_study_plan or list_study_drafts, leaving the alternative selection to inference.

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
DestructiveIdempotent
Inspect

Returns Study progress, Audience results, Mind responses and export status in the Study display locale. questionId selects a question or durable request preparation; runId selects a confirmed run; otherwise covers the Study. In-flight questions show zero answered until complete. requestPreparations separates interpretation/review/admission from answers. Result reads can queue recovery and overwrite stale derived analysis from accepted answers, without rerunning respondents. Export-only polling reads its job.

NameRequiredDescriptionDefault
runIdNoMulti-question run ID from start_study_run. 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 request or question: use the questionId returned by ask_study or ask_audience, including a preparing receipt, on the first progress check for that request. The same logical ID follows preparation and any admitted question; operationId is a separate preparation identifier, not a questionId. An activeQuestions/recentResults questionId also selects that question. Omit only for a Study-wide progress request.

Output 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).
planLimitNoPresent when a plan limit refused, truncated or stopped Study work.
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 and stimuli (the media the Minds were shown: name, url, mediaType). For coded qualitative answers, audiences[].themeMentions counts Minds per theme (multi-label, can exceed 100% in total) while distribution counts only each answer's primary theme.
sharedStudyUrlNoPublic share link, or null when link sharing is off.
activeQuestionsNoQuestions still running: questionId, question, status, totalMinds, answeredCount.
failedQuestionsNoQuestions that failed, with an error; a question a plan limit kept from running also carries planLimit.
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.
studyPresentationNoSaved Study headings and original question context aligned by questionId; used by the response widget.
requestPreparationsNoAccepted request preparation receipts, separate from questions and results. preparing has no submitted question; planning_required retains the original request and proposed plan awaiting explicit confirmation, and an uploaded questionnaire's questionnaire with the exact draft (draftPlanId, revision) that start_study_run starts after confirmation; admitted identifies a run whose own row supplies progress. clientRequestId selects the same request through get_study_status questionId.
isLinkSharingEnabledNoWhether the public share link is on.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations mark this read-looking tool as destructiveHint=true and non-readOnly, and the description actually accounts for that: result reads "can queue recovery and overwrite stale derived analysis from accepted answers, without rerunning respondents." That is genuine side-effect disclosure the annotations alone would not explain. It also notes in-flight questions report zero answered until complete. It does not state permission requirements or the cost/latency of triggering recovery, 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.

Conciseness3/5

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

It is front-loaded with the return content and mode selection, but the sentences are heavily compressed and stack multiple clauses, and fragments like "Export-only polling reads its job." are telegraphic enough to require re-reading. Jargon such as "requestPreparations" is used without definition, so density costs clarity rather than buying it.

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

Completeness4/5

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

An output schema exists, so return-value explanation is not owed, and the description still covers all three scoping modes, the export polling case, and the in-flight zero-answer edge case. Since the destructive hint is non-obvious for a status tool, a fuller statement of what is overwritten and whether recovery is retryable would close the remaining gap.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, and the description adds a mutual-exclusion/precedence rule the schema never states: questionId and runId select different scopes, otherwise the Study-wide view applies. It also pins questionId to the ask_study/ask_audience receipt and warns that operationId is a different identifier. Remaining param details (study, export.kind/format/jobId) are left to the schema.

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 and enumerated resources: "Returns Study progress, Audience results, Mind responses and export status in the Study display locale." It then distinguishes the three selection modes (questionId, runId, Study-wide), which separates it from siblings like render_study_results or read_study_summary. It falls short of 5 because phrases like "durable request preparation" and "requestPreparations" are undefined jargon that blur the exact resource being returned.

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?

Selection rules are stated explicitly: questionId for a question or preparation, runId for a confirmed run, neither for the Study, and export polling for a job. That is real routing guidance rather than implied usage. It stops short of naming concrete alternatives for overlapping needs (e.g., render_study_results, read_study_summary), so the agent must still infer when this tool is the wrong choice.

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.

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.
conversationFilesNoResearch files (text, Markdown, CSV, JSON) imported like existingFiles; in sourceIdx order they follow existingFiles and precede files. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

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

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and openWorldHint=true, but the description adds real value: retry semantics for identical imports, the fact that nothing is created downstream, and that supplied percentages are not independently verified. The binding order (existingFiles then files by sourceIdx) is a behavioral detail an agent needs that annotations cannot express.

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

Conciseness4/5

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

Four sentences, front-loaded with the core action and modality before the grounding and safety caveats. The grounding sentence is dense and leans on schema jargon (sourceIdx) that is only defined in the parameter help, but no sentence is filler.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and the description still flags the normalized snapshot and checksum that come back. For a four-parameter import with side-effect ambiguity, it covers the safety profile and binding semantics; only edge cases (item/size limits, empty-file behavior) are left to the 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?

With 50% schema coverage, the description compensates well: it clarifies that file content is passed inline, that groundingJson is the distribution object rather than respondent rows, and it spells out the source binding order across existingFiles, conversationFiles and files. It does not explain the 20-item or 5MB limits, but those live in the schema.

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

Purpose5/5

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

The first sentence names a specific verb (imports) and resource (UTF-8 text, Markdown, CSV and JSON research files) plus the destination (account-owned storage). It also pins down the input modality ('accepts file contents rather than local paths'), which separates it from path-based or audience-creating siblings like 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 Guidelines4/5

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

It states the call is safe to retry when files are identical, that grounding JSON is optional, and explicitly bounds scope ('creates no Audience or Minds', 'performs no web search or independent verification'). It stops short of naming a specific alternative tool to use when the intent is actually audience creation, so the when-not is implied rather than routed.

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

For a listing or search reply, include both the returned top-level workspaceUrl and each listed Audience's workspaceUrl verbatim as full visible link text: scheme, query and trailing slash. Item links do not replace the list-level link. Lists the authenticated user's Audiences newest first, with Mind counts, sharing and links. limit defaults to 20; offset and nextOffset paginate. includeMinds adds members; searchQuery matches names case-insensitively. workspaceUrl opens the owner's workspace; sharedAudienceUrl is public. addOnRequired means unavailable under current entitlement: links/commercial details are omitted; use an available Audience. First-page openDrafts: before a new brief, rework the matching draft or recalibrate the matching Audience.

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.
searchQueryNoFilters by name (case-insensitive, all matches, paged with limit/offset); the closest name when nothing matches. Omit to browse.
includeMindsNoAlso return each Audience's member Minds (id, name, discipline). Default false: Audiences carry a Mind count only.

Output 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.
openDraftsNoFirst page only: the caller's open, unconfirmed Audience drafts (id, name, status, sha256, revision, memberCount, createdAt, updatedAt), newest first. Rework the matching one by id and sha256 instead of starting a new brief.
shownCountNoNumber of items in this response.
totalCountNoTotal number of items available.
workspaceUrlNoMinds workspace link.
duplicateNamesNoNames shared by several of the caller's Audiences on this page: name and the ids carrying it.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds real value beyond them: newest-first ordering, the fact that links and commercial details are omitted when addOnRequired, and the distinction between workspaceUrl (owner's workspace) and sharedAudienceUrl (public). The opening link-formatting instruction is useful but makes the behavior harder to parse.

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

Conciseness2/5

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

The description is badly front-loaded: it opens with a link-text formatting rule rather than stating what the tool does, so an agent must read several clauses before learning the purpose. The remainder is a dense run-on of otherwise useful facts that would benefit from being ordered purpose-first, then parameters, then edge cases.

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 values need not be explained, yet the description still usefully flags what fields mean and when links are omitted, plus pagination behavior. For a read-only list tool with four optional params, an agent has what it needs to call it correctly.

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

Parameters3/5

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

Schema coverage is 100%, so limit, offset, searchQuery and includeMinds are already fully documented in the schema, including defaults, max and nextOffset continuation. The description largely restates them ("limit defaults to 20", "includeMinds adds members", "searchQuery matches names case-insensitively") without adding format or edge-case detail beyond the schema.

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 second sentence gives a specific verb and resource: "Lists the authenticated user's Audiences newest first, with Mind counts, sharing and links." That is clear enough to act on, but it is buried behind a reply-formatting instruction, and nothing distinguishes it from siblings like list_studies or 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?

There is conditional guidance: "addOnRequired means unavailable under current entitlement... use an available Audience" and a first-page hint to rework a draft or recalibrate before starting a new brief. However, there is no statement of when to call this versus list_studies or list_study_drafts, and no explicit when-not guidance.

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

Reads the fixed Minds research-method catalog in one operation, including availability, complexity and fallback method. includePlanned only filters the returned catalog. It does not create, configure or execute a method, and the catalog cannot be edited through this tool.

NameRequiredDescriptionDefault
includePlannedNoInclude experimental and planned methods that cannot run yet. Availability is dynamic; only entries with executable:true can run.

Output 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?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine context beyond them: the catalog is fixed, includePlanned has no side effects beyond filtering, and mutation is impossible through this tool. It stops short of describing result ordering or size, hence not a 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 tight sentences, front-loaded with what the tool returns followed by the boundary conditions. Every clause earns its place; nothing is repeated from the schema or annotations.

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?

An output schema exists, so return-value detail is not required here, and annotations cover the safety profile. For a zero-required-parameter read tool, the description supplies everything an agent needs: scope, what it returns, and what it cannot do.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter is already well documented in the schema, including the executable:true caveat. The description's "includePlanned only filters the returned catalog" adds only a mild reinforcement of that parameter's semantics, 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?

States a specific verb and resource ("Reads the fixed Minds research-method catalog") and enumerates the returned fields (availability, complexity, fallback method). No sibling tool covers a method catalog, and the description explicitly rules out the confusable write operations (create/configure/execute), so an agent can place it instantly.

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?

Clearly frames the tool as a read-only catalog lookup and states what it does NOT do ("does not create, configure or execute a method, and the catalog cannot be edited through this tool"). It gives exclusions but no named alternative for related tasks, which is acceptable since no sibling overlaps.

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 filters by name (case-insensitive, all matches, paged). Minds and per-question results come from the Study status.

NameRequiredDescriptionDefault
limitNoStudies per page, newest first (default 20, max 100).
offsetNoNumber of Studies to skip; pass nextOffset from the previous page to continue.
searchQueryNoFilters by name (case-insensitive, all matches, paged with limit/offset); the closest name when nothing matches. Omit to browse.

Output 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

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond them: page-at-a-time iteration with nextOffset, default page size, newest-first ordering, and the notable edge case that searchQuery returns the closest name when nothing matches.

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?

Dense and front-loaded with the resource and ordering first, then pagination, then filtering. The middle sentences are slightly run-on and interleave return-shape detail with parameter behavior, but nearly every clause carries information.

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

Completeness4/5

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

An output schema exists, so return values need not be fully described, yet the description still summarizes row contents (Audiences, Mind counts, message count, sharing state) and the pagination continuation. Combined with full annotation coverage, an agent has essentially everything needed; only the absence of any routing to sibling list tools leaves a small 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 the schema already documents limit (default 20, max 100), offset (continue via nextOffset), and searchQuery semantics. The description restates these rather than adding format or syntax detail, 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?

States a specific verb and resource (Lists the authenticated user's Studies) plus scope, ordering (most recently updated first), and pagination model. An agent can distinguish it from list_audiences, list_study_drafts, and list_study_templates without opening any 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?

Gives clear context: use searchQuery to filter by name, 'Omit to browse', and explicitly routes detail needs elsewhere ('Minds and per-question results come from the Study status'). It never states exclusions or when a different list tool is preferable (e.g. list_audiences vs this), so it stops 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.

list_study_draftsList Study DraftsA
Read-onlyIdempotent
Inspect

Lists a page of unfinished Study draft summaries, newest first, or returns the complete saved planning state for one exact draft ID. Draft records are distinct from running or completed studies.

NameRequiredDescriptionDefault
limitNoDrafts per page, newest first (default 20, max 50).
offsetNoNumber of drafts to skip; pass nextOffset from the previous page to continue.
draftIdNoExact study draft ID to retrieve with its complete saved planning state. Omit to list draft summaries.
searchQueryNoCase-insensitive part of the draft name; returns every match, paged.

Output Schema

NameRequiredDescription
draftNoThe requested draft with its complete saved planning state, or null.
limitNoPage size used.
draftsNoOne page of resumable draft summaries, without saved planning state.
offsetNoOffset of this page.
nextOffsetNoOffset of the next page; absent on the last page.
shownCountNoNumber of items in this response.
totalCountNoTotal number of items available.
searchQueryNoThe name search this page answers.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds the newest-first ordering and the draft-vs-study distinction, which is genuine value, but says nothing about pagination behavior or cursor semantics beyond what the schema states.

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, zero waste, and the dual behavior is front-loaded so an agent immediately knows both modes. Every clause 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?

With an output schema present and rich annotations, the description needn't explain return values, and it correctly focuses on the two modes plus the draft/study distinction. It is essentially complete, missing only explicit routing to sibling 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?

Schema description coverage is 100%, so the schema fully documents limit, offset, draftId, and searchQuery. The description reinforces draftId's role ('complete saved planning state') and ordering, but adds little meaning beyond the schema. Baseline 3 applies.

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 and resource ('Lists a page of unfinished Study draft summaries' / 'returns the complete saved planning state for one exact draft ID') and covers both operating modes. It distinguishes drafts from running/completed studies, which separates it conceptually from list_studies, but never names sibling tools 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 two modes are implied (paginated list vs. single-draft retrieval) and the distinction from running/completed studies gives some selection context. However it never names alternatives like list_studies or save_study_draft, and gives no explicit when-not guidance.

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
DestructiveIdempotent
Inspect

Lists owned/team-shared template summaries, most used first; templateId returns full configuration, revision, questions, response settings and attachments. configuration.questions is the fixed instrument; configuration.methodId the research method it runs with. Listing provisions starters or overwrites eligible untouched older starters. Exact-template reads skip provisioning.

NameRequiredDescriptionDefault
limitNoTemplates per page, most used first (default 20, max 50).
offsetNoNumber of templates to skip; pass nextOffset from the previous page to continue.
templateIdNoExact template to return in full. Omit to list template summaries.
searchQueryNoCase-insensitive part of the template name; returns every match, paged.

Output Schema

NameRequiredDescription
dataNoOne page of template summaries (id, name, revision, methodId, questionCount), or the complete template requested by templateId.
limitNoPage size used.
offsetNoOffset of this page.
nextOffsetNoOffset of the next page; absent on the last page.
shownCountNoNumber of items in this response.
totalCountNoTotal number of items available.
searchQueryNoThe name search this page answers.

TDQS

A4.5/5.0
Behavior5/5

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

The annotations declare destructiveHint=true and readOnlyHint=false, but give no explanation; the description supplies the missing why — 'Listing provisions starters or overwrites eligible untouched older starters' — and scopes the blast radius to 'eligible untouched older starters'. It also states the exception ('Exact-template reads skip provisioning'), which is precisely the behavioral nuance no annotation conveys.

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?

It is front-loaded with the listing behavior before the templateId exception, and each sentence carries distinct information about mode, return shape, or side effect. It is dense and term-heavy ('starters', 'the fixed instrument') to the point of mild ambiguity, and the configuration.questions/methodId sentence sits awkwardly in a listing tool's description.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, yet the description still names the key fields returned by templateId — useful, if slightly redundant. The main unresolved gap is what 'starters' and 'eligible untouched older starters' concretely mean, and searchQuery's behavior is left entirely to the schema; for a tool with a destructive listing side effect, one clarifying clause on eligibility would close the loop.

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% and each parameter is described, so the baseline is 3. The description adds genuine meaning beyond the schema for templateId (full configuration, revision, questions, response settings, attachments) and frames configuration.questions as the 'fixed instrument' and configuration.methodId as the method it runs with, which clarifies return-shape semantics rather than argument syntax. It says nothing extra about limit, offset, or searchQuery beyond what the schema already states.

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 clause gives a specific verb plus resource and scope ('Lists owned/team-shared template summaries, most used first'), then immediately distinguishes the two modes: summary listing vs. 'templateId returns full configuration...'. An agent can tell what this tool does and that it has a dual read shape without opening 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?

It clearly states the condition that selects each mode ('templateId returns full configuration', 'Omit to list template summaries') and notes that exact-template reads skip provisioning. The gap is sibling routing: it never points to use_study_template, save_study_template, update_study_template, or delete_study_template for the adjacent template lifecycle operations, which is where an agent is most likely to hesitate.

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

manage_audience_supportManage Audience Support AccessA
DestructiveIdempotent
Inspect

Manage owner-issued, expiring staff access to one Audience’s composition and receipts. Staff cannot self-grant. Revocation stops new work at checkpoints; completed changes remain. No membership, growth, deletion or billing changes.

NameRequiredDescriptionDefault
actionYeslist_assigned shows current staff grants. Only the Audience owner can grant or revoke.
cursorNoFor lists/activity: nextCursor from the previous page.
reasonNoFor grant: the agreed support task or case reason.
grantIdNoRequired for revoke; returned by list_access.
expiresAtNoFor grant: expiry within 30 days, ISO 8601.
audienceIdNoRequired except for list_assigned.
requestKeyNoFor grant: stable UUID retry key; identical retries return the same grant.
staffEmailNoFor grant: the confirmed getminds.ai staff account authorized by the customer owner.

Output Schema

NameRequiredDescription
dataNoSupport grant or paginated grants/activity. Follow nextCursor for remaining history.

TDQS

A3.8/5.0
Behavior4/5

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

Goes well beyond the annotations: annotations only flag destructiveHint=true, but the description explains what destruction means ('Revocation stops new work at checkpoints; completed changes remain') and who may act ('Staff cannot self-grant'). It does not restate the idempotency hint, which the schema's requestKey covers. No contradiction with the declared 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?

Three tight sentences, purpose front-loaded, followed by the authorization rule, the revocation semantics, and the scope boundary. Every clause earns its place with no padding 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?

For a five-action mutation tool with a full output schema and complete parameter coverage, the description supplies the behavioral essentials (authorization, revocation semantics, exclusions). The one gap is that the action set and the per-action permission rules live entirely in the schema enum description rather than being summarized.

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

Parameters3/5

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

Schema description coverage is 100% and every action-specific parameter is documented in the schema (reason, grantId, expiresAt, requestKey, cursor, audienceId). The description's only related signal is 'expiring', which adds nothing to the schema's 'expiry within 30 days'. Baseline 3 is appropriate when the schema does the heavy lifting.

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+resource: managing owner-issued, expiring staff access to one Audience's composition and receipts. It also carves out scope ('No membership, growth, deletion or billing changes'), which separates it from the other audience/study siblings. It stops short of naming a sibling or mentioning that this is a five-action tool (list/grant/revoke/activity), which the schema carries instead.

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?

'Staff cannot self-grant' plus 'owner-issued' imply the authorization context for when grant/revoke is appropriate, but there is no explicit when-to-use-this vs. an alternative tool or action. The action enum descriptions carry the operation-selection guidance, so usage 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.

plan_study_questionsPlan a Multi-Question Block in a StudyC
Destructive
Inspect

Deprecated alias of create_study_plan and revise_study_plan; identical behaviour.

NameRequiredDescriptionDefault
draftNo
studyNo
policyNo
requestNo
stimulusNo
questionsNo
idempotencyKeyNo
conversationFilesNoStimulus files for the planned block, added to stimulus.attachments. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

NameRequiredDescription
studyIdNoStudy the plan belongs to.
revisionNoDraft revision to confirm.
draftPlanIdNoDraft plan to confirm with start_study_run.
workspaceUrlNoAuthenticated Minds workspace link for the Study.

TDQS

C2.9/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true and idempotentHint=false, and the description adds only the deprecation status plus the claim of behavioural parity with the successors. It does not explain what a 'plan' block mutates or destroys, nor what the alias changes relative to create_study_plan, so value beyond the annotations is thin.

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 short sentence with no filler, and the most decision-relevant fact (deprecated alias) is front-loaded. It is efficient, though the brevity reflects missing content rather than disciplined compression.

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

Completeness2/5

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

For an eight-parameter, destructive, open-world mutation tool with near-zero schema documentation, one line of prose is far from sufficient. An output schema exists so return values need not be explained, but inputs and side effects remain entirely opaque.

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

Parameters1/5

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

Schema description coverage is 13% and eight parameters (draft, study, policy, request, stimulus, questions, idempotencyKey) are declared with empty schemas. The description supplies no meaning for any of them, leaving an agent unable to construct a valid call from either structured data or prose.

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

Purpose3/5

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

The description identifies the tool only by relation to siblings ('deprecated alias of create_study_plan and revise_study_plan'), so an agent can place it in the family but is never told directly what operation it performs. The 'identical behaviour' clause helps, but the actual verb+resource is borrowed from other tools rather than stated.

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 clearly signals deprecation and names the two replacement tools, which is exactly the routing information an agent needs to avoid this tool. It stops short of saying how to choose between create_study_plan and revise_study_plan, so the alternative selection is only half specified.

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

read_study_summaryRead Study SummaryA
DestructiveIdempotent
Inspect

Returns saved whole-Study Markdown, evidence, generation state and the caller's refresh receipt. Pending reads retain previous saved content. Can queue recovery and overwrite stale/missing derived summaries; never reruns respondents.

NameRequiredDescriptionDefault
studyNoStudy id or name. Omit to use the active Study of this MCP session.

Output Schema

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

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=true, and the description backs that up concretely rather than contradicting it: it discloses that reads can queue recovery and overwrite stale/missing derived summaries, and bounds the blast radius with 'never reruns respondents'. What it omits is when the overwrite actually triggers and whether any permission is required.

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 tight sentences, front-loaded with the return payload before the side-effect caveats. Dense but every clause carries information; only 'refresh receipt' and 'respondents' assume internal vocabulary an agent may not share.

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 values need not be spelled out, and the description covers the surprising part of this tool: that a nominally read operation can mutate derived state. The remaining gap is routing relative to refresh_study_summary, which matters because both tools appear to touch summary freshness.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains id precedence over name and the omit-to-use-active-Study behavior. The description adds nothing about how the study reference affects behavior (e.g. whether a name lookup can be ambiguous), so the baseline 3 applies.

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 uses a specific verb ('Returns') and enumerates the exact payload: whole-Study Markdown, evidence, generation state and the caller's refresh receipt. That is far more precise than the name alone. However, it never distinguishes this tool from the sibling refresh_study_summary, whose territory ('queue recovery and overwrite stale/missing derived summaries') this description partially claims.

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 only implied: read the saved summary, and use it when derived summaries are stale or missing so recovery can be queued. There is no explicit when-to-use / when-not statement and no pointer to refresh_study_summary or render_study_results as alternatives, which is a real risk given how closely this overlaps with a refresh tool.

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

recalibrate_audienceChange an Existing AudienceA
Destructive
Inspect

Changes an existing Audience in place: it keeps its id, its Minds keep theirs (except copies below), and no Mind is deleted. Covers composition and trait edits, a population pivot, adding members, an exact chart selection (distributions), new sources and going deeper (deepen), and re-runs its research grounding. Owner, or verified Minds staff with existing direct Audience admin collaboration or an active owner-issued support grant. Staff support is limited to composition amendments: no growth, new sources, Go deeper or shared-Mind waiver. Asynchronous: the result is an accepted operation with its id, not a completed change. Queues behind another edit of the Audience and waits for a Study run on its members. Members shared with other Audiences are replaced here by copies with new ids. Reusing requestKey with identical input retries safely.

NameRequiredDescriptionDefault
deepenNoGo deeper, in the background: research what the Audience still lacks — every standard dimension its evidence reports missing or assumed, plus `topics` — and add it; every chart the Audience has stays, and stronger evidence replaces weaker only for the same question or dimension. Go deeper runs in the background and this tool returns at once; get_audience_creation_progress with the audienceId follows research.phase (researching, then researched). Not combinable with distributions, query or requestedDistribution. Asked while the Audience's background research is still running, it is queued behind that research and starts when it finishes.
audienceNoWhich existing Audience to change. Give the id when known, otherwise the name.
researchNoWhat to change and the evidence for it. Omit it (and distributions/deepen) to re-run the research from the original brief.
requestKeyNoStable retry key. Reuse with identical input to recover the same recalibration operation, including its completed result.
distributionsNoOptional exact active distribution selection from the grounding review. Supplying this uses selection mode and applies the user-authored composition directly, including exact shares: to set a chart to e.g. 70% Female / 30% Male, send the complete active set with that chart's `pct` values changed. They become the user's targets beside the evidence (shown as "Set by you"); no research runs and the members are re-allocated to them. Send each chart's stored `name`, `label` and `sourceIdx` from the Audience's stored grounding (structuredContent audience.grounding.distributions); the Audience's saved evidence is reattached to every chart and value it already has (names shown in the text output may be translated; use the stored ones). A chart or value it does not have yet (send `sourceIdx: -1`) is added as the user's target.
allowSharedMindsNoRecalibration rewrites member profiles and retrains knowledge on the Mind itself. Members that also belong to other Audiences are copied into this Audience first, so the other Audiences stay unchanged. Set this only when the user explicitly wants those members rewritten in place, in every Audience they belong to.
conversationFilesNoNew first-party research files added to sources.files. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

NameRequiredDescription
researchNoGo deeper research receipt, when deepen was supplied.
operationNoDurable recalibration receipt: id, requestKey, status, progress, statusUrl, retained result or terminal error.
audienceIdNoAudience being changed in place.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructiveHint and openWorldHint, and the description goes well beyond them: asynchronous semantics ('the result is an accepted operation with its id, not a completed change'), queueing behind another edit and behind a running Study, shared-Mind copy-on-write behavior with the `allowSharedMinds` override, and requestKey-based safe retry. It also names the failure mode and its retry path (`AUDIENCE_EDIT_UNREAD`). The requestKey retry note is not a contradiction of idempotentHint=false, since it only holds for identical input under the same key.

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 and every sentence carries operational weight: identity preservation, mode coverage, permissions, async contract, side effects, retry. It is dense and partly duplicated by equally rich schema descriptions (deepen/distributions behavior appears in both), and the long parentheticals slow scanning, but there is no 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?

For a destructive, async, open-world mutation with an output schema, the description supplies exactly what the structured fields cannot: what happens to members and Minds, what is copied versus mutated, how progress is followed (get_audience_creation_progress), and who may call it. Nothing an agent needs before invoking 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 still earns above that by tying each mode to the parameter that triggers it (`distributions` for exact chart selection, `deepen` for going deeper) and by flagging the case where `requestedDistribution` is allocated in place of an existing chart with incomparable brackets. It does not restate the heaviest semantics — the `instruction` reach taxonomy — because the schema already carries it.

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 gives a specific verb and resource plus the key invariant: 'Changes an existing Audience in place: it keeps its id, its Minds keep theirs ... and no Mind is deleted.' It then enumerates the covered change modes (composition/trait edit, population pivot, additive members, exact `distributions` selection, `deepen`, research re-grounding), which lets an agent separate this from create_audience_from_brief, duplicate_audience, and import_audience_sources without opening a schema.

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

Usage Guidelines5/5

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

It states explicitly when to use it versus an alternative ('Use this, not query, to adjust the Audience'), records the mode exclusions ('Not combinable with distributions, query or requestedDistribution' on `deepen`), and spells out the authorization gate plus staff exclusions ('Staff support is limited to composition amendments: no growth, new sources, Go deeper or shared-Mind waiver').

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

refresh_study_summaryRefresh Study SummaryA
Destructive
Inspect

Accepts a background whole-Study summary refresh after explicit approval. Replaces the saved summary without restore history; questions and answers remain. force regenerates unchanged coverage. Returns a pending receipt and last saved content until completion.

NameRequiredDescriptionDefault
forceNoRegenerate even when message coverage is unchanged, replacing the saved summary.
studyNoStudy id or name. Omit to use the active Study of this MCP session.
lengthNostandard
confirmedYesThe user explicitly approved replacing the saved summary without restore history.

Output Schema

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

TDQS

A4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses exactly what is destroyed: the saved summary is replaced without restore history while questions and answers remain. It also explains the background/pending receipt behavior and the force condition, which are important behavioral details for a destructive async operation.

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

Conciseness5/5

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

The description is front-loaded with the action and approval requirement, then covers destruction, force, and return behavior in compact sentences. Every clause adds useful information without 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?

For a destructive, asynchronous, nested-parameter tool with annotations and an output schema, the description covers approval, destruction scope, force behavior, and pending receipts well. It is slightly incomplete on study selection and length semantics, but those are partly covered by the schema.

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

Parameters3/5

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

Schema description coverage is 75%, so the schema already documents most parameters. The description reinforces force and approval semantics but does not add meaning for the study id/name selection or the length enum beyond what the schema provides.

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 states a specific verb and resource: it refreshes a whole-Study summary. It makes the scope clear through 'whole-Study summary refresh' and distinguishes refresh from read by describing replacement behavior, but it does not explicitly name the sibling read_study_summary.

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?

It gives a clear prerequisite: an explicit approval is required, and it explains that force is for unchanged coverage. However, it does not say when to use this instead of read_study_summary or other study tools, and it gives no explicit when-not guidance.

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

render_audience_reviewShow Audience CreationA
Read-onlyIdempotent
Inspect

Shows source research, distributions, proposed Minds, the draft and training for one or more Audience operations, display only: the user confirms or asks for changes in chat. Multiple operations appear in independent tabs within one widget.

NameRequiredDescriptionDefault
operationIdNoSingle Audience operation; supply this or operationIds.
operationIdsNoAll Audience operations to display together in one tabbed widget, at most 20.

Output Schema

NameRequiredDescription
audienceCreationNoFull Audience creation snapshot of the first (initially selected) Audience.
audienceCreationsNoEvery displayed Audience in tab order: operationId, name and phase. Read a full snapshot with get_audience_creation_progress.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: it is display-only, the human reviews and responds in chat, and multiple operations render as independent tabs in a single widget.

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 front-loaded sentence that leads with what is shown and follows with the display-only constraint and tabbing behavior. No filler, though the sentence is dense enough to be slightly hard to parse.

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 values need no explanation, and the safety profile is carried by annotations. The description supplies the rendering behavior (tabs, one widget, human-in-the-loop) an agent needs to use it correctly; only explicit sibling routing 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 both parameters are already documented in the schema, including the single-vs-array alternative. The description reinforces 'one or more' operations and the tabbed co-display semantics but adds no format or constraint detail beyond that, so baseline 3 applies.

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+resource — shows source research, distributions, proposed Minds, draft and training for Audience operations — which is far more informative than the title 'Show Audience Creation'. It distinguishes the Audience domain from the sibling render_* tools, though it never explicitly contrasts itself with render_study_plan or render_study_results.

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 phrase 'display only: the user confirms or asks for changes in chat' implies this is a presentation step with no mutation, which is useful context. However, it gives no explicit when-to-use guidance against alternatives like get_audience_creation_progress or the other render_* tools, and no prerequisites.

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

render_study_planShow Study PlanA
Read-onlyIdempotent
Inspect

Shows a saved Study draft at its current revision for interactive review and confirmation. Research has not started.

NameRequiredDescriptionDefault
studyIdYes
revisionYes
draftPlanIdYes

Output 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 start_study_run.
draftReviewNoThe saved draft as reviewed: questions, methods, outputs and confirmation choices.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
audienceAttachmentNoWith study.audienceIds: attached (added now) and alreadyAttached Audience IDs.

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already establish that this is a read-only, idempotent, non-destructive, closed-world operation. The description adds meaningful state context beyond that: the draft is saved, shown at its current revision, intended for interactive review, and research has not started.

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 are front-loaded with the main action and state. There is no filler, and the key constraint that research has not started is placed clearly at the end.

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

Completeness3/5

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

The annotations and output schema reduce the need to explain safety and return values, and the description covers the review-state context well. However, for a tool with three opaque required identifiers, it is incomplete because it does not explain the parameters or how they relate to the draft revision.

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

Parameters2/5

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

Schema description coverage is 0% and there are three required parameters, so the description needs to compensate but mostly does not. It alludes to a revision, but gives no meaning for studyId or draftPlanId and does not explain how the revision relates to the saved draft.

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 states a specific action and resource: showing a saved Study draft at its current revision for interactive review and confirmation. It is clearer than a generic 'render' description, but it does not explicitly distinguish itself from close siblings such as get_study_plan or revise_study_plan.

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 a clear usage context: interactive review and confirmation of a saved draft while research has not started. It does not explicitly say when to use this instead of get_study_plan or revise_study_plan, so it stops short of full alternative guidance.

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

render_study_resultsShow Final Study ResultsB
DestructiveIdempotent
Inspect

Shows finished question/run results, summaries, Audience breakdowns and Mind responses, including partial runs. Can queue recovery and overwrite stale derived results from accepted answers; does not rerun respondents.

NameRequiredDescriptionDefault
runIdNo
studyIdYes
questionIdNo

Output 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).
planLimitNoPresent when a plan limit refused, truncated or stopped Study work.
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 and stimuli (the media the Minds were shown: name, url, mediaType). For coded qualitative answers, audiences[].themeMentions counts Minds per theme (multi-label, can exceed 100% in total) while distribution counts only each answer's primary theme.
sharedStudyUrlNoPublic share link, or null when link sharing is off.
activeQuestionsNoQuestions still running: questionId, question, status, totalMinds, answeredCount.
failedQuestionsNoQuestions that failed, with an error; a question a plan limit kept from running also carries planLimit.
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.
studyPresentationNoSaved Study headings and original question context aligned by questionId; used by the response widget.
requestPreparationsNoAccepted request preparation receipts, separate from questions and results. preparing has no submitted question; planning_required retains the original request and proposed plan awaiting explicit confirmation, and an uploaded questionnaire's questionnaire with the exact draft (draftPlanId, revision) that start_study_run starts after confirmation; admitted identifies a run whose own row supplies progress. clientRequestId selects the same request through get_study_status questionId.
isLinkSharingEnabledNoWhether the public share link is on.

TDQS

B3.4/5.0
Behavior4/5

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

The annotations already flag destructiveHint=true, and the description earns credit by specifying exactly what is mutated: it queues recovery and overwrites stale derived results from accepted answers. The clarifying clause that it does not rerun respondents is genuinely useful scope information. It stops short of saying whether the overwrite is reversible or what authorization is needed.

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 tight sentences with the primary capability front-loaded and side effects second. Some domain jargon ('Mind responses', 'Audience breakdowns') is dense but consistent with the product vocabulary used across sibling tools.

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?

An output schema exists, so return values need no explanation, and the mutation side effects are well covered. What remains missing for a three-parameter mutation tool is any parameter-level guidance and any signal of when this is the right tool versus the adjacent summary and status tools.

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

Parameters2/5

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

Schema description coverage is 0% across three parameters, so the description must compensate and largely does not. It implies run-level and question-level filtering through 'question/run results', but says nothing about how studyId, runId and questionId scope the output, whether runId defaults to the latest run, or what questionId narrows.

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 names a specific verb ('Shows') and enumerates concrete resources: question/run results, summaries, Audience breakdowns and Mind responses. It is clearly a results-rendering tool rather than a planning or run-control one, but it never names the neighboring tools it could be confused with (read_study_summary, refresh_study_summary, get_study_status).

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?

Useful scoping hints are present ('including partial runs', 'does not rerun respondents'), which tell the agent this works on already-collected data. However, there is no explicit statement of when to choose this over read_study_summary or refresh_study_summary, nor any prerequisite about when a run must exist first.

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

resume_study_runResume Study RunA
DestructiveIdempotent
Inspect

Resumes an existing plan-limited Study run in place after explicit user approval and the required paid-plan entitlement. Keeps the originally confirmed questions and response contracts and does not ask questions already answered. Does not start a new draft or change the run design.

NameRequiredDescriptionDefault
runIdYesExisting plan-limited run to resume in place.
studyNoStudy id or name. Omit to use the active Study of this MCP session.
confirmedYesThe user explicitly approved continuing this stopped run.

Output Schema

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

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=true, and the description usefully reinforces the idempotent 'in place' semantics plus preservation of confirmed questions and response contracts. It does not explain why the operation is destructive (quota/plan consumption) or what side effects occur, which is the remaining gap against the annotation profile.

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 tight sentences, each carrying distinct information: what it does, preconditions, and what it does not do. Front-loaded and free of 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?

With an output schema present, return values need not be described, and all parameters are documented in schema. The description covers preconditions and preservation behavior; only the destructive/cost implications of resuming are left implicit.

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 runId, study, and confirmed are already fully documented, including precedence of id vs. name. The description adds only the general framing of resuming an existing run, not per-parameter meaning, 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?

States a specific verb and resource ('Resumes an existing plan-limited Study run in place') and immediately differentiates from start_study_run by saying it 'does not start a new draft or change the run design.' The agent can distinguish resume-in-place from create/start without opening 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?

Gives real preconditions: explicit user approval and required paid-plan entitlement, and scopes usage to an existing stopped run. It also implies the alternatives it is not (new draft, design change), though it never names a sibling tool directly, keeping it short of a 5.

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

revise_study_planRevise Study PlanA
Destructive
Inspect

Revises one saved draft at its current draft.id and draft.revision without starting research. Accepts edits, refinement, clarification answers or response-format corrections. Stale revisions fail. Fixed questions stay verbatim when only clarification answers change. Bounded history may prune older revisions; the changed draft requires review again.

NameRequiredDescriptionDefault
draftYesExisting draft and current revision, with the requested changes or clarification answers.
studyNoStudy id or name. Omit to use the active Study of this MCP session.
policyNoResearch method and locale for this plan. Each Mind automatically uses its relevant knowledge alongside the assigned Study stimulus.
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. Write only the user's research brief and context relevant to the research question. Never tool errors, status or retry messages, Minds or other internal links, or your own process notes.
stimulusNoSource and attachments shown to the respondents, with per-question assignments.
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 or questionResponses in the same call (refused); suggestQuestionStimuli has no effect here, place files with questionAttachments; answer the draft's confirmation questions afterwards with draft.id, draft.revision and draft.answers alone, which keeps these questions exactly. Repeated question texts or colliding ids are rejected. A saved Study template's configuration.questions can be passed here (each item's text and response); pass its configuration.methodId as policy.methodId so the template's method runs. Without it a fixed instrument runs as Custom research (guided-research).
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.
conversationFilesNoStimulus files for the planned block, added to stimulus.attachments. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

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 start_study_run.
draftReviewNoThe saved draft as reviewed: questions, methods, outputs and confirmation choices.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
audienceAttachmentNoWith study.audienceIds: attached (added now) and alreadyAttached Audience IDs.

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, yet the description adds concrete behavior the agent could not infer: optimistic concurrency ('stale revisions fail'), a data-retention side effect ('Bounded history may prune older revisions'), and a workflow consequence ('the changed draft requires review again'). It also states a preservation guarantee ('Fixed questions stay verbatim when only clarification answers change'), which is exactly the kind of non-obvious contract an agent needs before mutating a draft.

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?

Five short sentences, front-loaded with the action and its addressing keys, with no filler. The clause listing accepted change types mildly duplicates what the nested schema already documents, which is the only slack.

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 an 8-parameter, deeply nested mutation tool with an output schema, the description covers the important non-schema facts: revision staleness, history pruning, verbatim preservation of fixed questions, and the re-review requirement. It omits run-mode interactions and the study/policy scoping behavior, but those are documented in the schema itself.

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 carries the parameter burden and 3 is the baseline. The description adds one meaningful semantic point beyond the schema, that draft.revision must be the current revision or the call fails, but says nothing about study scoping, policy, or idempotencyKey behavior.

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 and resource ('Revises one saved draft') plus the addressing keys (draft.id and draft.revision) and the negative scope ('without starting research'), which separates it from run_study/start_study. It does not name or differentiate itself from the closely related siblings save_study_draft or create_study_plan, so the boundary with those tools is left implicit.

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?

It enumerates the four input modes it accepts (edits, refinement, clarification answers, response-format corrections), which is useful selection guidance among its own parameters. However, it never states when to use this tool versus save_study_draft or create_study_plan, and gives no prerequisites or exclusions beyond 'stale revisions fail'.

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 BlockB
DestructiveIdempotent
Inspect

Deprecated alias of start_study_run; identical behaviour.

NameRequiredDescriptionDefault
draftNo
studyNo
resumeNo
confirmedNo
audienceIdsNo
idempotencyKeyNo
modelConnectionNo
advancedMethodOptInNo

Output Schema

NameRequiredDescription
runIdNoDurable run; poll it with get_study_status (study.id and runId).
statusNoRun status, or stimulus_unavailable / plan_limited when nothing started.
studyIdNoStudy the block runs in.
workspaceUrlNoAuthenticated Minds workspace link for the Study.
executionStartedNoFalse when nothing started.

TDQS

B3.2/5.0
Behavior2/5

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

Annotations declare destructiveHint=true, openWorldHint=true and idempotentHint=true; the description adds no behavioural detail about what the destructive action affects, whether confirmation is required, or what the open-world interaction touches. "Identical behaviour" is a cross-reference, not a disclosure, so beyond the annotation profile the description contributes almost nothing.

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?

A single front-loaded sentence with zero filler; the deprecation notice and the behavioural equivalence are both stated immediately. Nothing can be trimmed without losing either signal.

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

Completeness2/5

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

For a destructive, open-world tool with 8 undocumented parameters (and an output schema it need not explain), one sentence about being deprecated is thin. It omits any safety context around the destructive run, what the confirmed/audienceIds inputs mean, and why this entry point still exists.

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

Parameters2/5

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

There are 8 parameters with 0% schema description coverage and no enums, so the description carries the full burden of explaining draft, study, confirmed, audienceIds, idempotencyKey and modelConnection. Saying behaviour is identical to start_study_run implies the parameters mirror that tool, which is a useful pointer but no actual semantics are supplied.

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 identifies exactly what the tool is (a deprecated alias of start_study_run with identical behaviour), which is precise enough for an agent to know it duplicates a named sibling. It stops short of stating the underlying operation (starting a study run over a confirmed question block), so the agent must consult start_study_run to learn the actual verb+resource.

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?

"Deprecated alias" plus "identical behaviour" is a clear, actionable routing signal: prefer the canonical tool. It does not state whether any caller must still use this name for backward compatibility, nor does it name the replacement with an explicit 'use X instead' directive, leaving a small gap.

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

NameRequiredDescriptionDefault
nameNoSidebar name for the Study draft.
draftNoWhich durable draft to revise, and the retry key. Omit to create a new draft.
contextNoResearch context captured so far: only the user's brief and material relevant to the research question, never tool errors, status messages, internal links or process notes.
plannerNoPlanner state to restore when the draft is reopened.
methodIdNoResearch method selected for the draft. Use list_research_methods as the availability authority. When omitted on create, guided-research applies; when omitted on a revision, the saved method is kept.
questionsNoManual research questions in their intended order. When omitted on create, the draft has none; when omitted on a revision, the saved questions are kept.
audienceIdsNoExisting Audience IDs selected for the Study. Preferred.
conversationFilesNoStudy context files for the draft: images, video and audio are stimulus respondents see, documents are background. They are kept on later saves of the same draft. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

NameRequiredDescription
draftNoThe saved draft.

TDQS

A4.4/5.0
Behavior4/5

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

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

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

Conciseness4/5

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

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

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

Completeness5/5

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

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

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

Parameters4/5

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

Schema coverage is 100%, so baseline would be 3; the description earns above that by tying the draft/expectedRevision pair to a concurrency guarantee and explaining the create-vs-revise split of the draft object. It does not add field-level meaning (name, audienceIds, conversationFiles are left entirely to the schema).

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

Purpose5/5

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

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

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

Usage Guidelines4/5

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

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

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

save_study_templateSave Study TemplateAInspect

Creates a private Custom template with its questions, response settings, attachments and method. template.requestId enables safe retries. Does not change existing templates, create a draft or start research.

NameRequiredDescriptionDefault
templateYesName, configuration and optional stable requestId for the new private template.
conversationFilesNoAttachments added to every saved template question. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

NameRequiredDescription
dataNoThe template after the requested change, or null.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered; the description adds that the created template is private and that template.requestId enables safe retries. That retry/idempotency-key guidance is genuinely useful context beyond the structured fields, though it sits in mild tension with idempotentHint=false (retries are only safe when the caller supplies requestId, not by default).

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 compact sentences: the action leads, the retry mechanism follows, and the exclusions close. No filler, and the most important information is 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?

An output schema exists, so return values need not be described, and the nested input schema is fully annotated. The description covers purpose, side-effect scope and exclusions adequately; it could go slightly further by naming the sibling to use for draft/modification flows, but 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% and the nested configuration is documented inline, so the schema carries the field-level detail. The description still adds meaning by summarizing the template contents (questions, response settings, attachments, method) and by explaining the purpose of requestId as a retry-safety key, which the schema only calls a 'stable requestId'.

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 a private Custom template') and enumerates the payload it carries (questions, response settings, attachments, method). It also differentiates from siblings by negation ('Does not change existing templates, create a draft or start research'), separating it from update_study_template, save_study_draft and start_study_run.

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

Usage Guidelines4/5

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

It gives clear exclusion guidance — not for modifying existing templates, not for drafts, not for starting research — which implicitly routes the agent away from save_study_draft, update_study_template and create_study/start_study_run. However, it never names those alternatives explicitly, so the agent must infer which tool to reach for instead.

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

set_sharingChange Study or Audience SharingC
DestructiveIdempotent
Inspect

Turns a Study's or Audience's public link or team sharing on or off.

NameRequiredDescriptionDefault
linkNotrue turns the public view-only link on: anyone with it can view the item, and a Study link also opens its Audiences and Minds. false turns it off and an earlier link stops working. Send link, team or both.
teamNotrue shares with everyone in the owner's team (no invitation is sent), false stops it. Only the owner changes this. Marketplace listing of an Audience is not changed here.
typeYesKind of item: "study" or "audience".
studyNoThe Study, when type is "study".
audienceNoThe Audience, when type is "audience".

Output Schema

NameRequiredDescription
idNoID of the Study or Audience.
urlNoMinds workspace link for the item.
linkNoWhether the public view-only link is on now.
teamNoWhether everyone in the owner's team can open it now.
typeNostudy or audience.
shareUrlNoPublic view-only link while link sharing is on, else null.
listedPubliclyNoWhether the Audience is listed in the Minds marketplace (unchanged by this tool).

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the agent knows this is a mutating, repeatable, potentially destructive operation. The description adds essentially nothing beyond that: it does not warn that disabling a link breaks an existing shared URL, that team sharing sends no invitation, or that Audience marketplace listing is unaffected — all of which appear only in the parameter schema. With annotations already covering the safety profile, this sentence adds minimal new behavioral context.

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 front-loaded sentence with no filler and no redundancy. It is efficient, though bordering on under-specified rather than merely concise — the whole definition is one clause.

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?

A rich schema, full annotations, and an output schema relieve the description of much of its burden, and sharing toggles are conceptually simple. Still, for a destructive, open-world mutation with five parameters and nested object selection, the description omits who is permitted to call it and what observable effect toggling has on existing recipients. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including the nested study/audience id-or-name objects is fully documented in the schema, which sets the baseline at 3. The description contributes no additional parameter meaning; it only implies the link/team toggles exist without naming them or explaining the 'send link, team or both' combination rule. Baseline 3 is therefore correct.

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 gives a specific verb ('turns ... on or off') and names both resources (Study, Audience) plus both sharing channels (public link, team sharing). It is clear and distinguishes the tool from any sibling, since no other tool touches sharing state. It stops short of a 5 because it never contrasts itself with adjacent tools like update_item or the listing tools, though none of them overlap meaningfully.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, no prerequisites, and no alternatives. It does not say that only the owner may change team sharing, that an owner/admin role is required, or what to do when both link and team need updating. The schema parameter text carries some of this, but the description itself supplies no routing or precondition information.

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

start_study_heatmapStart Study Asset HeatmapB
Destructive
Inspect

Starts attention analysis of an assigned image, video or website. Uses one response per Mind and needs a paid plan. assetKey reuses completed analysis of that asset; omitting it may replace earlier derived results. Websites are visited publicly. Explicit approval is required; question answers are preserved.

NameRequiredDescriptionDefault
studyIdNo
assetKeyNo
messageIdYes
studyNameNo

Output Schema

NameRequiredDescription
studyIdNoStudy the heatmap belongs to.
messageIdNoHeatmap result.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already flag destructive, open-world and non-idempotent behavior, and the description adds real value on top: paid-plan gating, "omitting it may replace earlier derived results" (the destructive mechanism), public website visiting, and an approval requirement. It stops short of saying whether the run is asynchronous or what happens to in-flight results.

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 the purpose, then five short clauses that each carry information; no filler or restatement of the title. The telegraphic style is slightly compressed but readable.

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?

An output schema exists, so return values need no explanation, and the destructive/open-world profile is covered. Still missing for a paid, approval-gated, destructive start operation: what messageId actually is, and how this differs from start_study_run.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden, yet it explains only assetKey (reuses completed analysis of that asset). The required messageId plus studyId and studyName are left entirely undefined, which is a large gap for a 4-parameter mutation.

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?

"Starts attention analysis of an assigned image, video or website" gives a specific verb (starts), resource (heatmap/attention analysis) and the supported asset types. It does not, however, differentiate itself from the close sibling start_study_run, leaving the agent to infer which entry point applies.

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?

Preconditions are stated (one response per Mind, paid plan required, explicit approval required) and the assetKey reuse-vs-replace tradeoff is spelled out. What is missing is routing guidance: no mention of when to pick this over start_study_run or how it relates to get_study_heatmap/export_heatmap.

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

start_study_runStart Confirmed Study RunA
DestructiveIdempotent
Inspect

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

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

Output Schema

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

TDQS

A4.3/5.0
Behavior4/5

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

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

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

Conciseness4/5

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

The confirmation gate is front-loaded and nearly every clause earns its place (quota, ordering, gating, contradictions). The middle is dense with semicolon-joined clauses, which costs a little readability, but there is no filler.

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

Completeness4/5

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

For a destructive, idempotent, nested-object tool with 7 parameters it covers confirmation semantics, validation behavior, execution ordering and failure handling, and the output schema already documents returns. It omits the natural next step (get_study_status) and how resume_study_run relates to a started run, which would complete the picture.

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

Parameters4/5

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

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

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

Purpose5/5

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

States a specific verb and resource (runs one reviewed draft revision) with the gating condition (explicit confirmation in a later turn) built into the first sentence. It is clearly distinguishable from siblings like run_study_questions, resume_study_run and create_study_plan, and adds that the whole draft is submitted as a single durable run.

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

Usage Guidelines4/5

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

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

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

update_itemUpdate Study, Audience or MindB
DestructiveIdempotent
Inspect

Renames a Study or Audience or moves it into a folder. Renames a Mind, or records whether its facts come from real research data (mind.factsSource).

NameRequiredDescriptionDefault
mindNoThe Mind, when type is "mind", and where its facts come from (factsSource).
nameNoNew name, 1 to 200 characters. Renaming does not change who can open the item. The person must be able to edit the item.
typeYesKind of item: "study", "audience" or "mind".
studyNoThe Study, when type is "study".
folderNoOnly when the person asks to file or move the item: the name (any case) or id of one of their folders. The item moves there and leaves their other personal folders; with no folder of that name, a personal folder is created.
audienceNoThe Audience, when type is "audience".
removeFromFoldersNotrue takes the item out of all the person's folders, only when they ask. Not with folder.
confirmSharedFolderNotrue only after the person confirmed in this conversation filing the item in a shared folder or taking it out of one, which changes who can open it.

Output Schema

NameRequiredDescription
idNoID of the Study, Audience or Mind.
urlNoMinds workspace link for the item.
nameNoThe name now saved, when it was renamed.
typeNostudy, audience or mind.
folderNoWhen folder was sent: the folder the item was filed in { id, name, created, otherMembers, pendingInvitations }; null after removeFromFolders.
factsSourceNoFor a Mind, when factsSource was sent: where its facts now come from, generated or source_record.
sharedFoldersNoWith confirmationRequired: the shared folders concerned { id, name, otherMembers, pendingInvitations }. After a move: the shared folders that still hold the item { id, name }.
confirmationRequiredNoTrue when nothing changed because filing the item in a shared folder, or taking it out of one, needs the person's confirmation.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is largely known without the text. The description names the operations but adds no consequence information of its own — it does not say that moving an item out of personal folders or into a shared folder changes who can open it, nor does it mention the owner/admin permission constraint on factsSource; that detail lives only in the 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?

Two short sentences with the primary operation front-loaded and no filler. The second sentence's phrasing ('records whether its facts come from real research data') is slightly roundabout for what is effectively setting a factsSource flag, but it earns its place by flagging a non-rename operation.

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 an 8-parameter mutation tool with nested objects and a destructive hint, the description accounts for renaming and factsSource but omits the folder-management half of the contract (folder vs. removeFromFolders exclusivity and the shared-folder confirmation path), which is exactly the part with destructive consequences. An output schema exists, so return values need not be described, and the 100% schema coverage mitigates the remaining 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 every parameter including the nested id/name objects, folder, removeFromFolders and confirmSharedFolder is already fully documented in the schema. The description only echoes the mind.factsSource case, adding no syntax, defaults, or interaction rules beyond what the schema provides, so the baseline of 3 applies.

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 states concrete verbs (renames, moves, records) and concrete resources (Study, Audience, Mind, mind.factsSource), so the agent can tell exactly which items this generic-looking 'update_item' touches. It does not explicitly contrast itself with siblings such as set_sharing or update_study_template, but the operations listed are distinct enough that confusion is unlikely.

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 operation list — rename a Study/Audience/Mind, or move an item into a folder — but there is no explicit when-to-use/when-not-to-use guidance and no named alternative. Nothing warns the agent that folder moves or factsSource changes may need a separate confirmation or a different tool.

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

update_study_templateUpdate Study TemplateA
Destructive
Inspect

Updates one owned Custom template at update.expectedRevision. Replaces supplied fields without restore history and may share it with the team. Requires explicit approval; stale revisions fail. Does not start research.

NameRequiredDescriptionDefault
updateYesChanges to the owned template and its current expectedRevision.
templateIdYes
conversationFilesNoAttachments added to every question of the supplied configuration. Files shared in this conversation: uploaded or generated images, PDFs, documents. Each is copied into Minds storage on receipt; its file_id is its attachment id.

Output Schema

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 already flag destructive=true, idempotent=false, openWorld=true, but the description adds substantive behavior beyond them: fields are replaced with no restore history, sharing with the team is a possible side effect, explicit approval is required, and stale revisions fail. These are exactly the traits an agent needs before making a mutating call.

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 tight clauses with zero filler, front-loaded with the core action followed by mutation semantics, side effects, and constraints. Each sentence carries distinct information an agent needs.

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 deeply nested schema and an existing output schema (so return values need no explanation), the description covers purpose, mutation/replacement semantics, concurrency handling, approval requirements, sharing side effects, and an explicit non-goal. Nothing essential for a correct call 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 67%, so moderate compensation is expected. The description names the nested path update.expectedRevision and explains its failure semantics ("stale revisions fail"), which adds real meaning, but templateId and conversationFiles receive no interpretive help beyond the schema itself.

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

Purpose5/5

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

The description states a precise verb and resource ("Updates one owned Custom template") and scopes it to owned Custom templates specifically, which separates it from list/save/use/delete template siblings. The closing clause "Does not start research" explicitly walls it off from the study-run tools (start_study_run, ask_study).

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 clear context for use: the template must be owned, it operates at a specific expected revision, and it explicitly excludes starting research. However, no alternative tool is named, so the agent gets an exclusion but not a positive routing rule (e.g., save_study_template for new templates).

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

use_study_templateCreate Draft From Study TemplateA
Idempotent
Inspect

Creates an independent editable Study draft from a readable template at use.expectedRevision. Reuse use.requestId for retries of the same intended draft. Fresh context and Audiences are added in the web app; the template is unchanged and research does not start.

NameRequiredDescriptionDefault
useYesCurrent expectedRevision and a requestId reused only for retries of this same intended draft.
templateIdYes

Output Schema

NameRequiredDescription
dataNoThe template after the requested change, or null.

TDQS

A4.1/5.0
Behavior4/5

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

Goes beyond the annotations by explaining the retry contract ('Reuse use.requestId for retries of the same intended draft'), that the template is left unchanged, and that research does not start. The annotations already flag idempotentHint=true and non-destructive behavior, so this confirms and enriches rather than merely restates, though it omits permission/authorization requirements.

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 tight sentences with the mutation front-loaded, followed by retry semantics and side-effect clarifications. No filler, though a brief pointer to the relevant sibling would have added value without bloat.

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 values need not be described. The description covers the mutation's scope, idempotency/retry behavior, and non-effects ('template is unchanged', 'research does not start'), which is strong for a nested-parameter write tool; only permission/auth requirements are absent.

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

Parameters4/5

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

With only 50% schema description coverage, the description usefully explains the meaning of both nested fields—expectedRevision as the template revision being acted upon and requestId as a retry-deduplication key. It compensates well for the coverage gap, though templateId itself is left to the schema and obvious naming.

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 independent editable Study draft') plus the source ('from a readable template at use.expectedRevision'). This makes it clearly distinguishable from siblings like create_study (blank study) and duplicate_study (copying an existing study), without needing to name them.

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 workflow context ('Fresh context and Audiences are added in the web app; the template is unchanged and research does not start') but never states when to choose this over create_study, duplicate_study, or list_study_templates. Usage is inferable but not explicit, and no exclusions are given.

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. 6 tool updates
    • Changedcreate_study_plan1 field changed
      • addedOutput schema / properties / workspaceUrl
        Added value: +{
        +  "description": "Authenticated Minds workspace link for the Study.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedget_study_plan1 field changed
      • addedOutput schema / properties / workspaceUrl
        Added value: +{
        +  "description": "Authenticated Minds workspace link for the Study.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedplan_study_questions1 field changed
      • addedOutput schema / properties / workspaceUrl
        Added value: +{
        +  "description": "Authenticated Minds workspace link for the Study.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedrender_study_plan1 field changed
      • addedOutput schema / properties / workspaceUrl
        Added value: +{
        +  "description": "Authenticated Minds workspace link for the Study.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedrevise_study_plan1 field changed
      • addedOutput schema / properties / workspaceUrl
        Added value: +{
        +  "description": "Authenticated Minds workspace link for the Study.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedrun_study_questions1 field changed
      • addedOutput schema / properties / workspaceUrl
        Added value: +{
        +  "description": "Authenticated Minds workspace link for the Study.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
  2. 2 tool updates
    • Changedask_audience3 fields changed
      • changedOutput schema / properties / executionStarted / description
        Previous value: -"False when nothing was submitted."New value: +"False when no respondent question was submitted, including accepted preparation and planning_required. Submission or queueing does not establish that Minds are answering; use the current request's progress to report answering or completion."
      • changedOutput schema / properties / question / description
        Previous value: -"The submitted question."New value: +"The verified respondent question, when returned. Its text alone does not report whether the request is queued, the Minds are answering or answers are complete; use the current request's receipt and progress."
      • changedOutput schema / properties / studyId / description
        Previous value: -"Study the question was asked in."New value: +"Study containing this request and, once admitted, its question."
    • Changedask_study3 fields changed
      • changedOutput schema / properties / executionStarted / description
        Previous value: -"False when nothing was submitted."New value: +"False when no respondent question was submitted, including accepted preparation and planning_required. Submission or queueing does not establish that Minds are answering; use the current request's progress to report answering or completion."
      • changedOutput schema / properties / question / description
        Previous value: -"The submitted question."New value: +"The verified respondent question, when returned. Its text alone does not report whether the request is queued, the Minds are answering or answers are complete; use the current request's receipt and progress."
      • changedOutput schema / properties / studyId / description
        Previous value: -"Study the question was asked in."New value: +"Study containing this request and, once admitted, its question."
  3. 3 tool updates
    • Changedask_audience3 fields changed
      • changedOutput schema / properties / clientRequestId / description
        Previous value: -"The accepted request identifier; pass it as questionId to get_study_status to follow preparation and any admitted question."New value: +"The accepted logical request identifier. A preparing receipt also returns this exact value as questionId for progress reads."
      • changedOutput schema / properties / operationId / description
        Previous value: -"Opaque durable preparation operation identifier, present while the request is being interpreted."New value: +"Opaque durable preparation operation identifier, present while the request is being interpreted. This is separate from questionId and must not be passed as a question filter."
      • changedOutput schema / properties / questionId / description
        Previous value: -"Identifier of this question; pass it to get_study_status to follow only this question."New value: +"Logical request or question identifier. Present during preparation as the exact clientRequestId; use this returned questionId with studyId on the first get_study_status check for the current request. It follows preparation and any admitted question, independently of operationId."
    • Changedask_study3 fields changed
      • changedOutput schema / properties / clientRequestId / description
        Previous value: -"The accepted request identifier; pass it as questionId to get_study_status to follow preparation and any admitted question."New value: +"The accepted logical request identifier. A preparing receipt also returns this exact value as questionId for progress reads."
      • changedOutput schema / properties / operationId / description
        Previous value: -"Opaque durable preparation operation identifier, present while the request is being interpreted."New value: +"Opaque durable preparation operation identifier, present while the request is being interpreted. This is separate from questionId and must not be passed as a question filter."
      • changedOutput schema / properties / questionId / description
        Previous value: -"Identifier of this question; pass it to get_study_status to follow only this question."New value: +"Logical request or question identifier. Present during preparation as the exact clientRequestId; use this returned questionId with studyId on the first get_study_status check for the current request. It follows preparation and any admitted question, independently of operationId."
    • Changedget_study_status1 field changed
      • changedInput schema / properties / questionId / description
        Previous value: -"Return 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."New value: +"Return only this request or question: use the questionId returned by ask_study or ask_audience, including a preparing receipt, on the first progress check for that request. The same logical ID follows preparation and any admitted question; operationId is a separate preparation identifier, not a questionId. An activeQuestions/recentResults questionId also selects that question. Omit only for a Study-wide progress request."
  4. 1 tool update
    • Changedexport_study1 field changed
      • addedInput schema / properties / researchResultId
        Added value: +{
        +  "description": "Export only the selected Research Result. Use its saved user-origin message ID from this Study. Omit for a whole-Study export.",
        +  "minLength": 1,
        +  "type": "string"
        +}
  5. 1 tool update
    • Changedupdate_item6 fields changed
      • addedInput schema / properties / mind
        Added value: +{
        +  "description": "The Mind, when type is \"mind\", and where its facts come from (factsSource).",
        +  "properties": {
        +    "factsSource": {
        +      "description": "Only for a Mind, only when the person says where its facts come from. \"source_record\": its facts were read from real research data (a survey respondent, an interview, a customer record); Minds then uses its saved instructions exactly as written and never checks, corrects or rewrites its facts or instructions on its own. \"generated\": Minds drafted the person and keeps its instructions consistent with its facts again. Only the Mind's owner or a workspace Owner or Admin can change it.",
        +      "enum": [
        +        "generated",
        +        "source_record"
        +      ],
        +      "type": "string"
        +    },
        +    "id": {
        +      "description": "Mind ID (UUID).",
        +      "format": "uuid",
        +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Mind name, when the ID is not known.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / type / description
        Previous value: -"Kind of item: \"study\" or \"audience\"."New value: +"Kind of item: \"study\", \"audience\" or \"mind\"."
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "study",
        -  "audience"
        -]New value: +[
        +  "study",
        +  "audience",
        +  "mind"
        +]
      • addedOutput schema / properties / factsSource
        Added value: +{
        +  "description": "For a Mind, when factsSource was sent: where its facts now come from, generated or source_record.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / id / description
        Previous value: -"ID of the Study or Audience."New value: +"ID of the Study, Audience or Mind."
      • changedOutput schema / properties / type / description
        Previous value: -"study or audience."New value: +"study, audience or mind."

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.