> ## Documentation Index
> Fetch the complete documentation index at: https://docs.caret.so/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Tools

> Available tools on the Caret MCP server

The Caret MCP server provides 6 read-only tools for accessing your workspace data. All tools require authentication via [OAuth 2.0 or API key](/api-reference/mcp/authentication).

## caret\_list\_notes

List meeting notes in the workspace with optional filters. Returns a paginated list of notes with basic info. Use `caret_get_note` to get full details including transcript and summary.

**Required permission:** `notes`

### Parameters

<ParamField query="limit" type="number" default="20">
  Number of notes to return (1–100)
</ParamField>

<ParamField query="offset" type="number" default="0">
  Pagination offset
</ParamField>

<ParamField query="sortBy" type="string" default="createdAt">
  Field to sort by. Options: `createdAt`, `updatedAt`, `title`
</ParamField>

<ParamField query="sortOrder" type="string" default="desc">
  Sort order. Options: `asc`, `desc`
</ParamField>

<ParamField query="status" type="string">
  Filter by note status. Options: `idle`, `recording`, `transcript-processing`,
  `recorded-not-summarized`, `summarizing`, `completed`
</ParamField>

<ParamField query="search" type="string">
  Search query for title
</ParamField>

<ParamField query="fromDate" type="string">
  Filter notes created after date (ISO 8601)
</ParamField>

<ParamField query="toDate" type="string">
  Filter notes created before date (ISO 8601)
</ParamField>

<ParamField query="folderIds" type="string">
  Comma-separated folder IDs to filter by
</ParamField>

<ParamField query="participantEmail" type="string">
  Filter by participant email address
</ParamField>

### Response

<ResponseField name="notes" type="NoteListItem[]">
  <Expandable title="NoteListItem">
    <ResponseField name="id" type="string">
      Note ID
    </ResponseField>

    <ResponseField name="title" type="string">
      Note title
    </ResponseField>

    <ResponseField name="kind" type="string">
      Note type: `online`, `in-person`, or `podcast`
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      ISO 8601 timestamp
    </ResponseField>

    <ResponseField name="visibility" type="string">
      `private`, `workspace`, or `shared`
    </ResponseField>

    <ResponseField name="tags" type="object[]">
      Folders/tags assigned to the note
    </ResponseField>

    <ResponseField name="participants" type="object[]">
      Meeting participants with name, email, and company info
    </ResponseField>

    <ResponseField name="totalDurationSec" type="number">
      Recording duration in seconds
    </ResponseField>

    <ResponseField name="userWrittenNote" type="string">
      User's private note
    </ResponseField>

    <ResponseField name="calendarEvent" type="object | null">
      Associated calendar event
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  <Expandable title="Pagination">
    <ResponseField name="limit" type="number">
      Items per page
    </ResponseField>

    <ResponseField name="offset" type="number">
      Current offset
    </ResponseField>

    <ResponseField name="hasMore" type="boolean">
      Whether more results are available
    </ResponseField>

    <ResponseField name="nextOffset" type="number | null">
      Offset for the next page, null if last page
    </ResponseField>
  </Expandable>
</ResponseField>

***

## caret\_get\_note

Get detailed information about a specific note including full transcript, summary, and participant info.

**Required permission:** `notes`

### Parameters

<ParamField query="id" type="string" required>
  The note ID
</ParamField>

<ParamField query="folderIds" type="string">
  Comma-separated folder IDs to require the note to belong to
</ParamField>

### Response

<ResponseField name="note" type="Note">
  <Expandable title="Note">
    <ResponseField name="id" type="string">
      Note ID
    </ResponseField>

    <ResponseField name="title" type="string">
      Note title
    </ResponseField>

    <ResponseField name="kind" type="string">
      Note type
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      ISO 8601 timestamp
    </ResponseField>

    <ResponseField name="visibility" type="string">
      `private`, `workspace`, or `shared`
    </ResponseField>

    <ResponseField name="tags" type="object[]">
      Folders/tags
    </ResponseField>

    <ResponseField name="participants" type="object[]">
      Participant details
    </ResponseField>

    <ResponseField name="totalDurationSec" type="number">
      Duration in seconds
    </ResponseField>

    <ResponseField name="userWrittenNote" type="string">
      User's private note
    </ResponseField>

    <ResponseField name="enhancedNote" type="string">
      AI-enhanced note content
    </ResponseField>

    <ResponseField name="summary" type="string">
      AI-generated summary
    </ResponseField>

    <ResponseField name="transcripts" type="Transcript[]">
      <Expandable title="Transcript">
        <ResponseField name="speaker" type="string">
          Speaker name
        </ResponseField>

        <ResponseField name="text" type="string">
          Spoken text
        </ResponseField>

        <ResponseField name="startTimestamp" type="string">
          Start time (HH:MM:SS)
        </ResponseField>

        <ResponseField name="endTimestamp" type="string">
          End time (HH:MM:SS)
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="calendarEvent" type="object | null">
      Calendar event with attendees, times, and meeting link
    </ResponseField>
  </Expandable>
