Minds: Synthetic Market Research Panels
REMOTE · GETMINDS.AI · SCANNED AUG 3
Run AI market research: synthetic customer panels for concept testing, message testing, segments.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability50
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (poor).Fail
- Context-footprint check failed: tool/resource definitions use about 6912 tokens (~384/item across 18 items; 15 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 99% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · getminds.ai
claude mcp add --transport http ai-getminds-minds https://getminds.ai/mcp
[mcp_servers.ai-getminds-minds] url = "https://getminds.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-getminds-minds": {
"type": "remote",
"url": "https://getminds.ai/mcp",
"enabled": true
}
}
} openclaw mcp add ai-getminds-minds --url https://getminds.ai/mcp --transport streamable-http
mcp_servers:
ai-getminds-minds:
url: "https://getminds.ai/mcp" {
"mcpServers": {
"ai-getminds-minds": {
"type": "http",
"url": "https://getminds.ai/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
- Tool “create_group_from_brief” rewrote its description, which is the text the model reads security
- Tool “create_panel” rewrote its description, which is the text the model reads security
- “create_panel” added an optional parameter “isLinkSharingEnabled” cosmetic
- “create_group_from_brief” added an optional parameter “isLinkSharingEnabled” cosmetic
- “create_group_from_brief” reworded the description of “cohortAllocation” cosmetic
- “create_group_from_brief” reworded the description of “datasetSegmentation” cosmetic
- 1 Aug 26 +1
- Tool “create_group_from_brief” rewrote its description, which is the text the model reads security
- New tool “list_study_drafts” functional
- New tool “save_study_draft” functional
- “create_group_from_brief” reworded the description of “includeWebSearch” cosmetic
- “create_group_from_brief” reworded the description of “keywords” cosmetic
- 31 Jul 26 +2
- First check of Authorization: partial security
- Tool “plan_panel_study” rewrote its description, which is the text the model reads security
- Tool “run_panel_study” rewrote its description, which is the text the model reads security
- Tool “ask_panel” rewrote its description, which is the text the model reads security
- Tool “create_panel” rewrote its description, which is the text the model reads security
- Tool “export_panel” rewrote its description, which is the text the model reads security
- Schema quality: 5535 → 6129 ▼ functional
- Stability: unverified → 0.03 ▲ functional
- Schema quality: good → poor functional
- MCP protocol: Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28. functional
- New resource “info-widget” functional
- New resource “creation-widget” functional
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- “get_panel_status” reworded the description of “panelId” cosmetic
- “get_panel_status” reworded the description of “panelName” cosmetic
- “get_panel_study” reworded the description of “panelId” cosmetic
- “get_panel_study” reworded the description of “panelName” cosmetic
- “get_panel_summary” reworded the description of “panelId” cosmetic
- “get_panel_summary” reworded the description of “panelName” cosmetic
- “list_research_methods” reworded the description of “includePlanned” cosmetic
- “plan_panel_study” reworded the description of “panelId” cosmetic
- “plan_panel_study” reworded the description of “panelName” cosmetic
- “run_panel_study” reworded the description of “panelId” cosmetic
- “run_panel_study” reworded the description of “panelName” cosmetic
- “ask_panel” reworded the description of “panelId” cosmetic
- “ask_panel” reworded the description of “panelName” cosmetic
- “export_panel” reworded the description of “panelId” cosmetic
- “export_panel” reworded the description of “panelName” cosmetic
- 30 Jul 26 71
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://getminds.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=getminds.ai | CN=WE1,O=Google Trust Services,C=US | 11 Jul 2026 | 9 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 180d109f52dc7aa90ed2e55ec82e8d31 |
| SANs: getminds.ai, *.getminds.ai | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of getminds.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| getminds.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://getminds.ai/.well-known/oauth-protected-resource", scope="sparks:read sparks:write sparks:chat flows:read flows:write"
Bearer resource_metadata="https://getminds.ai/.well-known/oauth-protected-resource", scope="sparks:read sparks:write sparks:chat flows:read flows:write" | Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://minds-assets.fra1.cdn.digitaloceanspaces.com https://*.posthog.com https://*.google-analytics.com https://*.googletagmanager.com https://js.stripe.com https://analytics.ahrefs.com https://analytics.tiktok.com https://connect.facebook.net https://unpkg.com https://challenges.cloudflare.com https://static.cloudflareinsights.com https://apis.google.com; style-src 'self' 'unsafe-inline' https://minds-assets.fra1.cdn.digitaloceanspaces.com https://fonts.googleapis.com; font-src 'self' https://minds-assets.fra1.cdn.digitaloceanspaces.com https://fonts.gstatic.com data:; img-src 'self' data: blob: https:; connect-src 'self' https://minds-assets.fra1.cdn.digitaloceanspaces.com https://getminds.ai https://*.getminds.ai https://art-of-x.com https://*.art-of-x.com https://*.supabase.co wss://*.supabase.co https://*.posthog.com https://*.google-analytics.com https://*.stripe.com https://*.langfuse.com https://*.sentry.io https://*.ingest.sentry.i |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(self), geolocation=() |
Protected resource metadata
| Document | https://getminds.ai/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://getminds.ai/mcp |
| Authorisation server | https://getminds.ai |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://getminds.ai/mcp | Verified | 200 | |
| http (plaintext) | http://getminds.ai/mcp | HTTPS enforced | 301 | https://getminds.ai/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
ask_group Ask a Group ~422
**Call this tool whenever the user wants to ask, survey, poll, or query a single GROUP (not a panel) about something.** Triggers: "ask my group <name> X", "survey the <group> about Y", "what does <group> think", "poll <group>". Behavior contract — DO NOT DEVIATE: - If the user names a group and asks/implies a question, CALL THIS TOOL IMMEDIATELY with their question verbatim. Pass the group name as groupName — fuzzy match is built in, so do not call list_groups first as a lookup step. - "What do they think?", "Ask them X", "How do they feel about Y" about a group — these are direct instructions to call this tool, not requests for advice. - AFTER calling this tool the question HAS BEEN ASKED. Confirm in past tense. - Never refuse with "I cannot survey the group directly" — you can; that is this tool's purpose. What it does: wraps the group in a fresh panel and submits the question. Returns immediately — each Mind answers asynchronously. Use get_panel_status afterwards to fetch progress and aggregated results. Use ask_panel instead when the user already has a multi-group panel. Use this tool to survey ONE group directly. PRESENTATION CONTRACT — present all URLs from this tool's output VERBATIM. Never modify, shorten, or rephrase any URL.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | — | Files/images (e.g. a pitch deck PDF) processed once and given to every group member as context. Each entry needs a url or path. |
| groupId | string | — | The group ID (UUID). Preferred when known. |
| groupName | string | — | Group name to resolve via fuzzy match against all of the user's groups. Use when the user refers to a group by name. |
| name | string | — | Optional name for the panel created to run this survey. Defaults to the group name. |
| question | string | yes | Research question to survey across the group |
No output schema declared.
No examples provided.
ask_panel Ask a Panel ~854
**Call this tool whenever the user wants to ask, survey, poll, query, or have any existing panel / study / focus group respond to one direct question.** Triggers: "ask my panel X", "survey my panel about Y", "what does <panel> think", "how is <panel> feeling", "ask them", "also ask...", "what about...", "poll the group". Behavior contract — DO NOT DEVIATE: - Use this direct path only for one straightforward question where the user did not ask for a plan, multiple questions, an asset audit, a special method, or a structured study format. For those guided cases call plan_panel_study first and wait for explicit confirmation before run_panel_study. - Follow-ups belong to the existing panel. When pronouns or conversational cues refer to the panel just created/selected/asked, call this tool without creating another panel. Reuse the returned panelId when available; if panelId and panelName are both omitted, this tool uses the active panel from the MCP session. - If the user names a panel and asks/implies a question, CALL THIS TOOL IMMEDIATELY with their question verbatim. Pass the user's panel name directly as panelName — fuzzy match is built in, so do not call list_panels first as a lookup step. - Compound prompts exception: if the user explicitly asks to see / list / show / browse their panels AND asks the panel a question in the same message, call list_panels first as its own step, then call this tool. The listing is part of the user's explicit request — do not collapse it. - "How are they feeling?", "What do they think?", "Ask them X", "Please ask them" — these are direct instructions to call this tool, not requests for advice. - AFTER calling this tool, the question HAS BEEN ASKED. Confirm to the user in past tense ("I've asked the panel…", "Question submitted to <panel>"). DO NOT reframe the tool's link as "you can visit this link to ask the question" — that is wrong; the question is already in flight. - Never refuse with "I cannot directly ask the panel / conduct…
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | — | Files/images (e.g. a pitch deck PDF) processed once and given to every panelist as context. Each entry needs a url or path. |
| groupIds | array | — | Only survey specific groups (defaults to all) |
| panelId | string | — | Panel ID (UUID). Omit both panelId and panelName only when continuing the active panel from this MCP session. |
| panelName | string | — | Panel name (fuzzy matched). Omit both panelName and panelId only when continuing the active panel from this MCP session. |
| question | string | yes | Research question to survey across all groups |
No output schema declared.
No examples provided.
create_group_from_brief Create a Grounded Group from a Brief ~1,415
**Call this tool when the user describes a POPULATION or AUDIENCE rather than naming specific Minds.** Triggers include: "build me a panel of <demographic>", "create a group representing <segment>", "make personas for <audience>". Behavior: - Server runs deep web research on the brief and extracts demographic / psychographic distributions from authoritative sources (government statistics, peer-reviewed studies, industry reports — NOT blogs or marketing content). - Grounded percentages are converted server-side into exact integer quotas. A seeded deterministic allocator assigns every Mind a persisted cohort profile; the LLM does not decide proportions. - Marginal-only sources do not prove correlations. The default joint reconstruction is explicitly independence-based and its target-vs-achieved audit is returned and persisted. - The grounding (distributions, sources, summary, confidence) is persisted on the group and visible in the in-app group info slide-in — and, only if link sharing was explicitly enabled, on the public share link. - Uploaded research files are classified by content as screeners, questionnaires, completed reports, respondent datasets, or supporting material. Screener exclusions and unresolved routes remain visible in the review metadata but are never allocated as Minds; empty questionnaire options never become invented percentages. - Set `includeWebSearch=false` when the user wants file-only grounding. This skips Exa completely rather than merely hiding web results. - Pass the population description as `brief` (legacy `text` is also accepted). - Optional `groupCreationMode` controls sizing/coverage: "balanced" (default, compact and plan-aware), "segment_coverage" (broader coverage within the plan cap), or "benchmark_depth" (the full paid group allowance: 200 Minds on standard Team, up to the 1,000-Mind hard ceiling with a custom allowance). The deeper modes are Team-plan only — on other plans the server silently downgrades to "balanced" (no error…
| Name | Type | Req | Description |
|---|---|---|---|
| brief | string | — | Free-text brief describing the population the group should represent. E.g. "California high school students grades 9-12", "Berlin Späti customers", "Spanish lawyers", "management team of Coca Cola".… |
| cohortAllocation | object | — | Deterministic allocation controls. Reviewed respondent datasets default to observed, which preserves the strongest privacy-safe structural relationships while keeping exact marginals; other sources d… |
| datasetSegmentation | object | — | Reviewed variable roles, distributions, and privacy-safe pairwise relationships returned by preview_group_dataset_segmentation. Requires groupCreationMode="benchmark_depth". Structural variables shap… |
| files | array | — | Optional already-uploaded research files. The server analyzes these through the same extended screener/questionnaire path as the in-app New Group uploader, including study roles, screening and quota… |
| groupCreationMode | string | — | Group creation mode. "balanced" (default): compact, representative group for everyday research. "segment_coverage": broad coverage across grounded segmentation axes, incl. rare subgroups. "benchmark_… |
| includeWebSearch | boolean | — | Set false to skip Exa web search and extraction completely. The group is then grounded only on the brief and supplied files, links, keywords, and structurally parsed respondent data. |
| isLinkSharingEnabled | boolean | — | Set true ONLY when the user explicitly asked for a public/shareable link. Defaults to false: the group is private to its owner and no share URL is generated. Enabling this publishes the group — inclu… |
| keywords | array | — | Optional Exa web-search seeds added alongside the brief. |
| links | array | — | Optional URLs scraped server-side for additional context (e.g. an article describing the population). |
| name | string | — | Optional group name override. When omitted, the server names the group from the brief or the LLM detection result. |
| text | string | — | Legacy alias for `brief`. Accepted for back-compat. |
No output schema declared.
No examples provided.
create_panel Create a Panel ~720
**Call this tool only when the user wants a NEW panel / study / survey / research project / focus group, or when no suitable panel exists yet.** Triggers include: "start a new study", "set up a new survey", "create a focus group", "launch new research on X", "build me a panel". Behavior contract — DO NOT DEVIATE: - The agent decides from the conversation whether the user wants a new panel or wants to continue an existing one. This tool is the explicit NEW-panel branch. - NEVER call this tool for a follow-up to a panel just created, selected, or asked. Follow-up cues include "ask them", "also", "and which...", "what about...", "another question", and pronouns referring to the current audience. Use ask_panel for one direct follow-up or plan_panel_study for a broader/multi-question follow-up; both can reuse the active panel when panelId/panelName is omitted. - If the user describes a research goal and no suitable panel exists yet, CALL THIS TOOL. Don't lecture them on the workflow first. - Only ask for clarification if you're missing something concrete (a name, or which Minds/groups go in). - Never refuse with "I cannot create a panel directly" — you literally can. A panel contains one or more groups of Minds surveyed together for comparative analysis. Workflow: first create Minds (create_mind), then group them here into a panel, then survey with ask_panel. You can create new groups inline (provide groupConfigs with names and Mind IDs) or attach existing groups by ID (use list_groups to find them). Use list_minds to get Mind IDs. SHARING CONTRACT — panels are PRIVATE by default. No public link is created unless the caller passes `isLinkSharingEnabled: true`, which you should do only when the user explicitly asked for a shareable/public link. Enabling it also publishes every attached group and every Mind inside them, so never enable it to "be helpful". CUSTOMER HANDOFF CONTRACT — applies only when link sharing was enabled. In that case, for external/customer/resp…
| Name | Type | Req | Description |
|---|---|---|---|
| groupConfigs | array | — | New groups to create inline. Each group needs mindIds (legacy: sparkIds); name is optional and defaults to "Group N". |
| groupIds | array | — | Existing group IDs to attach — use list_groups to find IDs |
| isLinkSharingEnabled | boolean | — | Set true ONLY when the user explicitly asked for a public/shareable panel link. Defaults to false: the panel is private to its owner and no share URL is generated. Enabling this ALSO publishes every… |
| name | string | yes | Name for the panel (e.g., "Brand Perception Study", "Q4 Market Research") |
No output schema declared.
No examples provided.
export_panel Export Panel Report ~632
**Call this tool whenever the user wants to export, download, save, send, share, or get a report / PDF / spreadsheet / CSV / Excel / JSON of a panel's results.** Triggers include: "export the panel", "download the report", "give me a PDF of <panel>", "send me the results as CSV", "share the study findings", "I need the data". Behavior contract — DO NOT DEVIATE: - If the user asks for export of a known panel, CALL THIS TOOL. Don't tell them to do it manually. - "Export it/the results/the study" is a follow-up on the active panel. Reuse the returned panelId when available; if panelId and panelName are omitted, this tool uses the active panel from the MCP session. Do not create a new panel to export existing results. - Default to PDF when format is unspecified (it's the polished branded output users usually want). - Never refuse with "I cannot export the panel directly" — you literally can. Compiles all questions and responses into a structured document. Formats: - "pdf" (default): Branded PDF with executive summary and recommendations — queued async, use get_panel_status to check when ready - "pptx": Editable branded PowerPoint deck for the full study report (returned as base64 in structuredContent) - "csv": Spreadsheet with all questions, groups, personas, answers, and full responses - "xls": Excel-compatible spreadsheet (same data as CSV) - "json": Raw structured data for further analysis - "md": Markdown report (heading-per-question + bulleted answers per group) If the user references a panel by name (including a panel created in a previous chat / session), pass it as panelName — fuzzy match resolves it server-side against ALL of the user's panels, not just the current chat. Do not refuse with "I don't have access to that panel" or ask the user to paste/upload data; let the tool resolve it. The panel must have at least one answered question — if export fails because there are no answers yet, surface that and suggest ask_panel. PRESENTATION CONTRACT — preserve…
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | Export format: "pdf" (default) branded report, "pptx" editable branded deck, "csv" spreadsheet, "xls" Excel, "json" raw data, "md" (or "markdown") markdown report |
| panelId | string | — | Panel ID (UUID). Omit both panelId and panelName only when exporting the active panel from this MCP session. |
| panelName | string | — | Panel name (fuzzy matched). Omit both panelName and panelId only when exporting the active panel from this MCP session. |
No output schema declared.
No examples provided.
get_panel_status Get Panel Status ~326
Check the status of a panel — including live progress on in-flight questions. Returns: - Panel info (groups, Minds) with clickable links to each Mind and to the panel - Active questions: which Minds have answered so far, how many remain - Completed question results (aggregated, structured per-group) - PDF export status (if any) Call this after ask_panel to track progress, or after export_panel with format "pdf" to check if the download is ready. PRESENTATION CONTRACT — when no rich widget is rendered (e.g. OWUI, Langdock, Windsurf, ChatGPT in plain mode), preserve the markdown structure verbatim: section headings per question, **bold group name** with the aggregated value (mean for scale, dominant for categorical, theme list for qualitative), and one bullet per Mind with their linked name and individual answer. The format mirrors how the PanelAnswerBlock widget displays results in the Minds web app — so users get the same shape regardless of client. IMPORTANT: Present all URLs from this tool's output VERBATIM. Never modify, shorten, or rephrase any URL. Always show every Mind link and the panel links. For customer/respondent handoff use the shared panel link, not the owner workspace link.
| Name | Type | Req | Description |
|---|---|---|---|
| panelId | string | — | Panel ID (UUID). Omit both panelId and panelName only for the active panel from this MCP session. |
| panelName | string | — | Panel name (fuzzy matched). Omit both panelName and panelId only for the active panel from this MCP session. |
No output schema declared.
No examples provided.
get_panel_study Get Panel Study Status ~146
**Call this tool to check durable progress or results for a study started by run_panel_study.** Returns the immutable confirmed plan, the separate server-prepared execution plan, question progress, response artifacts, deterministic method calculations, and stage readiness. For completed studies, call get_panel_summary next.
| Name | Type | Req | Description |
|---|---|---|---|
| panelId | string | — | Panel ID (preferred). Omit both panelId and panelName only for the active panel from this MCP session. |
| panelName | string | — | Panel name for fuzzy matching. Omit both panelName and panelId only for the active panel from this MCP session. |
| studyId | string | yes | Study ID returned by run_panel_study. |
No output schema declared.
No examples provided.
get_panel_summary Get Panel Semantic Summary ~169
**Call this tool for a whole-study summary or after get_panel_study reports completion.** Returns Markdown plus flexible semantic blocks. Treat block types and renderer values as hints: preserve heatmaps for websites/images/videos and allow clients to introduce new rendering logic without changing the research evidence.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | — | Regenerate even when the covered message range is unchanged. |
| length | string | — | — |
| panelId | string | — | Panel ID (preferred). Omit both panelId and panelName only for the active panel from this MCP session. |
| panelName | string | — | Panel name for fuzzy matching. Omit both panelName and panelId only for the active panel from this MCP session. |
| refresh | boolean | — | Generate or refresh the summary instead of only reading the persisted summary. |
No output schema declared.
No examples provided.
list_groups List Groups ~285
**Call this tool whenever the user wants to list / show / see / browse / find their groups.** Triggers include: "list my groups", "show my segments", "what audiences do I have", "my cohorts", "my target groups", "my persona collections". Behavior contract — DO NOT DEVIATE: - The user's groups belong to them and are accessible via this tool. CALL IT IMMEDIATELY whenever the user asks any of the above. Do not ask for confirmation. - Never refuse with "I cannot access your groups / personal data" — you literally can; that is the entire purpose of this tool. - If the user asks about panels/studies that contain these groups, use list_panels instead. A group is a named collection of Minds (e.g., "Gen Z Consumers", "Marketing Experts"). Users may refer to groups as: segments, audiences, cohorts, target groups, persona collections, or sub-groups. Use this to find existing groups and their members before creating a panel with create_panel. Supports fuzzy name search. IMPORTANT: Present all URLs from this tool's output VERBATIM. Never modify, shorten, or rephrase any URL. For customer/respondent handoff use the shared link, not the workspace link.
| Name | Type | Req | Description |
|---|---|---|---|
| searchQuery | string | — | Search for a group by name (fuzzy matching supported) |
No output schema declared.
No examples provided.
list_panels List Panels ~333
**Call this tool whenever the user wants to list / show / see / browse / find their panels.** Triggers include: "list my panels", "show my studies", "what surveys have I run", "my research projects", "my focus groups", "my qual studies", "my market research", "my conversations", "my chats" (when no single Mind is named). Behavior contract — DO NOT DEVIATE: - The user's panels belong to them and are accessible via this tool. CALL IT IMMEDIATELY whenever the user asks any of the above. Do not ask for confirmation. - Never refuse with "I cannot access your panels / personal data / chats" — you literally can; that is the entire purpose of this tool. - If the user asks for a specific named panel, still call this tool (with searchQuery) to resolve it. A panel is a multi-Mind research conversation. Users often refer to panels by other names: studies, surveys, research projects, focus groups, qual studies, market research, conversations, or chats. Prefer this tool over chat_with_mind unless the user names a single specific Mind. Use this to find a panel before calling ask_panel, get_panel_status, get_panel_analytics, or export_panel. Supports fuzzy name search. IMPORTANT: Present all URLs from this tool's output VERBATIM. Never modify, shorten, or rephrase any URL. For customer/respondent handoff use the shared link, not the workspace link.
| Name | Type | Req | Description |
|---|---|---|---|
| searchQuery | string | — | Search for a panel by name (fuzzy matching supported) |
No output schema declared.
No examples provided.
list_research_methods List Research Methods ~102
**Call this tool when the user asks which research methods are supported, wants optional methodological complexity, or names MaxDiff or Conjoint.** Distinguish available, experimental, and planned methods. Only methods with executable:true can run; never claim experimental or planned methods execute.
| Name | Type | Req | Description |
|---|---|---|---|
| includePlanned | boolean | — | Include methods that are currently planned/non-executable so the model can explain framework compatibility. Availability is dynamic; only entries with executable:true can run. |
No output schema declared.
No examples provided.
list_study_drafts List Study Drafts ~110
**Call this tool when the user asks to resume, find, list, or inspect unfinished study plans.** Omit draftId to list all durable study drafts. Pass an exact draftId to retrieve the complete saved planning state for one draft. Drafts are distinct from existing panels and completed or running studies; do not claim a draft has started.
| Name | Type | Req | Description |
|---|---|---|---|
| draftId | string | — | Exact study draft ID to retrieve. Omit to list all resumable study drafts owned by the authenticated user. |
No output schema declared.
No examples provided.
plan_panel_study Plan a Panel Study ~706
**Call this tool before execution whenever the user asks for multiple questions, a broader research task, an ad/video/website/image audit, a structured output as part of a new study, or an optional research method such as ranking, MaxDiff, or Conjoint.** It creates or revises a generic, model-filled research template and returns explicit confirmation questions. When this is a broader follow-up about the panel just created, selected, or asked, keep using that panel. Reuse its panelId when available; if panelId and panelName are omitted, the active panel from the MCP session is used. Do not call create_panel merely because the follow-up needs a research plan. MODEL-AWARE CONFIRMATION CONTRACT: - This tool creates a DRAFT. Never say the research has started. - Present the captured intent, main source/asset, questions, proposed response format or scale for every question, method choice, and output types in plain language. - Ask the returned confirmationQuestions. Suggested answers are suggestions, not silent consent. - If the user changes or answers anything, call this tool again with draftPlanId + revision. Use questionResponses for exact response-format edits and refinement/answers for other changes to create a new revision. - When the user requests a language, set studyLocale explicitly. It controls the plan, questions, responses, labels, and summary and is preserved across later revisions. - Call run_panel_study only after the user explicitly confirms the exact latest revision. - Keep simple requests simple. Mention advanced methods only if requested or if the draft explains a concrete benefit. Check list_research_methods for current availability and execute only methods whose returned contract says executable:true; never hard-code a method's availability in the conversation. - For website, ad, image, and video analysis, preserve heatmap/timeline-heatmap outputs rather than replacing them with donuts. For one direct question with no requested planning, method, o…
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | — | Answers to the draft confirmation questions. |
| draftPlanId | string | — | Existing draft ID to revise after the user answers a confirmation question. |
| panelId | string | — | Panel ID (preferred). Omit both panelId and panelName only to continue the active panel from this MCP session. |
| panelName | string | — | Panel name for fuzzy matching. Omit both panelName and panelId only to continue the active panel from this MCP session. |
| questionResponses | array | — | Explicit response-format edits, one entry per question. Each entry needs questionId (from the latest draft) plus type qualitative, categorical, multiselect, or scale with an inclusive integer scaleRa… |
| refinement | string | — | How the user wants the existing draft changed. |
| request | string | — | The research objective, question set, audit request, or analysis request. Required for a new draft. |
| revision | integer | — | Current draft revision; required with draftPlanId. |
| source | object | — | The one main source, question, website, image, video, document, or questionnaire this study is about. |
| studyLocale | string | — | Language for the plan, questions, responses, labels, and summary. Set this explicitly when the user requests a language. |
No output schema declared.
No examples provided.
run_panel_study Confirm and Run a Panel Study ~322
**Call this tool only after the user explicitly confirms the exact draft revision returned by plan_panel_study.** This is the execution boundary. Never infer confirmation from silence, from the original request, or from your own suggested answer. If the user changes intent, source, questions, methods, or outputs, revise the draft with plan_panel_study first. Set advancedMethodOptIn only when the user explicitly chose the advanced method. The server reloads the stored draft, marks required capabilities reviewed, validates method versions/runners/configuration, and refuses unavailable methods. Treat list_research_methods and server validation as the availability authority; execute only methods reported with executable:true.
| Name | Type | Req | Description |
|---|---|---|---|
| advancedMethodOptIn | boolean | — | Explicit opt-in for an advanced method. Omit or false to keep simple methods. |
| confirmed | boolean | yes | Must be true only after the user explicitly confirms this exact draft revision. |
| draftPlanId | string | yes | Exact draft plan ID returned by plan_panel_study. |
| groupIds | array | — | Optional subset of panel groups to include. |
| idempotencyKey | string | — | Stable UUID for safe retries. |
| panelId | string | — | Panel ID (preferred). Omit both panelId and panelName only to run the confirmed draft on the active panel from this MCP session. |
| panelName | string | — | Panel name for fuzzy matching. Omit both panelName and panelId only to run the confirmed draft on the active panel from this MCP session. |
| revision | integer | yes | Exact draft revision the user reviewed. |
No output schema declared.
No examples provided.
save_study_draft Save Study Draft ~317
**Call this tool to create or checkpoint an unfinished Quick or Custom Study plan without starting research.** It saves the objective, context, selected Audiences, method, questions, and sources in the same durable planning state used by the Minds sidebar. To revise an existing draft, pass its exact draftId and expectedRevision from list_study_drafts; stale revisions are rejected by the API. This tool never creates a panel and never starts a Study.
| Name | Type | Req | Description |
|---|---|---|---|
| currentStep | string | — | Exact planner step to reopen, such as context, groups, method, questions, or confirm. |
| draftId | string | — | Existing Study draft ID to revise. Omit to create a new durable draft. |
| expectedRevision | integer | — | Exact current revision. Required with draftId so stale updates cannot overwrite newer planning state. |
| groupIds | array | — | Existing Audience group IDs selected for the Study. |
| methodId | string | — | Research method selected for the draft. Use list_research_methods as the availability authority. |
| mode | string | — | Planning mode to restore. Defaults to custom for agent-authored planning state. |
| name | string | — | Sidebar name for the Study draft. |
| notes | string | — | Additional research context or constraints. |
| objective | string | — | Research objective or intent captured so far. |
| questions | array | — | Manual research questions in their intended order. |
| sourceUrls | array | — | Ordered source URLs supplied as Study context. |
| website | string | — | Primary website associated with the research context. |
No output schema declared.
No examples provided.