> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to the Claap MCP server

The Claap MCP connector routes your AI agent's tool calls to Claap's own MCP server through Scalekit. Each user signs in to Claap once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 54 tools.

**Authentication:** OAuth2.1/DCR
**Categories:** Collaboration, Communication, Productivity, Media
**Tools:** 54: 35 read, 8 write, 11 destructive
**Users sign in with:** OAuth
**OAuth app:** Scalekit's or your own
**Built by:** Vendor MCP
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=CLAAPMCP)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Claap MCP connection

   In **AgentKit > Connections**, create a Claap MCP connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

   Scalekit credentials are available for Claap MCP server, so you don't need to register an OAuth app.

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'claapmcp'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Claap MCP:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'claapmcp_list_workspaces',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "claapmcp"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Claap MCP:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="claapmcp_list_workspaces",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'claapmcp_get_company',
  toolInput: {
    companyId: '<companyId>',
    workspaceId: '<workspaceId>',
  },
  connector: 'claapmcp',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="claapmcp_get_company",
    tool_input={
        "companyId": "<companyId>",
        "workspaceId": "<workspaceId>",
    },
    connection_name="claapmcp",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `claapmcp_get_company`

Get Company · Read-only

Get a single company of a Claap workspace with its full CRM fields, domains, related contactIds and dealIds. Discover the companyId via list_companies or search_companies.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `companyId` (`string`, required): Discover the companyId via list_companies or search_companies.
- `workspaceId` (`string`, required): No description.

Example input: `{"companyId":"<companyId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_company_view`

Get Company View · Read-only

Fetch the rows of a Claap company view: each row is a company matching the view filters, with a value for each of the view columns. Discover available views via list_company_views. To fetch only the rows without column values, prefer list_companies with viewId.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `viewId` (`string`, required): The ID of the company view to fetch rows for. Use list_company_views to discover IDs.
- `workspaceId` (`string`, required): No description.
- `cursor` (`string`, optional): Opaque cursor returned as `nextCursor` by a previous call. Pass the value VERBATIM to fetch the next page of results. Omit on the first call.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100). ALWAYS paginate via `nextCursor`.

Example input: `{"viewId":"<viewId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_contact`

Get Contact · Read-only

Get a single contact of a Claap workspace with its full CRM fields and its AI-generated summary when one has been generated. Discover the contactId via list_contacts or search_contacts.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contactId` (`string`, required): Discover the contactId via list_contacts or search_contacts.
- `workspaceId` (`string`, required): No description.

Example input: `{"contactId":"<contactId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_contact_view`

Get Contact View · Read-only

Fetch the rows of a Claap contact view: each row is a contact matching the view filters, with a value for each of the view columns. Discover available views via list_contact_views. To fetch only the rows without column values, prefer list_contacts with viewId.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `viewId` (`string`, required): The ID of the contact view to fetch rows for. Use list_contact_views to discover IDs.
- `workspaceId` (`string`, required): No description.
- `cursor` (`string`, optional): Opaque cursor returned as `nextCursor` by a previous call. Pass the value VERBATIM (do not construct, modify, decode, or invent a cursor) to fetch the next page of results. Omit on the first call.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100). The response includes `total` and, when more results exist, `nextCursor`. ALWAYS paginate via `nextCursor`.

Example input: `{"viewId":"<viewId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_deal`

Get Deal · Read-only

Get a single deal of a Claap workspace with its full CRM fields. Discover the dealId via list_deals or search_deals. When returnAiFields is true, the response includes the value of each AI field of the workspace deal library for this deal (answer and state); fields without a generated value have state Missing.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `dealId` (`string`, required): Discover the dealId via list_deals or search_deals.
- `workspaceId` (`string`, required): No description.
- `returnAiFields` (`boolean`, optional): Include the AI field values of the deal in aiFields.

Example input: `{"dealId":"<dealId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_deal_view`

Get Deal View · Read-only

