---
title: "Minds MCP Tools Reference"
description: "[fr] Canonical Minds MCP tool reference for Audiences and Studies."
canonical_url: "https://getminds.ai/mcp/fr/tools"
last_updated: "2026-10-01T15:17:27.215Z"
---

# Minds MCP Tools Reference

Les noms, titres et nombres d'outils de cette page sont lus sur le serveur en direct. La réponse `tools/list` du serveur connecté fait référence.

Le [serveur Minds MCP](/mcp/overview) annonce <mcp-tool-count kind="advertised">



</mcp-tool-count>

 outils sélectionnés via la découverte `tools/list` ordinaire et maintient au total <mcp-tool-count kind="callable">



</mcp-tool-count>

 outils canoniques appelables. Le modèle produit est volontairement simple : une **Audience** est un ensemble réutilisable de Minds, tandis qu'une **Study** est l'espace de recherche qui contient une ou plusieurs Audiences, des questions, des preuves, des résultats et des exports. Les alias hérités contenant `group`, `panel` ou `spark` restent acceptés, mais les nouvelles intégrations doivent utiliser les noms Audience, Study et Mind documentés ici.

The **Advertised** label below means ordinary clients discover the tool automatically. **Explicit** means the canonical tool is registered and callable by integrations that can configure or invoke a known tool name, but it is omitted from the curated discovery surface. Read the [agent operating guide](/mcp/agents) before autonomous use.

MCP renvoie un lien public de Study ou d’Audience uniquement si l’API indique `isPublic: true` ou `isLinkSharingEnabled: true` et fournit un identifiant de partage. Un identifiant conservé après révocation ne constitue pas un lien actif. Utilisez les URL renvoyées telles quelles.

La recherche par nom examine au maximum les 1 000 Minds, Audiences ou Studies visibles les plus récents. Pour un élément plus ancien, parcourez l’outil de liste correspondant avec `limit` et `offset`, puis transmettez son identifiant exact. Une réponse de liste incomplète ou mal formée produit une erreur au lieu d’affirmer qu’aucun élément ne correspond.

## Curated advertised surface

Le tableau en direct liste chaque outil annoncé par domaine produit, puis les outils canoniques qui restent appelables par leur nom sans être annoncés, ainsi que les alias hérités encore acceptés.

<mcp-tools-table :aliases="true" :hidden="true">



</mcp-tools-table>

## Minds & Audiences

### list_minds

Browse Minds owned by the authenticated user one page at a time. Preserve `nextOffset` to continue; `searchQuery` returns the best fuzzy match among the newest 1,000 Minds.

**Parameters:**

- `searchQuery` (optional): Best fuzzy name match among the newest 1,000 Minds
- `limit` (optional): Page size, default 20, maximum 100
- `offset` (optional): Entries to skip, default 0; use the previous result’s `nextOffset`

**Example:**

```text
"List my AI minds about marketing"
```

### create_mind

Create a new Mind — a synthetic expert, consumer persona, or digital twin.

**Parameters:**

- `name` (required): Name of the Mind
- `mode` (required): Training mode — `keywords`, `clone`, `link`, or `manual`
- `type` (optional): Type — `creative`, `expert`, or `user` (default: `expert`)
- `discipline` (optional): Area of expertise
- `keywords` (optional): Topics for training (required for `keywords` mode)
- `personaContext` (optional): Person to model (required for `clone` mode)
- `contextLink` (optional): URL to train from (required for `link` mode)
- `description` (optional): What this Mind specializes in
- `includeWebSearch` (optional): Set `false` to skip automatic web research; use `manual` for a strictly source-only Mind
- `idempotencyKey` (optional UUID): Choose one key before creating and reuse it with the same inputs for retries, including after timeouts. Use a fresh key for another Mind. The result returns the operation key in `structuredContent.idempotencyKey`. Without an explicit key, only identical calls within 10 seconds in the same server process are coalesced; cross-process or later retries need the returned key.

<table>
<thead>
  <tr>
    <th>
      Mode
    </th>
    
    <th>
      Description
    </th>
    
    <th>
      Required Fields
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        keywords
      </code>
    </td>
    
    <td>
      Train from topic keywords
    </td>
    
    <td>
      <code>
        keywords
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        clone
      </code>
    </td>
    
    <td>
      Create a digital twin of a person
    </td>
    
    <td>
      <code>
        personaContext
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        link
      </code>
    </td>
    
    <td>
      Train from website content
    </td>
    
    <td>
      <code>
        contextLink
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        manual
      </code>
    </td>
    
    <td>
      Manual configuration
    </td>
    
    <td>
      None
    </td>
  </tr>
</tbody>
</table>

### chat_with_mind

Send one message to a Mind and get its response. Use `mindId` for an exact selection or `mindName` for the best fuzzy match among the newest 1,000 Minds. Browse `list_minds` by offset to find older Minds and pass their exact IDs. Use `manage_chat` for a persistent multi-turn conversation.

**Parameters:**

- `mindId` (optional): Mind UUID (use this OR `mindName`)
- `mindName` (optional): Name with fuzzy matching (e.g., "my marketing expert")
- `message` (required): Message to send
- `sourcePolicy` (optional): `auto` or `knowledge_only`
- `modelConnection` (optional): Verified caller-team connection ID and revision

### get_mind_status

Check training progress after creating a Mind.

**Parameters:**

- `mindId` (required): Mind UUID

### get_shared_mind_knowledge

Lit les sources et les évaluations d'un Mind que son propriétaire a partagé publiquement ou par lien. Cet outil est **Advertised** et en lecture seule. Transmettez le `shareId` d'un lien `/minds/shared/{shareId}`, et non l'identifiant du Mind. Les fichiers téléversés, le contenu des sources et les métadonnées privées sont exclus.