</ResponseField>

***

## caret\_search\_notes

Search notes by title. Returns matching notes with basic info.

**Required permission:** `notes`

### Parameters

<ParamField query="query" type="string" required>
  Search query
</ParamField>

<ParamField query="limit" type="number" default="10">
  Number of results to return (1–50)
</ParamField>

<ParamField query="folderIds" type="string">
  Comma-separated folder IDs to filter by
</ParamField>

### Response

<ResponseField name="notes" type="NoteListItem[]">
  Array of matching notes (same shape as `caret_list_notes`)
</ResponseField>

<ResponseField name="query" type="string">
  The search query used
</ResponseField>

<ResponseField name="count" type="number">
  Number of results returned
</ResponseField>

***

## caret\_search\_knowledge

Search meeting notes and workspace knowledge using natural language. Uses semantic search to find relevant content from meeting summaries, Q\&As, and knowledge base articles.

**Required permission:** `notes`

### Parameters

<ParamField query="query" type="string" required>
  Natural language search query (e.g., "What did the customer say about
  pricing?")
</ParamField>

<ParamField query="sourceType" type="string" default="all">
  Source type to search. Options: `all`, `meeting` (only meeting notes),
  `knowledge` (only knowledge base)
</ParamField>

<ParamField query="maxResults" type="number" default="5">
  Maximum number of results to return (1–20)
</ParamField>

### Response

<ResponseField name="results" type="SearchResult[]">
  <Expandable title="SearchResult">
    <ResponseField name="content" type="string">
      Matched content snippet
    </ResponseField>

    <ResponseField name="score" type="number">
      Relevance score
    </ResponseField>

    <ResponseField name="sourceTitle" type="string">
      Title of the source document
    </ResponseField>

    <ResponseField name="sourceType" type="string">
      Type of the source (meeting, knowledge, etc.)
    </ResponseField>

    <ResponseField name="url" type="string">
      URL of the source, if available
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="query" type="string">
  The search query used
</ResponseField>

<ResponseField name="sourceType" type="string">
  The source type filter applied
</ResponseField>

<ResponseField name="totalResults" type="number">
  Number of results returned
</ResponseField>

***

## caret\_get\_workspace

Get details about the current workspace including name, settings, and allowed email domains.

**Required permission:** none

### Parameters

No parameters required.

### Response

<ResponseField name="workspace" type="Workspace">
  <Expandable title="Workspace">
    <ResponseField name="id" type="string">
      Workspace ID
    </ResponseField>

    <ResponseField name="name" type="string">
      Workspace name
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      ISO 8601 timestamp
    </ResponseField>

    <ResponseField name="settings" type="object">
      Workspace settings
    </ResponseField>

    <ResponseField name="allowedEmailDomains" type="string[]">
      Allowed email domains for the workspace
    </ResponseField>

    <ResponseField name="iconUrl" type="string | null">
      Workspace icon URL
    </ResponseField>
  </Expandable>
</ResponseField>

***

## caret\_list\_members

List workspace members with optional search. Returns member info including name, email, role, and assigned folders.

**Required permission:** `users`

### Parameters

<ParamField query="limit" type="number" default="20">
  Number of members to return (1–100)
</ParamField>

<ParamField query="offset" type="number" default="0">
  Pagination offset
</ParamField>

<ParamField query="search" type="string">
  Search by name or email
</ParamField>

### Response

<ResponseField name="members" type="Member[]">
  <Expandable title="Member">
    <ResponseField name="id" type="string">
      User ID
    </ResponseField>

    <ResponseField name="name" type="string">
      Full name
    </ResponseField>

    <ResponseField name="email" type="string">
      Email address
    </ResponseField>

    <ResponseField name="profileUrl" type="string">
      Profile image URL
    </ResponseField>

    <ResponseField name="role" type="string">
      Workspace role
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp
    </ResponseField>

    <ResponseField name="folders" type="object[]">
      Assigned folders with id and name
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  <Expandable title="Pagination">
    <ResponseField name="limit" type="number">
      Items per page
    </ResponseField>

    <ResponseField name="offset" type="number">
      Current offset
    </ResponseField>

    <ResponseField name="hasMore" type="boolean">
      Whether more results are available
    </ResponseField>

    <ResponseField name="nextOffset" type="number | null">
      Offset for the next page
    </ResponseField>
  </Expandable>
</ResponseField>