Fetch the rows of a Claap deal view: each row is a deal matching the view filters, with a value for each of the view columns, including AI-generated insight columns. Discover available views via list_deal_views. To fetch only the rows without column values, prefer list_deals with viewId.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `viewId` (`string`, required): The ID of the deal view to fetch rows for. Use list_deal_views to discover IDs.
- `workspaceId` (`string`, required): No description.
- `cursor` (`string`, optional): Opaque cursor returned as `nextCursor` by a previous call. Pass the value VERBATIM to fetch the next page of results. Omit on the first call.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100). ALWAYS paginate via `nextCursor`.

Example input: `{"viewId":"<viewId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_email`

GetEmail · Read-only

Fetch the full email content including the body for a given message ID from the workspace.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `messageId` (`string`, required): The email message ID to fetch.
- `workspaceId` (`string`, required): The Claap workspace ID the email belongs to.

Example input: `{"messageId":"<messageId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_recording`

Get Recording · Read-only

Get ONE recording (captured meeting or call) of a Claap workspace by recordingId, with its full metadata and its AI-generated summary. The summary is the cheap way to know what a meeting was about — prefer it over get_recording_transcript, which returns the entire transcript. Note the singular name: this tool takes exactly one recordingId and returns one recording. To search or filter across many recordings, use get_recordings (plural) instead. Discover the recordingId via get_recordings or search_recording_transcripts.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `recordingId` (`string`, required): Discover the recordingId via get_recordings or search_recording_transcripts.
- `workspaceId` (`string`, required): No description.

Example input: `{"recordingId":"<recordingId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_recording_transcript`

GetRecordingTranscript · Read-only

Fetch the full transcript for a given recording.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `recordingId` (`string`, required): The ID of the recording to get the transcript for.
- `workspaceId` (`string`, required): The Claap workspace ID the recording belongs to.

Example input: `{"recordingId":"<recordingId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_recording_view`

GetRecordingView · Read-only

Fetch the rows of a Claap recording view: each row is a recording matching the view filters, with AI-generated insight values for each of the view columns. Workspaces define their own views (common examples: MEDDIC/SPICED qualification, hiring rubrics, objection trackers). Discover available views via list_recording_views.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `viewId` (`string`, required): The ID of the recording view to fetch rows for.
- `workspaceId` (`string`, required): The Claap workspace ID the view belongs to.
- `cursor` (`string`, optional): Opaque cursor returned as nextCursor by a previous call. Pass verbatim to fetch the next page.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100).

Example input: `{"viewId":"<viewId>","workspaceId":"<workspaceId>"}`

### `claapmcp_get_recordings`

GetRecordings · Read-only

Query the recording metadata database with a set of filters. Returns a collection of recording metadata ordered by relevance and creation date descending.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspaceId` (`string`, required): The Claap workspace ID to query recordings from.
- `cursor` (`string`, optional): Opaque cursor returned as nextCursor by a previous call. Pass verbatim to fetch the next page.
- `filters` (`object`, optional): Filters to apply to the recording query.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100).
- `sort` (`array`, optional): Sort dimensions. When omitted, results are ordered by relevance and creation date descending.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_get_user`

Get User · Read-only

Get a single user of a Claap workspace by userId or email, with its id, name, email, state, license and role.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `email` (`string`, optional): Email of the user to fetch.
- `userId` (`string`, optional): Discover the userId via list_users.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_admin_automations`

List Admin Automations · Read-only

List the admin automations of a Claap workspace, in priority order (the first admin automation has the highest priority). Admin automations automatically apply actions (autoRecord, autoShare, moveToFolder i.e. auto-add to a folder, updateOverview i.e. auto-personalize the summary) to the meetings matching their filters.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_companies`

List Companies · Read-only

List the companies of a Claap workspace, sorted by creation date descending and paginated with a cursor. Pass viewId to return the companies of a saved view, applying its filters and sorting. Use search_companies instead for other filtered or sorted queries, and get_company to read a single company.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `cursor` (`string`, optional): Paginate the results starting at the cursor returned by a previous call.
- `limit` (`number`, optional): Return at most "limit" results. Default 20.
- `viewId` (`string`, optional): Return only the companies of this view: its filters and sorting apply. Use list_company_views to discover view IDs.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_company_fields`

List Company Fields · Read-only

List the AI field library of a Claap workspace for companies. An AI field is a custom prompt with a typed output (paragraph, list, select, rating...) evaluated by AI against the activity of each company. Returns the full definition of each field, including the fieldId accepted by update_company_field and by the AiSection columns of create_company_view and update_company_view. Archived fields are excluded unless includeArchived is true.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `includeArchived` (`boolean`, optional): Include archived AI fields in the results. Defaults to false.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_company_views`