**Parameters:**

- `shareId` (required): UUID de partage issu du lien du Mind partagé

### export_mind

Export a Mind profile. This tool is **Advertised**.

**Parameters:**

- `mindId` or `mindName`: Exact UUID or the best fuzzy name match among the newest 1,000 Minds; use an exact UUID for older Minds
- `format` (optional): `md`/`markdown` (default, returned inline), `pdf`, `docx`, or `pptx`

The tool polls asynchronous generation internally. A successful result includes `filename`, `mimeType`, and either inline Markdown `content` or binary `contentBase64`, plus the Mind’s workspace link. Preserve these fields when saving the export.

### list_audiences

List visible Audiences one page at a time. Preserve `nextOffset` to continue; `searchQuery` returns the best fuzzy match within the newest 1,000 entries.

**Parameters:**

- `searchQuery` (optional): Filter by name using fuzzy search
- `limit` (optional): Page size, default 20, maximum 100
- `offset` (optional): Number of entries to skip, default 0
- `includeMinds` (optional): Include member Minds, default `false`

### create_audience

Create a reusable Audience from existing Minds.

**Parameters:**

- `name` (required): Audience name (e.g., "Marketing Experts")
- `mindIds` (required): Mind IDs to add — use `list_minds` to find IDs

### import_audience_sources

Les résultats sont privés et non mis en cache. Avant de confirmer le succès, l’outil vérifie le nombre et l’ordre des fichiers, la politique de sources, la somme de contrôle du snapshot et les références des distributions. Conservez le snapshot inchangé pour la prévisualisation ou la création. Un fichier absent ou appartenant à autrui est une erreur d’entrée ; une panne du stockage renvoie `502` sans détails du fournisseur. Réessayez le même import après un échec du stockage ou une confirmation invalide : les fichiers existants sont préservés grâce à leur identité fondée sur le contenu.

The MCP HTTP request body is limited to 24 MiB, including JSON escaping and protocol fields; oversized requests return HTTP `413` with a JSON-RPC error. Source-import file and total-content limits still apply separately.

Importe des sources UTF-8 `.txt`, `.md`, `.csv` ou `.json` via `files: [{ name, content }]`. `existingFiles` et `groundingJson` sont facultatifs. Cet outil annoncé ne crée aucune Audience et ne vérifie pas indépendamment les distributions fournies.

### get_audience_creation_progress

Lit une opération de création d'Audience et la progression de l'entraînement de ses membres via `operationId`. Cet outil est **Advertised** et en lecture seule : il ne lance ni ne relance jamais une création. Utilisez-le pour suivre une opération en attente renvoyée par `create_audience_from_brief` au lieu d'appeler à nouveau l'outil de création.

**Parameters:**

- `operationId` (required): UUID de l'opération renvoyé par `create_audience_from_brief`

### get_audience_limits

L’outil valide l’attribution au compte et à l’équipe, les plafonds numériques et un ensemble complet de modes de création sans doublons avant d’annoncer les limites. Un plafond nul par Audience est un verrouillage de l’espace de travail, pas une donnée manquante. Les réponses sont privées et non mises en cache. Les identifiants bloqués sont revérifiés ; une recherche de droits indisponible renvoie `503` sans inventer une allocation du forfait gratuit.

Lit les limites de taille et de mode de création du compte avant de choisir une taille. `mode` filtre les résultats. Distinguez le plafond automatique du plafond de taille explicite. Cet outil est annoncé.

### create_audience_from_brief

Create a grounded synthetic audience from a population brief, source links, keywords, and research files. This tool is **Advertised** and private by default.

Important parameters include:

- `brief` (preferred) or legacy `text`: Population description
- `name`: Audience name
- `links`, `keywords`, `files`: Research context
- `includeWebSearch`: Set `false` for file-only grounding
- `memberCount`: Requested cohort size, subject to plan allowance
- `audienceCreationMode`: `balanced`, `segment_coverage`, or `benchmark_depth`
- `datasetSegmentation`: Reviewed output from `preview_audience_dataset_segmentation`
- `cohortAllocation`: Deterministic marginal/joint allocation configuration
- `isLinkSharingEnabled`: Enable only after an explicit request for a public link

Identical arguments are idempotent for approximately six hours. After a timeout, retry the same arguments to recover the original Audience. Deeper creation modes are Team-plan workflows; inspect the effective mode returned by the server rather than assuming the request was accepted unchanged.

While creation runs, every open workspace for the authenticated owner is notified through the user-scoped lifecycle stream and re-reads the same durable creation state. The UI therefore displays the same Drafting, Creating, and Ready states for UI, REST, and MCP creation. Repeating identical arguments reuses that lifecycle instead of duplicating the Audience.

Utilisez `groundingPreview: true` pour examiner les profils et les résultats sources avant la création. Renvoyez `reviewedGroundingJson` et `reviewedGroundingSha256` sans modification avec les mêmes entrées et `memberCount`. Si une `structuredContent.operation` est en attente, rappelez `create_audience_from_brief` avec uniquement `operationId` défini sur son `jobId`. Cela poursuit l’opération existante sans créer ni facturer une deuxième Audience. Les résultats terminés contiennent `structuredContent.preview` ou `structuredContent.audience`.

Une Audience créée est utilisable en quelques secondes pendant que sa recherche web se poursuit en arrière-plan. Le champ structuré `research` de l’Audience créée l’indique (`phase: "researching"`), et `readiness.research` le signale lorsqu’une opération est relue. Les Studies peuvent être lancées tout de suite : les preuves sourcées remplacent automatiquement les hypothèses explicites de l’Audience, et ses Minds sont recalibrés entre deux exécutions, jamais pendant l’une d’elles. Voir [la création en deux phases](/docs/api/audiences).

