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

# Minds MCP Tools Reference

Araç sayısı dağıtım yapılandırmasına bağlıdır: normal keşif 23 araç, `list_model_connections` etkinken 24 araç sunar; kayıtlı kanonik araç sayısı sırasıyla 42 veya 43’dir. Bağlı sunucunun `tools/list` yanıtını esas alın.

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, yalnızca API `isPublic: true` veya `isLinkSharingEnabled: true` bildirip bir paylaşım kimliği sağladığında herkese açık Study ya da Audience bağlantısı döndürür. Erişim kaldırıldıktan sonra saklanan kimlik etkin bir bağlantı değildir. Döndürülen URL’leri değiştirmeden kullanın.

Ada göre arama, görünür en yeni Minds, Audiences veya Studies kayıtlarının en fazla 1.000 tanesini tarar. Daha eski bir kayıt için ilgili liste aracını `limit` ve `offset` ile gezin, ardından tam kimliğini iletin. Eksik veya hatalı liste yanıtları, eşleşen kayıt olmadığını iddia etmek yerine hata döndürür.

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

Sonuçlar özeldir ve önbelleğe alınmaz. Araç başarı bildirmeden önce dosya sayısını ve sırasını, kaynak politikasını, snapshot sağlama toplamını ve dağılım referanslarını doğrular. Önizleme veya oluşturma için snapshot’ı değiştirmeden kullanın. Eksik veya başka hesaba ait dosyalar girdi hatasıdır; depolama kesintileri sağlayıcı ayrıntıları olmadan `502` döndürür. Depolama hatası veya geçersiz onay sonrasında aynı içe aktarmayı yeniden deneyin: içeriğe dayalı yüklemeler mevcut dosyaları korur.

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.

UTF-8 `.txt`, `.md`, `.csv` veya `.json` kaynaklarını `files: [{ name, content }]` ile içe aktarır. `existingFiles` ve `groundingJson` isteğe bağlıdır. Keşifte sunulan bu araç Audience oluşturmaz veya verilen dağılımları bağımsız doğrulamaz.

### get_audience_limits

Araç, limitleri bildirmeden önce hesap ve ekip aidiyetini, sayısal üst sınırları ve yinelenmeyen eksiksiz oluşturma modu kümesini doğrular. Audience başına sıfır sınırı, eksik veri değil çalışma alanı kilididir. Yanıtlar özeldir ve önbelleğe alınmaz. Kimlik bilgilerinin engellenme durumu yeniden kontrol edilir; hak sorgusu kullanılamıyorsa ücretsiz plan hakkı uydurulmadan `503` döndürülür.

Boyut seçmeden önce hesabın Audience boyut ve oluşturma modu sınırlarını okur. `mode` isteğe bağlı filtredir. Otomatik ve açıkça istenen boyut sınırlarını ayırın. Araç keşifte sunulur.

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

Oluşturmadan önce profilleri ve kaynak bulgularını `groundingPreview: true` ile inceleyin. Aynı girdiler ve `memberCount` ile birlikte `reviewedGroundingJson` ve `reviewedGroundingSha256` değerlerini değiştirmeden gönderin. Bekleyen bir `structuredContent.operation` dönerse yalnızca `operationId` alanını bu işlemin `jobId` değerine ayarlayarak `create_audience_from_brief` aracını yeniden çağırın. Bu, ikinci bir Audience oluşturmadan veya yeniden ücretlendirmeden mevcut işlemi sürdürür. Tamamlanan sonuçlar `structuredContent.preview` veya `structuredContent.audience` içerir.

Oluşturulan bir Audience, web araştırması arka planda sürerken saniyeler içinde kullanılabilir. Oluşturulan Audience'taki yapılandırılmış `research` alanı bunu belirtir (`phase: "researching"`); bir işlem yeniden okunduğunda bunu `readiness.research` bildirir. Studies hemen çalıştırılabilir: kaynaklı kanıtlar Audience'ın belirtilen varsayımlarının yerini otomatik olarak alır ve Minds çalıştırmalar arasında yeniden kalibre edilir, hiçbir zaman bir çalıştırma sırasında değil. Bkz. [iki aşamalı oluşturma](/docs/api/audiences).