List Company Views · Read-only

List the company views (saved presets) of a Claap workspace, with their viewId, filters, sorting and columns. Use it to find the viewId expected by get_company_view and update_company_view. Built-in default views are included and flagged with isDefault: true; they cannot be updated or deleted.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_contact_views`

List Contact Views · Read-only

List the contact views (saved presets) of a Claap workspace, with their viewId, filters, sorting and columns. Use it to find the viewId expected by get_contact_view and update_contact_view. Built-in default views are included and flagged with isDefault: true; they cannot be updated or deleted.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_contacts`

List Contacts · Read-only

List the contacts of a Claap workspace, sorted by name ascending and paginated with a cursor. Pass viewId to return the contacts of a saved view, applying its filters and sorting. Use search_contacts instead for other filtered or sorted queries, and get_contact to read a single contact. Contacts bound to a workspace user (userId set, isExternal false) are included but cannot be modified with update_contact.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `cursor` (`string`, optional): Paginate the results starting at the cursor returned by a previous call.
- `limit` (`number`, optional): Return at most "limit" results. Default 20.
- `viewId` (`string`, optional): Return only the contacts of this view: its filters and sorting apply. Use list_contact_views to discover view IDs.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_deal_fields`

List Deal Fields · Read-only

List the AI field library of a Claap workspace for deals. An AI field is a custom prompt with a typed output (paragraph, list, select, rating...) evaluated by AI against all the activity of each deal (recordings and emails). Returns the full definition of each field, including the fieldId accepted by update_deal_field and by the AiSection columns of create_deal_view and update_deal_view. Archived fields are excluded unless includeArchived is true.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `includeArchived` (`boolean`, optional): Include archived AI fields in the results. Defaults to false.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_deal_owners`

List Deal Owners · Read-only

List the deal owners of the CRM connected to a Claap workspace (only Hubspot is supported), with their name and email. Use it to discover the valid ownerId values accepted by update_deal, or to find the ownerId of a known email with the email filter.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `email` (`string`, optional): Return only the owners with this email (exact match).

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_deal_stages`

List Deal Stages · Read-only

List the deal stages of the CRM connected to a Claap workspace (only Hubspot is supported), with the pipeline each stage belongs to. Use it to discover the valid stageId values accepted by update_deal.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_deal_types`

List Deal Types · Read-only

List the deal types of the CRM connected to a Claap workspace (only Hubspot is supported). Use it to discover the valid typeId values accepted by update_deal.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_deal_views`

List Deal Views · Read-only

List the deal views (saved presets) of a Claap workspace, with their viewId, filters, sorting and columns. Use it to find the viewId expected by get_deal_view and update_deal_view. Built-in default views are included and flagged with isDefault: true; they cannot be updated or deleted.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_deals`

List Deals · Read-only

