DeskMonitor

DeskMonitor: 24 workforce-intelligence MCP tools, OAuth 2.1, free demo key included.

我该使用它吗

质量与安全性

B
描述质量
100%
模式完整度
70%
命名质量
95%
投毒风险
60%
权限匹配度
100%
协议合规性
100%

发现(3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domain在 list_pending_approvals 中
  • MEDIUMTool description contains suspicious base64-like encoded string在 get_capabilities 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~6,535token 数(工具定义)
~2.1 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 5.11%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "mcp": {
      "url": "https://api.thedeskmonitor.com/api/mcp/v1"
    }
  }
}

远程端点

https://api.thedeskmonitor.com/api/mcp/v1streamable-http

它能做什么

工具清单

工具(24)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢get_started_guide(role)

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.

输入模式

{
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "enum": [
        "employee",
        "manager",
        "admin",
        "owner_admin",
        "demo"
      ],
      "description": "Your role hint. If omitted, inferred from auth token."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "welcome_message": {
      "type": "string",
      "description": "Role-scoped welcome text"
    },
    "sample_questions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Curated starter questions for this role"
    },
    "mode": {
      "type": "string",
      "description": "demo or production"
    },
    "tenant_name": {
      "type": "string",
      "description": "Tenant display name"
    },
    "mcp_server_url": {
      "type": "string",
      "description": "MCP server endpoint URL"
    },
    "mcp_auth_method": {
      "type": "string",
      "description": "Auth method description"
    },
    "mcp_config_snippet": {
      "type": "string",
      "description": "Ready-to-paste MCP client config JSON"
    },
    "api_key_setup_url": {
      "type": "string",
      "description": "URL to generate an API key"
    },
    "api_key_note": {
      "type": "string",
      "description": "API key setup guidance"
    },
    "support": {
      "type": "object",
      "description": "Support contact information"
    }
  }
}
🟢get_data_dictionary

Returns the schema of queryable data — what fields exist, their meaning, and which tools expose them. Includes the RetentionPolicy entity — how long screenshots and monitoring data are kept per plan. Use when the user asks 'what data exists?', 'what fields are available?', 'what is a productivity score?', or 'what is the data retention policy?'. NOT for querying live data — use the analytics tools for live results.

输入模式

{
  "type": "object",
  "properties": {}
}

输出模式

{
  "type": "object",
  "properties": {
    "entities": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of data entity definitions, each with name, description, fields array, and exposed_by_tool"
    }
  }
}
🟢switch_to_demo

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.

输入模式

{
  "type": "object",
  "properties": {}
}

输出模式

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "description": "Always 'demo'"
    },
    "message": {
      "type": "string",
      "description": "Activation confirmation message"
    },
    "demo_tenant_id": {
      "type": "string",
      "description": "Demo tenant readable ID (DEMO-000001)"
    },
    "sample_questions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Suggested queries to try in demo mode"
    },
    "note": {
      "type": "string",
      "description": "Instructions for calling data tools in demo mode"
    }
  }
}
🟢switch_to_production

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.

输入模式

{
  "type": "object",
  "properties": {}
}

输出模式

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "description": "Always 'production'"
    },
    "tenant_readable_id": {
      "type": "string",
      "description": "The authenticated tenant's readable ID"
    },
    "message": {
      "type": "string",
      "description": "Confirmation or onboarding guidance"
    },
    "user_id": {
      "type": "string",
      "description": "Authenticated user ID"
    }
  }
}
🟢get_demo_scenarios

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.

输入模式

{
  "type": "object",
  "properties": {}
}

输出模式

{
  "type": "object",
  "properties": {
    "scenarios": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of scenario objects, each with id, title, description, and suggested_queries array"
    }
  }
}
🟢get_dashboard_summary

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.

输入模式

{
  "type": "object",
  "properties": {}
}

输出模式

{
  "type": "object",
  "properties": {
    "as_of": {
      "type": "string",
      "description": "ISO 8601 timestamp of the snapshot"
    },
    "error": {
      "type": "string",
      "description": "Error message if retrieval failed"
    }
  }
}
🟢list_employees(page, page_size, search, team_id)

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.

