---
title: "Minds MCP Tools Reference"
description: "[es] Canonical Minds MCP tool reference for Audiences and Studies."
canonical_url: "https://getminds.ai/mcp/es/tools"
last_updated: "2026-09-30T15:02:37.077Z"
---

# Minds MCP Tools Reference

La disponibilidad depende del despliegue: se descubren 23 herramientas, o 24 con `list_model_connections` habilitada, y se registran 42 o 43 herramientas canónicas, respectivamente. La respuesta `tools/list` del servidor conectado es la referencia.

The [Minds MCP server](/mcp/overview) advertises 23–24 curated tools through ordinary `tools/list` discovery and registers 42–43 canonical tools in total. The product model is deliberately small: an **Audience** is a reusable collection of Minds, while a **Study** is the research workspace that contains one or more Audiences, questions, evidence, results, and exports. Compatibility names containing `group` or `panel` remain callable, but new integrations must use the Audience and Study names documented here.

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 devuelve un enlace público de Study o Audience solo cuando la API indica `isPublic: true` o `isLinkSharingEnabled: true` y proporciona un ID para compartir. Un ID conservado tras revocar el acceso no es un enlace activo. Usa las URL devueltas sin modificarlas.

La búsqueda por nombre examina como máximo los 1.000 Minds, Audiences o Studies visibles más recientes. Para un registro anterior, recorre la herramienta de listado correspondiente con `limit` y `offset` y pasa su ID exacto. Las respuestas de listado incompletas o malformadas devuelven un error en lugar de afirmar que no existe ninguna coincidencia.

## Curated advertised surface

<table>
<thead>
  <tr>
    <th>
      Domain
    </th>
    
    <th>
      Tools
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Minds
    </td>
    
    <td>
      <code>
        export_mind
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Audiences
    </td>
    
    <td>
      <code>
        list_audiences
      </code>
      
      , <code>
        import_audience_sources
      </code>
      
      , <code>
        get_audience_limits
      </code>
      
      , <code>
        create_audience_from_brief
      </code>
      
      , <code>
        ask_audience
      </code>
      
      , <code>
        export_audience
      </code>
      
      , <code>
        duplicate_audience
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Studies
    </td>
    
    <td>
      <code>
        list_studies
      </code>
      
      , <code>
        list_model_connections
      </code>
      
      , <code>
        create_study
      </code>
      
      , <code>
        ask_study
      </code>
      
      , <code>
        get_study_status
      </code>
      
      , <code>
        export_study
      </code>
      
      , <code>
        duplicate_study
      </code>
      
      , <code>
        export_heatmap
      </code>
      
      , <code>
        study_heatmap
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Guided research
    </td>
    
    <td>
      <code>
        plan_study_questions
      </code>
      
      , <code>
        run_study_questions
      </code>
      
      , <code>
        get_study_run
      </code>
      
      , <code>
        list_research_methods
      </code>
      
      , <code>
        list_study_drafts
      </code>
      
      , <code>
        save_study_draft
      </code>
      
      , <code>
        list_study_templates
      </code>
      
      , <code>
        manage_study_template
      </code>
      
      , <code>
        get_study_summary
      </code>
    </td>
  </tr>
</tbody>
</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

### 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

Los resultados son privados y no se almacenan en caché. Antes de confirmar el éxito, la herramienta comprueba cantidad y orden de archivos, política de fuentes, checksum del snapshot y referencias de las distribuciones. Conserva el snapshot sin cambios para previsualizar o crear. Los archivos ausentes o ajenos son errores de entrada; los fallos del almacenamiento devuelven `502` sin detalles del proveedor. Repite la misma importación tras un fallo de almacenamiento o una confirmación inválida: la identidad basada en contenido conserva los archivos existentes.

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.

Importa fuentes UTF-8 `.txt`, `.md`, `.csv` o `.json` mediante `files: [{ name, content }]`. `existingFiles` y `groundingJson` son opcionales. Esta herramienta anunciada no crea Audiences ni verifica de forma independiente las distribuciones suministradas.

### get_audience_limits

La herramienta valida la atribución a cuenta y equipo, los límites numéricos y un conjunto completo de modos de creación sin duplicados antes de informar los límites. Un límite de cero por Audience es un bloqueo del espacio de trabajo, no un dato ausente. Las respuestas son privadas y no se almacenan en caché. Se vuelven a verificar las credenciales bloqueadas; si no está disponible la consulta de permisos, se devuelve `503` sin inventar una asignación del plan gratuito.

Consulta los límites de tamaño y modo de creación de esta cuenta antes de elegir un tamaño. `mode` filtra el resultado. Distingue el límite automático del límite de tamaño explícito. Esta herramienta está anunciada.

### 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.