List the deals of a Claap workspace with their full CRM fields, sorted by opened date descending and paginated with a cursor. Pass viewId to return the deals of a saved view, applying its filters and sorting. Use search_deals instead for other filtered or sorted queries, and get_deal to read a single deal.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `cursor` (`string`, optional): Paginate the results starting at the cursor returned by a previous call.
- `limit` (`number`, optional): Return at most "limit" results. Default 20.
- `viewId` (`string`, optional): Return only the deals of this view: its filters and sorting apply. Use list_deal_views to discover view IDs.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_emails`

ListEmails · Read-only

List emails across the workspace with metadata (sender, recipients, subject, sent date). Supports filtering by contact, company, deal, or thread. Results are sorted by sent date.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspaceId` (`string`, required): The Claap workspace ID to list emails from.
- `companyId` (`string`, optional): Filter by company ID.
- `contactId` (`string`, optional): Filter by contact ID (sender or recipient).
- `cursor` (`string`, optional): Opaque cursor returned as nextCursor by a previous call. Pass verbatim to fetch the next page.
- `dealId` (`string`, optional): Filter by deal ID.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100).
- `sortBy` (`string`, optional): Sort field. Defaults to sentAt. One of: `sentAt`. Default: `sentAt`.
- `sortOrder` (`string`, optional): Sort order. Defaults to desc (most recent first). One of: `asc`, `desc`. Default: `desc`.
- `threadId` (`string`, optional): Filter by email thread ID.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_recording_fields`

List Recording Fields · Read-only

List the AI field library of a Claap workspace for meeting recordings. An AI field is a custom prompt with a typed output (paragraph, list, select, rating...) evaluated by AI against each recording transcript. Returns the full definition of each field, including the fieldId accepted by update_recording_field and by the AiSection columns of create_recording_view and update_recording_view. Archived fields are excluded unless includeArchived is true. One-off view sections that were never promoted to the library are not included; discover those via the AiSection columns of list_recording_views.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `includeArchived` (`boolean`, optional): Include archived AI fields in the results. Defaults to false.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_recording_views`

ListRecordingViews · Read-only

List the recording views configured in a Claap workspace. A view is a curated set of recordings enriched with AI-generated insight columns. Common examples include sales qualification frameworks (MEDDIC, SPICED, BANT), hiring rubrics, and objection trackers. Prefer views over get_recordings when a view matches the user question. Use get_recording_view to read a specific view's rows.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspaceId` (`string`, required): The Claap workspace ID to list recording views from.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_users`

List Users · Read-only

List the users of a Claap workspace with their id, name, email, state, license and role, paginated with a cursor. Use this to resolve user ids for user-based filters. Use search_contacts instead to search external contacts.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `cursor` (`string`, optional): Paginate the results starting at the cursor returned by a previous call. Pages may contain fewer than "limit" results; iterate until no nextCursor is returned.
- `limit` (`number`, optional): Return at most "limit" results. Default 20.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_views`

List Views · Read-only

List the views (saved presets) of a Claap workspace across recordings (meetings), deals, companies and contacts, grouped by entity. Restrict the output with the entities parameter: the entities set to false are returned as empty arrays; when omitted, all entities are listed. Built-in default views are included and flagged with isDefault: true; they cannot be updated or deleted.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `workspaceId` (`string`, required): No description.
- `entities` (`object`, optional): No description.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_list_workspaces`

ListWorkspaces · Read-only

List all Claap workspaces the user has access to.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `claapmcp_search_companies`

SearchCompanies · Read-only

Search the Claap company database.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspaceId` (`string`, required): The Claap workspace ID to search within.
- `cursor` (`string`, optional): Opaque cursor returned as nextCursor by a previous call. Pass verbatim to fetch the next page.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100).
- `name` (`string`, optional): Complete or partial name or domain of the company to search for.
- `sort` (`array`, optional): Sort dimensions to apply to the search results.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_search_contacts`

SearchContacts · Read-only

Search the Claap contact database. Returns both workspace users and external contacts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspaceId` (`string`, required): The Claap workspace ID to search within.
- `cursor` (`string`, optional): Opaque cursor returned as nextCursor by a previous call. Pass verbatim to fetch the next page.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100).
- `query` (`string`, optional): Complete or partial name, email or domain of the contact to search for.
- `sort` (`array`, optional): Sort dimensions to apply to the search results. When omitted, results are ordered by relevance.

Example input: `{"workspaceId":"<workspaceId>"}`

### `claapmcp_search_deals`

SearchDeals · Read-only

Search the Claap deal database with filters and sorting options.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filters` (`object`, required): Filters to apply to the search.
- `workspaceId` (`string`, required): The Claap workspace ID to search within.
- `cursor` (`string`, optional): Opaque cursor returned as nextCursor by a previous call. Pass verbatim to fetch the next page.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100).
- `sort` (`array`, optional): Sort dimensions to apply to the search results.

Example input: `{"filters":{},"workspaceId":"<workspaceId>"}`

### `claapmcp_search_emails`

