# Deputy

```json
{
  "name": "Deputy",
  "slug": "deputy",
  "url": "https://composio.dev/toolkits/deputy",
  "markdown_url": "https://composio.dev/toolkits/deputy.md",
  "logo_url": "https://logos.composio.dev/api/deputy",
  "categories": [
    "hr & recruiting"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-11-06T07:05:18.090Z"
}
```

![Deputy logo](https://logos.composio.dev/api/deputy)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Deputy MCP or direct API to manage employee records, review schedules, track timesheets, and handle leave through natural language.

## Summary

Deputy is a workforce management platform for scheduling, employees, timesheets, leave, and workplace locations.
It helps teams simplify staff planning, time tracking, and daily workforce operations.

## Categories

- hr & recruiting

## Toolkit Details

- Tools: 247

## Images

- Logo: https://logos.composio.dev/api/deputy

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for Deputy.
  - Setup:
    - Configure Oauth2 credentials for Deputy.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Review today's Deputy shifts and coverage
- Approve pending Deputy timesheets for this week
- List employees on leave tomorrow

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `DEPUTY_ADD_RESOURCE_COMMENT` | Add resource comment | Add comment text to one Deputy resource record. |
| `DEPUTY_APPLY_TIMESHEET_OPERATION` | Apply Timesheet Operation | Apply a non-clock timesheet operation: update for self or supervised timesheets, dispute or IP amend for self, and approve or discard for supervised timesheets. Use the dedicated supervised timesheet actions for clock start, end, and pause. |
| `DEPUTY_BULK_UPSERT_RESOURCE_RECORDS` | Bulk create or update resource records | Create or update multiple records of one resource type. Deputy processes each record independently, so inspect every item result for partial failures. |
| `DEPUTY_COPY_COMPANY_ROSTER_TEMPLATE` | Copy Company Roster Template | Create a roster-template copy for a Deputy company from the supplied template data. |
| `DEPUTY_CREATE_EMPLOYEE_LEAVE` | Create Employee Leave | Create a new employee leave record. Deputy requires the employee, status, start and end dates, approval comment, and overlapping-roster action on every request; this route does not update an existing leave ID. |
| `DEPUTY_CREATE_EMPLOYEE_UNAVAILABILITY` | Create Employee Unavailability | Create a recurring unavailability record for a specific supervised employee. Deputy must confirm the same employee in its response; a mismatched or unverifiable 2xx response is rejected. |
| `DEPUTY_CREATE_OR_REPLACE_RESOURCE_RECORD` | Create or replace resource record | Create a resource record, or fully replace the matching record when the supplied data identifies one. Verify identifiers and the complete replacement fields before running. |
| `DEPUTY_CREATE_RESOURCE_RECORD` | Create resource record | Create an Employee, Leave, OperationalUnit, Roster, or Timesheet record from typed agent-facing fields. |
| `DEPUTY_DECLINE_GAMINGFY_ITEM` | Decline Gamingfy Item | Decline the Gamingfy item identified by the supplied request object, changing its state. |
| `DEPUTY_DELETE_MY_MEMO_BY_ID_COMMENT_BY_COMMENT_ID` | Delete My Memo Comment | Delete a comment from the specified memo. Verify the memo and comment IDs before deleting it. |
| `DEPUTY_DELETE_MY_PREF_BY_PREF_KEY` | Delete My Preference | Delete one preference for the connected Deputy user by preference key. Verify the key before deleting it. |
| `DEPUTY_DELETE_MY_TODO_BY_TODO_ID` | Delete My To-Do Item | Delete a to-do item belonging to the connected user by its numeric ID. Verify the ID before deleting it. |
| `DEPUTY_DELETE_MY_TOKEN_BY_STR_ID_OR_TOKEN` | Delete My Token | Invalidate the Deputy token identified by its documented token ID or token value. Verify the target before deleting it. |
| `DEPUTY_DELETE_RESOURCE_COMMENT` | Delete resource comment | Permanently delete one comment from a Deputy resource record. Verify both IDs first. |
| `DEPUTY_DELETE_RESOURCE_RECORD` | Delete resource record | Permanently delete an Employee, Leave, OperationalUnit, Roster, or Timesheet record by ID. Verify the resource type and record ID first. |
| `DEPUTY_DELETE_SUPERVISE_DEPARTMENT_BY_ID` | Delete Department | Permanently delete the Deputy department identified by department ID. |
| `DEPUTY_DELETE_SUPERVISE_EMPLOYEE_CONTRACTEDHOURS_TEMPLATE_BY_TEMPLATE_ID` | Delete Contracted-Hours Template | Permanently delete an employee contracted-hours template by template ID. |
| `DEPUTY_DELETE_SUPERVISE_EMPLOYEE_INVITATION` | Delete Employee Invitations | Delete the employee invitation data selected by Deputy's zero-input invitation endpoint; deletion is irreversible. |
| `DEPUTY_DELETE_SUPERVISE_ROSTER_TEMPLATE_BY_TEMPLATE_ID` | Delete Roster Template | Permanently delete a Deputy roster template by template ID. |
| `DEPUTY_DELETE_UNAVAILABILITY` | Delete Unavailability | Permanently delete a self or supervised employee unavailability record by ID. |
| `DEPUTY_FIND_MATCHING_RESOURCE_RECORD` | Find matching resource record | Find the closest existing record matching a partial typed record before deciding whether to create or update it. |
| `DEPUTY_GET_CURRENT_USER` | Get My Workplace Setup | Return the connected Deputy user's workplaces, departments, role, permissions, and setup capabilities without contact or address details. This does not return OAuth identity; use GET_ME for that. |
| `DEPUTY_GET_DEPARTMENT_WEATHER` | Get Department Weather | Get current weather or weather for a specified date for one Deputy department. |
| `DEPUTY_GET_LOCATION_WEATHER` | Get Location Weather | Get current weather or weather for a specified date for locations in one Deputy company. |
| `DEPUTY_GET_ME` | Get OAuth Identity | Get OAuth Identity. |
| `DEPUTY_GET_MY_COLLEAGUE` | List My Colleagues | List colleagues visible to the connected Deputy user. |
| `DEPUTY_GET_MY_COLLEAGUE_COUNT` | Count My Colleagues | Return the number of colleagues visible to the connected Deputy user. |
| `DEPUTY_GET_MY_CONTACTADDRESS` | List My Contact Addresses | List contact addresses available to the connected Deputy user. |
| `DEPUTY_GET_MY_CONTACTADDRESS_ALL` | List All My Contact Addresses | List all contact addresses available to the connected Deputy user. |
| `DEPUTY_GET_MY_CONTACTADDRESS_EMERGENCY` | Get My Emergency Contact Addresses | Get emergency contact addresses for the connected Deputy user. |
| `DEPUTY_GET_MY_CONTACTADDRESS_SUBORDINATE` | Get Subordinate Contact Addresses | Get contact addresses for employees subordinate to the connected Deputy user. |
| `DEPUTY_GET_MY_CONTACTADDRESS_SUBORDINATE_BY_INT_COMPANY_ID` | Get Company Subordinate Contact Addresses | Get subordinate contact addresses for the specified Deputy company. |
| `DEPUTY_GET_MY_DEPARTMENT_BY_INT_DEPT_ID` | Get Department | Get a Deputy department by its department ID. |
| `DEPUTY_GET_MY_FEED_RANGE_BY_START_TO_BY_END` | Get My Feed By Range | Get feed records for the connected Deputy user over the supplied start-to-end interval. |
| `DEPUTY_GET_MY_FEED_SINGLE_BY_DATE` | Get My Feed By Date | Get feed records for the connected Deputy user on the specified date. |
| `DEPUTY_GET_MY_FEED_SUMMARY_BY_START_TO_BY_END` | Get My Feed Summary By Range | Get a summary of the connected Deputy user's feed over the supplied start-to-end interval. |
| `DEPUTY_GET_MY_LEAVE_BY_STR_SETUP` | Get My Leave By Setup | Get leave setup data for the connected Deputy user. |
| `DEPUTY_GET_MY_LOCATION_ALL` | List All Locations | List all locations available to the connected Deputy account. |
| `DEPUTY_GET_MY_LOCATION_BY_INT_COMPANY_ID` | Get Locations By Company | Get location records for the specified Deputy company. |
| `DEPUTY_GET_MY_LOCATION_BY_INT_COMPANY_ID_ALLOWED_KIOSK_AUTH_MODES` | List Location Kiosk Authentication Modes | List the kiosk authentication modes allowed for locations in the specified Deputy company. |
| `DEPUTY_GET_MY_LOCATION_GEO_BY_LATITUDE_BY_LONGITUDE` | Get Location By Coordinates | Get Deputy location data for the specified latitude and longitude. |
| `DEPUTY_GET_MY_LOCATION_GEO_BY_LATITUDE_BY_LONGITUDE_FLAG_BY_FLAG` | Get Flagged Location By Coordinates | Get Deputy location data for the supplied coordinates using the specified location lookup flag. |
| `DEPUTY_GET_MY_MEMO` | List My Memos | List memos available to the connected Deputy user. |
| `DEPUTY_GET_MY_MEMO_BY_ID` | Get My Memo | Get a Deputy memo by its memo ID. |
| `DEPUTY_GET_MY_MEMO_COMPANY_BY_ID` | Get Company Memos | Get memos for a Deputy company by company ID. |
| `DEPUTY_GET_MY_MEMO_REACTIONS_BY_ORM_BY_REC_ID` | Get Memo Reactions | Get reactions for the specified Deputy record type and record ID. |
| `DEPUTY_GET_MY_MEMO_READ` | List My Read Memos | List memos marked as read for the connected Deputy user. |
| `DEPUTY_GET_MY_MEMO_SUMMARY` | Get My Memo Summary | Get memo summary data for the connected Deputy user. |
| `DEPUTY_GET_MY_MEMO_TEAM_BY_ID` | Get Team Memos | Get memos for a Deputy team by team ID. |
| `DEPUTY_GET_MY_MEMO_UNREAD` | List My Unread Memos | List unread memos for the connected Deputy user. |
| `DEPUTY_GET_MY_MEMO_USER_BY_ID` | Get User Memos | Get memos for a Deputy user by user ID. |
| `DEPUTY_GET_MY_NOTIFICATION` | List My Notifications | List notifications visible to the connected Deputy user. |
| `DEPUTY_GET_MY_NPS_CANNPS` | Check My NPS Eligibility | Return whether the connected Deputy user can submit an NPS response. |
| `DEPUTY_GET_MY_PHOTO` | Get My Photo | Get the connected Deputy user's photo. |
| `DEPUTY_GET_MY_PREF_BY_PREF_KEY` | Get My Preference | Get one preference for the connected Deputy user by its preference key. |
| `DEPUTY_GET_MY_ROSTER_BIDS` | List My Roster Bids | List roster bids available to the connected Deputy user. |
| `DEPUTY_GET_MY_ROSTER_BY_ID` | Get My Roster | Get one roster record available to the connected Deputy user by roster ID. |
| `DEPUTY_GET_MY_ROSTER_BY_ID_OFFER_GETRECOMMENDATION` | Get My Roster Offer Recommendation | Get the offer recommendation for a roster by roster ID. |
| `DEPUTY_GET_MY_ROSTER_BY_ID_OFFER_STATUS` | Get My Roster Offer Status | Get the offer status for a roster by roster ID. |
| `DEPUTY_GET_MY_ROSTER_BY_START_DATE_BY_END_DATE` | Get My Roster By Date Range | Get the connected user's roster records between the specified start and end dates. |
| `DEPUTY_GET_MY_ROSTER_OPEN` | List My Open Rosters | List open roster records available to the connected Deputy user. |
| `DEPUTY_GET_MY_ROSTER_OPEN_BY_START_DATE_BY_END_DATE_BY_MAX_WAIT_TIME` | Get Open Rosters By Date Range | Get open roster data between the supplied dates, waiting up to the specified maximum wait time. |
| `DEPUTY_GET_MY_ROSTER_PUBLISH_ALLOW_BY_NUM_OF_ROSTERS_TO_PUBLISH` | Check Roster Publish Allowance | Return whether the connected user may publish the specified number of rosters. |
| `DEPUTY_GET_MY_ROSTER_PUBLISH_COUNT` | Get My Roster Publish Count | Return the publish-related roster count for the connected Deputy user. |
| `DEPUTY_GET_MY_ROSTER_START_TIMESTAMP_BY_START_TIMESTAMP_REVERSE_BY_REVERSE_LIMIT_BY_LIMIT` | List My Rosters From Timestamp | List the connected user's roster records from a start timestamp using the specified ordering direction and result limit. |
| `DEPUTY_GET_MY_SETUP_APPS` | Get My Setup Apps | Get Deputy setup app configuration available to the connected user. |
| `DEPUTY_GET_MY_SETUP_GAMINGFY_BY_ACTION` | Get My Gamingfy Setup | Get Gamingfy setup data for the selected list or decline operation. |
| `DEPUTY_GET_MY_SETUP_GET_STATE_COUNTRY_LIST` | List States And Countries | List Deputy's supported countries and their states for setup and address selection. |
| `DEPUTY_GET_MY_SETUP_SUPPORT_ACCESS` | Get My Support Access | Get Deputy support-access status or configuration for the connected user's account. |
| `DEPUTY_GET_MY_TASK` | List My Tasks | List tasks available to the connected Deputy user. |
| `DEPUTY_GET_MY_TASK_COMPLETED` | List My Completed Tasks | List completed tasks available to the connected Deputy user. |
| `DEPUTY_GET_MY_TASK_DEPARTMENT` | Get My Department Tasks | Get department-related task data available to the connected Deputy user. |
| `DEPUTY_GET_MY_TASK_DEPARTMENT_BY_DATE` | Get My Department Tasks By Date | Get department-related task data for the connected Deputy user on the supplied date. |
| `DEPUTY_GET_MY_TIMESHEET_APPROVE_ALLOW_BY_NUM_OF_TIMESHEETS_TO_APPROVE` | Check Timesheet Approval Allowance | Return the approval-allowance result for the requested number of timesheets. |
| `DEPUTY_GET_MY_TIMESHEET_BY_START_BY_END` | List My Timesheets By Range | List the connected user's timesheets between the specified start and end values. |
| `DEPUTY_GET_MY_TIMESHEET_START_TIMESTAMP_BY_START_TIMESTAMP_REVERSE_BY_REVERSE_LIMIT_BY_LIMIT` | List My Timesheets From Timestamp | List the connected user's timesheets from a start timestamp using the specified ordering direction and result limit. |
| `DEPUTY_GET_MY_TODO` | List My To-Do Items | List to-do items assigned to the connected Deputy user. |
| `DEPUTY_GET_MY_TOKEN` | List My Tokens | List Deputy token records available to the connected user. |
| `DEPUTY_GET_MY_TRAINING` | List My Training Records | List training records available to the connected Deputy user. |
| `DEPUTY_GET_MY_UNAVAIL_BY_START_DATE_BY_END_DATE` | List My Unavailability By Date Range | List the connected Deputy user's unavailability records between the specified start and end dates. |
| `DEPUTY_GET_MY_WIDGET_INFO` | Get My Widget Information | Get Deputy widget metadata available to the connected user. |
| `DEPUTY_GET_MY_WIDGET_RUN` | Get My Widget Run Data | Get run-related widget data available to the connected Deputy user. |
| `DEPUTY_GET_MY_WIDGET_RUN_BY_WIDGET_ID` | Get Widget Run | Get run information for the specified Deputy widget ID. |
| `DEPUTY_GET_RESOURCE_AT_TIME` | Get resource record at time | Get one Deputy resource record as it existed at the specified Unix timestamp. |
| `DEPUTY_GET_RESOURCE_FIELD_METADATA` | Get resource field metadata | Get Deputy's field metadata for the selected resource type. |
| `DEPUTY_GET_RESOURCE_HISTORY` | Get resource history | Get the change history for one Deputy resource record. |
| `DEPUTY_GET_RESOURCE_RECORD` | Get resource record | Get one Company, Employee, Leave, OperationalUnit, Roster, or Timesheet record by its numeric ID. |
| `DEPUTY_GET_ROSTER_RECOMMENDATION` | Get Roster Recommendation | Get a roster recommendation for the connected employee or supervised employees. |
| `DEPUTY_GET_ROSTER_SWAP_DETAILS` | Get Roster Swap Details | Get swap details for a roster belonging to the connected employee or supervised employees. |
| `DEPUTY_GET_SUPERVISE_COMPANY_BULK_SETTINGS_CHECK_BY_JOB_ID` | Get Bulk Location Settings Job Result | Get the check result for a Deputy bulk company-settings job by job ID. |
| `DEPUTY_GET_SUPERVISE_COMPANY_BY_ID_SETTINGS` | Get Location Settings | Get the configured settings for a Deputy company or location by company ID. |
| `DEPUTY_GET_SUPERVISE_COMPANY_SIMPLE` | List Simplified Locations | Get Deputy's simplified location list for lightweight location selection. |
| `DEPUTY_GET_SUPERVISE_COMPANY_TIMEZONE` | Get Company Timezone | Get the timezone configured for the connected user's Deputy company. |
| `DEPUTY_GET_SUPERVISE_DEPARTMENT_CHECK_BY_ID` | Check Department | Return Deputy's untyped department-check object for the specified department ID. The official capture does not define its fields or a narrower check outcome. |
| `DEPUTY_GET_SUPERVISE_DEPARTMENT_LOCATION_BY_ID` | Get Department Location | Return Deputy's untyped department-location lookup object for the specified ID. The official capture does not define whether the ID identifies a department or location. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE` | List Supervised Employees | Get full Deputy records for all employees visible to the connected supervisor. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID` | Get Employee | Get the Deputy employee record with the specified employee ID. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_BY_ACTION` | Get Employee Related Resource Data | Get data for the specified employee-related resource category through Deputy's generic legacy route. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_CONTRACTEDHOURS` | Get Employee Contracted Hours | Get contracted-hours information for the specified Deputy employee. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_HR_ONBOARDING` | Get Employee HR Onboarding | Get HR onboarding information for the specified Deputy employee. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_HR_PAYROLL_CONNECTED` | Get Employee Payroll Connection | Read payroll connection information for the specified Deputy employee. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_HR_PAYROLL_SYNC` | Get Employee Payroll Sync Information | Read payroll synchronization information for the specified employee without starting a sync. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_MANAGE_LOGIN` | Get Employee Login Management State | Read login-management information for the specified employee without changing login access. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_VALIDATE` | Get Employee Validation Result | Get Deputy's read-only validation result for the specified employee. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_CONTRACTEDHOURS_TEMPLATE` | List Contracted-Hours Templates | List the contracted-hours templates available for supervised employees. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_DEMO` | Get Employee Demo Data | Get the employee demo result exposed by Deputy's legacy supervisor API. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_INVITATION` | Get Employee Invitation Information | Get the invitation information returned by Deputy's zero-input employee invitation endpoint. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_REAL` | Get Real Employee Records | Get the employee subset Deputy's legacy API classifies as real employees. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_REAL_COUNT` | Count Real Employees | Return the count of employees Deputy's legacy API classifies as real employees. |
| `DEPUTY_GET_SUPERVISE_EMPLOYEE_ROLE_MANAGE` | Get Employee Role Management Data | Read the employee-role management data exposed by Deputy; this operation does not change roles. |
| `DEPUTY_GET_SUPERVISE_EMPSHIFTINFO_BY_INT_EMP_ID_BY_BLN_ALL_COMPANY` | Get Employee Shift Information | Get current shift information for an employee, optionally broadened across all companies by the required scope flag. |
| `DEPUTY_GET_SUPERVISE_GETRECOMMENDATION_BY_INT_ROSTER_ID_STATUS` | Get Roster Recommendation Status | Get the current recommendation status for a Deputy roster by roster ID. |
| `DEPUTY_GET_SUPERVISE_LEAVE_BY_INT_EMPLOYEE_ID` | Get Employee Leave Information | Get Deputy leave information for the specified employee. |
| `DEPUTY_GET_SUPERVISE_LEAVE_BY_INT_EMPLOYEE_ID_BY_STR_SETUP` | Get Employee Leave Setup Information | Get leave information for an employee using Deputy's required leave setup selector. |
| `DEPUTY_GET_SUPERVISE_ROSTER` | List Recent Rosters | List Deputy rosters from the previous 12 hours through the next 36 hours. |
| `DEPUTY_GET_SUPERVISE_ROSTER_BY_DATE` | Get Rosters by Date | Get Deputy roster data for the specified date. |
| `DEPUTY_GET_SUPERVISE_ROSTER_BY_DATE_BY_INT_COMPANY_ID` | Get Company Rosters by Date | Get roster data for a Deputy company on the specified date. |
| `DEPUTY_GET_SUPERVISE_ROSTER_BY_DATE_BY_INT_COMPANY_ID_BY_LIMIT_BY_OFFSET_BY_FETCH_OPEN` | List Company Rosters by Date | Get a paginated roster result for a Deputy company and date, with an explicit selector for including open rosters. |
| `DEPUTY_GET_SUPERVISE_ROSTER_BY_ID_BIDS` | Get Roster Bids | Get bids for a roster by roster ID. |
| `DEPUTY_GET_SUPERVISE_ROSTER_CHECKAUTOBUILD_BY_JOB_KEY` | Get Roster Autobuild Job Result | Get the status or result of an automatic Deputy roster-build job by job key. |
| `DEPUTY_GET_SUPERVISE_ROSTER_CHECKAUTOFILL_BY_JOB_KEY` | Get Roster Autofill Job Result | Get the status or result of an automatic Deputy roster-fill job by job key. |
| `DEPUTY_GET_SUPERVISE_ROSTER_NOTIFYMANAGER_BY_ID` | Get Roster Manager Notification Information | Get Deputy's manager-notification information for the specified roster; this GET operation does not send a notification. |
| `DEPUTY_GET_SUPERVISE_ROSTER_PENDING_APPROVAL_SWAP_DETAILS_BY_ID` | Get Pending Roster Swap Approval Details | Get pending-approval swap details for a roster by roster ID. |
| `DEPUTY_GET_SUPERVISE_ROSTER_SYSTEMTEMPLATE_LIST_BY_INT_MODE` | List Roster System Templates | List Deputy roster system templates using the required provider-defined numeric mode. |
| `DEPUTY_GET_SUPERVISE_TIMESHEET_BULK_CHECK_BY_JOB_ID` | Get Bulk Timesheet Job Result | Get the check result for a Deputy bulk timesheet job by job ID. |
| `DEPUTY_GET_SUPERVISE_TIMESHEET_BY_EMPLOYEE_ID_BY_DATE` | Get Employee Timesheet by Date | Get Deputy timesheet information for an employee on the specified date. |
| `DEPUTY_GET_SUPERVISE_UNAVAIL_BY_INT_EMPLOYEE_ID` | Get Employee Unavailability | Get Deputy unavailability information for the specified employee. |
| `DEPUTY_GET_TIMESHEET_DETAILS` | Get Timesheet Details | Get detailed timesheet data for the connected employee or supervised employees. |
| `DEPUTY_GET_TIMESHEET_HISTORY` | Get Timesheet History | Get timesheet change history for the connected employee or supervised employees. |
| `DEPUTY_GET_TIMESHEET_SETUP` | Get Timesheet Setup | Get timesheet setup information for the connected employee or supervised employees. |
| `DEPUTY_LIST_COMPANIES` | List Companies and Locations | List Deputy companies, workplaces, and payroll entities, or return one company when company_id is provided. |
| `DEPUTY_LIST_COMPANY_ROSTER_TEMPLATES` | List Company Roster Templates | List roster templates for a Deputy company without changing them. |
| `DEPUTY_LIST_EMPLOYEES` | List Employees | Return one page of Deputy employees, or one exact employee when employee_id is provided, without contact, address, payroll, tax, bank, birth, photo, or emergency-contact fields. |
| `DEPUTY_LIST_GAMINGFY_ITEMS` | List Gamingfy Items | List Gamingfy setup items without changing their state. |
| `DEPUTY_LIST_LEAVE` | List Leave Records | Return one page of employee leave records, or one leave record when leave_id is provided, without reasons, comments, medical or attachment data, pay details, or creator profiles. |
| `DEPUTY_LIST_OPERATIONAL_UNITS` | List Operational Units | Return one page of Deputy operational units (areas or departments), or one unit when operational_unit_id is provided. |
| `DEPUTY_LIST_RESOURCE_COMMENTS` | List resource comments | List comments attached to one Deputy resource record. |
| `DEPUTY_LIST_RESOURCE_RECORDS` | List resource records | List raw Company, Employee, Leave, OperationalUnit, Roster, or Timesheet records. Use the curated list tools when their safer reduced fields are sufficient. |
| `DEPUTY_LIST_ROSTER_SHIFTS` | List Roster Shifts | Return one page of scheduled Deputy roster shifts, or one exact shift when roster_id is provided, without comments, costs, creator profiles, or recursive metadata. |
| `DEPUTY_LIST_ROSTER_SWAPS` | List Roster Swaps | List roster swaps in a date range for the connected employee or supervised employees. |
| `DEPUTY_LIST_TIMESHEETS` | List Timesheets | Return one page of timesheet records, or one timesheet when a timesheet ID is provided. Preserve Deputy's ISO date, epoch-second start/end times, and decimal-hour total while omitting comments and pay amounts or rates. |
| `DEPUTY_POST_MY_COLLEAGUE_QUERY` | Search My Colleagues | Search colleague records visible to the connected Deputy user using a Deputy query object. |
| `DEPUTY_POST_MY_CONTACTADDRESS` | Create or update Contactaddress | Create or update contact-address data for the connected Deputy user. Verify the request values before saving it. |
| `DEPUTY_POST_MY_CONTACTADDRESS_EMERGENCY` | Update My Emergency Contact Address | Update emergency contact information for the connected Deputy user. Verify the request values before updating it. |
| `DEPUTY_POST_MY_LOCATION_PENDING_APPROVAL_QUERY` | Query Locations Pending Approval | Query locations awaiting approval for the connected Deputy user using a Deputy query object. |
| `DEPUTY_POST_MY_MEMO` | Update My Memo Feed | Apply provider-defined changes to the connected Deputy user's memo or newsfeed state. This endpoint does not create memos; Deputy documents PUT /v1/supervise/memo for creation. |
| `DEPUTY_POST_MY_MEMO_BY_ID_COMMENT` | Add My Memo Comment | Add a comment to the specified memo for the connected user. Verify the memo ID and comment content before creating it. |
| `DEPUTY_POST_MY_MEMO_COMPANY_BY_ID` | Update Company Memo | Apply the supplied memo change for the specified Deputy company. Verify the company ID and request values before updating it. |
| `DEPUTY_POST_MY_MEMO_SUMMARY` | Update My Memo Summary | Update memo summary state for the connected Deputy user using the supplied request values. |
| `DEPUTY_POST_MY_MEMO_TEAM_BY_ID` | Update Team Memo | Apply the supplied memo change for the specified Deputy team. Verify the team ID and request values before updating it. |
| `DEPUTY_POST_MY_MEMO_USER_BY_ID` | Update User Memo | Apply the supplied memo change for the specified Deputy user. Verify the user ID and request values before updating it. |
| `DEPUTY_POST_MY_NPS` | Create or update Nps | Create or update the connected Deputy user's Net Promoter Score response. |
| `DEPUTY_POST_MY_NPS_LATER` | Postpone My NPS Response | Postpone the connected Deputy user's NPS response or prompt. |
| `DEPUTY_POST_MY_PHOTO_BY_NAME` | Update My Photo | Update the connected Deputy user's named photo using the supplied photo request body. |
| `DEPUTY_POST_MY_PREF_BY_PREF_KEY` | Update My Preference | Update the connected Deputy user's named preference using the supplied preference value. |
| `DEPUTY_POST_MY_PREF_UPDATE_SUPPORT_ACCESS` | Update My Support Access | Change Deputy support access for the connected user's account using the supplied support-access setting. |
| `DEPUTY_POST_MY_ROSTER_BIDS_REQUEST` | Request My Roster Bid | Create pending bids for the connected employee on eligible published open rosters that require approval. |
| `DEPUTY_POST_MY_ROSTER_BIDS_WITHDRAW` | Withdraw My Roster Bid | Change the connected employee's pending bids on the specified rosters to withdrawn. Verify the roster IDs before updating them. |
| `DEPUTY_POST_MY_ROSTER_BY_ID_OFFER` | Offer My Roster | Create an offer for the specified roster record using the supplied offer details. Verify the roster ID before updating it. |
| `DEPUTY_POST_MY_ROSTER_BY_ID_OFFER_CANCEL` | Cancel My Roster Offer | Cancel the existing offer for the specified roster record. Verify the roster ID before updating it. |
| `DEPUTY_POST_MY_ROSTER_BY_ID_SWAP_BY_ACTION` | Update My Roster Swap | Request, cancel, accept, recommend, decline, or decline all for the specified roster swap. Verify the roster ID and selected operation before updating it. |
| `DEPUTY_POST_MY_ROSTER_OPEN` | Claim My Open Rosters | Assign eligible published open rosters that do not require approval to the connected employee, closing those openings. Verify the roster IDs before updating them. |
| `DEPUTY_POST_MY_SETUP_ADD_NEW_WORKPLACE` | Create Workplace | Create a new workplace in the connected Deputy account using the supplied workplace details. |
| `DEPUTY_POST_MY_SETUP_GET_ADDRESS_TIMEZONE_FROM_GEO` | Resolve Address And Timezone From Coordinates | Resolve an address and timezone from the supplied geographic coordinates without changing Deputy data. |
| `DEPUTY_POST_MY_SETUP_GET_GEO_TIMEZONE_FROM_ADDRESS` | Resolve Coordinates And Timezone From Address | Resolve geographic coordinates and a timezone from the supplied address without changing Deputy data. |
| `DEPUTY_POST_MY_SETUP_SEND_EMAIL_TO_CX` | Send Email To Customer Experience | Immediately send the supplied email to Deputy Customer Experience. Email delivery is external and cannot be undone. |
| `DEPUTY_POST_MY_SETUP_SF` | Run My Setup SF Operation | Submit setup data to Deputy's legacy setup route and return its untyped result object. The official capture does not define a more specific state transition. |
| `DEPUTY_POST_MY_SETUP_VALIDATE_WORKPLACE` | Validate Workplace | Validate the supplied Deputy workplace details and return the result without changing the workplace. |
| `DEPUTY_POST_MY_TASK` | Update My Task State | Apply provider-defined changes to the connected Deputy user's task state. This endpoint does not create tasks; Deputy documents POST /v1/resource/Task for creation. |
| `DEPUTY_POST_MY_TASK_BY_ID` | Update My Task | Update the specified task for the connected Deputy user using the supplied request values. |
| `DEPUTY_POST_MY_TASK_COMPLETED` | Update My Completed Tasks | Apply the supplied completion change to tasks for the connected Deputy user. |
| `DEPUTY_POST_MY_TASK_DEPARTMENT` | Update My Department Tasks | Apply the supplied department-task change for the connected Deputy user. |
| `DEPUTY_POST_MY_TASK_DEPARTMENT_BY_DATE` | Update My Department Tasks By Date | Apply the supplied department-task change for the connected Deputy user on the specified date. |
| `DEPUTY_POST_MY_TODO` | Create or update Todo | Create or update a to-do item for the connected Deputy user. Verify the request values before saving it. |
| `DEPUTY_POST_MY_UNAVAIL` | Create or update Unavail | Create or update an unavailability record for the connected Deputy user. Verify the request values before saving it. |
| `DEPUTY_POST_SUPERVISE_COMPANY_ALL_SETTINGS` | Update Settings for All Locations | Update the week-start setting across all Deputy locations. Verify the value before applying the broad change. |
| `DEPUTY_POST_SUPERVISE_COMPANY_BY_ID` | Update Location | Update documented fields for a Deputy company or location by ID. |
| `DEPUTY_POST_SUPERVISE_COMPANY_BY_ID_ARCHIVE` | Archive Location | Archive the selected Deputy company or location so it is no longer active; verify the company ID before running. |
| `DEPUTY_POST_SUPERVISE_COMPANY_BY_ID_CASCADE_SETTINGS` | Cascade Location Settings | Update documented settings for a Deputy company and cascade those values to eligible child records. |
| `DEPUTY_POST_SUPERVISE_COMPANY_BY_ID_DELETE` | Delete Location | Permanently delete the Deputy company or location identified by company ID; verify the target before running. |
| `DEPUTY_POST_SUPERVISE_COMPANY_BY_ID_GOOGLE_PLACE_ID_BY_GOOGLE_PLACE_ID` | Set Location Google Place ID | Set or replace the Google Place ID associated with a Deputy company or location. |
| `DEPUTY_POST_SUPERVISE_COMPANY_BY_ID_SETTINGS` | Update Location Settings | Update the week-start setting for a Deputy company or location by company ID. |
| `DEPUTY_POST_SUPERVISE_DEPARTMENT_ALL_BY_LOCATION_ID` | Update Departments for Location | Update the collection of department records associated with the specified Deputy location and return Deputy's untyped result object. |
| `DEPUTY_POST_SUPERVISE_DEPARTMENT_BY_ID` | Update Department | Update a Deputy department by ID, supplying its location and name and optionally its address, payroll export name, display order, or area type. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE` | Create Employee | Create a Deputy employee using the supplied name, location, and optional employment details. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_AMEND_ABP` | Amend Employee ABP Data | Update employee data through Deputy's legacy amendment route and return its untyped result object. The official capture does not define the affected employee fields. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID` | Update Employee | Update the phone value for an existing Deputy employee by employee ID. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_ACTIVATE` | Reactivate Employee | Reactivate a terminated Deputy employee, returning the employee to active status. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_BY_ACTION` | Update Employee Related Resource | Apply the supplied object to the selected employee-related category: memo, roster, timesheet, journal, leave, or employee availability. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_CONTRACTEDHOURS` | Update Employee Contracted Hours | Apply Deputy's documented contracted-hours mutation to an existing employee. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_DELETE` | Delete Employee Account | Permanently delete the selected employee's Deputy account; unlike termination, this removes the account record and cannot be undone. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_HR_ONBOARDING` | Update Employee HR Onboarding | Assign an HR onboarding record ID to the specified Deputy employee. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_HR_PAYROLL_SYNC` | Synchronize Employee Payroll Data | Run Deputy's documented HR payroll synchronization operation for the specified employee; verify payroll inputs before running. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_INVITE` | Invite Employee to Deputy | Invite the selected employee to Deputy, sending a one-way external invitation that cannot be recalled; verify the employee ID and invitation details first. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_PHOTO` | Update Employee Photo | Update the selected employee's photo using Deputy's documented photo object. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_RESET_2FA` | Reset Employee Two-Factor Authentication | Reset the selected employee's two-factor authentication, invalidating the current second-factor setup so it must be configured again. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_SENDLOGIN` | Send Employee Login Communication | Send Deputy's login communication to the selected employee; the external message cannot be recalled. Use invitation or account reset instead when those are the intended effects. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_SEND_RESET_ACCOUNT` | Send Employee Account Reset | Send the selected employee Deputy's account-reset communication; this security-sensitive external message cannot be recalled. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_SET_AWARD_FROM_LIBRARY` | Set Employee Award from Library | Apply an award from Deputy's library to selected employment agreements; if no agreement IDs are supplied, Deputy updates all agreements for the employee. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_SET_AWARD_FROM_TEMPLATE` | Set Employee Award from Template | Apply a proven Deputy award contract template to selected employee agreements. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_TERMINATE` | Terminate Employee | Terminate the specified Deputy employee. This changes employment status but is distinct from deleting the employee account. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_CONTRACTEDHOURS_TEMPLATE` | Update Contracted-Hours Template | Apply Deputy's documented mutation to a contracted-hours template using the supplied template object. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_CONTRACTEDHOURS_TEMPLATE_BY_TEMPLATE_ID` | Update Contracted-Hours Template | Update a Deputy contracted-hours template by template ID using the supplied documented fields. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_CREATE` | Create Employee | Create one or more Deputy employees with each employee's first name, last name, and location ID. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_INVITATION` | Process Employee Invitation | Process an employee invitation using Deputy's documented invitation payload; use validation first when the payload is untrusted. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_QUERY` | Search Supervised Employees | Search supervised employees using Deputy's employee query filters and return matching employee records. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_RESET_GENDER` | Reset Employee Gender Data | Reset employee gender data using Deputy's documented reset object; verify the target data before running. |
| `DEPUTY_POST_SUPERVISE_EMPLOYEE_VALIDATE` | Validate Employee Data | Validate employee data before creating or updating an employee; this check does not change workforce records. |
| `DEPUTY_POST_SUPERVISE_GETRECOMMENDATION_BY_INT_ROSTER_ID` | Update Roster Recommendations | Update employee recommendations for the specified roster using the supplied object and return Deputy's untyped result object. |
| `DEPUTY_POST_SUPERVISE_GETRECOMMENDATION_BY_INT_ROSTER_ID_NOTIFY` | Notify Recommended Employee | Send an immediate, non-recallable workforce notification to the selected recommended employee for a roster; verify the roster and notification details first. |
| `DEPUTY_POST_SUPERVISE_GETRECOMMENDATION_BY_INT_ROSTER_ID_NOTIFY_ALL_RECOMMENDED` | Notify All Recommended Employees | Send immediate, non-recallable workforce notifications to every recommended employee for a roster; verify the roster and notification details first. |
| `DEPUTY_POST_SUPERVISE_GETRECOMMENDATION_BY_INT_ROSTER_ID_RESET` | Reset Roster Recommendations | Reset recommendations for a roster. This changes workforce recommendation state; verify the roster ID and payload before running it. |
| `DEPUTY_POST_SUPERVISE_GET_ROSTER_TIMESHEET` | Create or Update Roster Timesheet Data | Create or update Deputy's documented roster-timesheet record using the supplied relationship object. |
| `DEPUTY_POST_SUPERVISE_LEAVE_LEAVE_MANAGEMENT` | Manage Employee Leave | Update leave-management state for the leave record or request identified in the supplied object and return Deputy's untyped result object. |
| `DEPUTY_POST_SUPERVISE_ROSTER` | Create or Update Roster | Create or update a Deputy roster using the supplied documented roster object. |
| `DEPUTY_POST_SUPERVISE_ROSTER_AUTOBUILD` | Autobuild Roster | Start an asynchronous job that creates unpublished Deputy shifts for selected areas and dates using staffing, coverage, or historical demand. |
| `DEPUTY_POST_SUPERVISE_ROSTER_AUTOBUILDFROMAGREEDHOURS` | Autobuild Roster from Agreed Hours | Create Deputy shifts from selected employees' agreed-hours profiles for specified areas, locations, and dates. |
| `DEPUTY_POST_SUPERVISE_ROSTER_AUTOBUILDFROMGFE` | Autobuild Roster from GFE | Start Deputy's documented GFE-based automatic roster-build operation using the supplied inputs. |
| `DEPUTY_POST_SUPERVISE_ROSTER_AUTOFILL` | Autofill Roster | Start an asynchronous job that assigns candidate employees to selected open Deputy shifts using bounded search and optimization settings. |
| `DEPUTY_POST_SUPERVISE_ROSTER_CANCELAUTOFILL` | Cancel Roster Autofill | Cancel the roster autofill operation identified by the supplied Deputy cancellation object. |
| `DEPUTY_POST_SUPERVISE_ROSTER_CHECKAUTOBUILDFROMAGREEDHOURS_BY_JOB_KEY` | Check Roster Autobuild from Agreed Hours | Check or advance Deputy's documented roster autobuild-from-agreed-hours job using its job key and request object. |
| `DEPUTY_POST_SUPERVISE_ROSTER_CHECKAUTOBUILDFROMGFE_BY_JOB_KEY` | Check GFE Roster Autobuild | Check or advance Deputy's documented GFE-based roster-autobuild job using its job key and request object. |
| `DEPUTY_POST_SUPERVISE_ROSTER_COPY` | Copy Roster | Copy Deputy roster data using the supplied source and destination settings. |
| `DEPUTY_POST_SUPERVISE_ROSTER_COPY_BATCH` | Copy Rosters in Batch | Copy multiple rosters in one request using the supplied source and destination settings; verify every roster target before running. |
| `DEPUTY_POST_SUPERVISE_ROSTER_DISCARD` | Discard Roster Changes | Discard the Deputy roster state selected by the supplied documented object; verify the target before running. |
| `DEPUTY_POST_SUPERVISE_ROSTER_PUBLISH` | Publish Roster | Publish selected Deputy rosters or rosters across all locations, making the schedule externally visible. |
| `DEPUTY_POST_SUPERVISE_TIMESHEET_BULK_RECALCULATE` | Recalculate Timesheets in Bulk | Recalculate the selected timesheets in bulk; verify the timesheet selection and recalculation inputs before updating them. |
| `DEPUTY_POST_SUPERVISE_TIMESHEET_END` | End Employee Timesheet | Clock off an employee and end the selected active timesheet using Deputy's documented clock-off object. |
| `DEPUTY_POST_SUPERVISE_TIMESHEET_PAUSE` | Toggle Employee Timesheet Break | Toggle an employee timesheet between paused and resumed break states. This endpoint does not set a requested state and is non-idempotent: verify the current state before calling, and do not retry automatically because a repeated call can reverse the intended change. |
| `DEPUTY_POST_SUPERVISE_TIMESHEET_START` | Start Employee Timesheet | Clock on an employee and start a timesheet using Deputy's documented clock-on object. |
| `DEPUTY_PUT_MY_NPS` | Submit My NPS Response | Submit a Net Promoter Score response for the connected Deputy user. |
| `DEPUTY_PUT_MY_PREF_BY_PREF_KEY` | Set My Preference | Set the connected Deputy user's preference identified by key to the supplied value. |
| `DEPUTY_PUT_SUPERVISE_COMPANY` | Create Company | Add a Deputy location with its workplace name, address, and optional workplace, timezone, parent-company, and payroll settings. |
| `DEPUTY_PUT_SUPERVISE_DEPARTMENT` | Create Department | Create a Deputy department from the supplied documented department fields. |
| `DEPUTY_PUT_SUPERVISE_DEPARTMENT_CREATE` | Create Multiple Departments | Create multiple Deputy departments from the supplied documented department data. |
| `DEPUTY_PUT_SUPERVISE_EMPLOYEE` | Create Employee | Create a Deputy employee using the supplied documented employee fields. |
| `DEPUTY_PUT_SUPERVISE_EMPLOYEE_BY_EMPLOYEE_ID_CONTRACTEDHOURS` | Replace Employee Contracted Hours | Update contracted-hours details for an existing Deputy employee by employee ID; verify the employee and effective hours before running. |
| `DEPUTY_PUT_SUPERVISE_EMPLOYEE_CONTRACTEDHOURS_TEMPLATE` | Create Contracted-Hours Template | Create a Deputy contracted-hours template using the supplied documented template object. |
| `DEPUTY_PUT_SUPERVISE_EMPLOYEE_VALIDATE` | Validate Employee Data | Validate the supplied employee object through Deputy's legacy PUT validation route and return the validation result. |
| `DEPUTY_REPLACE_RESOURCE_RECORD` | Replace resource record | Replace an existing Employee, Leave, OperationalUnit, Roster, or Timesheet record with a non-atomic safety check. The tool reads the current record twice, rejects changes detected before the write, merges only explicitly supplied typed fields into Deputy's documented fields, validates the complete merged record and provider-evidenced nullability, then PUTs it. Deputy offers no conditional PUT, so a change after the final read can still race. |
| `DEPUTY_REPLACE_UNAVAILABILITY` | Replace Unavailability | Replace a self or supervised employee unavailability record by ID. Verify the target and complete replacement object first. |
| `DEPUTY_SAVE_COMPANY_ROSTER_TEMPLATE` | Save Company Roster Template | Save changes to roster-template data for a Deputy company. |
| `DEPUTY_SEARCH_RESOURCE_RECORDS` | Search resource records | Search one Deputy resource type with typed filters, sorting, offset pagination, and optional related-record expansion. |
| `DEPUTY_SET_EMPLOYEE_WORKPLACE_ASSOCIATION` | Set Employee Workplace Association | Associate an employee with a workplace or remove that relationship. Verify both IDs before changing it. |
| `DEPUTY_SET_MEMO_READ_STATE` | Set Memo Read State | Mark a memo log read or unread for the connected Deputy user. |
| `DEPUTY_SET_TASK_COMPLETION` | Set Task Completion | Complete or restore a task belonging to the connected Deputy user. |
| `DEPUTY_UPDATE_RESOURCE_RECORD` | Update resource record | Update an existing Employee, Leave, OperationalUnit, Roster, or Timesheet record using Deputy's documented complete resource schema. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Deputy
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["deputy"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["deputy"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Deputy tools with your agent

Send a request, execute the Deputy tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List all employees currently on leave tomorrow and include their names and leave dates."}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List all employees currently on leave tomorrow and include their names and leave dates." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Deputy and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["deputy"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["deputy"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Deputy request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Deputy tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List all employees currently on leave tomorrow and include their names and leave dates.")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List all employees currently on leave tomorrow and include their names and leave dates.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Deputy Integration

- Supports both Deputy MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Deputy data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Deputy access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Deputy
- Scoped, least privilege access to Deputy resources
- Full audit trail of agent actions to support review and compliance

## Use Deputy with any AI Agent Framework

Choose a framework you want to connect Deputy with:

- [ChatGPT](https://composio.dev/toolkits/deputy/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/deputy/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/deputy/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/deputy/framework/atomic-agent)

## Related Toolkits

- [Ashby](https://composio.dev/toolkits/ashby) - Ashby is an applicant tracking system that handles job postings, candidate management, and hiring analytics.
- [7shifts](https://composio.dev/toolkits/7shifts) - 7shifts is a restaurant team management platform for scheduling, time clocks, payroll, and team communication. It helps operators keep labor, shifts, and staff workflows organized in one place.
- [AI Ark](https://composio.dev/toolkits/ai_ark) - AI Ark is a people and company intelligence platform with search, enrichment, and recruiting APIs. It helps teams find accurate contact data and discover hiring insights faster.
- [Async interview](https://composio.dev/toolkits/async_interview) - Async interview is an on-demand video interview platform for streamlined hiring. Candidates record responses on their schedule, so employers can review anytime.
- [Bamboohr](https://composio.dev/toolkits/bamboohr) - BambooHR is a cloud-based HR management platform for small and mid-sized businesses. It streamlines employee data, HR workflows, and reporting in one easy interface.
- [Breathe HR](https://composio.dev/toolkits/breathehr) - Breathe HR is cloud-based HR software for SMEs to manage employee data, absences, and performance. It simplifies HR admin, making it easy to keep employee records accurate and up to date.
- [Breezy Hr](https://composio.dev/toolkits/breezy_hr) - Breezy HR is a recruiting and applicant tracking platform for managing jobs, candidates, pipelines, and hiring teams. It helps teams move faster from job posting to offer without losing track of applicants.
- [Connecteam](https://composio.dev/toolkits/connecteam) - Connecteam is a workforce management platform for deskless teams, streamlining operations, HR, and team communication. It helps businesses save time by automating scheduling, time tracking, and staff engagement tasks.
- [ContactOut](https://composio.dev/toolkits/contactout) - ContactOut is a professional profile enrichment and contact discovery API. Find and verify email addresses to power recruiting, sales, and outreach.
- [Coresignal](https://composio.dev/toolkits/coresignal) - Coresignal is a real-time public web data platform for employee, company, and professional profile intelligence. It helps teams access fresh workforce data for research, recruiting, sales, and market analysis.
- [Deel](https://composio.dev/toolkits/deel) - Deel is a global payroll and compliance platform for hiring international contractors and employees. It helps businesses pay global teams and manage local employment requirements.
- [Dice MCP](https://composio.dev/toolkits/dice_mcp) - Dice MCP is an MCP server for searching Dice's tech-job database by role, company, location, and employment type. It helps agents find relevant tech roles fast with conversational filters.
- [Greenhouse](https://composio.dev/toolkits/greenhouse) - Greenhouse is applicant tracking and recruiting software for managing jobs, candidates, interviews, and hiring workflows. It helps recruiting teams move faster with structured pipelines, collaboration tools, and hiring data in one place.
- [Gusto](https://composio.dev/toolkits/gusto) - Gusto is a payroll, benefits, and HR platform for small and medium businesses. It helps teams run payroll, manage people, and stay compliant with less busywork.
- [HiBob](https://composio.dev/toolkits/hibob) - HiBob is a human resources platform for managing people data, time off, attendance, and workforce planning. It gives HR teams one place to organize employee information and daily people operations.
- [Hireflix](https://composio.dev/toolkits/hireflix) - Hireflix is a one-way video interview platform for hiring teams. It helps teams manage positions, candidate interviews, templates, and branded hiring workflows in one place.
- [HR Partner](https://composio.dev/toolkits/hr_partner) - HR Partner is a human resources platform for managing employee records, leave, recruitment, performance, timesheets, and expenses. Use it to centralize HR workflows, automate manual HR tasks, and keep employee data organized.
- [Job Search (Rapid API)](https://composio.dev/toolkits/job_search) - Job Search (Rapid API) is a unified service that searches approved job-listing sources via RapidAPI hosts. Use it to aggregate and query listings across providers with a single API.
- [Lever](https://composio.dev/toolkits/lever) - Lever is an applicant tracking system that blends sourcing, CRM, and analytics for recruiting. It helps companies scale hiring with collaborative workflows and actionable insights.
- [Personio](https://composio.dev/toolkits/personio) - Personio is an HR platform for managing employee records, attendance, absences, projects, and documents. It centralizes HR data and streamlines workforce administration for teams and HR leaders.

## Frequently Asked Questions

### Do I need my own developer credentials to use Deputy with Composio?

Yes, Deputy requires you to configure your own OAuth credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
