Quick Burnout Check
quick_burnout_checkScreen for burnout risk by analyzing physical, emotional, and professional effectiveness scores to identify potential wellness concerns.
Instructions
Simplified burnout screening with just 3 scores (one per dimension). Perfect for quick assessments in conversations, chatbots, or triage. Internally calls analyze_burnout with sensible defaults.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| physical_score | Yes | Physical wellbeing score 0-100 (sleep quality, energy, health). Low = burnout risk. | |
| emotional_score | Yes | Emotional wellbeing score 0-100 (motivation, stress, mood). Low = burnout risk. | |
| effectiveness_score | Yes | Professional effectiveness score 0-100 (productivity, focus, achievement). Low = burnout risk. | |
| profession | No | Professional role (e.g., 'entrepreneur', 'developer', 'manager') | |
| hours_per_week | No | Weekly working hours (triggers overwork alert if > 50) | |
| language | No | Response language: 'fr' or 'en' | fr |
Implementation Reference
- src/index.ts:334-394 (handler)The handler for the quick_burnout_check tool. It makes an API request to /api/v1/analyze-burnout and formats the response.
async ({ physical_score, emotional_score, effectiveness_score, profession, hours_per_week, language }) => { const result = await apiRequest("/api/v1/analyze-burnout", { method: "POST", body: JSON.stringify({ responses: [ { dimension: "physical", question_id: "overall_physical", value: physical_score, weight: 2 }, { dimension: "emotional", question_id: "overall_emotional", value: emotional_score, weight: 2 }, { dimension: "effectiveness", question_id: "overall_effectiveness", value: effectiveness_score, weight: 2 }, ], context: { ...(profession && { profession }), ...(hours_per_week && { hours_per_week }), }, options: { include_recommendations: true, include_dimensions: true, language: language ?? "fr", }, }), }); if (!result.success) { return { isError: true, content: [ { type: "text" as const, text: `Quick burnout check failed: ${result.error?.message || "Unknown error"}`, }, ], }; } const data = result.data as Record<string, unknown>; const score = data?.score as Record<string, unknown> | undefined; const risk = data?.risk as Record<string, unknown> | undefined; const recommendations = data?.recommendations as string[] | undefined; const summary = [ `Burnout Score: ${score?.total ?? "N/A"}/100`, `Risk Level: ${risk?.level ?? "N/A"} (urgency: ${risk?.urgency ?? "N/A"}/10)`, `Dimensions: Physical ${(score?.dimensions as Record<string, number>)?.physical ?? "N/A"} | Emotional ${(score?.dimensions as Record<string, number>)?.emotional ?? "N/A"} | Effectiveness ${(score?.dimensions as Record<string, number>)?.effectiveness ?? "N/A"}`, "", ...(risk?.factors ? [`Risk Factors: ${(risk.factors as string[]).join(", ")}`] : []), "", ...(recommendations?.length ? ["Recommendations:", ...recommendations.map((r: string) => ` - ${r}`)] : []), ].join("\n"); const quotaInfo = result.meta ? `\n\nAPI Quota: ${result.meta.quota.used}/${result.meta.quota.limit} (${result.meta.quota.tier} tier)` : ""; return { content: [ { type: "text" as const, text: summary + quotaInfo, }, ], }; }, - src/index.ts:301-333 (registration)Registration and input schema definition for quick_burnout_check.
server.registerTool( "quick_burnout_check", { title: "Quick Burnout Check", description: "Simplified burnout screening with just 3 scores (one per dimension). " + "Perfect for quick assessments in conversations, chatbots, or triage. " + "Internally calls analyze_burnout with sensible defaults.", inputSchema: { physical_score: z.number().min(0).max(100).describe( "Physical wellbeing score 0-100 (sleep quality, energy, health). Low = burnout risk.", ), emotional_score: z.number().min(0).max(100).describe( "Emotional wellbeing score 0-100 (motivation, stress, mood). Low = burnout risk.", ), effectiveness_score: z.number().min(0).max(100).describe( "Professional effectiveness score 0-100 (productivity, focus, achievement). Low = burnout risk.", ), profession: z.string().max(100).optional().describe( "Professional role (e.g., 'entrepreneur', 'developer', 'manager')", ), hours_per_week: z.number().min(0).max(120).optional().describe( "Weekly working hours (triggers overwork alert if > 50)", ), language: z.enum(["fr", "en"]).default("fr").optional().describe( "Response language: 'fr' or 'en'", ), }, annotations: { readOnlyHint: true, openWorldHint: true, }, },