SearchEmails · Read-only

Search email content using semantic or keyword search across the workspace. Returns results as chunks with text snippets and metadata. Multiple results can be related to the same email (different chunks from the same message). Supports filtering by contact, company, or deal.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `search` (`object`, required): Search query and technique.
- `workspaceId` (`string`, required): The Claap workspace ID to search within.
- `companyId` (`string`, optional): Filter by company ID.
- `contactId` (`string`, optional): Filter by contact ID (sender or recipient).
- `cursor` (`string`, optional): Opaque cursor for keyword search pagination. Not supported for semantic search.
- `dealId` (`string`, optional): Filter by deal ID.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100).

Example input: `{"search":{},"workspaceId":"<workspaceId>"}`

### `claapmcp_search_recording_transcripts`

SearchRecordingTranscripts · Read-only

Perform keyword or semantic search on the recording transcript database, with optional filters on the recording metadata. Returns a collection of transcript chunks grouped by recording.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `search` (`object`, required): Search query and technique.
- `workspaceId` (`string`, required): The Claap workspace ID to search within.
- `cursor` (`string`, optional): Opaque cursor for keyword search pagination. Not supported for semantic search.
- `filters` (`object`, optional): Filters to apply to the search.
- `limit` (`number`, optional): Maximum number of results per page (default 10, max 100).

Example input: `{"search":{},"workspaceId":"<workspaceId>"}`

### `claapmcp_create_admin_automation`

Create Admin Automation · Write

Create an admin automation in a Claap workspace. An admin automation applies actions (autoRecord, autoShare, moveToFolder i.e. auto-add to a folder, updateOverview i.e. auto-personalize the summary with the given sectionIds) to the meetings matching its filters. Filter types: MeetingType (Internal/External), OrganizerIs (meeting host), ParticipantsContains (people), RecorderUserGroupIs (team), TextContains/TextIs/TextExists (title), MeetingSourceIs, FolderIs (folder/channel). Filters are combined with the combineWith operator (Or by default) and each filter can be negated with not. By default new admin automations get the highest priority; set beforeAdminAutomationId to insert the automation right before another one instead. By default admin automations are enforced (disallowUserOverride: true), meaning members cannot override them. When name is omitted it is generated from the actions and filters. When authenticating as a user, only workspace admins can create admin automations. The autoRecord action cannot be combined with a FolderIs filter.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `actions` (`object`, required): No description.
- `workspaceId` (`string`, required): No description.
- `beforeAdminAutomationId` (`string`, optional): No description.
- `combineWith` (`string`, optional): No description. One of: `And`, `Or`. Default: `Or`.
- `disallowUserOverride` (`boolean`, optional): No description. Default: `true`.
- `filters` (`array`, optional): No description.
- `name` (`string`, optional): No description.

Example input: `{"actions":{},"workspaceId":"<workspaceId>"}`

### `claapmcp_create_company_field`

Create Company Field · Write

Create an AI field for companies in a Claap workspace. An AI field is a custom prompt with a typed output (paragraph, list, select, rating...) evaluated by AI against the activity of each company. The created field joins the workspace AI field library and can be used as a view column: its fieldId matches the AiSection column fieldIds returned by list_company_views and accepted by create_company_view and update_company_view. The field is not visible in the app until it is added to a view. Creating a field does not generate values for existing companies. Select and MultiSelect output types require coloredSelectOptions. Check list_company_fields first to avoid creating a duplicate of an existing field. When authenticating with an API key, creatorEmail is required and sets the field author.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `prompt` (`object`, required): No description.
- `title` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `creatorEmail` (`string`, optional): No description.

Example input: `{"prompt":{},"title":"<title>","workspaceId":"<workspaceId>"}`

### `claapmcp_create_company_view`

Create Company View · Write

Create a company view (saved preset) in a Claap workspace, with filters, sorting and columns. Discover valid column, filter and sort identifiers via search_companies and list_company_views. When authenticating with an API key, creatorEmail is required and sets the view owner.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `columns` (`array`, optional): No description.
- `creatorEmail` (`string`, optional): No description.
- `description` (`string`, optional): No description.
- `filters` (`object`, optional): No description.
- `icon` (`string`, optional): No description.
- `sort` (`array`, optional): No description.
- `visibility` (`string`, optional): No description. One of: `Private`, `Public`.