Usa `groundingPreview: true` para revisar perfiles y hallazgos antes de crear. Devuelve `reviewedGroundingJson` y `reviewedGroundingSha256` sin cambios, con las mismas entradas y `memberCount`. Si recibes una `structuredContent.operation` pendiente, llama de nuevo a `create_audience_from_brief` usando solo `operationId` con su `jobId`. Esto continúa la operación existente sin crear ni cobrar otra Audience. Los resultados completos contienen `structuredContent.preview` o `structuredContent.audience`.

Una Audience creada se puede usar en segundos mientras su investigación web continúa en segundo plano. Lo indica el campo estructurado `research` de la Audience creada (`phase: "researching"`), y `readiness.research` lo informa cuando se vuelve a leer una operación. Las Studies pueden ejecutarse de inmediato: la evidencia con fuente reemplaza automáticamente los supuestos explícitos de la Audience, y sus Minds se recalibran entre ejecuciones, nunca durante una. Consulta [la creación en dos fases](/docs/api/audiences).

### preview_audience_dataset_segmentation

Las solicitudes de vista previa admiten hasta 256 KiB de JSON. Las respuestas, incluidos los rechazos, son privadas y sin caché. JSON o campos inválidos devuelven `400`, una solicitud o dataset demasiado grande devuelve `413`, y los rechazos de elegibilidad Team o acceso a archivos devuelven `403`. Los fallos de consulta de derechos devuelven `503`; los fallos inesperados de descarga, clasificación o análisis, un `500` genérico. Omitir `segmentationColumns` selecciona las variables predeterminadas de población y segmentación, no todos los campos que no sean identificadores. MCP valida la respuesta agregada completa y concilia los totales de filas, las variables seleccionadas y los recuentos de descubrimiento antes de describir el análisis. Omite campos no declarados. Los recuentos de relaciones o dependencias ausentes en respuestas antiguas se indican como no informados, no como cero. La vista previa revisa el dataset de origen; no crea una cohorte ni verifica su asignación posterior.

Las cargas autorizadas de Minds se leen mediante sus controles de acceso al almacenamiento. Toda descarga alternativa por red, incluso desde una URL del host de Minds, usa la protección de URL pública y valida los destinos de redirección; compartir origen no evita la protección de redes privadas. Se mantienen el límite de descarga en streaming de 50 MiB y el tiempo máximo de 30 segundos. Las respuestas HTTP fallidas se cancelan antes de devolver el error.

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.

