Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Activepieces MCP server

Vendor MCP
Open markdown

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

Tools
44
What they doRead · write · destructive
19 · 19 · 619 read19 write6 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 Activepieces MCP connection

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

    Scalekit credentials are available for Activepieces 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 = 'activepiecesmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Activepieces 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: 'activepiecesmcp_ap_list_ai_models',
    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
  • activepiecesmcp_ap_find_recordsQuery records from a table with optional filtering.Read-only

    FindRecords

    Query records from a table with optional filtering. Operators: eq, neq, gt, gte, lt, lte, co, exists, not_exists.

    Inputs

    tableIdstringrequired
    The table ID. Use ap_list_tables to find it.
    filtersarray
    Optional filters. All filters are combined with AND logic.
    limitnumber
    Max records to return (default 50, max 500)default 50
  • activepiecesmcp_ap_flow_structureGet the structure of a flow: step tree (parent/child), each step type, configuration status (configured/unconfigured/invalid), and valid insert locations for ap_add_step.Read-only

    FlowStructure

    Get the structure of a flow: step tree (parent/child), each step type, configuration status (configured/unconfigured/invalid), and valid insert locations for ap_add_step.

    Inputs

    flowIdstringrequired
    The id of the flow
  • activepiecesmcp_ap_get_piece_propsGet the input schema for a piece action or trigger, plus AI guidance for using it: an AI-written description of what it does, an idempotency hint, and — when available — the output field paths it produces (for triggers, also derived from sample data).Read-only

    GetPieceProps

    Get the input schema for a piece action or trigger, plus AI guidance for using it: an AI-written description of what it does, an idempotency hint, and — when available — the output field paths it produces (for triggers, also derived from sample data). Use the AI description to pick the right action; when output fields are listed, reference them directly downstream as {{step['output'].path}}. Pass auth to resolve dynamic dropdowns and dynamic property sub-fields (e.g. Custom API Call url/body fields).

    Inputs

    actionOrTriggerNamestringrequired
    The action or trigger name (e.g. "send_channel_message"). Use ap_research_pieces with pieceNames to get valid values.
    pieceNamestringrequired
    The piece name (e.g. "@activepieces/piece-slack"). Use ap_research_pieces to get valid values.
    typestringrequired
    Whether to look up an action or a trigger.one of actiontrigger
    authstring
    Connection externalId from ap_list_connections. When provided, dynamic dropdowns and dynamic property sub-fields are resolved via your account.
    flowIdstring
    Flow ID for resolving dependent dropdowns that need step context. Optional — most dropdowns work without it.
    inputobject
    Known input values to resolve dependent dynamic properties.
  • activepiecesmcp_ap_get_runGet detailed results of a flow run including step-by-step outputs, errors, and durations.Read-only

    GetRun

    Get detailed results of a flow run including step-by-step outputs, errors, and durations.

    Inputs

    flowRunIdstringrequired
    The ID of the flow run. Use ap_list_runs to find it.
  • activepiecesmcp_ap_list_ai_modelsList configured AI providers and their available models.Read-only

    ListAiModels

    List configured AI providers and their available models. Use this to discover valid provider and model values for configuring Run Agent steps. The output shows provider names and model IDs needed for the aiProviderModel input.

    Inputs

    providerstring
    Filter by provider name. Omit to list all configured providers and their models.one of openaiopenrouteranthropicazuregoogleactivepiecescloudflare-gatewaycustombedrockmistral
  • activepiecesmcp_ap_list_connectionsList OAuth/app connections in the project.Read-only

    ListConnections

    List OAuth/app connections in the project. Returns externalId needed for the auth parameter on steps.

    Inputs

    displayNamestring
    Filter by connection display name (partial, case-insensitive match). Use to find a connection by its label, e.g. "My Gmail" or "Slack workspace".
    pieceNamestring
    Filter by piece name. Short names like "slack" or "google-drive" are auto-expanded to full format (e.g. "@activepieces/piece-slack"). You can also pass the full name directly.
    statusarray
    Filter by status: ACTIVE (working), MISSING (deleted or inaccessible), ERROR (auth/refresh failed). Omit to return all statuses.
  • activepiecesmcp_ap_list_flowsList flows in the current project with status, trigger type, and published state.Read-only

    ListFlows

    List flows in the current project with status, trigger type, and published state.

    Inputs

    limitinteger
    Max flows to return (default 100, max 500).default 100
    namestring
    Filter by flow name (partial match).
    statusstring
    Filter by status: ENABLED or DISABLED.one of ENABLEDDISABLED
  • activepiecesmcp_ap_list_runsList recent flow runs with optional filters.Read-only

    ListRuns

    List recent flow runs with optional filters. Returns run ID, status, timestamps, and failed step info.

    Inputs

    environmentstring
    Filter by environment: PRODUCTION (live runs) or TESTING (manual test runs). Defaults to PRODUCTION when no flowId is given, since cross-environment scans on the runs table are slow.one of PRODUCTIONTESTING
    flowIdstring
    Filter by flow ID. Use ap_list_flows to find it.
    limitnumber
    Max runs to return (default 10, max 50)default 10
    statusstring
    Filter by status: SUCCEEDED, FAILED, RUNNING, QUEUED, PAUSED, TIMEOUT, etc.one of FAILEDQUOTA_EXCEEDEDINTERNAL_ERRORPAUSEDQUEUEDRUNNINGSUCCEEDEDMEMORY_LIMIT_EXCEEDEDTIMEOUTCANCELEDLOG_SIZE_EXCEEDED