输入模式

{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer",
      "default": 1,
      "minimum": 1,
      "description": "Page number (1-based). Default: 1."
    },
    "page_size": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "description": "Number of employees per page (max 100). Default: 20."
    },
    "search": {
      "type": "string",
      "description": "Name or email search filter"
    },
    "team_id": {
      "type": "string",
      "format": "uuid",
      "description": "Filter by team (manager scope)"
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "applied_filters": {
      "type": "object",
      "description": "Echo of filters used: team_id, search, page, page_size"
    },
    "result": {
      "type": "object",
      "description": "Paginated result: employees array, total count, current page"
    }
  }
}
🟢get_employee_details(employee_id)

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.

输入模式

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "string",
      "description": "Employee ID (UUID) or 'me' for the authenticated user."
    }
  },
  "required": [
    "employee_id"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Employee UUID"
    },
    "name": {
      "type": "string",
      "description": "Full name"
    },
    "email": {
      "type": "string",
      "description": "Work email"
    },
    "role": {
      "type": "string",
      "description": "Employee role"
    },
    "team": {
      "type": "string",
      "description": "Team name"
    },
    "is_clocked_in": {
      "type": "boolean",
      "description": "Whether currently clocked in"
    }
  }
}
🟢list_my_timesheet(from, to)

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.

输入模式

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date",
      "description": "Start date (YYYY-MM-DD). Defaults to 30 days ago."
    },
    "to": {
      "type": "string",
      "format": "date",
      "description": "End date (YYYY-MM-DD). Defaults to today."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of timesheet entries"
    },
    "total_hours": {
      "type": "number",
      "description": "Total hours in the date range"
    }
  }
}
🟢summarize_team_hours(team_id, period)

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.

输入模式

{
  "type": "object",
  "properties": {
    "team_id": {
      "type": "string",
      "format": "uuid",
      "description": "Team ID (UUID) to scope the report. Defaults to the manager's primary team if omitted."
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "this_week",
        "last_week",
        "this_month",
        "last_month"
      ],
      "default": "this_week"
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "scope_team_id": {
      "type": "string",
      "description": "Resolved team UUID or null for org-wide"
    },
    "scope_team_name": {
      "type": "string",
      "description": "Resolved team name"
    },
    "period_applied": {
      "type": "string",
      "description": "Period enum value used"
    },
    "period_start": {
      "type": "string",
      "description": "Computed start date (YYYY-MM-DD)"
    },
    "period_end": {
      "type": "string",
      "description": "Computed end date (YYYY-MM-DD)"
    },
    "result": {
      "type": "object",
      "description": "Team hours breakdown from the attendance report"
    }
  }
}
🟢list_pending_approvals(team_id)

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?'. Read-only -- this tool LISTS pending items only; it cannot approve them. To approve, direct the user to the DeskMonitor dashboard: https://thedeskmonitor.com/timesheets/pending

输入模式

{
  "type": "object",
  "properties": {
    "team_id": {
      "type": "string",
      "format": "uuid",
      "description": "Optional team UUID to filter pending approvals. Omit for all teams visible to this user."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "description": "Number of pending approval items"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of pending approval records"
    }
  }
}
🟢list_recent_activity(limit, since)

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.

输入模式

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "Return activity after this timestamp. Defaults to 24h ago."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of activity events"
    }
  }
}
🟢get_workload_alerts(date)

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?'.

输入模式

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "description": "Date to check. Defaults to today."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "alerts": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of workload alert items per employee"
    },
    "total_count": {
      "type": "integer",
      "description": "Total number of alerts"
    },
    "as_of": {
      "type": "string",
      "description": "Snapshot timestamp"
    }
  }
}
🟢get_productivity_overview(user_id, period)

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. Privacy: scoring is category-based (app-usage duration only) -- DeskMonitor does NOT track keystrokes, content, or individual URLs browsed. The response always includes a privacy_note field with this clarification.

