Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Clay MCP server

Vendor MCP
Open markdown

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

Tools
17
What they doRead · write · destructive
10 · 4 · 310 read4 write3 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 Clay MCP connection

    In AgentKit > Connections, create a Clay MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Clay 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 = 'claymcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Clay 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: 'claymcp_get_credits_available',
    toolInput: { rationale: 'YOUR_RATIONALE' },
    })
    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
  • claymcp_add_company_data_pointsAdd data points to companies in an existing search.Read-only

    Add Company Data Points

    Add data points to companies in an existing search. Supports enriching ALL companies or specific companies via entityIds. Use for tech stack, funding, headcount, competitors, or any custom research question about companies.

    Inputs

    dataPointsarrayrequired
    The data points to apply to the company
    rationalestringrequired
    Always provide a brief explanation of why you are calling this tool
    taskIdstringrequired
    The task ID identifying the search to add company data points to
    entityIdsarray
    Optional. Array of entityIds to enrich. When omitted, enriches all companies.
  • claymcp_add_contact_data_pointsAdd data points to contacts in an existing search.Read-only

    Add Contact Data Points

    Add data points to contacts in an existing search. Supports enriching ALL contacts or specific contacts via entityIds. Use for emails, phone numbers, work history, thought leadership, or any custom research question about contacts.

    Inputs

    dataPointsarrayrequired
    The data points to apply to the contacts
    rationalestringrequired
    Always provide a brief explanation of why you are calling this tool
    taskIdstringrequired
    The task ID identifying the search to add contact data points to
    entityIdsarray
    Optional. Array of entityIds to enrich. When omitted, enriches all contacts.
  • claymcp_ask_question_about_accountsAsk a natural language question about one or more accounts available in Clay Audiences.Read-only

    Ask Question About Accounts

    Ask a natural language question about one or more accounts available in Clay Audiences. An AI agent analyzes account data including contacts, opportunities, Gong calls, and emails to answer the question.

    Inputs

    accountIdsarrayrequired
    Account IDs to analyze (1-10)
    questionstringrequired
    Natural language question about the accounts
    rationalestringrequired
    Always provide a brief explanation of why you are calling this tool
  • claymcp_get_credits_availableCheck if credits are available for the workspace.Read-only

    Get Credits Available

    Check if credits are available for the workspace. Returns hasWorkspaceCredits, hasSalesRepCredits, and (when credit budgets are enabled) hasBudgetCredits.

    Inputs

    rationalestringrequired
    Always provide a brief explanation of why you are calling this tool
  • claymcp_get_current_workspaceReport which Clay workspace this connection is pinned to.Read-only

    Get Current Workspace

    Report which Clay workspace this connection is pinned to. Returns workspaceName, workspaceId, and workspaceUrl. Use when the user asks which workspace they are connected to, or to confirm where searches and enrichments will run.

    Inputs

    rationalestringrequired
    Always provide a brief explanation of why you are calling this tool
  • claymcp_get_subroutine_input_optionsFetch the available dropdown options for a subroutine input that has a configured options source.Read-only

    Get Subroutine Input Options

    Fetch the available dropdown options for a subroutine input that has a configured options source.

    Inputs

    inputNamestringrequired
    The name of the input whose options to fetch.
    rationalestringrequired
    Always provide a brief explanation of why you are calling this tool
    subroutine_idstringrequired
    The ID of the subroutine.
  • claymcp_get_taskGet task status and results by task ID.Read-only

    Get Task

    Get task status and results by task ID. Handles all task types (search, direct) and returns the current state. Accepts universal mcp-task-* IDs and legacy cgas-search-id-* IDs.

    Inputs

    rationalestringrequired
    Always provide a brief explanation of why you are calling this tool
    taskIdstringrequired
    The task ID to retrieve (mcp-task-* or legacy cgas-search-id-*)
    pageinteger
    Optional 1-based page of entities for direct tasks (100 per page). Defaults to 1.
  • claymcp_get_task_contextRetrieve the current state of a task — all entities, enrichment values, and statuses.Read-only

    Get Task Context

    Retrieve the current state of a task — all entities, enrichment values, and statuses. Call this to get actual enrichment results (emails, phone numbers, work history, custom data points) after a search or enrichment operation.

    Inputs

    rationalestringrequired
    Always provide a brief explanation of why you are calling this tool
    taskIdstringrequired
    The task ID to retrieve (mcp-task-* or legacy cgas-search-id-*)
    entityIdsarray
    Optional. Pass specific entity IDs to retrieve only those entities. Leave empty or omit to retrieve all entities for the task.
    pageinteger
    Optional 1-based page of entities for direct tasks (100 per page). Defaults to 1. Ignored when entityIds is provided.