Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Gusto MCP server

Vendor MCP
Open markdown

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

Tools
71
What they doRead · write · destructive
53 · 17 · 153 read17 write1 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 Gusto MCP connection

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

    Scalekit credentials are available for Gusto 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 = 'gustomcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Gusto 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: 'gustomcp_get_company',
    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
  • gustomcp_get_companyRetrieve the company profile including legal name, entity type, EIN, and status.Read-only

    Get Company

    Retrieve the company profile including legal name, entity type, EIN, and status.

    Inputs

    company_uuidstring
    The UUID of the company to act on. Call get_token_info to list available company UUIDs.
  • gustomcp_get_company_onboarding_statusGet the company's onboarding status for its current experience, including outstanding questions, whether each is required, and their answer schemas.Read-only

    Get Company Onboarding Status

    Get the company's onboarding status for its current experience, including outstanding questions, whether each is required, and their answer schemas. Drives step-by-step onboarding: save answers with save_company_onboarding_answer and re-check status after each save since a save can reroute the remaining questions.

    Inputs

    company_uuidstring
    The UUID of the company to act on. Call get_token_info to list available company UUIDs.
  • gustomcp_get_compensationRetrieve a single pay rate record by UUID, including rate, frequency, and FLSA status.Read-only

    Get Compensation

    Retrieve a single pay rate record by UUID, including rate, frequency, and FLSA status.

    Inputs

    compensation_uuidstringrequired
    The unique identifier (UUID) for the record
  • gustomcp_get_contractorRetrieve full profile for a contractor by UUID, including name, email, and payment method.Read-only

    Get Contractor

    Retrieve full profile for a contractor by UUID, including name, email, and payment method.

    Inputs

    contractor_uuidstringrequired
    The unique identifier (UUID) for the contractor
    _contextstring
    The original user question or request that prompted this tool call
  • gustomcp_get_contractor_paymentRetrieve details for a single contractor payment by UUID, including amount and payment method.Read-only

    Get Contractor Payment

    Retrieve details for a single contractor payment by UUID, including amount and payment method.

    Inputs

    contractor_payment_uuidstringrequired
    The unique identifier (UUID) for the contractor payment
    _contextstring
    The original user question or request that prompted this tool call
  • gustomcp_get_contractor_payment_groupRetrieve all individual contractor payments within a batched payment group by UUID.Read-only

    Get Contractor Payment Group

    Retrieve all individual contractor payments within a batched payment group by UUID.

    Inputs

    contractor_payment_group_uuidstringrequired
    The unique identifier (UUID) for the contractor payment group
    _contextstring
    The original user question or request that prompted this tool call
  • gustomcp_get_contractor_payment_groupsReturns batched contractor payment runs for the company.Read-only

    Get Contractor Payment Groups

    Returns batched contractor payment runs for the company. A payment group represents multiple contractor payments processed together on the same date. Omit contractor_payment_group_uuid to list groups with their UUIDs, check dates, and processing status, optionally within a start_date to end_date range. Pass contractor_payment_group_uuid to fetch a single group with each contractor's payment amount and details from that batch. Payments identify contractors by contractor_uuid only, so call get_contractors once without contractor_uuid to get their names.

    Inputs

    company_uuidstring
    The UUID of the company to act on. Call get_token_info to list available company UUIDs.
    contractor_payment_group_uuidstring
    Optional. The UUID of one contractor payment group to fetch. Omit to list groups.
    end_datestring
    Optional end of date range (YYYY-MM-DD) when listing. Must be within 1 year of start_date.
    pageinteger
    Page number for pagination
    perinteger
    Number of items per page
    start_datestring
    Optional start of date range (YYYY-MM-DD) when listing. The range from start_date to end_date must be 1 year or less.
  • gustomcp_get_contractor_paymentsReturns payments made to independent contractors.Read-only

    Get Contractor Payments

    Returns payments made to independent contractors. To list payments, pass start_date and end_date, which shows payment amounts, check dates, and contractor info for that range. Use this read-only tool to see contractor payment history, audit 1099 payments, or find how much was paid. Pass contractor_payment_uuid instead to fetch one existing payment in full, including amount, payment method, bonus breakdown, and reimbursements. Use pay_contractors to create a new domestic contractor payment. Note - only includes payments to domestic (US) contractors. International contractor payments are not included.

    Inputs

    company_uuidstring
    The UUID of the company to act on. Call get_token_info to list available company UUIDs.
    contractor_payment_uuidstring
    Optional. The UUID of one contractor payment to fetch. Omit to list payments, which then requires start_date and end_date.
    contractor_uuidstring
    Filter payments by contractor UUID
    end_datestring
    End of date range (YYYY-MM-DD) for contractor payments. Required when listing.
    group_by_dateboolean
    When true, groups results by check date
    pageinteger
    Page number for pagination
    perinteger
    Number of items per page
    start_datestring
    Start of date range (YYYY-MM-DD) for contractor payments. Required when listing.