Generate Detailed Burnout Report
generate_burnout_reportGenerate a comprehensive burnout assessment report with dimension-by-dimension analysis, action plans, and resource recommendations to address workplace stress and improve mental wellness.
Instructions
Generate a comprehensive burnout assessment report with dimension-by-dimension analysis, action plans (immediate/short-term/long-term), and resource recommendations. REQUIRES Starter tier or above (29€/month). Free tier will receive a 403 error. More detailed than analyze_burnout — includes interpretations, status per dimension, and a structured action plan.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| responses | Yes | Array of 3-20 scored responses across the 3 burnout dimensions. | |
| context | No | Context for personalized report generation | |
| language | No | Report language: 'fr' (French) or 'en' (English) | fr |
| format | No | Output format: 'json' (structured data) or 'html' (rendered report) | json |
Implementation Reference
- src/index.ts:253-290 (handler)The handler logic for 'generate_burnout_report' executes an API call to '/api/v1/generate-report'.
async ({ responses, context, language, format }) => { const result = await apiRequest("/api/v1/generate-report", { method: "POST", body: JSON.stringify({ responses, context, language: language ?? "fr", format: format ?? "json", }), }); if (!result.success) { const errMsg = result.error?.message || "Unknown error"; const hint = result.error?.status === 403 ? "\n\nHint: This endpoint requires a Starter tier or above (29€/month). " + "Upgrade at: https://stresszeroentrepreneur.fr/intelligence-api#pricing" : ""; return { isError: true, content: [ { type: "text" as const, text: `Report generation failed: ${errMsg}${hint}`, }, ], }; } 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:229-247 (schema)Input schema definition for the 'generate_burnout_report' tool.
inputSchema: { responses: z.array(ResponseItemSchema).min(3).max(20).describe( "Array of 3-20 scored responses across the 3 burnout dimensions.", ), context: z.object({ profession: z.string().max(100).optional().describe("Professional title"), hours_per_week: z.number().min(0).max(120).optional().describe("Weekly hours"), team_size: z.number().min(0).max(1000).optional().describe("Team size"), years_experience: z.number().min(0).max(50).optional().describe("Years experience"), company_name: z.string().max(200).optional().describe("Company name (for report header)"), employee_name: z.string().max(200).optional().describe("Subject name (for report header)"), }).optional().describe("Context for personalized report generation"), language: z.enum(["fr", "en"]).default("fr").optional().describe( "Report language: 'fr' (French) or 'en' (English)", ), format: z.enum(["json", "html"]).default("json").optional().describe( "Output format: 'json' (structured data) or 'html' (rendered report)", ), }, - src/index.ts:219-252 (registration)Tool registration for 'generate_burnout_report' using server.registerTool.
server.registerTool( "generate_burnout_report", { title: "Generate Detailed Burnout Report", description: "Generate a comprehensive burnout assessment report with dimension-by-dimension analysis, " + "action plans (immediate/short-term/long-term), and resource recommendations. " + "REQUIRES Starter tier or above (29€/month). Free tier will receive a 403 error. " + "More detailed than analyze_burnout — includes interpretations, status per dimension, " + "and a structured action plan.", inputSchema: { responses: z.array(ResponseItemSchema).min(3).max(20).describe( "Array of 3-20 scored responses across the 3 burnout dimensions.", ), context: z.object({ profession: z.string().max(100).optional().describe("Professional title"), hours_per_week: z.number().min(0).max(120).optional().describe("Weekly hours"), team_size: z.number().min(0).max(1000).optional().describe("Team size"), years_experience: z.number().min(0).max(50).optional().describe("Years experience"), company_name: z.string().max(200).optional().describe("Company name (for report header)"), employee_name: z.string().max(200).optional().describe("Subject name (for report header)"), }).optional().describe("Context for personalized report generation"), language: z.enum(["fr", "en"]).default("fr").optional().describe( "Report language: 'fr' (French) or 'en' (English)", ), format: z.enum(["json", "html"]).default("json").optional().describe( "Output format: 'json' (structured data) or 'html' (rendered report)", ), }, annotations: { readOnlyHint: true, openWorldHint: true, }, },