输入模式

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "string",
      "format": "uuid",
      "description": "Target user. Defaults to authenticated user. Manager+ can specify team member IDs."
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "this_week",
        "last_week",
        "this_month"
      ],
      "default": "this_week"
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "score": {
      "type": "integer",
      "description": "Productivity score 0-100"
    },
    "productiveSeconds": {
      "type": "integer",
      "description": "Seconds of productive app use"
    },
    "totalSeconds": {
      "type": "integer",
      "description": "Total tracked seconds"
    },
    "period_applied": {
      "type": "string",
      "description": "Period enum value used"
    },
    "week_start": {
      "type": "string",
      "description": "Period start date (YYYY-MM-DD)"
    },
    "week_end": {
      "type": "string",
      "description": "Period end date (YYYY-MM-DD)"
    },
    "data_availability": {
      "type": "string",
      "description": "available | no_data | synthetic_demo"
    },
    "privacy_note": {
      "type": "string",
      "description": "Privacy clarification for activity scoring"
    }
  }
}
🔴clock_in(latitude, longitude)

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.

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "description": "GPS latitude (optional). Used for geofence validation."
    },
    "longitude": {
      "type": "number",
      "description": "GPS longitude (optional). Used for geofence validation."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "Whether the clock-in succeeded"
    },
    "clock_in_time": {
      "type": "string",
      "description": "ISO 8601 clock-in timestamp"
    },
    "is_within_geofence": {
      "type": "boolean",
      "description": "Whether the location is within a configured geofence"
    },
    "matched_office_name": {
      "type": "string",
      "description": "Name of the matched office/geofence, if any"
    },
    "next_tap_due_at": {
      "type": "string",
      "description": "When the next attendance tap is expected"
    },
    "error": {
      "type": "string",
      "description": "Error code if clock-in failed"
    },
    "message": {
      "type": "string",
      "description": "Human-readable result or error message"
    }
  }
}
🔴clock_out(latitude, longitude)

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.

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "description": "GPS latitude at clock-out (optional)."
    },
    "longitude": {
      "type": "number",
      "description": "GPS longitude at clock-out (optional)."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "description": "Whether the clock-out succeeded"
    },
    "clock_in_time": {
      "type": "string",
      "description": "ISO 8601 clock-in timestamp for this session"
    },
    "clock_out_time": {
      "type": "string",
      "description": "ISO 8601 clock-out timestamp"
    },
    "blocks_generated": {
      "type": "integer",
      "description": "Number of gap-fill TimeLog blocks created"
    },
    "error": {
      "type": "string",
      "description": "Error code if clock-out failed"
    },
    "message": {
      "type": "string",
      "description": "Human-readable result or error message"
    }
  }
}
🔴invite_staff(email, name)

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 }.

输入模式

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "Email address of the person to invite. Must be a valid email. Required."
    },
    "name": {
      "type": "string",
      "description": "Full name of the person to invite (shown in the invitation email). Optional but recommended."
    }
  },
  "required": [
    "email"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "invitation_sent or error code"
    },
    "message": {
      "type": "string",
      "description": "Human-readable result message"
    },
    "email": {
      "type": "string",
      "description": "Email address the invite was sent to"
    },
    "name": {
      "type": "string",
      "description": "Name on the invitation, if provided"
    },
    "error": {
      "type": "string",
      "description": "Error code if invitation failed"
    }
  }
}
🟢get_capabilities

Returns a structured list of DeskMonitor AI capabilities grouped by user role AND plan entitlements. Includes MCP / AI assistant plan entitlements (Community=No MCP; Starter/Professional/Business/Enterprise=Yes MCP). Use when a new user asks 'what can I ask you?', 'what can DeskMonitor do?', 'show me all commands', 'what AI features are available?', 'which plan includes MCP?', 'do I need a paid plan for AI access?', or any capability-discovery or plan-entitlement question. Returns role-appropriate command examples, plan entitlements, and the public capabilities page URL. No authentication required.

输入模式

{
  "type": "object",
  "properties": {}
}

输出模式