Example input: `{"name":"<name>","workspaceId":"<workspaceId>"}`

### `claapmcp_create_contact_view`

Create Contact View · Write

Create a contact view (saved preset) in a Claap workspace, with filters, sorting and columns. Discover valid column, filter and sort identifiers via search_contacts and list_contact_views. When authenticating with an API key, creatorEmail is required and sets the view owner.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `columns` (`array`, optional): No description.
- `creatorEmail` (`string`, optional): No description.
- `description` (`string`, optional): No description.
- `filters` (`object`, optional): No description.
- `icon` (`string`, optional): No description.
- `sort` (`array`, optional): No description.
- `visibility` (`string`, optional): No description. One of: `Private`, `Public`.

Example input: `{"name":"<name>","workspaceId":"<workspaceId>"}`

### `claapmcp_create_deal_field`

Create Deal Field · Write

Create an AI field for deals in a Claap workspace. An AI field is a custom prompt with a typed output (paragraph, list, select, rating...) evaluated by AI against all the activity of each deal (recordings and emails). The created field joins the workspace AI field library and can be used as a view column: its fieldId matches the AiSection column fieldIds returned by list_deal_views and accepted by create_deal_view and update_deal_view. The field is not visible in the app until it is added to a view. Creating a field does not generate values for existing deals. Select and MultiSelect output types require coloredSelectOptions. crmField maps the field to a CRM property and is validated against the connected CRM. Check list_deal_fields first to avoid creating a duplicate of an existing field. When authenticating with an API key, creatorEmail is required and sets the field author.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `prompt` (`object`, required): No description.
- `title` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `creatorEmail` (`string`, optional): No description.
- `crmField` (`object`, optional): No description.

Example input: `{"prompt":{},"title":"<title>","workspaceId":"<workspaceId>"}`

### `claapmcp_create_deal_view`

Create Deal View · Write

Create a deal view (saved preset) in a Claap workspace, with filters, sorting and columns (including AI-generated insight columns). Discover valid column, filter and sort identifiers via search_deals and list_deal_views. When authenticating with an API key, creatorEmail is required and sets the view owner.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `columns` (`array`, optional): No description.
- `creatorEmail` (`string`, optional): No description.
- `description` (`string`, optional): No description.
- `filters` (`object`, optional): No description.
- `icon` (`string`, optional): No description.
- `sort` (`array`, optional): No description.
- `visibility` (`string`, optional): No description. One of: `Private`, `Public`.

Example input: `{"name":"<name>","workspaceId":"<workspaceId>"}`

### `claapmcp_create_recording_field`

Create Recording Field · Write

Create an AI field for meeting recordings in a Claap workspace. An AI field is a custom prompt with a typed output (paragraph, list, select, rating...) evaluated by AI against each recording transcript. The created field joins the workspace AI field library and can be used as a view column: its fieldId matches the AiSection column fieldIds returned by list_recording_views and accepted by create_recording_view and update_recording_view. The field is not visible in the app until it is added to a view. Creating a field does not generate values for existing recordings. Select and MultiSelect output types require coloredSelectOptions. crmField maps the field to a CRM property and is validated against the connected CRM. Check list_recording_fields first to avoid creating a duplicate of an existing field. When authenticating with an API key, creatorEmail is required and sets the field author.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `prompt` (`object`, required): No description.
- `title` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `creatorEmail` (`string`, optional): No description.
- `crmField` (`object`, optional): Optional mapping to a CRM property, validated against the connected CRM.

Example input: `{"prompt":{},"title":"<title>","workspaceId":"<workspaceId>"}`

### `claapmcp_create_recording_view`

Create Recording View · Write