### preview_audience_dataset_segmentation

Les demandes de prévisualisation acceptent au plus 256 KiB de JSON. Les réponses, refus compris, sont privées et non mises en cache. Un JSON ou des champs invalides renvoient `400`, une demande ou un jeu de données trop volumineux `413`, et un refus d’éligibilité Team ou d’accès au fichier `403`. Un échec de vérification des droits renvoie `503` ; une erreur inattendue de téléchargement, de classification ou d’analyse renvoie un `500` générique. Sans `segmentationColumns`, les variables de population et de segmentation par défaut sont retenues, et non tous les champs non identifiants. MCP valide la réponse agrégée complète et rapproche les totaux de lignes, les variables sélectionnées et les nombres de découvertes avant de décrire l’analyse. Les champs non déclarés sont omis. Les nombres de relations ou de dépendances absents des anciennes réponses sont signalés comme non renseignés, pas comme zéro. Cette prévisualisation examine les données sources ; elle ne crée pas de cohorte et ne vérifie pas son allocation future.

Les fichiers Minds autorisés sont lus via les contrôles d’accès au stockage. Tout recours au réseau, même pour une URL sur l’hôte Minds, utilise la protection des URL publiques et valide les destinations de redirection ; une même origine ne contourne pas la protection des réseaux privés. Les téléchargements conservent une limite de flux de 50 MiB et un délai de 30 secondes. Les réponses HTTP en échec sont annulées avant de renvoyer l’erreur.

Inspect a CSV, XLS, or XLSX respondent dataset before representative cohort creation. This is an **Explicit** Enterprise workflow.

**Parameters:**

- `file.name`: Original spreadsheet filename
- `file.url`: Public, signed, or Minds workspace-upload URL
- `segmentationColumns` (optional): Reviewed column keys from a previous preview

The tool classifies file content, uses all completed respondent rows, identifies structural versus held-out variables, and recommends a representative Mind count. It never creates one Mind per respondent. Screeners and questionnaire programming grids are rejected as respondent data and should be passed directly to `create_audience_from_brief`.

### get_audience

Read an Audience's members, grounding, source metadata, sharing state, and Formations. This is an **Explicit** tool.

**Parameters:** pass `audienceId` or `audienceName`. Name lookup is fuzzy, so do not call `list_audiences` first solely to resolve a natural user reference.

Le résultat indique les compteurs de couverture de l’Audience (dimensions `sourced`, `proxy`, `assumed`, `missing`) et l’état de sa recherche en arrière-plan (`research`).

### ask_audience

Ask one existing Audience a direct research question. This tool is **Advertised**. It creates a private one-Audience Study, submits the question, and returns immediately; poll `get_study_status` for results.

**Parameters:**

- `audienceId` or `audienceName`
- `question` (required)
- `name` (optional): Internal Study name
- `attachments` (optional): Reusable file/image context with a `url` or storage `path`

Use `ask_study` when the user already has a multi-Audience Study. Each `ask_audience` call creates a new private wrapper Study.

### recalibrate_audience

Refresh and replace an Audience's stored grounding from authoritative web research, then re-allocate the members' cohort profiles to match the refreshed distributions — the same distributions-to-members logic the drafting flow uses. The instruction's reach decides how deeply members change, covering demographic, psychographic, behavioral, and firmographic amendments alike: composition or evidence edits ("make men 40%", "add an income distribution") touch only members whose allocation cell actually changed; trait changes ("now they're all vegan", "SMB owners instead of enterprise buyers") make members evolve in place — same Mind, same name and portrait, rewritten role and description, knowledge retrained; population pivots ("now African consumers") rebuild every member in place — same Mind, new persona and portrait, knowledge wiped and retrained — so studies, shares, and chat history keep working while the Minds genuinely become the new audience. No Minds are deleted; retraining runs asynchronously and the Audience shows build progress until it finishes. An additive instruction ("and now add 10 African consumers") grows the roster instead: new members are generated for the added audience within the plan's member limits. While the research runs the Audience reports a **Calibrating…** state in the app and via `get_audience`. This is an **Explicit** tool and owner-only.

**Parameters:** `audienceId` or `audienceName`, plus optional `instruction` for a user adjustment on top of the original brief (for example "add an income distribution"), or `query` only when the user wants to steer research away from the original brief entirely.

Avec `deepen: { topics? }`, l’outil approfondit l’Audience : il recherche chaque dimension standard que la couverture signale comme manquante ou supposée, ainsi que jusqu’à 8 sujets fournis (120 caractères chacun au plus), ajoute les résultats au grounding enregistré (une preuve plus solide remplace une preuve plus faible pour la même dimension ; tous les autres graphiques sont conservés) et recalibre les membres. `deepen` ne peut pas être combiné avec `query` ni avec des distributions, et il est refusé tant que la recherche en arrière-plan de l’Audience est en cours.

### list_formations

Sur la première page (`offset: 0`), la récupération vérifie au plus 100 générations en attente, en commençant par les plus anciennes. Un échec ne bloque ni les tentatives pour les autres générations sélectionnées ni le retour de la liste. Consultez leur état et rouvrez la première page pour relancer le travail en attente.

`list_formations` et `manage_formation` avec `action: "list"` acceptent les paramètres facultatifs `limit` et `offset`. Chaque appel renvoie une page, avec 100 par défaut et au maximum. Suivez `pagination.nextOffset` tant que `hasMore` est vrai. Pour `list_formations`, `totalCount` désigne le total visible, pas le nombre affiché. Une page vide après la fin ne signifie pas que l’Audience n’a aucune Formation. Des métadonnées de continuation invalides produisent une erreur d’outil. L’application et le widget Study rassemblent toutes les pages de résumé ; une continuation échouée ne devient pas une ventilation présentée comme complète.

