MCP Workflow Examples for AI Market Research
Workflow examples for using the Minds MCP server to create Audiences, run cohesive multi-question Studies, test concepts, and export reports.
These examples assume you have connected the Minds MCP server for ChatGPT, Claude, and Cursor. If not, follow the Minds MCP setup guide first.
Guided Study Confirmation Workflow
For a broader task, multiple questions, a visual asset, structured outputs, or an explicit research method, the assistant follows this sequence:
User request
-> create_study_plan (draft only)
-> present captured intent, main source, questions, methods, and outputs
-> ask every returned confirmation question
-> revise_study_plan if the user answers or changes anything
-> explicit user confirmation of the exact revision
-> start_study_run
-> get_study_status with the returned runId until collection settles
-> read_study_summary
The model must not silently approve its own questions or method. Keep simple Studies simple. Check list_research_methods: Conjoint and the other available quantitative methods execute their registered designs and calculations; advanced methods require explicit opt-in. Review any proposed fallback before confirming the plan. For an asset already attached to a Study question, get_study_heatmap / start_study_heatmap reads or starts its separate visual analysis. Report the evidence actually returned.
The original create_study_plan.request is planner input and is not sent verbatim to Minds. The preview labels the exact proposed respondent-visible question text; after confirmation, get_study_run exposes the confirmed or server-prepared question set as a visibility audit. By contrast, treat all text in a direct ask_study.question as respondent-visible input: the system may classify or reformat it, but any part can reach the Minds and influence their answers. Keep planner and MCP-client orchestration notes outside direct questions.
At the execution boundary, a plan_limited response means nothing was started: explain the Study-answer limit and required upgrade. During polling, status: plan_limited means the processor preserved partial answers but stopped the remaining questions at the paywall. Never call either case complete, and never hide it behind a generic error. After an upgrade, use a follow-up run for only the unanswered questions.
A confirmed run is answered the way one respondent answers a questionnaire: items run in order and each Mind sees only its own earlier answers in that run, so order effects can arise as in a fielded survey. Rotate item order across separate runs when the design needs to control them. For skip logic, give an item askIf naming an earlier choice question and its options; Minds that are not asked are excluded from that item's results, and an item nobody was asked reports not_asked, not a failure. After the run, answerConsistency flags answers that contradict the same Mind's other answers. Flags are for review; the answers are never changed.
This lifecycle plans research, not every Study action. A standalone “export this” request routes to export_study. “Show the same result differently” reads the existing Study or summary and changes presentation without queueing new respondents. Only create a new plan when the requested output changes what evidence the Study must collect.
Consumer Research Workflow
A typical workflow for a brand team researching a product launch:
Step 1: Create Consumer Personas
"Create five consumer personas for our skincare launch:
- 'Lena, 22, Berlin' — Gen Z student, eco-conscious, discovers brands on TikTok
- 'Maya, 19, London' — retail worker, trend-driven, shops based on peer recommendations
- 'Aisha, 24, NYC' — junior designer, budget-conscious, cross-references Reddit reviews
- 'Sarah, 35, Munich' — part-time teacher, mom of two, safety-first buyer
- 'Jessica, 38, Chicago' — marketing manager, mom, trusts dermatologists over influencers"
Step 2: Organize into Demographic Audiences
"Create an Audience called 'Gen Z Women (18-25)' with Lena, Maya, and Aisha.
Create another Audience called 'Millennial Moms (30-42)' with Sarah and Jessica."
Step 3: Create a Research Study
"Create a Study called 'Sustainable Skincare Launch Study' with both Audiences"
Step 4: Run Survey Questions
"Plan one launch-research question block for the Study with these sections:
1. Price sensitivity: On a scale of 1-10, how likely are you to switch to a sustainable skincare brand if it costs 20% more?
2. Discovery: Where do you typically discover new skincare products?
3. Switching barriers: What would make you stop buying from your current skincare brand?
Show me the complete plan for confirmation, then run all three questions together."
Step 5: Analyze & Export
"Show me the analytics for the Sustainable Skincare Study"
"Export the Study as a PDF report for the brand team"
Validate an Audience
To check how close an Audience's answers come to real, published surveys, the assistant follows this sequence:
Create or pick an Audience (at least 10 ready Minds)
-> validate_audience (finds the best-fitting published surveys, or uses the benchmarkIds you name)
-> get_audience_validation with batchId until status is completed, failed, or cancelled
-> read the combined score, each survey's score and 95% range, and the left-out questions
validate_audience and get_audience_validation are callable by name for MCP clients that call tools directly. They are not yet listed in assistants' tool discovery; the same capability is available now through the v1 API and the Audience's Validation tab.
A run usually takes 10 to 60 minutes, so the assistant polls instead of waiting on one call. It reports each survey's score with its range and who the survey asked, and keeps left-out questions and their reasons visible to the user. Without batchId, get_audience_validation returns the Audience's overall validity and the included validations left this month.
For a partial-population result, the assistant must read respondentScope before describing the match. For example, a nurse survey might select 12 Minds from a 16-Mind healthcare Audience. Report the percentage alongside ‘12 of 16 Minds, nurses’; do not present it as the validity of all healthcare workers. The result’s caveats distinguish cohort-confirmed membership, membership supported by broader profile evidence, uncertain cases and explicit mismatches.
Eligibility is assessed before response collection, independently of the answers. Cohort gaps can be resolved by individual evidence; aggregate distributions cannot prove a person qualifies. Only confirmed or supported members participate, with a minimum of ten. If that minimum is not met, explain why no survey was asked. The match itself comes from numerical comparison, while the model handles selection. Costs follow the actual selected respondents, and the composite omits subset results. Keep interpretation tied to this Audience even when some Minds also belong to another one.
Example prompt:
"Validate my 'German SaaS buyers' Audience against published surveys and tell me how close it is."
Use Cases
Product Concept Testing
Create Studies with target consumer Audiences to test product concepts, packaging, and naming before investing in production. Compare reactions across Audiences instantly.
Pricing Research
Survey synthetic consumers on willingness to pay at different price points. Identify the sweet spot where value perception meets margin targets.
Brand Perception Audit
Build Studies containing your target Audiences. Ask about brand awareness, trust, and purchase intent in one cohesive question block. Compare your brand against competitors through consumer eyes.
Campaign Message Testing
Test ad copy, taglines, and visual concepts with synthetic target audiences before committing media spend. Identify which messages resonate with which segments.
Market Entry Research
Entering a new market? Create consumer personas for the target region and test product-market fit, cultural sensitivities, and channel preferences.
Example Conversations
Quick Consumer Insight
You: "I need to understand how Gen Z and millennials in Europe feel about subscription-based skincare. Create one Audience for each segment and plan one cohesive Study asking what would convince them to subscribe."
AI Assistant: Drafts the Minds and audience structure, creates a Study, presents the exact proposed research question(s), and requests confirmation when the request expands into a broader Study. After execution, it reports the actual returned grouped responses without pre-writing a conclusion.
Expert Consultation
You: "Talk to my Brand Strategy expert about positioning a premium organic baby care line in the German market."
AI Assistant: Uses chat_with_mind to query the expert Mind and presents its actual response, preserving any returned citations. It labels the output as synthetic expert perspective rather than independent legal or regulatory advice.
Competitive Analysis
You: "Create a Study with 'Loyal Customers' Audiences for our top 3 competitors. Plan one block asking what they love most about their current brand and what frustrates them."
AI Assistant: Creates private synthetic Audiences, confirms the comparative multi-question research plan, runs the Study once, and reports only differences supported by the returned responses and calculations.
Automation guardrails
- Keep new Audiences and Studies private unless the user explicitly requests a public link.
- Planning does not start research. Confirm the exact latest revision before
start_study_run. - Poll status tools instead of treating a timeout or elapsed duration as completion.
- Require explicit confirmation immediately before lifecycle deletion actions.
- Preserve citations, resource IDs, workspace/shared links, and download links exactly.
- Treat
plan_limitedbefore execution as “nothing started” andstatus: plan_limitedduring execution as partial, preserved work. - Use
list_research_methodsbefore promising a named method; onlyexecutable: trueis runnable. - Do not infer customer findings in advance. The example prompts in this guide describe workflows, not guaranteed conclusions.
For a full routing and safety contract, see the MCP operating guide for agents.
When get_study_run returns partial, give the user an incomplete-results handoff instead of continuing the polling loop. For example, four settled questions can still include one question answered by only nine of ten Minds. Explain that difference before summarizing: progress.pct tracks question settlement, while progress.partial identifies how many questions have recorded response gaps. Inspect each artifact's outputData.responseCoverage for the expected and received counts and missing Audience/Mind memberships. Historical artifacts without these fields cannot establish full participation. Preserve the answers already collected, identify what is absent, and agree on a separate retry rather than silently replacing the original results.
Wait for readiness, then continue
In ChatGPT Work on the web, or Work with Cloud in the desktop app, ask Minds to notify you when an Audience is ready or a confirmed Study run finishes. You can also ask it to continue an already approved Study after Audience readiness. Review and confirm the Audience draft and Study plan first: the initial request does not approve an unseen plan, and an Event does not authorize extra questions, another run or extra spending. The host decides how to notify you; delivery is not a guarantee of SMS.
The Audience Event waits until the created Minds are usable; a preview awaiting review is not ready. The Study Event waits for saved result synthesis. Partial responses, a provisional summary, failure, cancellation and plan limits are reported with ready=false. Retrieve the original run with get_study_status({ study: { id: studyId }, runId }) and preserve its identifiers; never submit it again merely because an Event arrived.
Subscriptions last up to 24 hours and the client must refresh before refreshBefore. Signing secrets and callback URLs are encrypted at rest. Delivery rechecks the connection, account policy and resource access. Pending state is checked every minute; callback verification and network retries may add delay. There is no historical replay. Keep the workspace link and read status if subscribing fails; do not promise a notification until signup succeeds.
Name the monitoring task after the research and requested milestone without promising success before the result is known. Notifications should use the user's language and open with the outcome and research name, followed immediately by the workspace link and next action. Keep this opening useful on its own: ChatGPT email previews may truncate the full message. Add a short finding and respondent or question counts only when saved results verify them. Keep event names, internal identifiers and JSON flags out of ordinary completion messages unless requested.
For a draft awaiting confirmation, say “ready for review” and that research has not started; retain the exact draft ID, revision and confirmation questions in the full review conversation. For failed or partial work, read get_audience_creation_progress({ operationId }) or get_study_status({ study: { id: studyId }, runId }) for the original operation. Explain the returned cause, saved progress, what is missing and the available next action; if no cause is available, say so. Do not invent a reason or automatically repeat research. Notify only the requested milestones; continue already authorized intermediate work without another notification unless review is required or work is blocked. The host controls its email template and channels, so a direct email button or SMS cannot be promised.
audience.creation.finished → operationId · study.run.finished → studyId, runId