Create a recording view (saved preset) in a Claap workspace. A view is a curated set of recordings (meetings) with filters, sorting and columns (including AI-generated insight columns). Discover valid column identifiers, including AI insight fieldIds, via list_recording_views. Valid filter and sort fields are defined in the input schema of this tool. When authenticating with an API key, creatorEmail is required and sets the view owner.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `columns` (`array`, optional): No description.
- `creatorEmail` (`string`, optional): No description.
- `description` (`string`, optional): No description.
- `filters` (`object`, optional): No description.
- `icon` (`string`, optional): No description.
- `sort` (`array`, optional): No description.

Example input: `{"name":"<name>","workspaceId":"<workspaceId>"}`

### `claapmcp_create_contact`

Create Contact · Destructive

Create a contact in a Claap workspace with the same fields as the manual creation flow of the app: a name and an email address. If a contact already exists for this email, its name is updated instead. When authenticating with an API key, creatorEmail is required and sets the contact author.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, required): Contact email address.
- `name` (`string`, required): Contact name.
- `workspaceId` (`string`, required): No description.
- `creatorEmail` (`string`, optional): Email of the workspace member recorded as the author of this manual change.

Example input: `{"email":"<email>","name":"<name>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_admin_automation`

Update Admin Automation · Destructive

Update an existing admin automation of a Claap workspace. This is a full replace: the admin automation becomes exactly what is sent, so always provide the complete desired actions, filters, combineWith and disallowUserOverride values (unlike update_recording_view, omitted fields are not preserved). Set beforeAdminAutomationId to move the automation right before another one; when omitted the priority is unchanged. Discover the adminAutomationId with list_admin_automations. When authenticating as a user, only workspace admins can update admin automations.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `actions` (`object`, required): No description.
- `adminAutomationId` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `beforeAdminAutomationId` (`string`, optional): No description.
- `combineWith` (`string`, optional): No description. One of: `And`, `Or`. Default: `Or`.
- `disallowUserOverride` (`boolean`, optional): No description. Default: `true`.
- `filters` (`array`, optional): No description.
- `name` (`string`, optional): No description.

Example input: `{"actions":{},"adminAutomationId":"<adminAutomationId>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_company_field`

Update Company Field · Destructive

Update an AI field for companies. This is a full replace: always send the complete desired definition (title and prompt). Discover fieldIds and current definitions via list_company_fields. The field is not visible in the app until it is added to a view.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `fieldId` (`string`, required): No description.
- `prompt` (`object`, required): No description.
- `title` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.

Example input: `{"fieldId":"<fieldId>","prompt":{},"title":"<title>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_company_view`

Update Company View · Destructive

Update an existing company view (saved preset). Only the provided top-level fields are changed; omitted ones are left as-is. Beware that filters is replaced as a whole: any filter missing from a provided filters object is cleared, including insights, which may have been set from the app. Send the filters returned by get_company_view with your changes applied. Pass icon as null to clear it, and description as an empty string to clear it. Discover the viewId via list_company_views.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `viewId` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `columns` (`array`, optional): No description.
- `description` (`string`, optional): No description.
- `filters` (`object`, optional): No description.
- `icon` (`string`, optional): No description.
- `name` (`string`, optional): No description.
- `sort` (`array`, optional): No description.

Example input: `{"viewId":"<viewId>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_contact`

Update Contact · Destructive

Update the name and/or email address of an existing contact of a Claap workspace. Only the provided fields are changed; omitted fields are left as-is. Contacts bound to a workspace user cannot be edited, and the email of a contact linked to a CRM entity must be changed in the CRM instead. Discover the contactId via list_contacts or search_contacts. When authenticating with an API key, creatorEmail is required and sets the author of the change.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `contactId` (`string`, required): Discover the contactId via list_contacts or search_contacts.
- `workspaceId` (`string`, required): No description.
- `creatorEmail` (`string`, optional): Email of the workspace member recorded as the author of this manual change.
- `email` (`string`, optional): New contact email address.
- `name` (`string`, optional): New contact name.

Example input: `{"contactId":"<contactId>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_contact_view`

Update Contact View · Destructive

Update an existing contact view (saved preset). Only the provided fields are changed; omitted fields are left as-is. Pass icon as null to clear it, and description as an empty string to clear it. Discover the viewId via list_contact_views.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `viewId` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `columns` (`array`, optional): No description.
- `description` (`string`, optional): No description.
- `filters` (`object`, optional): No description.
- `icon` (`string`, optional): No description.
- `name` (`string`, optional): No description.
- `sort` (`array`, optional): No description.