Vous pouvez lister les Formations de toute Audience visible pour vous, y compris les Formations partagées et vos propres Formations privées. MCP rejette les listes mal formées ou les effectifs manquants au lieu d’annoncer une liste vide ou zéro membre. Les effectifs sont définitifs uniquement à l’état `ready` ; ils restent provisoires pour `building` et `failed`. Une première page vide avec `total: 0` signifie qu’aucune Formation ne vous est visible ; les valeurs par défaut sont initialisées à l’ouverture uniquement pour les éditeurs de l’Audience. La réponse v1 est privée et non mise en cache, refus compris. Les erreurs inattendues de vérification d’accès, d’initialisation ou de stockage renvoient un `500` générique.

List persisted Formations for an Audience. This is an **Explicit** tool. Pass `audienceId` or `audienceName`.

### export_audience

Export an Audience brief through the canonical v1 API and unified branded renderer. This tool is **Advertised**.

**Parameters:**

- `audienceId` or `audienceName`: Exact UUID or fuzzy-matched Audience name
- `format` (optional): `md`/`markdown` (default), `pdf`, `docx`, or `pptx`
- `force` (optional): Regenerate instead of returning a cached artifact

L’outil interroge la tâche d’export initiale et ne signale un succès que lorsqu’un fichier complet est disponible. Conservez `filename`, `mimeType` et le Markdown `content` ou le binaire `contentBase64`. Le Markdown intégré est limité à 100 000 caractères et marqué `_[truncated]_` en cas de réduction. L’annulation arrête les interrogations ; un export inachevé est une erreur, vérifiez donc à nouveau sans `force=true`.

### duplicate_audience

Copy an Audience through `POST /api/v1/audiences/{audienceId}/duplicate`. This tool is **Advertised**.

**Parameters:**

- `audienceId`: Audience to duplicate; you must be able to edit it
- `name` (optional): Name of the copy; defaults to `<name> (copy)`
- `idempotencyKey` (optional): Reuse the key a failed or timed-out call returned, so a retry cannot create a second copy

Returns the new Audience in `data`, its `audienceUrl` and the `idempotencyKey`. Every member Mind is copied as a new, independent Mind with its knowledge and embeddings, together with the Audience's grounding, sources, Formations and finished validations. The copied Minds count toward the plan's Mind allowance. An Audience that is still being built is refused; retry once it is ready.

## Studies (Multi-Mind Research)

### list_model_connections

Liste les connexions de modèle actives de l’équipe authentifiée. Une connexion listée n’est pas nécessairement vérifiée : examinez ses indicateurs de capacité et `verifiedAt` avant de la sélectionner. Passez `pagination.nextCursor` comme `cursor` de la requête suivante. Seuls les champs déclarés de métadonnées et de capacités sont renvoyés ; les identifiants fournisseur, résultats bruts de sondes et diagnostics supplémentaires sont omis. Les réponses incorrectes ou curseurs qui n’avancent pas sont des erreurs. Une erreur de stockage inattendue lors de la découverte renvoie un `500` générique. Cet outil est **Explicit** : il reste appelable par son nom pour les équipes disposant de connexions de modèle, mais il n'est pas annoncé, car les appelants sans équipe éligible ne verraient que des échecs.

### create_study

Create a Study workspace and attach one or more existing or inline Audiences.

**Parameters:**

- `name` (required): Study name
- `audienceConfigs` (optional): New Audiences to create inline — each with `name` and `mindIds`
- `audienceIds` (optional): Existing Audience IDs to attach

**Example:**

```text
"Create a Study called 'Brand Perception Study' with two Audiences:
 - 'Marketing Experts' containing my SEO and Content Marketing minds
 - 'Consumer Insights' containing my Gen Z and Millennial minds"
```

### ask_study

Submit exactly one standalone research question to all selected Audiences in a Study. Treat the entire `question` value as respondent-visible input. The system may classify or reformat it, but any text in this field can reach the selected Minds and influence their answers. Put only the question, stimulus, and respondent-facing instructions here. For a questionnaire, survey, battery, section, cohesive question set, or any request with two or more known questions, use `plan_study_questions` once with the complete set—never call `ask_study` question by question.

**Parameters:**

- `studyId` (optional): Study UUID
- `studyName` (optional): Study name (fuzzy matched)
- `question` (required): Research question
- `audienceIds` (optional): Only query specific Audiences

### list_studies

List Studies with their Audience composition and question counts, one page at a time. Preserve `nextOffset` to continue; `searchQuery` returns the best fuzzy match within the newest 1,000 entries.

**Parameters:**

- `searchQuery` (optional): Filter by name using fuzzy search
- `limit` (optional): Page size, default 20, maximum 100
- `offset` (optional): Number of entries to skip, default 0

### get_study_status

`questionId` limite la lecture des réponses individuelles et les résultats à cette question ; l’outil lit toujours les métadonnées de l’historique du Study. Les lectures de statut parcourent toutes les pages pertinentes. Une lecture incomplète ou échouée de la liste des exécutions renvoie une erreur d’outil plutôt qu’un statut partiel présenté comme un succès.

Get detailed Study information including in-progress questions, completed results, and export status.

**Parameters:**

- `studyId` (optional): Study UUID
- `studyName` (optional): Study name (fuzzy matched)
- `questionId` (optional): Return one question's results
- `exportKind`, `exportFormat`, `exportJobId` (optional): Use the exact kind, format and job ID returned by `export_study` to inspect that artifact