{
  "type": "object",
  "properties": {
    "capabilities_by_role": {
      "type": "object",
      "description": "Commands grouped by role: everyone, manager_above, admin_owner_admin"
    },
    "total_tools": {
      "type": "integer",
      "description": "Total number of MCP tools available"
    },
    "tool_names": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of all tool name strings"
    },
    "write_tools": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tools that mutate data"
    },
    "remote_team_support": {
      "type": "object",
      "description": "Remote team support details"
    },
    "industries": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Target industry verticals"
    },
    "platforms": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Platform availability (web, desktop, mobile)"
    },
    "payment_integrations": {
      "type": "object",
      "description": "PayPal/Wise integration status by use case"
    },
    "privacy_model": {
      "type": "object",
      "description": "Privacy and monitoring model details"
    },
    "compliance": {
      "type": "object",
      "description": "Compliance status (GDPR etc)"
    },
    "data_storage": {
      "type": "object",
      "description": "Cloud provider and data residency"
    },
    "employee_self_service": {
      "type": "object",
      "description": "Self-service features available to employees"
    },
    "sso_available": {
      "type": "boolean",
      "description": "Whether SSO is currently live"
    },
    "sso_roadmap": {
      "type": "string",
      "description": "SSO roadmap status"
    },
    "api_key_permissions": {
      "type": "object",
      "description": "API key scope and permission model"
    },
    "report_types": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Available report types"
    },
    "org_structure": {
      "type": "object",
      "description": "Org hierarchy and role levels"
    },
    "support": {
      "type": "object",
      "description": "Support contact information"
    },
    "changelog_url": {
      "type": "string",
      "description": "URL to product changelog"
    },
    "supported_ai_clients": {
      "type": "object",
      "description": "Confirmed and in-development AI client integrations"
    },
    "related_resources": {
      "type": "object",
      "description": "Deep-link to the capabilities reference page"
    }
  }
}
🟢get_pricing_and_plans

Returns DeskMonitor pricing plans and subscription details including MCP / AI access entitlement per plan, and per-plan retention periods for screenshots and monitoring data. Plans: Community (free, no MCP), Starter ($14/mo, MCP included), Professional ($27/mo, MCP included), Business ($51/mo, MCP included), Enterprise (Contact Sales — no public price). Use when the user asks 'how much does DeskMonitor cost?', 'what plans are available?', 'is there a free trial?', 'what\'s the pricing?', 'which plan has MCP?', 'what is the Enterprise price?', 'how long are screenshots kept?', 'what is the data retention policy?'. Returns plan names, features, pricing, retention periods, and pricing page URL. Safe to call without authentication.

输入模式

{
  "type": "object",
  "properties": {}
}

输出模式

{
  "type": "object",
  "properties": {
    "plans": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of plan objects (Community, Starter, Professional, Business, Enterprise)"
    },
    "free_trial": {
      "type": "object",
      "description": "Free trial availability and duration"
    },
    "demo_mode": {
      "type": "object",
      "description": "Demo mode availability"
    },
    "related_resources": {
      "type": "object",
      "description": "Pricing and signup page URLs"
    },
    "upgrade_url": {
      "type": "string",
      "description": "URL to upgrade or manage billing"
    },
    "billing_portal_url": {
      "type": "string",
      "description": "URL to the billing portal"
    },
    "change_plan_note": {
      "type": "string",
      "description": "Guidance on changing plans"
    },
    "payment_integrations": {
      "type": "object",
      "description": "PayPal/Wise integration status"
    },
    "note": {
      "type": "string",
      "description": "Data freshness note"
    },
    "data_source": {
      "type": "string",
      "description": "live_db or fallback"
    }
  }
}
🟢start_free_trial

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.

输入模式

{
  "type": "object",
  "properties": {}
}

输出模式