Example input: `{"viewId":"<viewId>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_deal`

Update Deal · Destructive

Update an existing deal of a Claap workspace. The update is written to the connected CRM (only Hubspot is supported) then mirrored on the Claap deal. Only the provided fields are changed; omitted fields are left as-is. Discover the dealId via list_deals or search_deals, and the valid stageId, typeId and ownerId values via list_deal_stages, list_deal_types and list_deal_owners.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `dealId` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `amount` (`number`, optional): Deal amount, in the currency configured in the CRM.
- `closedAt` (`string`, optional): Deal close date (ISO datetime).
- `ownerId` (`string`, optional): Deal owner id in the CRM (ownerCrmId). List the valid ids with the list_deal_owners tool.
- `stageId` (`string`, optional): Stage id in the CRM (stageCrmId). List the valid ids with the list_deal_stages tool.
- `title` (`string`, optional): Deal title.
- `typeId` (`string`, optional): Deal type id in the CRM (dealTypeCrmId). List the valid ids with the list_deal_types tool.

Example input: `{"dealId":"<dealId>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_deal_field`

Update Deal Field · Destructive

Update an AI field for deals. This is a full replace: always send the complete desired definition (title, prompt, and the optional crmField); omitted optional fields are cleared. Discover fieldIds and current definitions via list_deal_fields. The field is not visible in the app until it is added to a view.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `fieldId` (`string`, required): No description.
- `prompt` (`object`, required): No description.
- `title` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `crmField` (`object`, optional): No description.

Example input: `{"fieldId":"<fieldId>","prompt":{},"title":"<title>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_deal_view`

Update Deal View · Destructive

Update an existing deal view (saved preset). Only the provided fields are changed; omitted fields are left as-is. Pass icon as null to clear it, and description as an empty string to clear it. Discover the viewId via list_deal_views.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `viewId` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `columns` (`array`, optional): No description.
- `description` (`string`, optional): No description.
- `filters` (`object`, optional): No description.
- `icon` (`string`, optional): No description.
- `name` (`string`, optional): No description.
- `sort` (`array`, optional): No description.

Example input: `{"viewId":"<viewId>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_recording_field`

Update Recording Field · Destructive

Update an AI field for meeting recordings. This is a full replace: always send the complete desired definition (title, prompt, and the optional crmField); omitted optional fields are cleared. Discover fieldIds and current definitions via list_recording_fields. The field is not visible in the app until it is added to a view.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `fieldId` (`string`, required): No description.
- `prompt` (`object`, required): No description.
- `title` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `crmField` (`object`, optional): No description.

Example input: `{"fieldId":"<fieldId>","prompt":{},"title":"<title>","workspaceId":"<workspaceId>"}`

### `claapmcp_update_recording_view`

Update Recording View · Destructive

Update an existing recording view (saved preset of meetings). Only the provided fields are changed; omitted fields are left as-is. Pass icon as null to clear it, and description as an empty string to clear it. Discover the viewId and valid column identifiers, including AI insight fieldIds, via list_recording_views. Valid filter and sort fields are defined in the input schema of this tool.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `viewId` (`string`, required): No description.
- `workspaceId` (`string`, required): No description.
- `columns` (`array`, optional): No description.
- `description` (`string`, optional): No description.
- `filters` (`object`, optional): No description.
- `icon` (`string`, optional): No description.
- `name` (`string`, optional): No description.
- `sort` (`array`, optional): No description.

Example input: `{"viewId":"<viewId>","workspaceId":"<workspaceId>"}`

## Related

Other Collaboration connectors ([all 43](/agentkit/connectors/?category=collaboration)):

- [Slack](/agentkit/connectors/slack/): Scalekit connector, OAuth, 96 tools
- [Microsoft 365](/agentkit/connectors/microsoft365/): Scalekit connector, OAuth, 317 tools
- [Notion](/agentkit/connectors/notion/): Scalekit connector, OAuth, 51 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