Report queued, running, failed and partial work as such. A polling timeout does not authorize a new submission.

### get_study_analytics

Compute statistical analytics across a Study's question history.

**Returns:**

- **Scale questions**: Mean, median, standard deviation, consensus, Audience rankings
- **Categorical questions**: Distribution, dominant category, cross-Audience divergence
- **Qualitative questions**: Theme clustering, shared themes, diversity index

**Parameters:**

- `studyId` (optional): Study UUID
- `studyName` (optional): Study name (fuzzy matched)

### export_study

Export Study results as a report.

**Parameters:**

- `studyId` (optional): Study UUID
- `studyName` (optional): Study name (fuzzy matched)
- `format` (optional): `pdf` (default), `docx`, `pptx`, `csv`, `xls`, `sav`, `md`, or `markdown`
- `kind` (optional): `executive_brief`, `full_report` (default), or `raw_data`
- `length` (optional): `brief`, `standard`, or `detailed`
- `force` (optional): Regenerate instead of returning a cached artifact

<table>
<thead>
  <tr>
    <th>
      Format
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        pdf
      </code>
    </td>
    
    <td>
      Branded PDF report
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        docx
      </code>
    </td>
    
    <td>
      Editable Word report
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        pptx
      </code>
    </td>
    
    <td>
      Editable presentation
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        csv
      </code>
    </td>
    
    <td>
      CSV workbook export
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        xls
      </code>
    </td>
    
    <td>
      Excel workbook export
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        sav
      </code>
    </td>
    
    <td>
      SPSS raw-data export
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        md
      </code>
      
       / <code>
        markdown
      </code>
    </td>
    
    <td>
      Markdown report
    </td>
  </tr>
</tbody>
</table>

### duplicate_study

Copy a Study through `POST /api/v1/studies/{studyId}/duplicate`. This tool is **Advertised**.

**Parameters:**

- `studyId`: Study to duplicate; you must be able to open it
- `name` (optional): Name of the copy; defaults to `<name> (copy)`
- `idempotencyKey` (optional): Reuse the key a failed or timed-out call returned, so a retry cannot create a second copy

Returns the new Study in `data`, its `workspaceUrl` and the `idempotencyKey`. The copy keeps every question, answer, chart, heatmap, summary and finished run over the same Audiences; a schedule is copied paused. Audiences are referenced, not copied; use `duplicate_audience` to copy them. A Study with a live run is refused.

### run_study_heatmap

Lit ou lance une heatmap avec `studyId` ou `studyName`, `messageId` et `action: "get"` (par défaut) ou `"start"`. `assetKey` sélectionne une image/vidéo associée à cette question. Le lancement exige Premium et consomme une réponse par Mind ; les analyses terminées sont réutilisées. Cet outil est **Advertised**. L'ancien nom `study_heatmap` reste un alias hérité.

### export_heatmap

Export a completed website heatmap as the same ZIP archive available in the web app. The archive includes a unified-renderer PDF report, Markdown, source images, and metadata. This tool is **Advertised**.

**Parameters:**

- `studyId` or `studyName`: Study identifier
- `messageId` (required): Completed Study message containing the website heatmap
- `force` (optional): Regenerate instead of returning the cached archive

## Guided Research Planning

### plan_study_questions

Create or revise one durable, versioned research-plan draft. Use it for every broader objective, questionnaire, survey, battery, section, cohesive question set, visual-asset analysis, structured research output, or named method. Put every question already known into one `request`; the planner may organize them into named modules or sections, but the agent must never create one plan or run per question. Do not use it for a standalone export or a request to show existing results differently; use `export_study` or `get_study_summary` for those requests.

The free-form `request` is planner input and is not sent verbatim to Minds. The tool returns one cohesive plan with the exact proposed respondent-visible question text, named modules when useful, captured intent, main source, methods, semantic outputs, and explicit `confirmationQuestions`. The assistant must present the complete draft and those questions—including any framing warning—and must not claim the research has started. If the user changes anything, call the tool again with `draftPlanId` and `revision`.

### run_study_questions

Exécutez uniquement la dernière révision après confirmation explicite. Les méthodes avancées exigent `advancedMethodOptIn: true`. Le catalogue inclut Conjoint, MaxDiff, NPS, top/bottom box, facteurs clés, TURF, Gabor-Granger, Van Westendorp, Kano, préférences classées et comparaison de segments exécutables. Vérifiez `list_research_methods`, `executable: true` et la configuration requise avant toute promesse.

If the Study-answer allowance is already exhausted, the tool returns a structured `plan_limited` error and the study does not start. Tell the user plainly that an upgrade is required; do not describe the survey as queued or completed.

### get_study_run

Cet outil est **Explicit** : appelable par son nom, mais non annoncé. Read durable status, question progress, the immutable confirmed plan, the separate server-prepared execution plan, the exact respondent-visible question audit, method stages, response artifacts, and deterministic method calculations for a study started by `run_study_questions`.

`plan_limited` means an in-progress survey stopped before all questions completed. Preserve its partial artifacts, state how many questions completed, and tell the user to upgrade before starting a follow-up run for the remainder.

### list_research_methods

`preparesQuestionsAtExecution: true` signifie que la méthode déduit des questions et contrats de réponse déterministes de sa configuration à l’exécution ; les questions enregistrées du modèle ne constituent pas l’instrument exécuté complet. Une réponse de catalogue incorrecte est une erreur, pas un catalogue vide. `includePlanned: false` exclut les méthodes planifiées mais conserve les méthodes expérimentales avec leur statut non exécutable.

