DeskMonitor
REMOTE · API.THEDESKMONITOR.COM · SCANNED AUG 3
DeskMonitor: 24 workforce-intelligence MCP tools, OAuth 2.1, free demo key included.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability73
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2770 tokens (~115/item across 24 items; 24 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
- Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 89% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · api.thedeskmonitor.com
claude mcp add --transport http com-thedeskmonitor-mcp https://api.thedeskmonitor.com/api/mcp/v1
[mcp_servers.com-thedeskmonitor-mcp] url = "https://api.thedeskmonitor.com/api/mcp/v1"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-thedeskmonitor-mcp": {
"type": "remote",
"url": "https://api.thedeskmonitor.com/api/mcp/v1",
"enabled": true
}
}
} openclaw mcp add com-thedeskmonitor-mcp --url https://api.thedeskmonitor.com/api/mcp/v1 --transport streamable-http
mcp_servers:
com-thedeskmonitor-mcp:
url: "https://api.thedeskmonitor.com/api/mcp/v1" {
"mcpServers": {
"com-thedeskmonitor-mcp": {
"type": "http",
"url": "https://api.thedeskmonitor.com/api/mcp/v1"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 0
- Stability: unverified → 0.03 ▲ functional
- 2 Aug 26 +37
- Transport: unverified → pass ▲ security
- Authorization: Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. security
- MCP protocol: unverified → fail ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- Tool “start_free_trial” now declares an output schema ▲ functional
- Tool “invite_staff” now declares an output schema ▲ functional
- Tool “list_employees” now declares an output schema ▲ functional
- Tool “list_my_timesheet” now declares an output schema ▲ functional
- Tool “list_pending_approvals” now declares an output schema ▲ functional
- Tool “list_recent_activity” now declares an output schema ▲ functional
- Tool “summarize_team_hours” now declares an output schema ▲ functional
- Tool “switch_to_demo” now declares an output schema ▲ functional
- Tool “switch_to_production” now declares an output schema ▲ functional
- Tool “ask_workforce” now declares an output schema ▲ functional
- Tool “clock_in” now declares an output schema ▲ functional
- Tool “clock_out” now declares an output schema ▲ functional
- Tool “get_analytics_feature_usage” now declares an output schema ▲ functional
- Tool “get_analytics_overview” now declares an output schema ▲ functional
- Tool “get_analytics_questions” now declares an output schema ▲ functional
- Tool “get_capabilities” now declares an output schema ▲ functional
- Tool “get_dashboard_summary” now declares an output schema ▲ functional
- Tool “get_data_dictionary” now declares an output schema ▲ functional
- Tool “get_demo_scenarios” now declares an output schema ▲ functional
- Tool “get_employee_details” now declares an output schema ▲ functional
- Tool “get_pricing_and_plans” now declares an output schema ▲ functional
- Tool “get_productivity_overview” now declares an output schema ▲ functional
- Tool “get_started_guide” now declares an output schema ▲ functional
- Tool “get_workload_alerts” now declares an output schema ▲ functional
- First check of Tool coverage: 89 functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 79 functional
- First check of Schema quality: fail functional
- First check of Schema quality: good functional
- “list_employees” reworded the description of “page” cosmetic
- “list_employees” reworded the description of “page_size” cosmetic
- “list_pending_approvals” reworded the description of “team_id” cosmetic
- “summarize_team_hours” reworded the description of “team_id” cosmetic
- “get_analytics_feature_usage” reworded the description of “period” cosmetic
- 31 Jul 26 +14
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 24
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://api.thedeskmonitor.com/api/mcp/v1
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=thedeskmonitor.com | CN=WE1,O=Google Trust Services,C=US | 15 Jun 2026 | 13 Sept 2026 | ECDSA 256 | ECDSA-SHA256 | e2344166d9ca6ca913e6d2a679cef289 |
| SANs: thedeskmonitor.com, *.thedeskmonitor.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of api.thedeskmonitor.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| thedeskmonitor.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer realm="DeskMonitor MCP", resource_metadata="https://api.thedeskmonitor.com/.well-known/oauth-protected-resource"
Bearer realm="DeskMonitor MCP", resource_metadata="https://api.thedeskmonitor.com/.well-known/oauth-protected-resource" | Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.paddle.com https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://fonts.gstatic.com https://cdn.jsdelivr.net; font-src 'self' data: https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' wss: https:; frame-src https://cdn.paddle.com; |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=() |
Protected resource metadata
| Document | https://api.thedeskmonitor.com/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://api.thedeskmonitor.com |
| Authorisation server | https://api.thedeskmonitor.com |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.thedeskmonitor.com/api/mcp/v1 | Verified | 200 | |
| http (plaintext) | http://api.thedeskmonitor.com/api/mcp/v1 | HTTPS enforced | 301 | https://api.thedeskmonitor.com/api/mcp/v1 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
ask_workforce Ask Workforce Question ~189
Use when the user asks a free-form, open-ended question about their workforce that you are not sure which other tool answers — for example: 'Which team has the highest cost-to-output?', 'How is my team performing?', 'Who should I talk to first?', 'What's the biggest issue today?'. Pass the user's question VERBATIM in the 'question' field — do not paraphrase or summarize. The question is logged as admin-only product telemetry for product improvement purposes. This tool returns routing guidance pointing to the specific DeskMonitor tools most likely to answer the question. After calling this tool, call the suggested tools to retrieve real data. Note: Questions asked via this tool are logged for product improvement (admin-only, tenant-scoped, not employee data).
| Name | Type | Req | Description |
|---|---|---|---|
| question | string | yes | The user's question about their workforce, in their own words. Pass verbatim — do not paraphrase. |
| Name | Type | Req | Description |
|---|---|---|---|
| acknowledged | boolean | — | Whether the question was captured |
| message | string | — | Confirmation and routing guidance |
| question_received | string | — | Echo of the question (truncated to 200 chars) |
| suggested_tools | array | — | Tools most likely to answer this question |
| tip | string | — | Follow-up suggestion |
No examples provided.
clock_in Clock In ~236
Clock the authenticated user in to start a new work session. Creates a TimeLog entry in DeskMonitor. Use when the user says 'clock me in', 'start my shift', 'I am starting work', or any attendance start phrase. Supports optional GPS coordinates for geofence validation. WARNING: This is a write tool — it mutates DeskMonitor data. Always confirm with the user before calling this tool. Example: tell the user what you are about to do and ask for explicit confirmation before proceeding. Calling clock_in will end any active DeskAgent desktop session for this user (cross-device handover by design). Do NOT call if the user is already clocked in — call get_dashboard_summary first to check status. Returns: { success, clock_in_time, is_within_geofence, matched_office_name, next_tap_due_at }. Requires a user-scoped API key (dm_live_* key bound to a specific user). Disabled in demo mode.
| Name | Type | Req | Description |
|---|---|---|---|
| latitude | number | — | GPS latitude (optional). Used for geofence validation. |
| longitude | number | — | GPS longitude (optional). Used for geofence validation. |
| Name | Type | Req | Description |
|---|---|---|---|
| clock_in_time | string | — | ISO 8601 clock-in timestamp |
| error | string | — | Error code if clock-in failed |
| is_within_geofence | boolean | — | Whether the location is within a configured geofence |
| matched_office_name | string | — | Name of the matched office/geofence, if any |
| message | string | — | Human-readable result or error message |
| next_tap_due_at | string | — | When the next attendance tap is expected |
| success | boolean | — | Whether the clock-in succeeded |
No examples provided.
clock_out Clock Out ~164
Clock the authenticated user out to end their current work session. Finalises the TimeLog and generates gap-fill blocks. Use when the user says 'clock me out', 'end my shift', 'I am done for the day', or any attendance end phrase. WARNING: This is a write tool — it mutates DeskMonitor data. Always confirm with the user before calling this tool. Do NOT call if the user is already clocked out — call get_dashboard_summary first to check status. Returns: { success, clock_in_time, clock_out_time, blocks_generated }. Requires a user-scoped API key. Disabled in demo mode.
| Name | Type | Req | Description |
|---|---|---|---|
| latitude | number | — | GPS latitude at clock-out (optional). |
| longitude | number | — | GPS longitude at clock-out (optional). |
| Name | Type | Req | Description |
|---|---|---|---|
| blocks_generated | integer | — | Number of gap-fill TimeLog blocks created |
| clock_in_time | string | — | ISO 8601 clock-in timestamp for this session |
| clock_out_time | string | — | ISO 8601 clock-out timestamp |
| error | string | — | Error code if clock-out failed |
| message | string | — | Human-readable result or error message |
| success | boolean | — | Whether the clock-out succeeded |
No examples provided.
get_analytics_feature_usage Platform Feature Usage Breakdown ~193
Returns a breakdown of which DeskMonitor MCP tools users are calling most — sourced from the internal McpAuditLogs table, grouped by ToolName (top-N tool call counts for the period). Use when the user asks: 'which MCP tools are most used?', 'which features are most popular?', 'what do AI clients do most in DeskMonitor?', 'show me feature engagement'. Do NOT use for: raw session counts or audience size (use get_analytics_overview), employee-level productivity data (use get_productivity_overview), or real-time attendance data. Auth: requires Admin or OwnerAdmin API key. Not available in demo mode. Returns: feature_areas (list with tool_name and call_count), top_events, period, as_of.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Number of feature areas to return. |
| period | string | — | Reporting window for tool call counts. Default: this_week. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | — | Snapshot timestamp |
| available | boolean | — | Whether analytics data is available |
| feature_areas | array | — | Top tool call counts grouped by ToolName |
| period | string | — | Reporting window used |
| top_events | array | — | Top event names with counts |
No examples provided.
get_analytics_overview Platform Analytics Overview ~251
Returns platform-level DeskMonitor analytics — AI/MCP queries served (from the internal McpAuditLogs table), web sessions, active unique visitors (1-day, 7-day, 28-day windows) and top referring sources (from Cloudflare Web Analytics when configured). Use when the user asks: 'how many users does DeskMonitor have?', 'show me traffic stats', 'how many AI queries were served?', 'how many people are using DeskMonitor?', or any question about platform-level usage counts or audience size. Do NOT use for: per-tenant employee data (use get_dashboard_summary), individual timesheet data (use list_my_timesheet), or real-time attendance (use get_workload_alerts). Auth: requires an Admin or OwnerAdmin API key. Not available in demo mode. Returns: active_users_1d, active_users_7d, active_users_28d, sessions_in_period, ai_queries_served_in_period, top_sources (up to 5), period, as_of. Web traffic fields are 0 when Cloudflare Analytics is not configured (AI query count is always present).
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | — | Reporting window for session and AI-query counts. |
| Name | Type | Req | Description |
|---|---|---|---|
| active_users_1d | integer | — | Unique active users in the last 1 day |
| active_users_28d | integer | — | Unique active users in the last 28 days |
| active_users_7d | integer | — | Unique active users in the last 7 days |
| ai_queries_served_in_period | integer | — | MCP tool calls served from McpAuditLogs |
| as_of | string | — | Snapshot timestamp |
| available | boolean | — | Whether analytics data is available |
| period | string | — | Reporting window used |
| sessions_in_period | integer | — | Total sessions in the reporting window |
| top_sources | array | — | Top referring sources with session counts |
No examples provided.
get_analytics_questions Demand Analytics — Questions & Themes ~142
Returns demand intelligence captured from ask_workforce calls: recent verbatim admin questions, top question themes with counts, and the most-requested 'period' argument values across all tools. Use when the admin asks: 'What questions have I asked?', 'What am I asking most?', 'What data am I looking for?', 'Show me my question history', 'What features am I using most?'. Auth: requires Admin or OwnerAdmin role. Not available in demo mode. Tenant-scoped — only returns this tenant's data.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max number of recent questions to return. |
| period | string | — | Reporting window for question history. |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | — | Snapshot timestamp |
| available | boolean | — | Whether results are available (false in demo mode) |
| period | string | — | Reporting window used |
| period_demand | array | — | Most-requested period argument values |
| privacy_note | string | — | Privacy scope note |
| question_count | integer | — | Number of questions returned |
| recent_questions | array | — | Recent verbatim questions with timestamps |
| top_themes | array | — | Theme groupings with counts |
No examples provided.
get_capabilities Capabilities ~80
Returns a structured list of DeskMonitor AI capabilities grouped by user role. Use when a new user asks 'what can I ask you?', 'what can DeskMonitor do?', 'show me all commands', 'what AI features are available?', or any capability-discovery question. Returns role-appropriate command examples and the public capabilities page URL. No authentication required.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key_permissions | object | — | API key scope and permission model |
| capabilities_by_role | object | — | Commands grouped by role: everyone, manager_above, admin_owner_admin |
| changelog_url | string | — | URL to product changelog |
| compliance | object | — | Compliance status (GDPR etc) |
| data_storage | object | — | Cloud provider and data residency |
| employee_self_service | object | — | Self-service features available to employees |
| industries | array | — | Target industry verticals |
| org_structure | object | — | Org hierarchy and role levels |
| payment_integrations | object | — | PayPal/Wise integration status by use case |
| platforms | array | — | Platform availability (web, desktop, mobile) |
| privacy_model | object | — | Privacy and monitoring model details |
| related_resources | object | — | Deep-link to the capabilities reference page |
| remote_team_support | object | — | Remote team support details |
| report_types | array | — | Available report types |
| sso_available | boolean | — | Whether SSO is currently live |
| sso_roadmap | string | — | SSO roadmap status |
| support | object | — | Support contact information |
| supported_ai_clients | object | — | Confirmed and in-development AI client integrations |
| tool_names | array | — | List of all tool name strings |
| total_tools | integer | — | Total number of MCP tools available |
| write_tools | array | — | Tools that mutate data |
No examples provided.
get_dashboard_summary Dashboard Summary ~77
Returns the dashboard KPIs for the current user — hours worked today, team productivity score, pending approvals, active headcount. Use when the user asks 'how is my team today?', 'am I clocked in?', 'what's my summary?'. Do NOT use for historical timesheet data — use list_my_timesheet for that.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | — | ISO 8601 timestamp of the snapshot |
| error | string | — | Error message if retrieval failed |
No examples provided.
get_data_dictionary Data Dictionary ~69
Returns the schema of queryable data — what fields exist, their meaning, and which tools expose them. Use when the user asks 'what data exists?', 'what fields are available?', or 'what is a productivity score?'. NOT for querying live data — use the analytics tools for live results.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| entities | array | — | Array of data entity definitions, each with name, description, fields array, and exposed_by_tool |
No examples provided.
get_demo_scenarios Demo Scenarios ~43
Returns 5 guided scenario walkthroughs using the demo tenant's synthetic data. Use when the user wants to see example queries or guided tours of DeskMonitor capabilities.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| scenarios | array | — | Array of scenario objects, each with id, title, description, and suggested_queries array |
No examples provided.
get_employee_details Employee Details ~83
Returns the full profile for a specific employee including role, team, clock-in status, and recent activity. Use when the user asks about ONE specific person. Use list_employees for multiple people. Use 'me' as employee_id for the authenticated user's own profile.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | string | yes | Employee ID (UUID) or 'me' for the authenticated user. |
| Name | Type | Req | Description |
|---|---|---|---|
| string | — | Work email | |
| id | string | — | Employee UUID |
| is_clocked_in | boolean | — | Whether currently clocked in |
| name | string | — | Full name |
| role | string | — | Employee role |
| team | string | — | Team name |
No examples provided.
get_pricing_and_plans Pricing and Plans ~72
Returns DeskMonitor pricing plans and subscription details. Use when the user asks 'how much does DeskMonitor cost?', 'what plans are available?', 'is there a free trial?', 'what\'s the pricing?'. Returns plan names, features, and pricing page URL. Safe to call without authentication.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| billing_portal_url | string | — | URL to the billing portal |
| change_plan_note | string | — | Guidance on changing plans |
| data_source | string | — | live_db or fallback |
| demo_mode | object | — | Demo mode availability |
| free_trial | object | — | Free trial availability and duration |
| note | string | — | Data freshness note |
| payment_integrations | object | — | PayPal/Wise integration status |
| plans | array | — | Array of plan objects (Community, Starter, Professional, Business, Enterprise) |
| related_resources | object | — | Pricing and signup page URLs |
| upgrade_url | string | — | URL to upgrade or manage billing |
No examples provided.
get_productivity_overview Productivity Overview ~99
Returns productivity scores and active/idle time ratios for an employee or team. Use when the user asks 'what's my productivity score?', 'how productive was the team?', or 'show me active vs idle time'. Employee sees own data only. Manager+ can query other team member IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | — | — |
| user_id | string | — | Target user. Defaults to authenticated user. Manager+ can specify team member IDs. |
| Name | Type | Req | Description |
|---|---|---|---|
| data_availability | string | — | available | no_data | synthetic_demo |
| period_applied | string | — | Period enum value used |
| privacy_note | string | — | Privacy clarification for activity scoring |
| productiveSeconds | integer | — | Seconds of productive app use |
| score | integer | — | Productivity score 0-100 |
| totalSeconds | integer | — | Total tracked seconds |
| week_end | string | — | Period end date (YYYY-MM-DD) |
| week_start | string | — | Period start date (YYYY-MM-DD) |
No examples provided.
get_started_guide Get Started Guide ~90
Returns a role-scoped welcome message and curated sample questions to help you get started with DeskMonitor AI. Use when a new user asks 'what can I do?', 'what can I ask?', or 'how do I get started?' Call this first when connecting. Do NOT use for querying live workforce data.
| Name | Type | Req | Description |
|---|---|---|---|
| role | string | — | Your role hint. If omitted, inferred from auth token. |
| Name | Type | Req | Description |
|---|---|---|---|
| api_key_note | string | — | API key setup guidance |
| api_key_setup_url | string | — | URL to generate an API key |
| mcp_auth_method | string | — | Auth method description |
| mcp_config_snippet | string | — | Ready-to-paste MCP client config JSON |
| mcp_server_url | string | — | MCP server endpoint URL |
| mode | string | — | demo or production |
| sample_questions | array | — | Curated starter questions for this role |
| support | object | — | Support contact information |
| tenant_name | string | — | Tenant display name |
| welcome_message | string | — | Role-scoped welcome text |
No examples provided.
get_workload_alerts Workload Alerts ~73
Returns workload alerts — team members with unusual hours, employees not yet clocked in, timesheet gaps. Use when the manager asks 'who needs attention?', 'any anomalies today?', 'any warnings?', or 'are there any issues?'.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | — | Date to check. Defaults to today. |
| Name | Type | Req | Description |
|---|---|---|---|
| alerts | array | — | Array of workload alert items per employee |
| as_of | string | — | Snapshot timestamp |
| total_count | integer | — | Total number of alerts |
No examples provided.
invite_staff Invite Staff Member ~207
Invite a staff member to join your DeskMonitor workspace by email. Use when the user asks to 'add an employee', 'invite a team member', 'send a team invite', 'onboard someone new', or 'invite [name] to my workspace'. The invite is sent by email — the recipient gets a link to set up their account and join as an Employee. Only OwnerAdmin and Admin roles can invite staff. The invitee always joins as an Employee (role is display-only on the invite). WARNING: This is a write tool — it sends a real email invitation and creates a workspace account invitation. Always confirm the email address with the user before calling this tool. Disabled in demo mode. Returns: { status, message, email, name }.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Email address of the person to invite. Must be a valid email. Required. | |
| name | string | — | Full name of the person to invite (shown in the invitation email). Optional but recommended. |
| Name | Type | Req | Description |
|---|---|---|---|
| string | — | Email address the invite was sent to | |
| error | string | — | Error code if invitation failed |
| message | string | — | Human-readable result message |
| name | string | — | Name on the invitation, if provided |
| status | string | — | invitation_sent or error code |
No examples provided.
list_employees List Employees ~125
Lists employees visible to the current user based on their role. Supports pagination and name search. Use when the user asks 'who is on my team?', 'list all employees', or wants a roster. Use get_employee_details for information about ONE specific person.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | — | Page number (1-based). Default: 1. |
| page_size | integer | — | Number of employees per page (max 100). Default: 20. |
| search | string | — | Name or email search filter |
| team_id | string | — | Filter by team (manager scope) |
| Name | Type | Req | Description |
|---|---|---|---|
| applied_filters | object | — | Echo of filters used: team_id, search, page, page_size |
| result | object | — | Paginated result: employees array, total count, current page |
No examples provided.
list_my_timesheet My Timesheet ~105
Returns the authenticated user's time log entries for a date range. Use when the user asks 'how many hours have I worked?', 'show me my timesheet', or 'what did I work on yesterday?'. Cannot query another person's timesheet — use summarize_team_hours for team-level hours.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | — | Start date (YYYY-MM-DD). Defaults to 30 days ago. |
| to | string | — | End date (YYYY-MM-DD). Defaults to today. |
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | — | Array of timesheet entries |
| total_hours | number | — | Total hours in the date range |
No examples provided.
list_pending_approvals Pending Approvals ~78
Returns timesheets pending approval in the manager's team. Requires Manager role or above. Use when the manager asks 'show me pending approvals', 'who needs sign-off?', or 'any outstanding timesheets?'.
| Name | Type | Req | Description |
|---|---|---|---|
| team_id | string | — | Optional team UUID to filter pending approvals. Omit for all teams visible to this user. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | — | Number of pending approval items |
| items | array | — | Array of pending approval records |
No examples provided.
list_recent_activity Recent Activity ~100
Returns a daily aggregate activity feed scoped to the authenticated user, including clock events, timesheet submissions, and approval actions. Use when the user asks 'show me recent activity', 'what happened today?', or 'what did I do yesterday?'. Not a real-time stream — data reflects completed events within the selected time window.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | — |
| since | string | — | Return activity after this timestamp. Defaults to 24h ago. |
| Name | Type | Req | Description |
|---|---|---|---|
| events | array | — | Array of activity events |
No examples provided.
start_free_trial Start Free Trial ~81
Returns the DeskMonitor free trial sign-up URL and onboarding instructions. Use when the user says 'I want to sign up', 'start a free trial', 'how do I get started?', 'create an account', 'I want to use DeskMonitor'. This is an informational tool — it provides the registration URL, not a write action. No authentication required.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key_note | string | — | API key setup guidance |
| api_key_setup_url | string | — | URL to generate an API key |
| demo_first | object | — | Demo key and description for pre-signup exploration |
| enterprise_path | object | — | Enterprise qualification pathway guidance |
| mcp_config_snippet | string | — | Ready-to-paste MCP client config JSON |
| mcp_server_url | string | — | MCP server endpoint URL |
| onboarding_steps | array | — | Step-by-step getting started guide |
| related_resources | object | — | Signup URL and label |
| signup_url | string | — | Registration URL with UTM tracking |
| trial_details | object | — | Trial duration, no-credit-card status, what's included |
No examples provided.
summarize_team_hours Team Hours Summary ~115
Aggregates hours worked by the manager's team for a given period. Requires Manager role or above. Use when the manager asks 'how many hours did my team work this week?', 'show me team hours', or 'who worked the most hours?'. Do NOT use for an individual employee's timesheet — use list_my_timesheet for personal timesheets.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | — | — |
| team_id | string | — | Team ID (UUID) to scope the report. Defaults to the manager's primary team if omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| period_applied | string | — | Period enum value used |
| period_end | string | — | Computed end date (YYYY-MM-DD) |
| period_start | string | — | Computed start date (YYYY-MM-DD) |
| result | object | — | Team hours breakdown from the attendance report |
| scope_team_id | string | — | Resolved team UUID or null for org-wide |
| scope_team_name | string | — | Resolved team name |
No examples provided.
switch_to_demo Switch to Demo Mode ~55
Switches to DeskMonitor demo mode with synthetic data. Returns demo tenant info and suggested queries. Use when the user wants to explore without a real account. Use a dm_demo_* API key to call data tools in demo mode.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| demo_tenant_id | string | — | Demo tenant readable ID (DEMO-000001) |
| message | string | — | Activation confirmation message |
| mode | string | — | Always 'demo' |
| note | string | — | Instructions for calling data tools in demo mode |
| sample_questions | array | — | Suggested queries to try in demo mode |
No examples provided.
switch_to_production Switch to Production Mode ~43
Switches back to production mode and confirms your real tenant context from your auth token. Use when the user wants to see their real company data after exploring demo mode.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | — | Confirmation or onboarding guidance |
| mode | string | — | Always 'production' |
| tenant_readable_id | string | — | The authenticated tenant's readable ID |
| user_id | string | — | Authenticated user ID |
No examples provided.