---
title: "Minds MCP Tools Reference"
description: "[de] Canonical Minds MCP tool reference for Audiences and Studies."
canonical_url: "https://getminds.ai/mcp/de/tools"
last_updated: "2026-09-30T14:05:53.655Z"
---

# Minds MCP Tools Reference

Die Verfügbarkeit hängt von der Bereitstellung ab: Die reguläre Erkennung liefert 23 Tools bzw. 24 mit aktiviertem `list_model_connections`; insgesamt sind entsprechend 42 oder 43 kanonische Tools registriert. Maßgeblich ist die Antwort des verbundenen Servers auf `tools/list`.

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 gibt einen öffentlichen Study- oder Audience-Link nur zurück, wenn die API `isPublic: true` oder `isLinkSharingEnabled: true` sowie eine Freigabe-ID liefert. Eine nach dem Widerruf gespeicherte ID ist kein aktiver Link. Verwende zurückgegebene URLs unverändert.

Die Namenssuche durchsucht höchstens die neuesten 1.000 sichtbaren Minds, Audiences oder Studies. Für ältere Einträge verwende das entsprechende Listentool mit `limit` und `offset` und übergib anschließend die genaue ID. Unvollständige oder fehlerhafte Listenantworten führen zu einem Fehler statt zur Aussage, dass kein passender Eintrag existiert.

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

Ergebnisse sind privat und werden nicht zwischengespeichert. Vor einer Erfolgsmeldung prüft das Tool Dateianzahl und Reihenfolge, Quellenrichtlinie, Snapshot-Prüfsumme und Verteilungsreferenzen. Übernehmen Sie den Snapshot unverändert für Vorschau oder Erstellung. Fehlende oder fremde Dateien sind Eingabefehler; Speicherausfälle liefern `502` ohne Anbieterdetails. Wiederholen Sie bei einem Speicherfehler oder einer ungültigen Bestätigung denselben Import: Inhaltsbasierte Uploads erhalten vorhandene Dateien.

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.

Importiert UTF-8-Dateien vom Typ `.txt`, `.md`, `.csv` oder `.json` mit `files: [{ name, content }]`. Optional erhalten `existingFiles` und `groundingJson` geprüften Quellenkontext. Dieses angekündigte Tool erstellt keine Audience und prüft gelieferte Verteilungen nicht unabhängig.

### get_audience_limits

Das Tool prüft Konto-/Teamzuordnung, numerische Obergrenzen und einen vollständigen, eindeutigen Satz von Erstellungsmodi, bevor es Limits meldet. Eine Obergrenze von null pro Audience ist eine Workspace-Sperre, kein fehlender Wert. Antworten sind privat und nicht zwischenspeicherbar. Gesperrte Zugangsdaten werden erneut geprüft; ist die Berechtigungsabfrage nicht verfügbar, wird `503` zurückgegeben, ohne ein Free-Plan-Kontingent zu erfinden.

Liest die Größen- und Erstellungsmodusgrenzen dieses Kontos vor der Größenwahl. Optional filtert `mode` die Ergebnisse. Unterscheide automatische Größenwahl und ausdrücklich angeforderte Größe. Das Tool wird in der Erkennung angeboten.

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

Mit `groundingPreview: true` prüfen Sie Profile und Quellenbefunde vor der Erstellung. Übergeben Sie anschließend `reviewedGroundingJson` und `reviewedGroundingSha256` unverändert zusammen mit denselben Eingaben und `memberCount`. Bei einer laufenden `structuredContent.operation` rufen Sie `create_audience_from_brief` erneut auf und setzen ausschließlich `operationId` auf deren `jobId`. Dies setzt den bestehenden Vorgang fort, ohne eine zweite Audience zu erstellen oder zu berechnen. Abgeschlossene Ergebnisse enthalten `structuredContent.preview` oder `structuredContent.audience`.

Eine erstellte Audience ist innerhalb von Sekunden nutzbar, während ihre Webrecherche im Hintergrund weiterläuft. Das zeigt das strukturierte Feld `research` der erstellten Audience (`phase: "researching"`); beim erneuten Abruf einer Operation meldet es `readiness.research`. Studies können sofort laufen: Belegte Evidenz ersetzt die genannten Annahmen der Audience automatisch, und ihre Minds werden zwischen Durchläufen neu kalibriert, nie während eines Durchlaufs. Siehe [zweiphasige Erstellung](/docs/api/audiences).