### preview_audience_dataset_segmentation

Önizleme istekleri en fazla 256 KiB JSON kabul eder. Retler dahil tüm yanıtlar özel ve önbelleğe alınamazdır. Geçersiz JSON veya alanlar `400`, aşırı büyük istek veya veri kümesi `413`, Team uygunluğu veya yükleme erişimi retleri `403` döndürür. Yetki sorgusu hataları `503`; beklenmeyen indirme, sınıflandırma veya analiz hataları genel bir `500` döndürür. `segmentationColumns` atlanırsa kimlik alanı olmayan her alan yerine varsayılan nüfus ve segmentasyon değişkenleri seçilir. MCP, analizi açıklamadan önce tüm toplu yanıtı doğrular; satır toplamlarını, seçilen değişkenleri ve bildirilen keşif sayılarını karşılaştırır. Tanımlanmamış alanlar çıkarılır. Eski yanıtlardaki eksik ilişki veya bağımlılık sayıları sıfır değil, bildirilmemiş olarak açıklanır. Bu önizleme kaynak veriyi inceler; bir kohort oluşturmaz veya sonraki dağılımını doğrulamaz.

Yetkili Minds yüklemeleri, depolama erişim kontrolleri üzerinden okunur. Minds sunucusundaki bir URL dahil her ağ geri dönüşü, genel URL korumasını kullanır ve yönlendirme hedeflerini doğrular; aynı kaynaklı URL’ler özel ağ korumasını aşmaz. İndirmelerde 50 MiB akış sınırı ve 30 saniye zaman aşımı korunur. Başarısız HTTP yanıtları, hata döndürülmeden önce iptal edilir.

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.

Sonuç, Audience'ın kapsam sayılarını (`sourced`, `proxy`, `assumed`, `missing` boyutlar) ve arka plan araştırmasının durumunu (`research`) gösterir.

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

`deepen: { topics? }` ile araç Audience'ı derinleştirir: kapsamın eksik veya varsayılmış olarak bildirdiği her standart boyutu ve verilen en fazla 8 konuyu (her biri en fazla 120 karakter) araştırır, bulguları kayıtlı grounding'e ekler (aynı boyut için daha güçlü kanıt daha zayıf olanın yerini alır; diğer tüm grafikler korunur) ve üyeleri yeniden kalibre eder. `deepen`, `query` veya dağılımlarla birlikte kullanılamaz ve Audience'ın arka plan araştırması sürerken reddedilir.

### list_formations

İlk sayfada (`offset: 0`) kurtarma işlemi, en eskilerden başlayarak en fazla 100 bekleyen oluşturmayı denetler. Bir denemenin başarısız olması, seçilen diğer oluşturmaların denenmesini veya listenin döndürülmesini engellemez. Oluşturma durumunu kontrol edin ve bekleyen işi yeniden denemek için ilk sayfayı tekrar açın.

`list_formations` ve `action: "list"` kullanan `manage_formation`, isteğe bağlı `limit` ve `offset` alır. Her çağrı varsayılan/en fazla 100 kayıt içeren bir sayfa döndürür. `hasMore` doğruysa `pagination.nextOffset` ile devam edin. `list_formations` içindeki `totalCount`, gösterilen sayı değil görünür toplamdır. Listenin sonunu aşan boş sayfa, Audience’da Formation olmadığı anlamına gelmez. Geçersiz devam bilgisi araç hatası üretir. Uygulama ve Study bileşeni tüm özet sayfalarını toplar; devam isteğinin başarısızlığı tamamlanmış bir kırılım gibi gösterilmez.

