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

Tools
50
What they doRead · write · destructive
41 · 8 · 141 read8 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

    _contextstring
    The original user question or request that prompted this tool call
  • 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

    _contextstring
    The original user question or request that prompted this tool call
  • 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
    _contextstring
    The original user question or request that prompted this tool call
  • 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_departmentRetrieve details for a single department by UUID, including name and assigned employees.Read-only

    Get Department

    Retrieve details for a single department by UUID, including name and assigned employees.

    Inputs

    department_uuidstringrequired
    The unique identifier (UUID) for the department
    _contextstring
    The original user question or request that prompted this tool call
  • 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
    _contextstring
    The original user question or request that prompted this tool call
    includestring
    Comma-separated fields to include: all_compensations, all_home_addresses, company_name, current_home_address, custom_fields, portal_invitations