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
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. 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>Create the Catchr MCP connection
In AgentKit > Connections, create a Catchr MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Catchr MCP server, so you don't need to register an OAuth app.
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.actionsconst connector = 'catchrmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'catchrmcp_describe_run_api_request_schema',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_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.actionsconnection_name = "catchrmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Catchr MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="catchrmcp_describe_run_api_request_schema",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolcatchrmcp_describe_run_api_request_schemaReturn the detailed input schema and filter guide for run_api_request_json.Read-onlyDescribe 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-onlyList 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-onlyList 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-onlyList 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-onlyList 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-onlyList 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-onlyList 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.WriteRun 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_DAYSCUSTOMSINCEdefaultCUSTOM 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.
No tools match.