Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Claap MCP server

Vendor MCP
Open markdown

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.

Tools
54
What they doRead · write · destructive
35 · 8 · 1135 read8 write11 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

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

    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

    quickstart.mts
    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)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • claapmcp_get_companyGet a single company of a Claap workspace with its full CRM fields, domains, related contactIds and dealIds.Read-only

    Get Company

    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.

    Inputs

    companyIdstringrequired
    Discover the companyId via list_companies or search_companies.
    workspaceIdstringrequired
    No description.
  • claapmcp_get_company_viewFetch 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.Read-only

    Get Company View

    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.

    Inputs

    viewIdstringrequired
    The ID of the company view to fetch rows for. Use list_company_views to discover IDs.
    workspaceIdstringrequired
    No description.
    cursorstring
    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.
    limitnumber
    Maximum number of results per page (default 10, max 100). ALWAYS paginate via `nextCursor`.
  • claapmcp_get_contactGet a single contact of a Claap workspace with its full CRM fields and its AI-generated summary when one has been generated.Read-only

    Get Contact

    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.

    Inputs

    contactIdstringrequired
    Discover the contactId via list_contacts or search_contacts.
    workspaceIdstringrequired
    No description.
  • claapmcp_get_contact_viewFetch 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.Read-only

    Get Contact View

    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.

    Inputs

    viewIdstringrequired
    The ID of the contact view to fetch rows for. Use list_contact_views to discover IDs.
    workspaceIdstringrequired
    No description.
    cursorstring
    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.
    limitnumber
    Maximum number of results per page (default 10, max 100). The response includes `total` and, when more results exist, `nextCursor`. ALWAYS paginate via `nextCursor`.
  • claapmcp_get_dealGet a single deal of a Claap workspace with its full CRM fields.Read-only

    Get Deal

    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.

    Inputs

    dealIdstringrequired
    Discover the dealId via list_deals or search_deals.
    workspaceIdstringrequired
    No description.
    returnAiFieldsboolean
    Include the AI field values of the deal in aiFields.
  • claapmcp_get_deal_viewFetch 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.Read-only

    Get Deal View

    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.

    Inputs

    viewIdstringrequired
    The ID of the deal view to fetch rows for. Use list_deal_views to discover IDs.
    workspaceIdstringrequired
    No description.
    cursorstring
    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.
    limitnumber
    Maximum number of results per page (default 10, max 100). ALWAYS paginate via `nextCursor`.
  • claapmcp_get_emailFetch the full email content including the body for a given message ID from the workspace.Read-only

    GetEmail

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

    Inputs

    messageIdstringrequired
    The email message ID to fetch.
    workspaceIdstringrequired
    The Claap workspace ID the email belongs to.
  • claapmcp_get_recordingGet ONE recording (captured meeting or call) of a Claap workspace by recordingId, with its full metadata and its AI-generated summary.Read-only

    Get Recording

    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.

    Inputs

    recordingIdstringrequired
    Discover the recordingId via get_recordings or search_recording_transcripts.
    workspaceIdstringrequired
    No description.