Görüntüleyebildiğiniz her Audience için paylaşılan Formations ve kendi özel Formations listenizi alabilirsiniz. MCP, bozuk listeleri veya eksik üye sayılarını boş liste ya da sıfır üye olarak bildirmek yerine reddeder. Sayılar yalnızca `ready` durumunda kesindir; `building` ve `failed` durumlarında geçicidir. `total: 0` olan boş ilk sayfa, size görünür Formation olmadığı anlamına gelir; liste açılırken varsayılan bölümler yalnızca Audience düzenleyicileri için oluşturulur. v1 liste yanıtı, retler dahil özel ve önbelleğe alınamazdır. Beklenmeyen erişim sorgusu, başlangıç oluşturma veya liste depolama hataları genel bir `500` döndürür.

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

Araç, ilk dışa aktarma işini sorgular ve yalnızca eksiksiz dosya hazır olduğunda başarı bildirir. `filename`, `mimeType` ve Markdown `content` veya ikili `contentBase64` alanlarını koruyun. Satır içi Markdown 100.000 karakterle sınırlıdır ve kısaltıldığında `_[truncated]_` ile işaretlenir. İptal, sorgulamayı durdurur; tamamlanmamış dışa aktarma hata sayılır, bu nedenle `force=true` kullanmadan tekrar kontrol edin.

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

Kimliği doğrulanmış ekibin etkin model bağlantılarını listeler. Listelenen bağlantı mutlaka doğrulanmış değildir; seçmeden önce yetenek bayraklarını ve `verifiedAt` değerini inceleyin. Sonraki isteğin `cursor` alanına `pagination.nextCursor` değerini geçirin. Yalnızca tanımlı bağlantı meta verileri ve yetenek alanları döndürülür; sağlayıcı kimlik bilgileri, ham yoklama sonuçları ve tanımsız tanılama bilgileri çıkarılır. Geçersiz yanıtlar veya ilerlemeyen imleçler hatadır. Keşif sırasında beklenmeyen depolama hataları genel bir `500` döndürür. Araç yalnızca bağlı sunucuda model bağlantıları etkinse duyurulur.

### 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`, bireysel yanıt okumalarını ve döndürülen sonuçları o soruyla sınırlar; araç Study geçmişinin meta verilerini okumaya devam eder. Durum sorguları ilgili tüm imleç sayfalarını izler. Eksik veya başarısız bir çalıştırma listesi okuması, başarılı kısmi durum yerine araç hatası döndürür.

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

`studyId` veya `studyName`, `messageId` ve `action: "get"` (varsayılan) veya `"start"` ile ısı haritasını okur veya başlatır. `assetKey` soruya atanmış görseli/videoyu seçer. Başlatma Premium ve Mind başına bir yanıt gerektirir; tamamlanan analiz yeniden kullanılır. Araç keşifte sunulur.

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