List versioned methods with `executable`, availability, complexity, configuration requirements, semantic outputs, and fallbacks. Use this when the user explicitly asks for MaxDiff, NPS, Kano, TURF, pricing methods, Conjoint, or methodological options. A represented method is not necessarily runnable; only `executable: true` is an execution promise. Keep the default workflow simple when users do not ask for methodological complexity.

Les entrées `visual-asset-analysis` et `recommendation-synthesis` restent expérimentales et ne sont pas exécutables comme méthodes nommées du planificateur. `fallbackMethodId` indique une alternative à examiner, pas une substitution automatique autorisée. La recherche sur images, vidéos et sites et les heatmaps suivent des voies distinctes. Utilisez `run_study_heatmap` pour un asset déjà associé à une question de Study. Une entrée non exécutable ne signifie pas que MCP ne peut pas analyser les visuels.

### list_study_drafts

Listez les brouillons actifs d’une Study ou récupérez l’état complet via `draftId`. Un `draft` peut reprendre à l’étape et à la révision enregistrées ; `starting` signifie que le lancement est en cours. Une lecture par identifiant peut retourner un enregistrement `consumed`, qui ne peut pas être repris. Les réponses API invalides ou incomplètes sont des erreurs, pas une liste vide ni la preuve d’un enregistrement réussi.

### save_study_draft

Pour une création, choisissez un `idempotencyKey` facultatif (1 à 200 caractères après suppression des espaces aux extrémités) avant la première requête et réutilisez-le après un résultat incertain. Réutiliser la clé renvoie le brouillon enregistré existant sans appliquer de nouvelles données de planification. Omettez-la lors d’une modification : utilisez `draftId` et l’`expectedRevision` actuelle. Sans clé, des requêtes de création répétées peuvent produire des brouillons distincts.

Create or revise a durable Study planning draft without starting research. A revision requires the exact `draftId` and `expectedRevision`; the tool saves a closed set of planning inputs into the same versioned Custom planner state used by the Minds sidebar.

Les endpoints v1 sous-jacents renvoient des réponses privées non mises en cache. Les requêtes JSON de création/mise à jour sont limitées à 1 MiB et le `payload` versionné à 512 KiB ; consume est limité à 4 KiB. Une entrée invalide produit `400`, un dépassement de taille `413` et une erreur de stockage inattendue un `500` générique. Un état inchangé préserve `revision` et `updatedAt`. Vérifiez l’état enregistré avant de retenter une sauvegarde incertaine ; la sauvegarde elle-même ne lance pas la recherche.

### get_study_summary

Retrieve the persisted semantic summary, or refresh it when `refresh: true`. Blocks are flexible evidence descriptors rather than fixed UI components. Preserve heatmap outputs for website, image, ad, and video analysis.

### list_study_templates

La réponse doit contenir les identifiants complets, révisions, permissions et configurations valides des modèles. Une lecture par `templateId` exact doit renvoyer ce même modèle. Les réponses absentes, incorrectes ou incompatibles sont des erreurs ; seule une liste vide valide indique qu’aucun modèle n’a été renvoyé.

List owned and team-shared Study templates, or supply `templateId` to read one template including its current revision and stored configuration. This tool is **Advertised**. Reading a template does not launch research.

### manage_study_template

Les endpoints v1 des modèles renvoient des réponses privées non mises en cache. Les corps JSON d’enregistrement/modification sont limités à 1 MiB et ceux d’utilisation à 4 KiB (`413` au-delà) ; la configuration enregistrée reste limitée à 512 KiB. Un JSON mal formé ou une entrée invalide renvoie `400`. Les refus attendus liés au propriétaire, à la révision ou aux fichiers conservent leur statut documenté ; les erreurs inattendues de stockage ou du fournisseur renvoient un `500` générique.

L’outil valide chaque confirmation avant d’annoncer un succès : enregistrer/modifier doit renvoyer le modèle complet attendu et utiliser doit renvoyer un brouillon de Study. Une nouvelle tentative d’utilisation peut renvoyer un brouillon existant `starting` ou `consumed` ; il n’est pas présenté comme un nouveau brouillon modifiable. Si la confirmation est incomplète, vérifiez les modèles ou brouillons enregistrés avant de réessayer et conservez l’identifiant de requête initial.

Enregistre, met à jour ou utilise un modèle de Study personnalisé. Cet outil est **Advertised**. Définissez `action` sur `save`, `update` ou `use` ; les actions autres que save exigent `templateId`. Fournissez l'objet `save`, `update` ou `use` correspondant à l'action. Seuls les propriétaires peuvent mettre à jour un modèle ou modifier son partage d'équipe. La suppression d'un modèle relève de l'outil distinct `delete_study_template` ; `action: "delete"` reste accepté pour les anciens clients et lui est transmis.

Use the current revision for updates and use. Preserve `save.requestId` for retry-safe creation; `use.requestId` must be a fresh UUID for each intended draft and reused only for a retry of that same request. `use` creates an independent editable draft to finish in the web app; it never starts research. Audiences and context are entered fresh. Review changes and confirm destructive actions before executing them.

### delete_study_template

Supprime définitivement un modèle de Study enregistré appartenant à l'utilisateur authentifié. Cet outil est **Advertised** et destructif : confirmez le modèle exact avec l'utilisateur avant de l'appeler. Les Studies et brouillons déjà créés à partir du modèle ne sont pas affectés, et les membres de l'équipe disposant d'un accès partagé ne peuvent pas supprimer un modèle dont ils ne sont pas propriétaires.

**Parameters:**

- `templateId` (required): UUID du modèle ; propriétaire uniquement

