Analyze Burnout Risk
analyze_burnoutAssess burnout risk across physical, emotional, and effectiveness dimensions. Provides a score, risk level, factors, urgency rating, and personalized recommendations based on user responses.
Instructions
Score burnout risk across 3 dimensions (physical, emotional, effectiveness). Returns a 0-100 total score, risk level (low/moderate/high/critical), risk factors, urgency rating, and personalized recommendations. Requires 3-20 response items covering at least the 3 dimensions. Free tier: 500 calls/month. All tiers have access.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| responses | Yes | Array of 3-20 scored responses across the 3 burnout dimensions. Must include at least one item per dimension (physical, emotional, effectiveness). | |
| context | No | Optional context for more personalized analysis | |
| language | No | Response language: 'fr' (French, default) or 'en' (English) | fr |
| include_recommendations | No | Include personalized recommendations in the response. Default: true |
Implementation Reference
- src/index.ts:146-213 (handler)Registration and implementation (handler) of the `analyze_burnout` tool.
server.registerTool( "analyze_burnout", { title: "Analyze Burnout Risk", description: "Score burnout risk across 3 dimensions (physical, emotional, effectiveness). " + "Returns a 0-100 total score, risk level (low/moderate/high/critical), " + "risk factors, urgency rating, and personalized recommendations. " + "Requires 3-20 response items covering at least the 3 dimensions. " + "Free tier: 500 calls/month. All tiers have access.", inputSchema: { responses: z.array(ResponseItemSchema).min(3).max(20).describe( "Array of 3-20 scored responses across the 3 burnout dimensions. " + "Must include at least one item per dimension (physical, emotional, effectiveness).", ), context: ContextSchema, language: z.enum(["fr", "en"]).default("fr").optional().describe( "Response language: 'fr' (French, default) or 'en' (English)", ), include_recommendations: z.boolean().default(true).optional().describe( "Include personalized recommendations in the response. Default: true", ), }, annotations: { readOnlyHint: true, openWorldHint: true, }, }, async ({ responses, context, language, include_recommendations }) => { const result = await apiRequest("/api/v1/analyze-burnout", { method: "POST", body: JSON.stringify({ responses, context, options: { include_recommendations: include_recommendations ?? true, include_dimensions: true, language: language ?? "fr", }, }), }); if (!result.success) { return { isError: true, content: [ { type: "text" as const, text: `Burnout analysis failed: ${result.error?.message || "Unknown error"}`, }, ], }; } 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: JSON.stringify(result.data, null, 2) + quotaInfo, }, ], }; }, ); - src/index.ts:106-119 (schema)Zod schema definitions for the input parameters of `analyze_burnout`.
const ResponseItemSchema = z.object({ dimension: z.enum(["physical", "emotional", "effectiveness"]).describe( "Burnout dimension to score: physical (sleep, energy, health), emotional (motivation, stress, mood), effectiveness (productivity, focus, achievement)", ), question_id: z.string().min(1).describe( "Identifier for the specific question (e.g., 'sleep', 'motivation', 'productivity')", ), value: z.number().min(0).max(100).describe( "Score from 0 (worst) to 100 (best) for this question", ), weight: z.number().min(1).max(3).default(1).optional().describe( "Importance weight: 1 (normal), 2 (important), 3 (critical). Default: 1", ), });