Yalnızca en son taslak revizyonunu açık onaydan sonra çalıştırın. Gelişmiş yöntemler `advancedMethodOptIn: true` gerektirir. Conjoint, MaxDiff, NPS, top/bottom box, temel etkenler, TURF, Gabor-Granger, Van Westendorp, Kano, sıralı tercihler ve segment karşılaştırması çalıştırılabilir. Söz vermeden önce `list_research_methods`, `executable: true` ve gerekli yapılandırmayı kontrol edin.

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`, yöntemin yürütme sırasında yapılandırmasından deterministik sorular ve yanıt sözleşmeleri türettiğini belirtir; şablonda kayıtlı sorular, yürütülen araştırma aracının tamamı değildir. Geçersiz katalog yanıtları boş katalog değil hatadır. `includePlanned: false`, planlanan yöntemleri dışarıda bırakır ancak deneysel yöntemleri yürütülemez durumlarıyla göstermeye devam eder.

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.

`visual-asset-analysis` ve `recommendation-synthesis` katalog girdileri deneyseldir ve bu adlandırılmış planlayıcı yöntemleri olarak çalıştırılamaz. `fallbackMethodId`, sessizce değiştirme izni değil, incelenecek bir alternatiftir. Görsel, video ve web sitesi araştırması ile ısı haritaları ayrı yollarla desteklenir. Study sorusuna atanmış bir varlık için `study_heatmap` kullanın. Bu katalog durumu MCP’nin görsel analiz yapamadığı anlamına gelmez.

### list_study_drafts

Aktif Study taslaklarını listeleyin veya `draftId` ile kaydedilmiş tam planlama durumunu alın. `draft`, kayıtlı adım ve revizyondan sürdürülebilir; `starting`, başlatmanın devam ettiğini belirtir. Kimlikle okuma, sürdürülemeyen bir `consumed` tamamlanma kaydı da döndürebilir. Geçersiz veya eksik API yanıtları hatadır; boş liste ya da başarılı kayıt kanıtı değildir.

### save_study_draft

Oluşturma için ilk istekten önce isteğe bağlı bir `idempotencyKey` (baş ve sondaki boşluklar kırpıldıktan sonra 1–200 karakter) seçin ve sonuç belirsizse aynı anahtarı yeniden kullanın. Aynı anahtar, yeni planlama girdilerini uygulamak yerine mevcut kayıtlı taslağı döndürür. Güncellemede anahtarı kullanmayın; `draftId` ve güncel `expectedRevision` kullanın. Anahtar olmadan tekrarlanan oluşturma istekleri ayrı taslaklar oluşturabilir.

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.

Temel v1 uç noktaları özel ve önbelleğe alınamayan yanıtlar döndürür. Oluşturma/güncelleme JSON istekleri 1 MiB, sürümlü `payload` ayrıca 512 KiB, consume istekleri 4 KiB ile sınırlıdır. Geçersiz girdi `400`, boyut aşımı `413`, beklenmeyen depolama hataları genel `500` döndürür. Değişmeyen anlık görüntü `revision` ve `updatedAt` değerlerini korur. Sonucu belirsiz bir kaydı tekrarlamadan önce kayıtlı durumu kontrol edin; kayıt işlemi araştırmayı başlatmaz.

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

Yanıt, eksiksiz şablon kimliklerini, revizyonları, izinleri ve geçerli yapılandırmaları içermelidir. Tam `templateId` ile okuma aynı şablonu döndürmelidir. Eksik, geçersiz veya eşleşmeyen yanıtlar hatadır; yalnızca geçerli bir boş liste şablon döndürülmediğini belirtir.

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

v1 şablon uç noktaları özel, önbelleğe alınmayan yanıtlar döndürür. Kaydetme/güncelleme JSON gövdeleri 1 MiB, kullanma gövdeleri 4 KiB ile sınırlıdır (aşılırsa `413`); kayıtlı yapılandırma sınırı 512 KiB olarak kalır. Bozuk JSON veya geçersiz girdi `400` döndürür. Sahiplik, revizyon ve dosyalara ilişkin beklenen retler belgelenen durum kodlarını korur; beklenmeyen depolama/sağlayıcı hataları genel bir `500` döndürür.

Araç, başarı bildirmeden önce her yazma onayını doğrular: kaydetme/güncelleme beklenen eksiksiz şablonu, silme `success: true` değerini, kullanma ise bir Study taslağını döndürmelidir. Kullanma isteğinin tekrarı, mevcut bir `starting` veya `consumed` taslağını döndürebilir; bu, yeni düzenlenebilir taslak olarak sunulmaz. Onay eksikse tekrar denemeden önce kayıtlı şablonları veya taslakları kontrol edin ve ilk istek kimliğini koruyun.

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

`regenerate_image` için mevcut portreyi değiştirmek üzere `force: true` gönderin; aksi durumda zaten resmi olan Mind atlanır. İsteğe bağlı `personaContext` (baş ve sondaki boşluklar kırpıldıktan sonra 1–16.000 karakter), sistem istemini değiştirmeden portreye yön verir. Eksik veya yapısı geçersiz API onayları, yeniden denemeden önce mevcut durumu kontrol etmeyi öneren bir hata üretir. İsteğin yanıt vermesi arka plandaki eğitim, resim üretimi, bilgi alımı veya segmentasyonun tamamlandığını göstermez; dönen durumu ve sayıları inceleyin.

<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

`action: "list"` için isteğe bağlı `limit` (1–100) ve `offset` (0 veya üzeri) girin. Varsayılan sayfa en fazla 100 öğe içerir. Devam etmek için `data.pagination.hasMore` alanını okuyup offset değerini artırın; `data.total` tüm koleksiyonu sayar. Sıralama ve tutarlılık sınırları için [bilgi sayfalamasına](/docs/api/tr/knowledge) bakın.

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

`preview` için `userInput` ve `priorHypothesis` isteğe bağlıdır. Boş metin varsayılan isteği kullanır; baştaki ve sondaki boşluklar kaldırılır ve metin 2000 karakterle sınırlıdır. İletilen JSON en fazla 64 KiB olabilir. MCP dönen sayıları, bayrakları, aşamayı ve oluşturmayla uyumlu hipotezi doğrular, bilinmeyen alanları çıkarır ve geçersiz yanıtlar için araç hatası döndürür. Önizleme Formation kaydetmez.

`get` için MCP, dönen Formation kimliğini ve ayrıntı alanlarını doğrular, kayıtlı tanılamayı çıkarır ve güvenli hata mesajları kullanır. Geçersiz veya eşleşmeyen ayrıntı yanıtları araç hatası döndürür. Atamaları kullanmadan önce `status` değerini okuyun; yeniden hesaplama sürerken önceki tamamlanmış gruplar korunabilir.

`create` için boş olmayan metin ve kırpma sonrası benzersiz kimlik ve etiketler içeren 2–15 grubu inceleyin. Ayrılmış `unanswered`, `__unanswered`, `__other` kimliklerini kullanmayın. `name` isteğe bağlıdır. İletilen JSON en fazla 64 KiB olmalıdır. İkiden az dolu birincil grubu olan kullanıcı ayrımı başarısız olur; kullanmadan önce durumunu kontrol edin. Oluşturma hataları için [Audience API](/docs/api/audiences) sayfasına bakın.

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>
      
       (isteğe bağlı)
    </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.

Sahip ayrıca zorunlu `isLinkSharingEnabled` boolean değeriyle `action: "set_link_sharing"` veya 1–100 `emails` ve isteğe bağlı `role` (varsayılan `member` ya da `admin`) ile `action: "invite"` kullanabilir. Herkese açık paylaşımı yalnızca açık kullanıcı isteği üzerine etkinleştirin: bağlı Audiences ve Minds da herkese açık okunabilir hâle gelir. Herkese açık erişim etkinse sonuç `sharedStudyUrl` içerir. Davet sonuçları `emailFailures` içerir; başarılı API yanıtı her e-postanın teslim edildiğini garanti etmez.

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

Mevcut bir Study yanıtını devam ettirmek için `create`, tek bir `mindId` ve `responseThread: { studyId, messageId }` de kabul eder. Sunucu, izin verilen önceki bağlamı ve dosyaları korur.

### manage_study_draft

`draftId` alanında taslağın UUID değeri gerekir. `action: "delete"` taslağı siler ve içeriksiz, başarılı bir API yanıtı gerektirir. `action: "consume"` pozitif bir `expectedRevision` gerektirir ve `studyId` alanında isteğe bağlı bir Study UUID değeri kabul eder. Planlama durumunu kapatır; araştırmayı başlatmaz veya doğrulamaz. Etkin taslaklar için eski revizyonlar reddedilir; zaten tüketilmiş bir taslağı yeniden denemek, bağlı Study’yi değiştirmeden mevcut kapanış kaydını döndürür. Araç, eşleşen taslak için `consumed` durumlu yanıt gerektirir ve geçersiz onayları hata olarak bildirir. Belirsiz bir sonucu yeniden denemeden önce kayıtlı durumu kontrol edin.

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