L'outil n'annonce un succès que lorsque l'API confirme `success: true`. Si la confirmation manque, listez les modèles enregistrés avant de réessayer.

## Explicit lifecycle tools

Ces outils canoniques enregistrés exposent le reste du cycle de vie de recherche v1. Ils sont volontairement omis de la liste de découverte sélectionnée tant que leur présentation produit n'a pas été revue. An integration that calls one explicitly must supply the canonical schema and honor destructive/confirmation annotations.

### manage_mind

Pour `regenerate_image`, passez `force: true` afin de remplacer un portrait existant ; sinon, un Mind possédant déjà une image est ignoré. Le champ facultatif `personaContext` (1 à 16 000 caractères après suppression des espaces aux extrémités) guide le portrait sans modifier le prompt système. Une confirmation API absente ou une enveloppe incorrecte produit une erreur conseillant de vérifier l’état actuel avant de réessayer. Le retour d’une requête ne prouve pas la fin de l’entraînement, des images, de l’ingestion de connaissances ou de la segmentation en arrière-plan ; inspectez le statut et les compteurs renvoyés.

<table>
<thead>
  <tr>
    <th>
      Action
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Effect
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        get
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Read one Mind
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        update
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Update supported <code>
        name
      </code>
      
      , <code>
        description
      </code>
      
      , <code>
        discipline
      </code>
      
      , <code>
        systemPrompt
      </code>
      
      , <code>
        sourcePolicy
      </code>
      
      , <code>
        tags
      </code>
      
      , or sharing state
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        delete
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
      
      , explicit confirmation
    </td>
    
    <td>
      Delete one Mind through canonical cleanup
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        delete_many
      </code>
    </td>
    
    <td>
      <code>
        mindIds
      </code>
      
       (1–100), explicit confirmation
    </td>
    
    <td>
      Batch-delete confirmed Minds and report independent outcomes
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        retrain
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Queue retraining with a complete stored knowledge-index rebuild
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        regenerate_image
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Regenerate the profile image
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        regenerate_prompt
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Regenerate the system prompt
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        regenerate_embeddings
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Queue a full rebuild of the stored knowledge vectors
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        get_training
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Read training status
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        get_patterns
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Read raw patterns when permitted
    </td>
  </tr>
</tbody>
</table>

### manage_mind_knowledge

Pour `action: "list"`, `limit` (1–100) et `offset` (0 ou plus) sont facultatifs. La page par défaut contient au maximum 100 éléments. Consultez `data.pagination.hasMore` et avancez l’offset pour continuer ; `data.total` couvre toute la collection. Voir la [pagination des connaissances](/docs/api/fr/knowledge) pour l’ordre et les limites de cohérence.

All actions require `mindId`.

<table>
<thead>
  <tr>
    <th>
      Action
    </th>
    
    <th>
      Additional inputs
    </th>
    
    <th>
      Effect
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        list
      </code>
    </td>
    
    <td>
      <code>
        limit
      </code>
      
      , <code>
        offset
      </code>
    </td>
    
    <td>
      List items
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        add
      </code>
    </td>
    
    <td>
      One of <code>
        link
      </code>
      
      , <code>
        keywords
      </code>
      
      , or <code>
        file
      </code>
      
      ; optional <code>
        description
      </code>
      
      , <code>
        regeneratePrompt
      </code>
    </td>
    
    <td>
      Queue knowledge ingestion
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        update
      </code>
    </td>
    
    <td>
      <code>
        itemId
      </code>
      
       and supported fields
    </td>
    
    <td>
      Update an item
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        delete
      </code>
    </td>
    
    <td>
      <code>
        itemId
      </code>
      
      , explicit confirmation
    </td>
    
    <td>
      Delete an item
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        status
      </code>
    </td>
    
    <td>
      <code>
        itemId
      </code>
    </td>
    
    <td>
      Read processing status
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        enrich
      </code>
    </td>
    
    <td>
      <code>
        keywords
      </code>
    </td>
    
    <td>
      Run keyword enrichment
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        patterns
      </code>
    </td>
    
    <td>
      —
    </td>
    
    <td>
      Read knowledge patterns
    </td>
  </tr>
</tbody>
</table>

`file` has `{ name, url, type? }`. The URL must be public, short-lived signed, or a Minds workspace-upload URL. Retrieval is SSRF-guarded, time-bounded, and limited to 50 MB; do not embed base64 binary data.

### manage_audience

All actions require `audienceId`.

<table>
<thead>
  <tr>
    <th>
      Action
    </th>
    
    <th>
      Additional inputs
    </th>
    
    <th>
      Effect
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        get
      </code>
    </td>
    
    <td>
      —
    </td>
    
    <td>
      Read Audience details and grounding
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        get_progress
      </code>
    </td>
    
    <td>
      —
    </td>
    
    <td>
      Read settled build progress
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        follow
      </code>
      
       / <code>
        unfollow
      </code>
    </td>
    
    <td>
      —
    </td>
    
    <td>
      Save or unsave a visible Audience
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        update
      </code>
    </td>
    
    <td>
      <code>
        name
      </code>
      
      , visibility/team-sharing fields as needed
    </td>
    
    <td>
      Update supported Audience fields
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        delete
      </code>
    </td>
    
    <td>
      Explicit confirmation
    </td>
    
    <td>
      Delete the Audience
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        add_member
      </code>
      
       / <code>
        remove_member
      </code>
    </td>
    
    <td>
      <code>
        mindId
      </code>
    </td>
    
    <td>
      Change Audience membership
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        regenerate_images
      </code>
    </td>
    
    <td>
      Optional <code>
        force
      </code>
      
      , <code>
        limit
      </code>
      
      , <code>
        dry
      </code>
    </td>
    
    <td>
      Regenerate member images or preview the operation
    </td>
  </tr>
