deputy
What this MCP does
Manages Deputy workforce scheduling, employees, shifts, leave, unavailability, timesheets and staff communications.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['employee_id', 'start_time', 'end_time'], 'properties': {'comment': {'type': 'string', 'description': 'Note the manager sees. Default empty.'}, 'end_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Unavailability end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'recurrence': {'type': 'object', 'required': ['FREQ', 'INTERVAL', 'BYDAY'], 'properties': {'FREQ': {'type': 'string', 'description': 'e.g. WEEKLY.'}, 'BYDAY': {'type': 'string', 'description': 'Day code(s), e.g. MO.'}, 'INTERVAL': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Every N periods, e.g. 1 or 2.'}}, 'description': 'Omit for a one-off block.'}, 'start_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Unavailability start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The employee id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['timesheet_id'], 'properties': {'timesheet_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The timesheet id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['employee_id', 'leave_rule_id', 'location_id', 'start_date', 'start_time', 'end_date', 'end_time', 'comment'], 'properties': {'status': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}], 'description': '0 awaiting approval (default), 1 already approved.'}, 'comment': {'type': 'string', 'description': "The employee's note to the manager."}, 'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Last day, YYYY-MM-DD.'}, 'end_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Leave end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'First day, YYYY-MM-DD.'}, 'start_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Leave start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The employee id.'}, 'location_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Location (Company id) the leave is recorded against.'}, 'leave_rule_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Leave type (LeaveRules id), e.g. annual leave.'}, 'approval_comment': {'type': 'string', 'description': "Manager's comment, when status is 1."}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['content', 'location_id'], 'properties': {'content': {'type': 'string', 'minLength': 1, 'description': 'The memo text.'}, 'user_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'description': 'Only these USER ids (not employee ids) receive it.'}, 'location_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Location (Company id) to post to.'}, 'location_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'description': 'Also show at these locations.'}, 'require_confirm': {'type': 'boolean', 'description': 'Ask staff to confirm they have read it. Default false.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['start_time', 'end_time', 'area_id'], 'properties': {'open': {'type': 'boolean', 'description': 'Show the shift as open for employees to claim.'}, 'area_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Area (OperationalUnit id) the shift is for.'}, 'comment': {'type': 'string', 'description': 'Comment shown on the shift.'}, 'publish': {'type': 'boolean', 'description': 'Publish now. Publishing can notify the employee. Default false (draft).'}, 'end_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Shift end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'confirmed': {'type': 'boolean', 'description': 'Mark the shift as confirmed.'}, 'start_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Shift start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Employee to put on the shift. Omit (and set open: true) for an unfilled shift.'}, 'force_overwrite': {'type': 'boolean', 'description': 'Overwrite a clashing shift for the same employee. Default false.'}, 'mealbreak_minutes': {'type': 'integer', 'maximum': 600, 'minimum': 0, 'description': 'Unpaid meal break length in minutes.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['object'], 'properties': {'object': {'enum': ['Address', 'Category', 'Comment', 'Company', 'CompanyPeriod', 'Contact', 'Country', 'CustomField', 'CustomFieldData', 'Employee', 'EmployeeAgreement', 'EmployeeAgreementHistory', 'EmployeeAppraisal', 'EmployeeAvailability', 'EmployeeContractedHours', 'EmployeeHistory', 'EmployeePaycycle', 'EmployeePaycycleReturn', 'EmployeeRole', 'EmployeeWorkplace', 'EmploymentCondition', 'EmploymentContract', 'EmploymentContractLeaveRules', 'Event', 'Journal', 'Leave', 'LeaveAccrual', 'LeavePayLine', 'LeaveRules', 'Memo', 'OperationalUnit', 'PayPeriod', 'PayRules', 'PublicHoliday', 'Roster', 'RosterOpen', 'RosterSwap', 'RosterTemplate', 'SalesData', 'Schedule', 'ShiftTemplate', 'State', 'StressProfile', 'Task', 'TaskGroup', 'TaskSetup', 'Team', 'Timesheet', 'TimesheetExport', 'TimesheetPayReturn', 'TimesheetPayReturnDetail', 'TrainingModule', 'TrainingRecord'], 'type': 'string', 'description': 'Resource API object. Deputy names: Company = location, OperationalUnit = area, Roster = shift, LeaveRules = leave types, TimesheetPayReturn = approved pay lines.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['employee_id'], 'properties': {'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The employee id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['employee_id'], 'properties': {'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The employee id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['shift_id'], 'properties': {'shift_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The shift (Roster) id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['timesheet_id'], 'properties': {'timesheet_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The timesheet id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'max': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': "Page size, 1-500 (Deputy's cap). Default 100."}, 'start': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': "Pagination offset (0-based). Pass the previous page's next_start."}, 'active': {'type': 'boolean', 'description': 'Only active (true) or inactive (false) areas.'}, 'location_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Only areas of this location (Company id).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'max': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': "Page size, 1-500 (Deputy's cap). Default 100."}, 'start': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': "Pagination offset (0-based). Pass the previous page's next_start."}, 'active': {'type': 'boolean', 'description': 'true = current staff only; false = terminated/inactive only.'}, 'location_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Only employees whose main location is this Company id.'}, 'name_contains': {'type': 'string', 'description': 'Only employees whose DisplayName contains this text.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'to': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Only leave starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times).'}, 'max': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': "Page size, 1-500 (Deputy's cap). Default 100."}, 'from': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Only leave starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times).'}, 'start': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': "Pagination offset (0-based). Pass the previous page's next_start."}, 'status': {'type': 'integer', 'maximum': 5, 'minimum': 0, 'description': 'Only this status (0-5, see description).'}, 'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': "Only this employee's leave."}, 'location_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Only leave against this location (Company id).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'to': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Only shifts starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times).'}, 'max': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': "Page size, 1-500 (Deputy's cap). Default 100."}, 'from': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Only shifts starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times).'}, 'open': {'type': 'boolean', 'description': 'true = open (unfilled) shifts only.'}, 'start': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': "Pagination offset (0-based). Pass the previous page's next_start."}, 'area_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Only shifts in this area (OperationalUnit id).'}, 'published': {'type': 'boolean', 'description': 'true = published only; false = drafts only.'}, 'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': "Only this employee's shifts."}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'to': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Only timesheets starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times).'}, 'max': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': "Page size, 1-500 (Deputy's cap). Default 100."}, 'from': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Only timesheets starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times).'}, 'start': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': "Pagination offset (0-based). Pass the previous page's next_start."}, 'area_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Only timesheets in this area (OperationalUnit id).'}, 'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': "Only this employee's timesheets."}, 'in_progress': {'type': 'boolean', 'description': 'true = only people currently on the clock.'}, 'pay_approved': {'type': 'boolean', 'description': 'Filter on PayRuleApproved (approved for payroll export).'}, 'time_approved': {'type': 'boolean', 'description': 'Filter on TimeApproved (supervisor approved the times).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['shift_ids', 'notify_mode'], 'properties': {'shift_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'maxItems': 500, 'minItems': 1, 'description': 'Roster ids to publish.'}, 'notify_mode': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': '1 SMS+email, 2 SMS, 3 email, 4 none, 5 confirmation required.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['object'], 'properties': {'max': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': "Page size, 1-500 (Deputy's cap). Default 100."}, 'join': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Related objects to expand inline, e.g. ["TimesheetObject"] on TimesheetPayReturn.'}, 'sort': {'type': 'object', 'description': 'Field → asc/desc, e.g. {"Id":"desc"}.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'enum': ['asc', 'desc'], 'type': 'string'}}, 'start': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': "Pagination offset (0-based). Pass the previous page's next_start."}, 'object': {'enum': ['Address', 'Category', 'Comment', 'Company', 'CompanyPeriod', 'Contact', 'Country', 'CustomField', 'CustomFieldData', 'Employee', 'EmployeeAgreement', 'EmployeeAgreementHistory', 'EmployeeAppraisal', 'EmployeeAvailability', 'EmployeeContractedHours', 'EmployeeHistory', 'EmployeePaycycle', 'EmployeePaycycleReturn', 'EmployeeRole', 'EmployeeWorkplace', 'EmploymentCondition', 'EmploymentContract', 'EmploymentContractLeaveRules', 'Event', 'Journal', 'Leave', 'LeaveAccrual', 'LeavePayLine', 'LeaveRules', 'Memo', 'OperationalUnit', 'PayPeriod', 'PayRules', 'PublicHoliday', 'Roster', 'RosterOpen', 'RosterSwap', 'RosterTemplate', 'SalesData', 'Schedule', 'ShiftTemplate', 'State', 'StressProfile', 'Task', 'TaskGroup', 'TaskSetup', 'Team', 'Timesheet', 'TimesheetExport', 'TimesheetPayReturn', 'TimesheetPayReturnDetail', 'TrainingModule', 'TrainingRecord'], 'type': 'string', 'description': 'Resource API object. Deputy names: Company = location, OperationalUnit = area, Roster = shift, LeaveRules = leave types, TimesheetPayReturn = approved pay lines.'}, 'search': {'type': 'object', 'description': 'Clauses keyed by any id (s1, s2, …). All must match.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['field', 'data', 'type'], 'properties': {'data': {'description': 'Comparison value; type depends on the field.'}, 'type': {'enum': ['eq', 'ne', 'gt', 'lt', 'ge', 'le', 'is', 'is not', 'in', 'not in', 'starts', 'contains'], 'type': 'string', 'description': 'Comparison operator.'}, 'field': {'type': 'string', 'description': 'Field name, e.g. Employee, Date, StartTime.'}}}}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['shift_id', 'start_time', 'end_time', 'area_id'], 'properties': {'open': {'type': 'boolean', 'description': 'Show the shift as open for employees to claim.'}, 'area_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Area (OperationalUnit id) the shift is for.'}, 'comment': {'type': 'string', 'description': 'Comment shown on the shift.'}, 'publish': {'type': 'boolean', 'description': 'Publish now. Publishing can notify the employee. Default false (draft).'}, 'end_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Shift end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'shift_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The shift (Roster) id.'}, 'confirmed': {'type': 'boolean', 'description': 'Mark the shift as confirmed.'}, 'start_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Shift start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'employee_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Employee to put on the shift. Omit (and set open: true) for an unfilled shift.'}, 'force_overwrite': {'type': 'boolean', 'description': 'Overwrite a clashing shift for the same employee. Default false.'}, 'mealbreak_minutes': {'type': 'integer', 'maximum': 600, 'minimum': 0, 'description': 'Unpaid meal break length in minutes.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['timesheet_id', 'start_time', 'end_time', 'area_id'], 'properties': {'area_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Area (OperationalUnit id) the time was worked in.'}, 'comment': {'type': 'string', 'description': 'Comment attached to the timesheet.'}, 'end_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Timesheet end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'start_time': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'string'}], 'description': 'Timesheet start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times).'}, 'timesheet_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The timesheet id.'}, 'mealbreak_minutes': {'type': 'integer', 'maximum': 600, 'minimum': 0, 'description': 'Total unscheduled meal break, minutes.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Recent tool changes
Similar MCP servers
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
TaScan
Manages field-service projects, workers, task lists, subtasks, dispatch, geofenced work zones, inspections, remediation workflows…
Tango
Manages shared work between humans and agents through tasks, leases, handoffs, approvals, artifacts, comments, integrations, prog…
AIOProductOS MCP
Combines customer records, support conversations, feedback, product analytics, roadmaps, tasks, experiments, releases, and retent…
agendaforge
Manages events, agendas, sessions, speakers, attendees, sponsors, forms, contacts, email templates, approvals, and organizer work…
Refine Job Search
Tracks job applications, interviews, offers, recruiter email, and company openings, with Gmail synchronization and workflow actio…