### preview_audience_dataset_segmentation

Vorschauanfragen akzeptieren höchstens 256 KiB JSON. Antworten einschließlich Ablehnungen sind privat und nicht zwischenspeicherbar. Ungültiges JSON oder ungültige Felder liefern `400`, zu große Anfragen oder Datensätze `413` und fehlende Team-Berechtigung oder Upload-Zugriffsrechte `403`. Fehler bei der Berechtigungsabfrage liefern `503`; unerwartete Download-, Klassifizierungs- oder Analysefehler ein allgemeines `500`. Ohne `segmentationColumns` werden die standardmäßigen Populations- und Segmentierungsvariablen ausgewählt, nicht alle Nicht-ID-Felder. MCP validiert die vollständige aggregierte Antwort und gleicht Zeilensummen, ausgewählte Variablen und gemeldete Entdeckungszahlen ab. Nicht deklarierte Felder werden weggelassen. Fehlende Beziehungs- oder Abhängigkeitszahlen älterer Antworten gelten als nicht gemeldet, nicht als null. Die Vorschau prüft den Quelldatensatz; sie erstellt keine Kohorte und bestätigt keine spätere Zuteilung.

Autorisierte Minds-Uploads werden über ihre Speicherzugriffsprüfung gelesen. Jeder Netzwerk-Fallback, auch bei einer URL auf dem Minds-Host, verwendet die Prüfung öffentlicher URLs und validiert Weiterleitungsziele; gleiche Herkunft umgeht den Schutz privater Netzwerke nicht. Downloads behalten ein Streaming-Limit von 50 MiB und ein Zeitlimit von 30 Sekunden. Fehlerhafte HTTP-Antworten werden vor der Fehlerrückgabe abgebrochen.

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.