</tbody>
</table>

### manage_formation

Pour `preview`, `userInput` et `priorHypothesis` sont facultatifs. Un texte vide utilise la demande par défaut ; les espaces aux extrémités sont retirés et le texte est limité à 2000 caractères. Le JSON transmis doit tenir dans 64 KiB. MCP valide les nombres, indicateurs, phase et hypothèse compatible avec la création, supprime les champs inconnus et renvoie une erreur de l’outil si la réponse est invalide. L’aperçu n’enregistre pas de Formation.

Pour `get`, MCP valide l’identifiant et les champs de détail de la Formation, retire les diagnostics enregistrés et utilise des erreurs sûres. Une réponse invalide ou ne correspondant pas à la demande produit une erreur de l’outil. Vérifiez `status` avant d’utiliser les affectations : le recalcul peut conserver les anciens groupes pendant son exécution.

Pour `create`, validez 2 à 15 groupes avec du texte non vide et des identifiants et libellés uniques après suppression des espaces extérieurs. N’utilisez pas les identifiants réservés `unanswered`, `__unanswered` ou `__other`. `name` est facultatif. Le JSON transmis ne doit pas dépasser 64 KiB. Une répartition utilisateur avec moins de deux groupes principaux peuplés échoue ; vérifiez son état avant utilisation. Consultez les erreurs dans l’[API Audience](/docs/api/audiences).

All actions require `audienceId`.

<table>
<thead>
  <tr>
    <th>
      Action
    </th>
    
    <th>
      Additional inputs
    </th>
    
    <th>
      Effect
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        list
      </code>
    </td>
    
    <td>
      —
    </td>
    
    <td>
      List Formations
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        get
      </code>
    </td>
    
    <td>
      <code>
        formationId
      </code>
    </td>
    
    <td>
      Read a Formation
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        preview
      </code>
    </td>
    
    <td>
      <code>
        userInput
      </code>
      
      , <code>
        priorHypothesis
      </code>
      
       (facultatifs)
    </td>
    
    <td>
      Return a non-persisted JSON hypothesis
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        create
      </code>
    </td>
    
    <td>
      <code>
        name
      </code>
      
      , reviewed <code>
        hypothesis
      </code>
    </td>
    
    <td>
      Persist and compute a Formation
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        delete
      </code>
    </td>
    
    <td>
      <code>
        formationId
      </code>
      
      , explicit confirmation
    </td>
    
    <td>
      Delete a Formation
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        recompute
      </code>
    </td>
    
    <td>
      <code>
        formationId
      </code>
    </td>
    
    <td>
      Recompute assignments
    </td>
  </tr>
</tbody>
</table>

A hypothesis contains `intent` and `subgroups[]` with `id`, `label`, and `definition`. The UI consumes NDJSON progress and this tool requests JSON from the same v1 preview endpoint.

### manage_study

Requires `studyId`. `action: "get"` reads a Study and returns its workspace link. `action: "delete"` requires explicit confirmation and deletes it.

Le propriétaire peut aussi utiliser `action: "set_link_sharing"` avec le booléen obligatoire `isLinkSharingEnabled`, ou `action: "invite"` avec 1–100 `emails` et une `role` facultative (`member` par défaut, ou `admin`). N’activez le partage public que sur demande explicite : les Audiences et Minds associés deviennent également accessibles publiquement. Le résultat contient `sharedStudyUrl` lorsque l’accès public est actif. Les invitations incluent `emailFailures` ; une réponse API réussie ne garantit pas la remise de chaque e-mail.

### manage_chat

<table>
<thead>
  <tr>
    <th>
      Action
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Effect
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        create
      </code>
    </td>
    
    <td>
      One of <code>
        mindId
      </code>
      
      , <code>
        mindIds
      </code>
      
      , or <code>
        audienceIds
      </code>
      
      ; optional <code>
        name
      </code>
      
      , <code>
        description
      </code>
    </td>
    
    <td>
      Create a stateful chat
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        send_message
      </code>
    </td>
    
    <td>
      <code>
        chatId
      </code>
      
      , <code>
        message
      </code>
      
      ; optional <code>
        role
      </code>
    </td>
    
    <td>
      Append a message and get the next response
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        delete
      </code>
    </td>
    
    <td>
      <code>
        chatId
      </code>
      
      , explicit confirmation
    </td>
    
    <td>
      Delete chat history
    </td>
  </tr>
</tbody>
</table>

Pour poursuivre une réponse existante d’une Study, `create` accepte aussi un seul `mindId` et `responseThread: { studyId, messageId }`. Le serveur conserve le contexte antérieur et les fichiers autorisés.

### manage_study_draft

Exige l’UUID du brouillon dans `draftId`. `action: "delete"` supprime le brouillon et exige une réponse API réussie sans contenu. `action: "consume"` exige une `expectedRevision` positive et accepte un UUID de Study facultatif dans `studyId`. Cette action clôt la planification ; elle ne lance ni ne vérifie la recherche. Une révision périmée est refusée pour un brouillon actif ; réessayer un brouillon déjà consommé renvoie son enregistrement de clôture existant sans modifier la Study associée. L’outil exige une réponse correspondant au brouillon avec le statut `consumed` et signale les confirmations incorrectes comme des erreurs. Vérifiez l’état enregistré avant de réessayer après un résultat incertain.

## Deliberate exclusions

API credential creation, rotation, and revocation are not exposed through MCP because an MCP session must not control its own bearer credential. Manage keys only in authenticated [account settings](/settings/api-keys) or through an independently authenticated REST administration flow.
