deputy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEPUTY_TIMEOUT | No | Per-request HTTP timeout, seconds. | 30 |
| DEPUTY_BASE_URL | No | Your install origin, e.g. https://your-company.eu.deputy.com. | |
| DEPUTY_ENV_FILE | No | Path to a dotenv file to load `DEPUTY_*` values from. | |
| DEPUTY_API_TOKEN | No | Deputy permanent or OAuth access token (stored redacted). | |
| DEPUTY_CACHE_TTL | No | In-memory read-cache lifetime, seconds. `0` disables caching. | 30 |
| DEPUTY_MAX_RETRIES | No | Automatic retries on `429`/`5xx` (with backoff). | 3 |
| DEPUTY_ALLOW_WRITES | No | Enable the write tools. | false |
| DEPUTY_CALENDAR_URL | No | Your personal iCal feed URL (token-free, roster-only, stored redacted). | |
| DEPUTY_ALLOW_CUSTOM_HOST | No | Allow a base URL host outside `*.deputy.com` (enterprise custom domains). | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| deputy_whoamiA | Verify the Deputy connection and confirm which identity the token uses. Returns who the API token authenticates as, the company/location and its timezone, whether that user is clocked in right now (from their in-progress timesheet), and their personal iCal calendar subscription URL when the install exposes one. Run this first to confirm setup before other tools. When NOT to use: to read schedules or people (use deputy_get_my_roster or deputy_get_employee_info) — this only checks the connection and identity. Returns markdown (a connection summary: signed-in name, company, timezone, whether
clocked in, and the calendar feed) or, with response_format="json", an object
|
| deputy_get_my_calendar_urlA | Return the signed-in user's personal Deputy calendar (iCal) subscription URL. Deputy publishes a per-user, read-only iCal feed of your roster (the CalendarURL on /api/v1/me). Add the returned link to any calendar app (Google Calendar, Apple Calendar, Outlook) to see your shifts there; it stays in sync as your roster changes. Works at any access level — it reads only your own /me record. When NOT to use: to read the shifts themselves here (use deputy_get_my_roster or deputy_next_shift) — this only returns the subscription link. Returns markdown (the subscription link, or a note that this install exposes none)
or, with response_format="json", an object |
| deputy_get_my_rosterA | List the signed-in user's own upcoming shifts in a date range. Defaults to today through the next 7 days, computed in UTC; dates are ISO YYYY-MM-DD. When NOT to use: for other people's shifts (use deputy_get_team_roster) or for worked time (use deputy_get_my_timesheets) — this returns your scheduled shifts. Returns markdown (a shift list, times in the install timezone) or, with response_format="json", a list of Roster records. The output is identical whether the roster came from the Deputy API or, in iCal mode, from your calendar feed. |
| deputy_next_shiftA | Return the single next upcoming shift for an employee (name or id). Omit 'employee' to get your own next shift. A name must resolve to exactly one active person; otherwise the matches are listed for you to retry by id. When NOT to use: for a full range of upcoming shifts (use deputy_get_my_roster or deputy_search_shifts) — this returns only the earliest one. Returns markdown (one shift, or a 'none scheduled' note) or, with response_format="json", a single Roster record or null. In iCal mode only your own next shift is available (naming another employee needs an API token). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| summarize_my_week | Summarize the user's scheduled shifts and worked hours for the week. |
| coverage_check | Check staffing coverage for a date: rostered staff, open shifts, who is on. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| my_roster_this_week | Your own shifts for the current week (Monday-Sunday), rendered as markdown. |
| my_roster_next_week | Your own shifts for next week (Monday-Sunday), rendered as markdown. |
TDQS
Scored across 4 tools
Each tool has a clear primary purpose, and the explicit 'When NOT to use' notes help separate roster listing from next-shift lookup. There is minor overlap where whoami also returns the calendar URL and next_shift is a single-item subset of the roster, but these are not likely to cause serious misselection.
All tools share the deputy_ prefix and use snake_case, and three of the four follow a get_my_* pattern. deputy_whoami and deputy_next_shift break the verb-first convention, but the naming remains predictable and readable.
Four tools is a reasonable, compact set for a personal roster/identity assistant. It feels slightly thin for a general Deputy integration, especially since several missing tools are referenced in descriptions, but the count itself is not excessive.
The self-service schedule workflow is covered, but the descriptions reference four tools that do not exist in this server: deputy_get_employee_info, deputy_get_team_roster, deputy_get_my_timesheets, and deputy_search_shifts. There are also no leave, timesheet, or shift-management tools, so common Deputy queries will hit dead ends.