Das Ergebnis zeigt die Abdeckungszählungen der Audience (Dimensionen `sourced`, `proxy`, `assumed`, `missing`) und den Stand ihrer Hintergrundrecherche (`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.

Mit `deepen: { topics? }` vertieft das Tool die Audience: Es recherchiert jede Standarddimension, die die Abdeckung als fehlend oder angenommen meldet, dazu bis zu 8 angegebene Themen (je bis zu 120 Zeichen), fügt die Ergebnisse dem gespeicherten Grounding hinzu (stärkere Evidenz ersetzt schwächere für dieselbe Dimension, alle anderen Diagramme bleiben) und kalibriert die Mitglieder neu. `deepen` lässt sich nicht mit `query` oder Verteilungen kombinieren und wird abgelehnt, solange die Hintergrundrecherche der Audience noch läuft.

### list_formations

Auf der ersten Seite (`offset: 0`) prüft die Wiederherstellung höchstens 100 ausstehende Builds, die ältesten zuerst. Ein fehlgeschlagener Versuch verhindert weder weitere Versuche für die anderen ausgewählten Builds noch die Rückgabe der Liste. Prüfen Sie den Build-Status und öffnen Sie die erste Seite erneut, um ausstehende Arbeit nochmals anzustoßen.

`list_formations` und `manage_formation` mit `action: "list"` akzeptieren optional `limit` und `offset`. Jeder Aufruf liefert eine Seite mit Standard/Maximum 100. Folgen Sie `pagination.nextOffset`, solange `hasMore` wahr ist. Bei `list_formations` ist `totalCount` die gesamte sichtbare Anzahl, nicht die angezeigte. Eine leere Seite hinter dem Listenende bedeutet nicht, dass die Audience keine Formations hat. Fehlerhafte Fortsetzungsdaten führen zu einem Tool-Fehler. App und Study-Widget sammeln alle Übersichtsseiten; eine fehlgeschlagene Fortsetzung wird nicht als vollständige Aufschlüsselung dargestellt.

Du kannst Formations für jede Audience auflisten, die du sehen darfst: geteilte Formations und deine eigenen privaten. MCP weist fehlerhafte Listen oder fehlende Mitgliederzahlen zurück, statt eine leere Liste oder null Mitglieder zu melden. Zahlen sind nur bei `ready` endgültig; bei `building` und `failed` sind sie vorläufig. Eine leere erste Seite mit `total: 0` bedeutet, dass für dich keine Formations sichtbar sind; Standardaufteilungen werden beim Öffnen nur für Audience-Bearbeiter angelegt. Die v1-Listenantwort ist privat und nicht zwischenspeicherbar, auch bei Ablehnungen. Unerwartete Fehler bei Zugriffsprüfung, Initialisierung oder Listenabfrage liefern ein allgemeines `500`.

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

Das Tool fragt den ursprünglichen Exportauftrag ab und meldet Erfolg erst, wenn eine vollständige Datei verfügbar ist. Bewahre `filename`, `mimeType` sowie Markdown-`content` oder binären `contentBase64` auf. Inline-Markdown ist auf 100.000 Zeichen begrenzt und wird bei Kürzung mit `_[truncated]_` markiert. Ein Abbruch beendet die Abfragen; ein unfertiger Export ist ein Fehler. Prüfe später erneut ohne `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

Listet aktive Modellverbindungen des authentifizierten Teams auf. Eine aufgeführte Verbindung ist nicht automatisch verifiziert: Prüfen Sie vor der Auswahl ihre Capability-Flags und `verifiedAt`. Übergeben Sie `pagination.nextCursor` als `cursor` der nächsten Anfrage. Nur definierte Verbindungsmetadaten und Capability-Felder werden ausgegeben; Provider-Zugangsdaten, rohe Probe-Ergebnisse und weitere Diagnosen werden ausgelassen. Ungültige Antworten oder nicht fortschreitende Cursor sind Fehler. Unerwartete Speicherfehler bei der Abfrage ergeben ein allgemeines `500`. Das Tool wird nur angeboten, wenn Modellverbindungen auf dem verbundenen Server aktiviert sind.

### 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` beschränkt das Laden einzelner Antworten und die ausgegebenen Ergebnisse auf diese Frage; das Tool liest weiterhin die Metadaten des Study-Verlaufs. Statusabfragen folgen allen relevanten Cursor-Seiten. Ein fehlgeschlagener oder unvollständiger Abruf der Run-Liste erzeugt einen Tool-Fehler statt eines erfolgreichen Teilergebnisses.

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

Liest oder startet eine Asset-Heatmap mit `studyId` oder `studyName`, `messageId` und `action: "get"` (Standard) oder `"start"`. Optional wählt `assetKey` ein der Frage zugeordnetes Bild/Video. Der Start benötigt Premium und eine Antwort pro Mind; fertige Analysen werden wiederverwendet. Das Tool wird in der Erkennung angeboten.

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

Führe nur die neueste Entwurfsrevision nach ausdrücklicher Bestätigung aus. Fortgeschrittene Methoden benötigen `advancedMethodOptIn: true`. Conjoint, MaxDiff, NPS, Top-/Bottom-Box, Key Drivers, TURF, Gabor-Granger, Van Westendorp, Kano, Rangpräferenzen und Segmentvergleiche sind im Katalog ausführbar. Prüfe vor einer Zusage `list_research_methods`, `executable: true` und die erforderliche Konfiguration.

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` bedeutet, dass die Methode bei der Ausführung deterministische Fragen und Antwortvorgaben aus ihrer Konfiguration ableitet; gespeicherte Vorlagenfragen sind nicht das vollständige ausgeführte Instrument. Ungültige Katalogantworten gelten als Fehler, nicht als leerer Katalog. `includePlanned: false` schließt geplante Methoden aus, zeigt aber weiterhin experimentelle Methoden als nicht ausführbar.

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.

Die Katalogeinträge `visual-asset-analysis` und `recommendation-synthesis` sind experimentell und als benannte Planermethoden nicht ausführbar. `fallbackMethodId` nennt eine zu prüfende Alternative und erlaubt keinen stillen Austausch. Für Bild-, Video- und Website-Forschung sowie Asset-Heatmaps bestehen separate unterstützte Wege. `study_heatmap` analysiert ein Asset, das bereits einer Study-Frage zugeordnet ist. Ein nicht ausführbarer Planereintrag bedeutet nicht, dass MCP visuelle Assets nicht analysieren kann.

### list_study_drafts

Liste aktive Study-Entwürfe auf oder lade den vollständigen Planungsstand per `draftId`. Ein `draft` lässt sich ab dem gespeicherten Schritt und der Revision fortsetzen; `starting` bedeutet, dass der Start bereits läuft. Ein Abruf per ID kann einen `consumed`-Abschlussdatensatz liefern, der nicht fortgesetzt werden kann. Ungültige oder unvollständige API-Antworten sind Fehler, keine leere Liste und kein Beleg für erfolgreiches Speichern.

### save_study_draft

Wählen Sie beim Erstellen optional einen `idempotencyKey` (1–200 Zeichen nach dem Trimmen) vor der ersten Anfrage und verwenden Sie ihn bei ungewissem Ergebnis erneut. Derselbe Schlüssel gibt den bestehenden gespeicherten Entwurf zurück, statt neue Planungsdaten anzuwenden. Lassen Sie ihn beim Aktualisieren weg: Verwenden Sie stattdessen `draftId` und die aktuelle `expectedRevision`. Ohne Schlüssel können wiederholte Erstellungsanfragen separate Entwürfe anlegen.

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.

Die zugrunde liegenden v1-Endpunkte liefern private, nicht cachebare Antworten. JSON-Anfragen zum Erstellen/Aktualisieren sind auf 1 MiB begrenzt, das versionierte `payload` zusätzlich auf 512 KiB; Consume-Anfragen auf 4 KiB. Ungültige Eingaben liefern `400`, zu große Eingaben `413` und unerwartete Speicherfehler eine allgemeine `500`-Antwort. Ein unveränderter Stand behält `revision` und `updatedAt`. Prüfe den gespeicherten Stand vor einem unsicheren Wiederholungsversuch; das Speichern selbst startet keine Forschung.

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

Die Antwort muss vollständige Vorlagen-IDs, Revisionen, Berechtigungen und gültige Konfigurationen enthalten. Eine Abfrage mit genauer `templateId` muss dieselbe Vorlage zurückgeben. Fehlende, ungültige oder abweichende Antworten sind Fehler; nur eine gültige leere Liste bedeutet, dass keine Vorlagen zurückgegeben wurden.

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

Die v1-Vorlagenendpunkte liefern private, nicht zwischenspeicherbare Antworten. JSON-Bodys für Speichern/Aktualisieren sind auf 1 MiB begrenzt, für Verwenden auf 4 KiB (`413` bei Überschreitung); die gespeicherte Konfiguration bleibt auf 512 KiB begrenzt. Fehlerhaftes JSON oder ungültige Eingaben führen zu `400`. Erwartete Ablehnungen wegen Eigentümerschaft, Revision oder Dateien behalten ihren dokumentierten Status; unerwartete Speicher-/Anbieterfehler liefern ein allgemeines `500`.

Das Tool prüft jede Schreibbestätigung vor einer Erfolgsmeldung: Speichern/Aktualisieren muss die erwartete vollständige Vorlage zurückgeben, Löschen `success: true` und Verwenden einen Study-Entwurf. Ein wiederholter Verwendungsaufruf kann einen vorhandenen Entwurf mit `starting` oder `consumed` zurückgeben; dieser wird nicht als neuer bearbeitbarer Entwurf beschrieben. Bei unvollständiger Bestätigung vor einem erneuten Versuch gespeicherte Vorlagen oder Entwürfe prüfen und die ursprüngliche Request-ID beibehalten.

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

Übergeben Sie für `regenerate_image` den Wert `force: true`, um ein vorhandenes Porträt zu ersetzen; andernfalls wird ein Mind mit vorhandenem Bild übersprungen. Optionales `personaContext` (1–16.000 Zeichen nach dem Trimmen) steuert das Porträt, ohne den Systemprompt zu ändern. Fehlende oder ungültige API-Bestätigungen führen zu einem Fehler mit dem Hinweis, vor einem erneuten Versuch den aktuellen Zustand zu prüfen. Eine beantwortete Anfrage belegt nicht den Abschluss von Hintergrundtraining, Bildern, Wissensaufnahme oder Segmentierung; prüfen Sie den zurückgegebenen Status und die Zähler.

<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

Für `action: "list"` sind `limit` (1–100) und `offset` (ab 0) optional. Die Standardseite enthält höchstens 100 Einträge. Prüfen Sie `data.pagination.hasMore` und erhöhen Sie den Offset für die nächste Seite; `data.total` zählt die gesamte Sammlung. Sortierung und Konsistenzgrenzen stehen unter [Knowledge-Paginierung](/docs/api/de/knowledge).

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

Bei `preview` sind `userInput` und `priorHypothesis` optional. Leerer Text verwendet die Standardanfrage; äußere Leerzeichen werden entfernt und der Text ist auf 2000 Zeichen begrenzt. Das weitergeleitete JSON darf höchstens 64 KiB groß sein. MCP prüft zurückgegebene Zahlen, Flags, Phase und die zur Erstellung passende Hypothese, entfernt unbekannte Felder und liefert bei ungültigen Antworten einen Tool-Fehler. Die Vorschau speichert keine Formation.

Bei `get` prüft MCP die zurückgegebene Formation-ID und die Detailfelder, entfernt gespeicherte Diagnosedaten und verwendet sichere Fehlermeldungen. Fehlerhafte oder nicht passende Detailantworten führen zu einem Tool-Fehler. Prüfen Sie vor der Nutzung der Zuordnungen den `status`: Beim Neuberechnen können die vorherigen fertigen Gruppen erhalten bleiben.

Prüfen Sie für `create` 2–15 Untergruppen mit nicht leerem Text und nach dem Trimmen eindeutigen IDs und Bezeichnungen. Verwenden Sie nicht die reservierten IDs `unanswered`, `__unanswered` oder `__other`. `name` ist optional. Das weitergeleitete JSON darf 64 KiB nicht überschreiten. Eine benutzerdefinierte Aufteilung mit weniger als zwei belegten primären Untergruppen schlägt fehl; prüfen Sie vor der Nutzung den Status. Erstellungsfehler beschreibt die [Audience-API](/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>
      
       (optional)
    </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.

Der Eigentümer kann außerdem `action: "set_link_sharing"` mit dem erforderlichen booleschen Wert `isLinkSharingEnabled` oder `action: "invite"` mit 1–100 `emails` und optionaler `role` (`member`, der Standardwert, oder `admin`) verwenden. Aktiviere öffentliche Freigaben nur auf ausdrücklichen Wunsch: Auch verbundene Audiences und Minds werden öffentlich lesbar. Bei aktivem öffentlichem Zugriff enthält das Ergebnis `sharedStudyUrl`. Einladungsergebnisse enthalten `emailFailures`; eine erfolgreiche API-Antwort garantiert nicht die Zustellung jeder 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>

Für eine Folgefrage zu einer vorhandenen Study-Antwort akzeptiert `create` außerdem eine einzelne `mindId` und `responseThread: { studyId, messageId }`. Der Server übernimmt den autorisierten bisherigen Kontext und die zugehörigen Dateien.

### manage_study_draft

Erfordert die UUID des Entwurfs in `draftId`. `action: "delete"` löscht den Entwurf und erfordert eine leere erfolgreiche API-Antwort. `action: "consume"` erfordert eine positive `expectedRevision` und akzeptiert optional eine Study-UUID in `studyId`. Die Aktion schließt den Planungsstand; sie startet oder überprüft keine Forschung. Bei aktiven Entwürfen werden veraltete Revisionen abgelehnt. Ein erneuter Aufruf für einen bereits verbrauchten Entwurf gibt dessen bestehenden Abschlussdatensatz zurück, ohne die verknüpfte Study zu ändern. Das Tool verlangt eine passende Antwort mit Status `consumed`; fehlerhafte Bestätigungen gelten als Fehler. Prüfen Sie bei ungewissem Ergebnis den gespeicherten Stand vor einem erneuten Versuch.

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