Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Catchr MCP server

Vendor MCP
Open markdown

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

Tools
8
What they doRead · write · destructive
7 · 1 · 07 read1 write0 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 Catchr MCP connection

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

    Scalekit credentials are available for Catchr 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 = 'catchrmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Catchr 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: 'catchrmcp_describe_run_api_request_schema',
    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
  • catchrmcp_describe_run_api_request_schemaReturn the detailed input schema and filter guide for run_api_request_json.Read-only

    Describe Run Api Request Schema

    Return the detailed input schema and filter guide for run_api_request_json.

    Inputs

    This tool takes no inputs.

  • catchrmcp_list_all_fieldsList all published fields across all platforms from Catchr field catalog.Read-only

    List All Fields

    List all published fields across all platforms from Catchr field catalog.

    Inputs

    groupByPlatformboolean
    When true, fields are grouped per platform in the response.default true
  • catchrmcp_list_available_accountsList available accounts for a platform and company, optionally scoped to one authorization.Read-only

    List Available Accounts

    List available accounts for a platform and company, optionally scoped to one authorization.

    Inputs

    platformstringrequired
    Catchr platform identifier.
    authorizationIdstring
    Filter accounts to those belonging to a specific authorization source.
    includeParentAccountsboolean
    When true, include parent-level accounts in the response.default false
    parentAccountIdstring
    Filter to children of a specific parent account ID.
  • catchrmcp_list_fields_by_platformList all fields for one platform.Read-only

    List Fields By Platform

    List all fields for one platform. Includes calculated/runtime fields when available.

    Inputs

    platformstringrequired
    Catchr platform identifier (for example: "facebook-ads").
    reportstring
    Optional provider report key used by restricted field providers.
  • catchrmcp_list_fields_for_accountList all fields for a specific account and authorization pair on a platform.Read-only

    List Fields For Account

    List all fields for a specific account and authorization pair on a platform.

    Inputs

    accountIdstringrequired
    The account ID scoped to the platform.
    authorizationIdintegerrequired
    The authorization (source) ID linked to this account.
    platformstringrequired
    Catchr platform identifier.
    reportstring
    Optional provider report key used by restricted field providers.
  • catchrmcp_list_platformsList Catchr platforms.Read-only

    List Platforms

    List Catchr platforms. You can list only connected platforms for the authenticated company.

    Inputs

    connectedOnlyboolean
    When true, return only platforms that are connected for the authenticated company.default false
  • catchrmcp_list_sourcesList network authorizations (sources) for the authenticated company, with optional available accounts.Read-only

    List Sources

    List network authorizations (sources) for the authenticated company, with optional available accounts.

    Inputs

    includeAvailableAccountsboolean
    When true, include the list of available accounts for each source.default true
    platformstring
    Filter sources to a specific platform identifier.
  • catchrmcp_run_api_request_jsonExecute the Catchr API request in JSON mode for one or multiple accounts.Write

    Run Api Request Json

    Execute the Catchr API request in JSON mode for one or multiple accounts.

    Inputs

    accountsarrayrequired
    One or more accounts to include in the request. Each entry requires id and authorization_id.
    platformstringrequired
    Catchr platform identifier.
    datestring
    Preset date range or CUSTOM to use start_date/end_date.one of TODAYYESTERDAYLAST_7_DAYSLAST_14_DAYSLAST_28_DAYSLAST_90_DAYSTHIS_WEEK_START_SUNDAYLAST_WEEK_START_SUNDAYTHIS_WEEK_START_MONDAYLAST_WEEK_START_MONDAYTHIS_MONTHLAST_MONTHLAST_X_MONTHLAST_X_WEEKLAST_X_DAYLAST_X_YEARTHIS_QUARTERLAST_QUARTERTHIS_YEARLAST_YEARLAST_365_DAYSCUSTOMSINCEdefault CUSTOM
    dimensionsarray
    List of dimension field keys to break down the data by.
    end_datestring
    End date in YYYY-MM-DD format. Required when date is CUSTOM.
    filtersarray
    List of filter conditions to apply to the query.
    include_current_dateboolean
    Whether to include the current (partial) date in the results.default false
    max_rowsinteger
    Maximum number of rows to return. Minimum 1.default 1000
    metricsarray
    List of metric field keys to include in the response.
    offset_timestring
    Timezone offset in hours applied to date boundaries.
    optionsobject
    Additional platform-specific options as a JSON object.
    sincestring
    ISO 8601 timestamp used when date is SINCE.
    sortsarray
    List of sort instructions applied to the result set.
    start_datestring
    Start date in YYYY-MM-DD format. Required when date is CUSTOM.