Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Deel MCP server

Vendor MCP
Open markdown

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

Tools
355
What they doRead · write · destructive
200 · 105 · 50200 read105 write50 destructive
Users sign in with
OAuth app
Your own Deel MCP server app

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 Deel MCP connection

    In AgentKit > Connections, create a Deel MCP connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Deel MCP server connections use your own OAuth app. Register one with Deel MCP server and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Deel MCP connection.

  5. 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 = 'deelmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Deel 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: 'deelmcp_advance_eligibility_get',
    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
  • deelmcp_advance_eligibility_getChecks whether the authenticated contractor is eligible for a Deel Advance.Read-only

    Advance Eligibility Get

    Checks whether the authenticated contractor is eligible for a Deel Advance. Evaluates KYC verification, contract type, payment cycle status, termination proximity, and organization standing, returning a detailed breakdown.

    Inputs

    This tool takes no inputs.

  • deelmcp_ats_application_feedback_listReturns a paginated list of feedbacks submitted for activities on the given application, including reviewer profiles, overall recommendations, and form responses.Read-only

    Ats Application Feedback List

    Returns a paginated list of feedbacks submitted for activities on the given application, including reviewer profiles, overall recommendations, and form responses.

    Inputs

    application_idstringrequired
    Unique identifier of the application to retrieve feedbacks for.
    cursorstring
    Pagination cursor returned by a previous response.
    limitinteger
    Maximum number of feedbacks to return per page.
    should_hide_sensitive_fieldsboolean
    When true, form responses marked as sensitive are omitted from the response. Defaults to true.
    statusstring
    Filter feedbacks by submission status.one of SUBMITTEDNOT_SUBMITTED
  • deelmcp_ats_application_sources_listReturns the available application sources in the Applicant Tracking System.Read-only

    Ats Application Sources List

    Returns the available application sources in the Applicant Tracking System.

    Inputs

    cursorstring
    The cursor for pagination
    limitinteger
    Maximum number of records returned in one response
  • deelmcp_ats_applications_getRetrieves a single application by its application_id, including associated job details, job posting details, and related metadata.Read-only

    Ats Applications Get

    Retrieves a single application by its application_id, including associated job details, job posting details, and related metadata.

    Inputs

    application_idstringrequired
    Unique identifier of the application to retrieve
  • deelmcp_ats_applications_listReturns a cursor-paginated list of candidate applications across all open positions for the organization, with filtering by job, interview plan stage, candidate tags, source, stage type, and last-updated timestamp.Read-only

    Ats Applications List

    Returns a cursor-paginated list of candidate applications across all open positions for the organization, with filtering by job, interview plan stage, candidate tags, source, stage type, and last-updated timestamp.

    Inputs

    candidate_tag_idsarray
    Filter applications by candidate tag IDs
    current_stage_category_type_slugsarray
    Filter applications by current stage category type slugs
    current_stage_default_type_slugsarray
    Filter applications by current stage default type slugs. Use 'others' for custom stages.
    cursorstring
    Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results.
    interview_plan_stage_idsarray
    Filter applications by specific interview plan stage IDs
    job_criterias_matchingsarray
    Filter applications by job criteria matching state. Each object specifies a job criteria ID and whether the candidate matches it.
    job_idstring
    Filter applications by specific job ID
    limitinteger
    Maximum number of applications to return per page
    search_textstring
    Search text to filter applications by candidate name or email
    sort_bystring
    Field to sort applications byone of APPLICATION_CREATION_DATESTAGE_CREATION_DATE
    sort_orderstring
    Sort order for applicationsone of ASCDESC
    source_slugsarray
    Filter applications by source slugs
    updated_afterstring
    Filter applications updated after this timestamp (ISO 8601 format)
  • deelmcp_ats_attachments_getLists attachment files for a specific ATS entity, scoped by `attachable_type_slug`, `attachable_id`, and `attachment_type_slug`.Read-only

    Ats Attachments Get

    Lists attachment files for a specific ATS entity, scoped by `attachable_type_slug`, `attachable_id`, and `attachment_type_slug`.

    Inputs

    attachable_idstringrequired
    Unique identifier for the attachable entity
    attachable_type_slugstringrequired
    Type of the attachable entityone of CANDIDATECAREER_PAGE_SETTINGJOB_POSTINGNOTEOFFERSENT_CANDIDATE_EMAILEMAIL_MESSAGETEMPORARYEMAIL_TEMPLATEJOB_ACTIVITY
    attachment_type_slugstringrequired
    Type of the attachmentone of CVLOGOOFFER_LETTEROTHER
    cursorstring
    The cursor for pagination
    limitinteger
    Maximum number of records returned in one response
  • deelmcp_ats_candidates_listReturns a paginated list of candidates, optionally filtered by job IDs, department IDs, tag IDs, current stage category or default type slugs, or a timestamp to return only records updated after a given point.Read-only

    Ats Candidates List

    Returns a paginated list of candidates, optionally filtered by job IDs, department IDs, tag IDs, current stage category or default type slugs, or a timestamp to return only records updated after a given point.

    Inputs

    current_stage_category_type_slugsarray
    Filter candidates by current stage category type slugs
    current_stage_default_type_slugsarray
    Filter candidates by current stage default type slugs
    cursorstring
    The cursor for pagination
    department_idsarray
    Filter candidates by department IDs
    job_idsarray
    Filter candidates by job IDs
    limitinteger
    Maximum number of records returned in one response
    searchstring
    Search text for filtering candidates
    tag_idsarray
    Filter candidates by tag IDs
    updated_afterstring
    Filter applications updated after this timestamp (ISO 8601 format)
  • deelmcp_ats_departments_listReturns a paginated list of all departments configured in the ATS.Read-only

    Ats Departments List

    Returns a paginated list of all departments configured in the ATS.

    Inputs

    cursorstring
    The cursor for pagination
    limitinteger
    Maximum number of records returned in one response