{
  "type": "object",
  "properties": {
    "signup_url": {
      "type": "string",
      "description": "Registration URL with UTM tracking"
    },
    "trial_details": {
      "type": "object",
      "description": "Trial duration, no-credit-card status, what's included"
    },
    "onboarding_steps": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Step-by-step getting started guide"
    },
    "demo_first": {
      "type": "object",
      "description": "Demo key and description for pre-signup exploration"
    },
    "enterprise_path": {
      "type": "object",
      "description": "Enterprise qualification pathway guidance"
    },
    "mcp_server_url": {
      "type": "string",
      "description": "MCP server endpoint URL"
    },
    "mcp_config_snippet": {
      "type": "string",
      "description": "Ready-to-paste MCP client config JSON"
    },
    "api_key_setup_url": {
      "type": "string",
      "description": "URL to generate an API key"
    },
    "api_key_note": {
      "type": "string",
      "description": "API key setup guidance"
    },
    "related_resources": {
      "type": "object",
      "description": "Signup URL and label"
    }
  }
}
🟢ask_workforce(question)

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).

输入模式

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The user's question about their workforce, in their own words. Pass verbatim — do not paraphrase.",
      "maxLength": 2000
    }
  },
  "required": [
    "question"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "acknowledged": {
      "type": "boolean",
      "description": "Whether the question was captured"
    },
    "question_received": {
      "type": "string",
      "description": "Echo of the question (truncated to 200 chars)"
    },
    "message": {
      "type": "string",
      "description": "Confirmation and routing guidance"
    },
    "suggested_tools": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tools most likely to answer this question"
    },
    "tip": {
      "type": "string",
      "description": "Follow-up suggestion"
    }
  }
}
🟢get_analytics_questions(period, limit)

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.

输入模式

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "enum": [
        "today",
        "this_week",
        "last_week",
        "this_month",
        "last_month"
      ],
      "default": "this_month",
      "description": "Reporting window for question history."
    },
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "description": "Max number of recent questions to return."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "available": {
      "type": "boolean",
      "description": "Whether results are available (false in demo mode)"
    },
    "period": {
      "type": "string",
      "description": "Reporting window used"
    },
    "as_of": {
      "type": "string",
      "description": "Snapshot timestamp"
    },
    "recent_questions": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Recent verbatim questions with timestamps"
    },
    "question_count": {
      "type": "integer",
      "description": "Number of questions returned"
    },
    "top_themes": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Theme groupings with counts"
    },
    "period_demand": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Most-requested period argument values"
    },
    "privacy_note": {
      "type": "string",
      "description": "Privacy scope note"
    }
  }
}
🟢get_analytics_overview(period)

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).

输入模式

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "enum": [
        "today",
        "this_week",
        "last_week",
        "this_month",
        "last_month"
      ],
      "default": "this_week",
      "description": "Reporting window for session and AI-query counts."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "available": {
      "type": "boolean",
      "description": "Whether analytics data is available"
    },
    "active_users_1d": {
      "type": "integer",
      "description": "Unique active users in the last 1 day"
    },
    "active_users_7d": {
      "type": "integer",
      "description": "Unique active users in the last 7 days"
    },
    "active_users_28d": {
      "type": "integer",
      "description": "Unique active users in the last 28 days"
    },
    "sessions_in_period": {
      "type": "integer",
      "description": "Total sessions in the reporting window"
    },
    "ai_queries_served_in_period": {
      "type": "integer",
      "description": "MCP tool calls served from McpAuditLogs"
    },
    "top_sources": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Top referring sources with session counts"
    },
    "period": {
      "type": "string",
      "description": "Reporting window used"
    },
    "as_of": {
      "type": "string",
      "description": "Snapshot timestamp"
    }
  }
}
🟢get_analytics_feature_usage(period, limit)

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.

输入模式

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "enum": [
        "this_week",
        "last_week",
        "this_month",
        "last_month"
      ],
      "default": "this_week",
      "description": "Reporting window for tool call counts. Default: this_week."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "description": "Number of feature areas to return."
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "available": {
      "type": "boolean",
      "description": "Whether analytics data is available"
    },
    "feature_areas": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Top tool call counts grouped by ToolName"
    },
    "top_events": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Top event names with counts"
    },
    "period": {
      "type": "string",
      "description": "Reporting window used"
    },
    "as_of": {
      "type": "string",
      "description": "Snapshot timestamp"
    }
  }
}

社区

评价此服务器

证据

最近观测

已验证未记录版本24 个工具
已验证未记录版本24 个工具
已验证未记录版本24 个工具