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 57 tools.

Tools
57
What they doRead · write · destructive
38 · 18 · 138 read18 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_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.
  • gustomcp_get_contractorsReturns the company's independent contractors (1099 workers).Read-only

    Get Contractors

    Returns the company's independent contractors (1099 workers). Unlike employees (W-2), contractors are paid separately and file their own taxes. Omit contractor_uuid to list contractors with pagination and search, returning UUIDs, names, and basic info. Use this read-only tool to find contractor UUIDs or get a roster of non-employee workers; use pay_contractors to create a new domestic contractor payment. To look up several contractors at once, such as everyone in a payment group, list them in one call without contractor_uuid and match on UUID rather than fetching each one. The list includes inactive contractors, so check the is_active field for current status. Pass contractor_uuid to fetch one contractor's full profile, including name, email, business name (if applicable), payment method, and engagement dates. Note - this only includes domestic (US-based) contractors. International contractors are not included in results. If the company has international contractors, mention that totals reflect domestic contractors only.

    Inputs

    company_uuidstring
    The UUID of the company to act on. Call get_token_info to list available company UUIDs.
    contractor_uuidstring
    Optional. The UUID of one contractor to fetch. Omit to list contractors.
    includestring
    Comma-separated fields to include: company_name, portal_invitations
    onboardedboolean
    Filter by contractors who have completed onboarding
    onboarded_activeboolean
    Filter by contractors who are onboarded and currently active
    pageinteger
    Page number for pagination
    perinteger
    Number of items per page
    search_termstring
    A string to search for in names
    sort_bystring
    Sort field and optional direction, e.g. name:asc. Supported fields: created_at, name, onboarding_status, type
    terminatedboolean
    Filter by contractors who are no longer active
    terminated_todayboolean
    Filter by contractors whose last day was today
  • gustomcp_get_departmentsReturns the company's departments with their UUIDs, titles, and the UUIDs of the employees and contractors assigned to each.Read-only

    Get Departments

    Returns the company's departments with their UUIDs, titles, and the UUIDs of the employees and contractors assigned to each. Omit department_uuid to list every department, which is enough to see the org breakdown or department headcounts. Pass department_uuid to fetch a single department. Members are returned as UUIDs only, so use list_employees to resolve names. Note - department employee lists and headcounts only include domestic (US) employees. International employees are not reflected in these counts.

    Inputs

    company_uuidstring
    The UUID of the company to act on. Call get_token_info to list available company UUIDs.
    department_uuidstring
    Optional. The UUID of one department to fetch. Omit to list all departments.
  • gustomcp_get_employeeRetrieve full profile for an employee by UUID, including name, hire date, job, and location.Read-only

    Get Employee

    Retrieve full profile for an employee by UUID, including name, hire date, job, and location.

    Inputs

    employee_uuidstringrequired
    The unique identifier (UUID) for the employee to retrieve
    includestring
    Comma-separated fields to include: all_compensations, all_home_addresses, company_name, current_home_address, custom_fields, portal_invitations