El resultado muestra los recuentos de cobertura de la Audience (dimensiones `sourced`, `proxy`, `assumed`, `missing`) y el estado de su investigación en segundo plano (`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.

Con `deepen: { topics? }`, la herramienta profundiza en la Audience: investiga cada dimensión estándar que la cobertura marca como faltante o supuesta, además de hasta 8 temas indicados (de hasta 120 caracteres cada uno), añade los hallazgos al grounding guardado (la evidencia más sólida reemplaza a la más débil para la misma dimensión; todos los demás gráficos se conservan) y recalibra a los miembros. `deepen` no se puede combinar con `query` ni con distribuciones, y se rechaza mientras la investigación en segundo plano de la Audience siga en curso.

### list_formations

En la primera página (`offset: 0`), la recuperación comprueba como máximo 100 ejecuciones pendientes, empezando por las más antiguas. Un intento fallido no detiene los intentos de las demás ejecuciones seleccionadas ni impide devolver la lista. Consulte el estado y vuelva a abrir la primera página para reintentar el trabajo pendiente.

`list_formations` y `manage_formation` con `action: "list"` aceptan `limit` y `offset` opcionales. Cada llamada devuelve una página, con 100 como valor predeterminado y máximo. Siga `pagination.nextOffset` mientras `hasMore` sea verdadero. En `list_formations`, `totalCount` es el total visible, no la cantidad mostrada. Una página vacía más allá del final no significa que la Audience carezca de Formations. Los metadatos de continuación inválidos producen un error de herramienta. La aplicación y el widget de Study reúnen todas las páginas antes de mostrar una lista completa; un fallo de continuación no se presenta como un desglose completo.

Puedes listar Formations de cualquier Audience que puedas ver, incluidas las compartidas y tus propias privadas. MCP rechaza listas mal formadas o recuentos ausentes en lugar de informar una lista vacía o cero miembros. Los recuentos solo son definitivos con estado `ready`; en `building` y `failed` son provisionales. Una primera página vacía con `total: 0` significa que no hay Formations visibles para ti; al abrirla solo se crean las predeterminadas para editores de la Audience. La respuesta v1 es privada y sin caché, incluso en rechazos. Los fallos inesperados de consulta de acceso, inicialización o almacenamiento devuelven un `500` genérico.

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

La herramienta consulta el trabajo de exportación original y solo indica éxito cuando hay un archivo completo. Conserva `filename`, `mimeType` y el Markdown `content` o el binario `contentBase64`. El Markdown en línea se limita a 100.000 caracteres y se marca con `_[truncated]_` si se acorta. La cancelación detiene las consultas; una exportación sin terminar es un error, por lo que debes comprobarla de nuevo sin `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

Enumera conexiones de modelo activas del equipo autenticado. Una conexión listada no está necesariamente verificada: revise sus indicadores de capacidad y `verifiedAt` antes de seleccionarla. Pase `pagination.nextCursor` como `cursor` de la siguiente solicitud. Solo se devuelven los campos declarados de metadatos y capacidades; se omiten credenciales del proveedor, sondeos sin procesar y diagnósticos adicionales. Las respuestas inválidas o los cursores que no avanzan son errores. Un fallo inesperado de almacenamiento en la consulta devuelve un `500` genérico. La herramienta se anuncia solo cuando las conexiones de modelo están habilitadas en el servidor conectado.

### 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` limita la lectura de respuestas individuales y los resultados devueltos a esa pregunta; la herramienta sigue leyendo los metadatos del historial del Study. Las consultas de estado recorren todas las páginas pertinentes. Si la lista de ejecuciones no se puede leer por completo, se devuelve un error de herramienta en vez de un estado parcial exitoso.

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.

### study_heatmap

Consulta o inicia un mapa de calor con `studyId` o `studyName`, `messageId` y `action: "get"` (predeterminado) o `"start"`. `assetKey` elige una imagen/vídeo asignado a la pregunta. Iniciar requiere Premium y consume una respuesta por Mind; se reutiliza el análisis completado. Esta herramienta está anunciada.

### 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

Ejecuta solo la última revisión tras la confirmación explícita. Los métodos avanzados requieren `advancedMethodOptIn: true`. El catálogo incluye Conjoint, MaxDiff, NPS, top/bottom box, factores clave, TURF, Gabor-Granger, Van Westendorp, Kano, preferencias ordenadas y comparación de segmentos ejecutables. Comprueba `list_research_methods`, `executable: true` y la configuración antes de prometer un método.

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

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` significa que el método deriva preguntas y contratos de respuesta deterministas de su configuración durante la ejecución; las preguntas guardadas en la plantilla no son el instrumento ejecutado completo. Las respuestas de catálogo inválidas son errores, no un catálogo vacío. `includePlanned: false` excluye métodos planificados, pero mantiene los experimentales con su estado no ejecutable.

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.

Las entradas `visual-asset-analysis` y `recommendation-synthesis` siguen siendo experimentales y no se ejecutan como esos métodos del planificador. `fallbackMethodId` señala una alternativa para revisar, no autoriza sustituirla sin avisar. La investigación de imágenes, vídeos y sitios y los mapas de calor tienen rutas propias. Usa `study_heatmap` para un recurso ya asociado a una pregunta de Study. Una entrada no ejecutable no significa que MCP no pueda analizar recursos visuales.

### list_study_drafts

Lista borradores activos de Study o recupera el estado completo mediante `draftId`. Un `draft` puede retomarse desde el paso y revisión guardados; `starting` indica que el inicio ya está en curso. Una lectura por ID puede devolver un registro `consumed`, que no se puede reanudar. Las respuestas API inválidas o incompletas son errores, no listas vacías ni pruebas de un guardado correcto.

### save_study_draft

Al crear, elija un `idempotencyKey` opcional (de 1 a 200 caracteres tras recortar espacios) antes de la primera solicitud y reutilícelo si el resultado es incierto. Reutilizar la clave devuelve el borrador guardado existente sin aplicar nuevos datos de planificación. Omítala al actualizar: use `draftId` y la `expectedRevision` actual. Sin clave, repetir solicitudes de creación puede generar borradores distintos.

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.

Los endpoints v1 subyacentes devuelven respuestas privadas y no almacenables en caché. Las solicitudes JSON de creación/actualización se limitan a 1 MiB y el `payload` versionado a 512 KiB; consume se limita a 4 KiB. La entrada inválida devuelve `400`, el exceso de tamaño `413` y los fallos inesperados de almacenamiento un `500` genérico. Una instantánea sin cambios conserva `revision` y `updatedAt`. Comprueba el estado guardado antes de repetir un guardado incierto; guardar no inicia la investigación.

### 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 respuesta debe incluir identidades completas de plantilla, revisiones, permisos y configuraciones válidas. Una lectura con `templateId` exacto debe devolver esa misma plantilla. Las respuestas ausentes, inválidas o no coincidentes son errores; solo una lista vacía válida significa que no se devolvieron plantillas.

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

Los endpoints v1 de plantillas devuelven respuestas privadas sin caché. Los cuerpos JSON de guardar/actualizar se limitan a 1 MiB y los de usar a 4 KiB (`413` al superar el límite); la configuración guardada mantiene su límite de 512 KiB. JSON mal formado o entradas inválidas devuelven `400`. Los rechazos previstos por propiedad, revisión o archivos conservan su estado documentado; los fallos inesperados del almacenamiento o proveedor devuelven un `500` genérico.

La herramienta valida cada confirmación antes de indicar éxito: guardar/actualizar debe devolver la plantilla completa esperada, eliminar debe devolver `success: true` y usar debe devolver un borrador de Study. Un reintento de uso puede devolver un borrador existente con estado `starting` o `consumed`; no se presenta como un nuevo borrador editable. Si la confirmación está incompleta, revisa las plantillas o borradores guardados antes de reintentar y conserva el ID de solicitud original.

Save, update, use or delete a Custom Study template. This tool is **Advertised**. Set `action` to `save`, `update`, `use` or `delete`; non-save actions require `templateId`. Provide the matching `save`, `update` or `use` object for that action. Only owners can update, delete or change team sharing.

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.

## Explicit lifecycle tools

These seven registered canonical tools expose the remaining v1 research lifecycle. They are intentionally omitted from the 23–24-tool curated discovery list until their product presentation is reviewed. An integration that calls one explicitly must supply the canonical schema and honor destructive/confirmation annotations.

### manage_mind

Para `regenerate_image`, envíe `force: true` para reemplazar un retrato existente; de lo contrario, se omite el Mind que ya tenga imagen. El campo opcional `personaContext` (de 1 a 16.000 caracteres tras recortar espacios) orienta el retrato sin cambiar el prompt del sistema. Las confirmaciones API ausentes o con una estructura inválida generan un error que recomienda comprobar el estado actual antes de reintentar. Recibir una respuesta no demuestra que hayan terminado el entrenamiento, las imágenes, la ingesta de conocimiento o la segmentación en segundo plano; revise el estado y los recuentos devueltos.

<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

Para `action: "list"`, puedes indicar `limit` (1–100) y `offset` (0 o mayor). La página predeterminada contiene hasta 100 elementos. Consulta `data.pagination.hasMore` y aumenta el desplazamiento para continuar; `data.total` representa toda la colección. Consulta el [paginado de conocimiento](/docs/api/es/knowledge) para conocer el orden y los límites de coherencia.

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

En `preview`, `userInput` y `priorHypothesis` son opcionales. El texto vacío usa la petición predeterminada; se quitan los espacios de los extremos y el límite es de 2000 caracteres. El JSON reenviado admite hasta 64 KiB. MCP valida los recuentos, indicadores, fase e hipótesis compatible con la creación, elimina campos desconocidos y devuelve un error de herramienta para respuestas inválidas. La vista previa no guarda una Formation.

Con `get`, MCP valida el ID y los campos de detalle de la Formation, elimina diagnósticos guardados y usa mensajes de error seguros. Las respuestas inválidas o que no coinciden devuelven un error de herramienta. Consulta `status` antes de usar las asignaciones: el recálculo puede conservar los grupos anteriores mientras trabaja.

Para `create`, revisa entre 2 y 15 grupos con texto no vacío e identificadores y etiquetas únicos tras recortar espacios. No uses los identificadores reservados `unanswered`, `__unanswered` ni `__other`. `name` es opcional. El JSON enviado no debe superar 64 KiB. Una división del usuario con menos de dos grupos principales poblados falla; comprueba su estado antes de usarla. Consulta los errores en la [API de Audiences](/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>
      
       (opcionales)
    </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.

El propietario también puede usar `action: "set_link_sharing"` con el booleano obligatorio `isLinkSharingEnabled`, o `action: "invite"` con 1–100 `emails` y `role` opcional (`member`, predeterminado, o `admin`). Activa el acceso público solo por petición explícita: las Audiences y los Minds vinculados también serán legibles públicamente. El resultado incluye `sharedStudyUrl` cuando el acceso público está activo. Las invitaciones incluyen `emailFailures`; una respuesta correcta de la API no garantiza que todos los correos se hayan entregado.

### 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>

Para continuar una respuesta existente de una Study, `create` también acepta un único `mindId` y `responseThread: { studyId, messageId }`. El servidor conserva el contexto previo y los archivos autorizados.

### manage_study_draft

Requiere el UUID del borrador en `draftId`. `action: "delete"` elimina el borrador y exige una respuesta API correcta sin contenido. `action: "consume"` requiere una `expectedRevision` positiva y acepta un UUID de Study opcional en `studyId`. Cierra el estado de planificación; no inicia ni verifica la investigación. Se rechazan las revisiones obsoletas de borradores activos; repetir la solicitud para uno ya consumido devuelve su registro de cierre existente sin cambiar la Study vinculada. La herramienta exige una respuesta del borrador correspondiente con estado `consumed` y trata las confirmaciones incorrectas como errores. Compruebe el estado guardado antes de reintentar un resultado incierto.

## 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.
