stresszero-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +157 -0
- package/build/index.d.ts +13 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +454 -0
- package/build/index.js.map +1 -0
- package/package.json +66 -0
- package/smithery.yaml +20 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Emmanuel Gomes Soares — StressZero Entrepreneur
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# StressZero MCP Server
|
|
2
|
+
|
|
3
|
+
MCP server for the [StressZero Intelligence API](https://stresszeroentrepreneur.fr/intelligence-api) — Score burnout risk across 3 dimensions with AI agents.
|
|
4
|
+
|
|
5
|
+
The **only** burnout scoring MCP server available. Enable Claude, Cursor, Windsurf, n8n, and any MCP-compatible client to assess burnout risk in real-time conversations.
|
|
6
|
+
|
|
7
|
+
## Tools
|
|
8
|
+
|
|
9
|
+
| Tool | Description |
|
|
10
|
+
|------|-------------|
|
|
11
|
+
| `analyze_burnout` | Score burnout risk across physical, emotional, and effectiveness dimensions. Returns score, risk level, factors, and recommendations. |
|
|
12
|
+
| `generate_burnout_report` | Generate a detailed burnout assessment report with action plans. Requires Starter+ tier. |
|
|
13
|
+
| `quick_burnout_check` | Simplified 3-score burnout screening for chatbots and triage. |
|
|
14
|
+
| `get_stresszero_api_key` | Create a free API key (500 calls/month) for a user. |
|
|
15
|
+
|
|
16
|
+
## Resources
|
|
17
|
+
|
|
18
|
+
| Resource | Description |
|
|
19
|
+
|----------|-------------|
|
|
20
|
+
| `stresszero://openapi` | Complete OpenAPI 3.1 specification |
|
|
21
|
+
|
|
22
|
+
## Prompts
|
|
23
|
+
|
|
24
|
+
| Prompt | Description |
|
|
25
|
+
|--------|-------------|
|
|
26
|
+
| `burnout_assessment` | Guided burnout assessment questionnaire template (FR/EN) |
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
### 1. Get your free API key
|
|
31
|
+
|
|
32
|
+
Visit [stresszeroentrepreneur.fr/intelligence-api](https://stresszeroentrepreneur.fr/intelligence-api) and sign up. Free tier: **500 calls/month**, no credit card required.
|
|
33
|
+
|
|
34
|
+
### 2. Configure your MCP client
|
|
35
|
+
|
|
36
|
+
#### Claude Desktop
|
|
37
|
+
|
|
38
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"stresszero": {
|
|
44
|
+
"command": "npx",
|
|
45
|
+
"args": ["-y", "stresszero-mcp"],
|
|
46
|
+
"env": {
|
|
47
|
+
"STRESSZERO_API_KEY": "sz_live_your_key_here"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Claude Code
|
|
55
|
+
|
|
56
|
+
Add to `.mcp.json` at your project root or `~/.claude/mcp.json`:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"mcpServers": {
|
|
61
|
+
"stresszero": {
|
|
62
|
+
"command": "npx",
|
|
63
|
+
"args": ["-y", "stresszero-mcp"],
|
|
64
|
+
"env": {
|
|
65
|
+
"STRESSZERO_API_KEY": "sz_live_your_key_here"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### Cursor
|
|
73
|
+
|
|
74
|
+
Add to `.cursor/mcp.json`:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"stresszero": {
|
|
80
|
+
"command": "npx",
|
|
81
|
+
"args": ["-y", "stresszero-mcp"],
|
|
82
|
+
"env": {
|
|
83
|
+
"STRESSZERO_API_KEY": "sz_live_your_key_here"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
#### Windsurf
|
|
91
|
+
|
|
92
|
+
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"mcpServers": {
|
|
97
|
+
"stresszero": {
|
|
98
|
+
"command": "npx",
|
|
99
|
+
"args": ["-y", "stresszero-mcp"],
|
|
100
|
+
"env": {
|
|
101
|
+
"STRESSZERO_API_KEY": "sz_live_your_key_here"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 3. Use it
|
|
109
|
+
|
|
110
|
+
Ask Claude: *"Check my burnout risk. My sleep quality is 40/100, motivation is 55/100, and productivity is 35/100. I work 60 hours/week as an entrepreneur."*
|
|
111
|
+
|
|
112
|
+
Claude will automatically call `quick_burnout_check` and return your score with recommendations.
|
|
113
|
+
|
|
114
|
+
## Use Cases
|
|
115
|
+
|
|
116
|
+
- **AI coaching assistant** — Score burnout in real-time during conversations
|
|
117
|
+
- **HR AI agent** — Detect team burnout risk in employee check-ins
|
|
118
|
+
- **Wellness chatbot** — Triage users based on burnout severity
|
|
119
|
+
- **n8n automation** — Trigger alerts when burnout score exceeds threshold
|
|
120
|
+
- **Productivity tool** — Monitor user wellbeing and suggest breaks
|
|
121
|
+
|
|
122
|
+
## API Tiers
|
|
123
|
+
|
|
124
|
+
| Tier | Price | Calls/month | Rate limit |
|
|
125
|
+
|------|-------|-------------|------------|
|
|
126
|
+
| Free | 0€ | 500 | 10/min |
|
|
127
|
+
| Starter | 29€/mo | 5,000 | 30/min |
|
|
128
|
+
| Pro | 99€/mo | 25,000 | 60/min |
|
|
129
|
+
| Enterprise | 299€/mo | 100,000 | 120/min |
|
|
130
|
+
|
|
131
|
+
[Get your API key](https://stresszeroentrepreneur.fr/intelligence-api)
|
|
132
|
+
|
|
133
|
+
## Environment Variables
|
|
134
|
+
|
|
135
|
+
| Variable | Required | Description |
|
|
136
|
+
|----------|----------|-------------|
|
|
137
|
+
| `STRESSZERO_API_KEY` | Yes | Your API key (starts with `sz_live_`) |
|
|
138
|
+
| `STRESSZERO_API_URL` | No | Custom API base URL (default: `https://stresszeroentrepreneur.fr`) |
|
|
139
|
+
|
|
140
|
+
## Development
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
git clone https://github.com/stresszero/stresszero-mcp.git
|
|
144
|
+
cd stresszero-mcp
|
|
145
|
+
npm install
|
|
146
|
+
npm run build
|
|
147
|
+
STRESSZERO_API_KEY=sz_live_xxx node build/index.js
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Debug with the MCP Inspector:
|
|
151
|
+
```bash
|
|
152
|
+
npx @modelcontextprotocol/inspector node build/index.js
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## License
|
|
156
|
+
|
|
157
|
+
MIT — Emmanuel Gomes Soares, [StressZero Entrepreneur](https://stresszeroentrepreneur.fr)
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* StressZero MCP Server
|
|
4
|
+
*
|
|
5
|
+
* Exposes the StressZero Intelligence API as MCP tools for AI agents.
|
|
6
|
+
* Enables Claude, Cursor, Windsurf, n8n, and any MCP-compatible client
|
|
7
|
+
* to score burnout risk, generate reports, and manage API keys.
|
|
8
|
+
*
|
|
9
|
+
* @author Emmanuel Gomes Soares <hello@stresszeroentrepreneur.fr>
|
|
10
|
+
* @see https://stresszeroentrepreneur.fr/intelligence-api
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG"}
|
package/build/index.js
ADDED
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* StressZero MCP Server
|
|
4
|
+
*
|
|
5
|
+
* Exposes the StressZero Intelligence API as MCP tools for AI agents.
|
|
6
|
+
* Enables Claude, Cursor, Windsurf, n8n, and any MCP-compatible client
|
|
7
|
+
* to score burnout risk, generate reports, and manage API keys.
|
|
8
|
+
*
|
|
9
|
+
* @author Emmanuel Gomes Soares <hello@stresszeroentrepreneur.fr>
|
|
10
|
+
* @see https://stresszeroentrepreneur.fr/intelligence-api
|
|
11
|
+
*/
|
|
12
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
13
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
// ============================================================
|
|
16
|
+
// CONFIGURATION
|
|
17
|
+
// ============================================================
|
|
18
|
+
const STRESSZERO_API_KEY = process.env.STRESSZERO_API_KEY;
|
|
19
|
+
if (!STRESSZERO_API_KEY) {
|
|
20
|
+
console.error("Error: STRESSZERO_API_KEY environment variable is required.\n\n" +
|
|
21
|
+
"Get your free API key (500 calls/month) at:\n" +
|
|
22
|
+
" https://stresszeroentrepreneur.fr/intelligence-api\n\n" +
|
|
23
|
+
"Then configure it in your MCP client:\n\n" +
|
|
24
|
+
" Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json\n" +
|
|
25
|
+
" Claude Code: .mcp.json or ~/.claude/mcp.json\n" +
|
|
26
|
+
" Cursor: .cursor/mcp.json\n" +
|
|
27
|
+
" Windsurf: ~/.codeium/windsurf/mcp_config.json\n\n" +
|
|
28
|
+
' "env": { "STRESSZERO_API_KEY": "sz_live_your_key_here" }\n');
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const API_BASE_URL = process.env.STRESSZERO_API_URL || "https://stresszeroentrepreneur.fr";
|
|
32
|
+
const REQUEST_TIMEOUT_MS = 30_000;
|
|
33
|
+
async function apiRequest(endpoint, options = {}) {
|
|
34
|
+
const url = `${API_BASE_URL}${endpoint}`;
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
37
|
+
try {
|
|
38
|
+
const response = await fetch(url, {
|
|
39
|
+
...options,
|
|
40
|
+
signal: controller.signal,
|
|
41
|
+
headers: {
|
|
42
|
+
Authorization: `Bearer ${STRESSZERO_API_KEY}`,
|
|
43
|
+
"Content-Type": "application/json",
|
|
44
|
+
"User-Agent": "stresszero-mcp/1.0.0",
|
|
45
|
+
...options.headers,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
const data = (await response.json());
|
|
49
|
+
if (!response.ok) {
|
|
50
|
+
return {
|
|
51
|
+
success: false,
|
|
52
|
+
error: {
|
|
53
|
+
message: data.error?.message || `HTTP ${response.status}: ${response.statusText}`,
|
|
54
|
+
status: response.status,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return data;
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
62
|
+
return { success: false, error: { message: "Request timed out after 30s" } };
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
success: false,
|
|
66
|
+
error: { message: error instanceof Error ? error.message : "Unknown network error" },
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
clearTimeout(timeout);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// ============================================================
|
|
74
|
+
// SHARED SCHEMAS
|
|
75
|
+
// ============================================================
|
|
76
|
+
const ResponseItemSchema = z.object({
|
|
77
|
+
dimension: z.enum(["physical", "emotional", "effectiveness"]).describe("Burnout dimension to score: physical (sleep, energy, health), emotional (motivation, stress, mood), effectiveness (productivity, focus, achievement)"),
|
|
78
|
+
question_id: z.string().min(1).describe("Identifier for the specific question (e.g., 'sleep', 'motivation', 'productivity')"),
|
|
79
|
+
value: z.number().min(0).max(100).describe("Score from 0 (worst) to 100 (best) for this question"),
|
|
80
|
+
weight: z.number().min(1).max(3).default(1).optional().describe("Importance weight: 1 (normal), 2 (important), 3 (critical). Default: 1"),
|
|
81
|
+
});
|
|
82
|
+
const ContextSchema = z.object({
|
|
83
|
+
profession: z.string().max(100).optional().describe("Professional title or role"),
|
|
84
|
+
hours_per_week: z.number().min(0).max(120).optional().describe("Weekly working hours"),
|
|
85
|
+
team_size: z.number().min(0).max(1000).optional().describe("Team size"),
|
|
86
|
+
years_experience: z.number().min(0).max(50).optional().describe("Years of professional experience"),
|
|
87
|
+
}).optional().describe("Optional context for more personalized analysis");
|
|
88
|
+
// ============================================================
|
|
89
|
+
// MCP SERVER
|
|
90
|
+
// ============================================================
|
|
91
|
+
const server = new McpServer({
|
|
92
|
+
name: "stresszero-mcp",
|
|
93
|
+
version: "1.0.0",
|
|
94
|
+
}, {
|
|
95
|
+
capabilities: { logging: {} },
|
|
96
|
+
});
|
|
97
|
+
// ============================================================
|
|
98
|
+
// TOOL 1: analyze_burnout
|
|
99
|
+
// ============================================================
|
|
100
|
+
server.registerTool("analyze_burnout", {
|
|
101
|
+
title: "Analyze Burnout Risk",
|
|
102
|
+
description: "Score burnout risk across 3 dimensions (physical, emotional, effectiveness). " +
|
|
103
|
+
"Returns a 0-100 total score, risk level (low/moderate/high/critical), " +
|
|
104
|
+
"risk factors, urgency rating, and personalized recommendations. " +
|
|
105
|
+
"Requires 3-20 response items covering at least the 3 dimensions. " +
|
|
106
|
+
"Free tier: 500 calls/month. All tiers have access.",
|
|
107
|
+
inputSchema: {
|
|
108
|
+
responses: z.array(ResponseItemSchema).min(3).max(20).describe("Array of 3-20 scored responses across the 3 burnout dimensions. " +
|
|
109
|
+
"Must include at least one item per dimension (physical, emotional, effectiveness)."),
|
|
110
|
+
context: ContextSchema,
|
|
111
|
+
language: z.enum(["fr", "en"]).default("fr").optional().describe("Response language: 'fr' (French, default) or 'en' (English)"),
|
|
112
|
+
include_recommendations: z.boolean().default(true).optional().describe("Include personalized recommendations in the response. Default: true"),
|
|
113
|
+
},
|
|
114
|
+
annotations: {
|
|
115
|
+
readOnlyHint: true,
|
|
116
|
+
openWorldHint: true,
|
|
117
|
+
},
|
|
118
|
+
}, async ({ responses, context, language, include_recommendations }) => {
|
|
119
|
+
const result = await apiRequest("/api/v1/analyze-burnout", {
|
|
120
|
+
method: "POST",
|
|
121
|
+
body: JSON.stringify({
|
|
122
|
+
responses,
|
|
123
|
+
context,
|
|
124
|
+
options: {
|
|
125
|
+
include_recommendations: include_recommendations ?? true,
|
|
126
|
+
include_dimensions: true,
|
|
127
|
+
language: language ?? "fr",
|
|
128
|
+
},
|
|
129
|
+
}),
|
|
130
|
+
});
|
|
131
|
+
if (!result.success) {
|
|
132
|
+
return {
|
|
133
|
+
isError: true,
|
|
134
|
+
content: [
|
|
135
|
+
{
|
|
136
|
+
type: "text",
|
|
137
|
+
text: `Burnout analysis failed: ${result.error?.message || "Unknown error"}`,
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
const quotaInfo = result.meta
|
|
143
|
+
? `\n\nAPI Quota: ${result.meta.quota.used}/${result.meta.quota.limit} (${result.meta.quota.tier} tier)`
|
|
144
|
+
: "";
|
|
145
|
+
return {
|
|
146
|
+
content: [
|
|
147
|
+
{
|
|
148
|
+
type: "text",
|
|
149
|
+
text: JSON.stringify(result.data, null, 2) + quotaInfo,
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
};
|
|
153
|
+
});
|
|
154
|
+
// ============================================================
|
|
155
|
+
// TOOL 2: generate_burnout_report
|
|
156
|
+
// ============================================================
|
|
157
|
+
server.registerTool("generate_burnout_report", {
|
|
158
|
+
title: "Generate Detailed Burnout Report",
|
|
159
|
+
description: "Generate a comprehensive burnout assessment report with dimension-by-dimension analysis, " +
|
|
160
|
+
"action plans (immediate/short-term/long-term), and resource recommendations. " +
|
|
161
|
+
"REQUIRES Starter tier or above (29€/month). Free tier will receive a 403 error. " +
|
|
162
|
+
"More detailed than analyze_burnout — includes interpretations, status per dimension, " +
|
|
163
|
+
"and a structured action plan.",
|
|
164
|
+
inputSchema: {
|
|
165
|
+
responses: z.array(ResponseItemSchema).min(3).max(20).describe("Array of 3-20 scored responses across the 3 burnout dimensions."),
|
|
166
|
+
context: z.object({
|
|
167
|
+
profession: z.string().max(100).optional().describe("Professional title"),
|
|
168
|
+
hours_per_week: z.number().min(0).max(120).optional().describe("Weekly hours"),
|
|
169
|
+
team_size: z.number().min(0).max(1000).optional().describe("Team size"),
|
|
170
|
+
years_experience: z.number().min(0).max(50).optional().describe("Years experience"),
|
|
171
|
+
company_name: z.string().max(200).optional().describe("Company name (for report header)"),
|
|
172
|
+
employee_name: z.string().max(200).optional().describe("Subject name (for report header)"),
|
|
173
|
+
}).optional().describe("Context for personalized report generation"),
|
|
174
|
+
language: z.enum(["fr", "en"]).default("fr").optional().describe("Report language: 'fr' (French) or 'en' (English)"),
|
|
175
|
+
format: z.enum(["json", "html"]).default("json").optional().describe("Output format: 'json' (structured data) or 'html' (rendered report)"),
|
|
176
|
+
},
|
|
177
|
+
annotations: {
|
|
178
|
+
readOnlyHint: true,
|
|
179
|
+
openWorldHint: true,
|
|
180
|
+
},
|
|
181
|
+
}, async ({ responses, context, language, format }) => {
|
|
182
|
+
const result = await apiRequest("/api/v1/generate-report", {
|
|
183
|
+
method: "POST",
|
|
184
|
+
body: JSON.stringify({
|
|
185
|
+
responses,
|
|
186
|
+
context,
|
|
187
|
+
language: language ?? "fr",
|
|
188
|
+
format: format ?? "json",
|
|
189
|
+
}),
|
|
190
|
+
});
|
|
191
|
+
if (!result.success) {
|
|
192
|
+
const errMsg = result.error?.message || "Unknown error";
|
|
193
|
+
const hint = result.error?.status === 403
|
|
194
|
+
? "\n\nHint: This endpoint requires a Starter tier or above (29€/month). " +
|
|
195
|
+
"Upgrade at: https://stresszeroentrepreneur.fr/intelligence-api#pricing"
|
|
196
|
+
: "";
|
|
197
|
+
return {
|
|
198
|
+
isError: true,
|
|
199
|
+
content: [
|
|
200
|
+
{
|
|
201
|
+
type: "text",
|
|
202
|
+
text: `Report generation failed: ${errMsg}${hint}`,
|
|
203
|
+
},
|
|
204
|
+
],
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
const quotaInfo = result.meta
|
|
208
|
+
? `\n\nAPI Quota: ${result.meta.quota.used}/${result.meta.quota.limit} (${result.meta.quota.tier} tier)`
|
|
209
|
+
: "";
|
|
210
|
+
return {
|
|
211
|
+
content: [
|
|
212
|
+
{
|
|
213
|
+
type: "text",
|
|
214
|
+
text: JSON.stringify(result.data, null, 2) + quotaInfo,
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
// ============================================================
|
|
220
|
+
// TOOL 3: quick_burnout_check
|
|
221
|
+
// ============================================================
|
|
222
|
+
server.registerTool("quick_burnout_check", {
|
|
223
|
+
title: "Quick Burnout Check",
|
|
224
|
+
description: "Simplified burnout screening with just 3 scores (one per dimension). " +
|
|
225
|
+
"Perfect for quick assessments in conversations, chatbots, or triage. " +
|
|
226
|
+
"Internally calls analyze_burnout with sensible defaults.",
|
|
227
|
+
inputSchema: {
|
|
228
|
+
physical_score: z.number().min(0).max(100).describe("Physical wellbeing score 0-100 (sleep quality, energy, health). Low = burnout risk."),
|
|
229
|
+
emotional_score: z.number().min(0).max(100).describe("Emotional wellbeing score 0-100 (motivation, stress, mood). Low = burnout risk."),
|
|
230
|
+
effectiveness_score: z.number().min(0).max(100).describe("Professional effectiveness score 0-100 (productivity, focus, achievement). Low = burnout risk."),
|
|
231
|
+
profession: z.string().max(100).optional().describe("Professional role (e.g., 'entrepreneur', 'developer', 'manager')"),
|
|
232
|
+
hours_per_week: z.number().min(0).max(120).optional().describe("Weekly working hours (triggers overwork alert if > 50)"),
|
|
233
|
+
language: z.enum(["fr", "en"]).default("fr").optional().describe("Response language: 'fr' or 'en'"),
|
|
234
|
+
},
|
|
235
|
+
annotations: {
|
|
236
|
+
readOnlyHint: true,
|
|
237
|
+
openWorldHint: true,
|
|
238
|
+
},
|
|
239
|
+
}, async ({ physical_score, emotional_score, effectiveness_score, profession, hours_per_week, language }) => {
|
|
240
|
+
const result = await apiRequest("/api/v1/analyze-burnout", {
|
|
241
|
+
method: "POST",
|
|
242
|
+
body: JSON.stringify({
|
|
243
|
+
responses: [
|
|
244
|
+
{ dimension: "physical", question_id: "overall_physical", value: physical_score, weight: 2 },
|
|
245
|
+
{ dimension: "emotional", question_id: "overall_emotional", value: emotional_score, weight: 2 },
|
|
246
|
+
{ dimension: "effectiveness", question_id: "overall_effectiveness", value: effectiveness_score, weight: 2 },
|
|
247
|
+
],
|
|
248
|
+
context: {
|
|
249
|
+
...(profession && { profession }),
|
|
250
|
+
...(hours_per_week && { hours_per_week }),
|
|
251
|
+
},
|
|
252
|
+
options: {
|
|
253
|
+
include_recommendations: true,
|
|
254
|
+
include_dimensions: true,
|
|
255
|
+
language: language ?? "fr",
|
|
256
|
+
},
|
|
257
|
+
}),
|
|
258
|
+
});
|
|
259
|
+
if (!result.success) {
|
|
260
|
+
return {
|
|
261
|
+
isError: true,
|
|
262
|
+
content: [
|
|
263
|
+
{
|
|
264
|
+
type: "text",
|
|
265
|
+
text: `Quick burnout check failed: ${result.error?.message || "Unknown error"}`,
|
|
266
|
+
},
|
|
267
|
+
],
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
const data = result.data;
|
|
271
|
+
const score = data?.score;
|
|
272
|
+
const risk = data?.risk;
|
|
273
|
+
const recommendations = data?.recommendations;
|
|
274
|
+
const summary = [
|
|
275
|
+
`Burnout Score: ${score?.total ?? "N/A"}/100`,
|
|
276
|
+
`Risk Level: ${risk?.level ?? "N/A"} (urgency: ${risk?.urgency ?? "N/A"}/10)`,
|
|
277
|
+
`Dimensions: Physical ${score?.dimensions?.physical ?? "N/A"} | Emotional ${score?.dimensions?.emotional ?? "N/A"} | Effectiveness ${score?.dimensions?.effectiveness ?? "N/A"}`,
|
|
278
|
+
"",
|
|
279
|
+
...(risk?.factors ? [`Risk Factors: ${risk.factors.join(", ")}`] : []),
|
|
280
|
+
"",
|
|
281
|
+
...(recommendations?.length ? ["Recommendations:", ...recommendations.map((r) => ` - ${r}`)] : []),
|
|
282
|
+
].join("\n");
|
|
283
|
+
const quotaInfo = result.meta
|
|
284
|
+
? `\n\nAPI Quota: ${result.meta.quota.used}/${result.meta.quota.limit} (${result.meta.quota.tier} tier)`
|
|
285
|
+
: "";
|
|
286
|
+
return {
|
|
287
|
+
content: [
|
|
288
|
+
{
|
|
289
|
+
type: "text",
|
|
290
|
+
text: summary + quotaInfo,
|
|
291
|
+
},
|
|
292
|
+
],
|
|
293
|
+
};
|
|
294
|
+
});
|
|
295
|
+
// ============================================================
|
|
296
|
+
// TOOL 4: get_api_key
|
|
297
|
+
// ============================================================
|
|
298
|
+
server.registerTool("get_stresszero_api_key", {
|
|
299
|
+
title: "Get Free API Key",
|
|
300
|
+
description: "Create a free StressZero API key (500 calls/month). " +
|
|
301
|
+
"Use this to help users get started with the API. " +
|
|
302
|
+
"The key is returned once and cannot be retrieved later. " +
|
|
303
|
+
"Requires a valid email address.",
|
|
304
|
+
inputSchema: {
|
|
305
|
+
email: z.string().email().describe("User's email address for the API key"),
|
|
306
|
+
project_name: z.string().min(1).max(100).default("MCP Integration").optional().describe("Name of the project using the API key"),
|
|
307
|
+
},
|
|
308
|
+
annotations: {
|
|
309
|
+
readOnlyHint: false,
|
|
310
|
+
destructiveHint: false,
|
|
311
|
+
idempotentHint: false,
|
|
312
|
+
},
|
|
313
|
+
}, async ({ email, project_name }) => {
|
|
314
|
+
const result = await apiRequest("/api/v1/keys", {
|
|
315
|
+
method: "POST",
|
|
316
|
+
body: JSON.stringify({
|
|
317
|
+
email,
|
|
318
|
+
name: project_name ?? "MCP Integration",
|
|
319
|
+
}),
|
|
320
|
+
});
|
|
321
|
+
if (!result.success) {
|
|
322
|
+
const errMsg = result.error?.message || "Unknown error";
|
|
323
|
+
const hint = result.error?.status === 409
|
|
324
|
+
? "\nAn active API key already exists for this email."
|
|
325
|
+
: "";
|
|
326
|
+
return {
|
|
327
|
+
isError: true,
|
|
328
|
+
content: [
|
|
329
|
+
{
|
|
330
|
+
type: "text",
|
|
331
|
+
text: `API key creation failed: ${errMsg}${hint}`,
|
|
332
|
+
},
|
|
333
|
+
],
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
const data = result.data;
|
|
337
|
+
return {
|
|
338
|
+
content: [
|
|
339
|
+
{
|
|
340
|
+
type: "text",
|
|
341
|
+
text: [
|
|
342
|
+
"API Key created successfully!",
|
|
343
|
+
"",
|
|
344
|
+
`Key: ${data?.api_key ?? "N/A"}`,
|
|
345
|
+
`Tier: Free (500 calls/month)`,
|
|
346
|
+
"",
|
|
347
|
+
"IMPORTANT: Save this key now — it will NOT be shown again.",
|
|
348
|
+
"",
|
|
349
|
+
`Documentation: ${data?.docs_url ?? "https://stresszeroentrepreneur.fr/intelligence-api"}`,
|
|
350
|
+
].join("\n"),
|
|
351
|
+
},
|
|
352
|
+
],
|
|
353
|
+
};
|
|
354
|
+
});
|
|
355
|
+
// ============================================================
|
|
356
|
+
// RESOURCE: OpenAPI Specification
|
|
357
|
+
// ============================================================
|
|
358
|
+
server.registerResource("openapi-spec", "stresszero://openapi", {
|
|
359
|
+
title: "StressZero API OpenAPI Specification",
|
|
360
|
+
description: "Complete OpenAPI 3.1 specification for the StressZero Intelligence API",
|
|
361
|
+
mimeType: "application/json",
|
|
362
|
+
}, async (uri) => {
|
|
363
|
+
const result = await apiRequest("/api/v1/openapi");
|
|
364
|
+
return {
|
|
365
|
+
contents: [
|
|
366
|
+
{
|
|
367
|
+
uri: uri.href,
|
|
368
|
+
text: result.success
|
|
369
|
+
? JSON.stringify(result.data ?? result, null, 2)
|
|
370
|
+
: JSON.stringify({ error: "Failed to fetch OpenAPI spec" }),
|
|
371
|
+
},
|
|
372
|
+
],
|
|
373
|
+
};
|
|
374
|
+
});
|
|
375
|
+
// ============================================================
|
|
376
|
+
// PROMPT: Burnout Assessment Template
|
|
377
|
+
// ============================================================
|
|
378
|
+
server.registerPrompt("burnout_assessment", {
|
|
379
|
+
title: "Burnout Assessment",
|
|
380
|
+
description: "Guided burnout assessment prompt. Ask the user questions about their physical, " +
|
|
381
|
+
"emotional, and professional effectiveness to generate a burnout score.",
|
|
382
|
+
argsSchema: {
|
|
383
|
+
language: z.enum(["fr", "en"]).default("fr").describe("Assessment language"),
|
|
384
|
+
context: z.string().optional().describe("Additional context about the person being assessed"),
|
|
385
|
+
},
|
|
386
|
+
}, ({ language, context }) => {
|
|
387
|
+
const isFr = language === "fr";
|
|
388
|
+
const intro = isFr
|
|
389
|
+
? "Je vais vous guider dans une évaluation rapide du risque de burnout en 3 dimensions."
|
|
390
|
+
: "I'll guide you through a quick burnout risk assessment across 3 dimensions.";
|
|
391
|
+
const questions = isFr
|
|
392
|
+
? [
|
|
393
|
+
"**Dimension Physique** (sommeil, énergie, santé)",
|
|
394
|
+
"- Sur une échelle de 0 à 100, comment évaluez-vous votre qualité de sommeil ?",
|
|
395
|
+
"- Votre niveau d'énergie au quotidien ?",
|
|
396
|
+
"- Votre santé physique générale ?",
|
|
397
|
+
"",
|
|
398
|
+
"**Dimension Émotionnelle** (motivation, stress, humeur)",
|
|
399
|
+
"- Votre niveau de motivation au travail ?",
|
|
400
|
+
"- Votre gestion du stress ?",
|
|
401
|
+
"- Votre humeur générale ?",
|
|
402
|
+
"",
|
|
403
|
+
"**Dimension Efficacité** (productivité, concentration, accomplissement)",
|
|
404
|
+
"- Votre productivité actuelle ?",
|
|
405
|
+
"- Votre capacité de concentration ?",
|
|
406
|
+
"- Votre sentiment d'accomplissement professionnel ?",
|
|
407
|
+
]
|
|
408
|
+
: [
|
|
409
|
+
"**Physical Dimension** (sleep, energy, health)",
|
|
410
|
+
"- On a scale of 0-100, how would you rate your sleep quality?",
|
|
411
|
+
"- Your daily energy level?",
|
|
412
|
+
"- Your overall physical health?",
|
|
413
|
+
"",
|
|
414
|
+
"**Emotional Dimension** (motivation, stress, mood)",
|
|
415
|
+
"- Your work motivation level?",
|
|
416
|
+
"- Your stress management?",
|
|
417
|
+
"- Your general mood?",
|
|
418
|
+
"",
|
|
419
|
+
"**Effectiveness Dimension** (productivity, focus, achievement)",
|
|
420
|
+
"- Your current productivity?",
|
|
421
|
+
"- Your ability to concentrate?",
|
|
422
|
+
"- Your sense of professional achievement?",
|
|
423
|
+
];
|
|
424
|
+
const instruction = isFr
|
|
425
|
+
? "Après les réponses, utilisez l'outil `analyze_burnout` pour calculer le score et fournir des recommandations."
|
|
426
|
+
: "After the responses, use the `analyze_burnout` tool to calculate the score and provide recommendations.";
|
|
427
|
+
const contextNote = context ? `\nContext: ${context}` : "";
|
|
428
|
+
return {
|
|
429
|
+
messages: [
|
|
430
|
+
{
|
|
431
|
+
role: "user",
|
|
432
|
+
content: {
|
|
433
|
+
type: "text",
|
|
434
|
+
text: [intro, contextNote, "", ...questions, "", instruction].join("\n"),
|
|
435
|
+
},
|
|
436
|
+
},
|
|
437
|
+
],
|
|
438
|
+
};
|
|
439
|
+
});
|
|
440
|
+
// ============================================================
|
|
441
|
+
// TRANSPORT & START
|
|
442
|
+
// ============================================================
|
|
443
|
+
async function main() {
|
|
444
|
+
const transport = new StdioServerTransport();
|
|
445
|
+
await server.connect(transport);
|
|
446
|
+
console.error("StressZero MCP server running on stdio");
|
|
447
|
+
console.error(`API: ${API_BASE_URL}`);
|
|
448
|
+
console.error("Tools: analyze_burnout, generate_burnout_report, quick_burnout_check, get_stresszero_api_key");
|
|
449
|
+
}
|
|
450
|
+
main().catch((error) => {
|
|
451
|
+
console.error("Fatal error:", error);
|
|
452
|
+
process.exit(1);
|
|
453
|
+
});
|
|
454
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "stresszero-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for StressZero Intelligence API — Burnout risk scoring for AI agents, coaches, and HR platforms",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"stresszero-mcp": "./build/index.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./build/index.js",
|
|
10
|
+
"files": [
|
|
11
|
+
"build",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE",
|
|
14
|
+
"smithery.yaml"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc && node -e \"const fs=require('fs'); const f='build/index.js'; const c=fs.readFileSync(f,'utf8'); if(!c.startsWith('#!')) fs.writeFileSync(f,'#!/usr/bin/env node\\n'+c);\"",
|
|
18
|
+
"dev": "tsc --watch",
|
|
19
|
+
"start": "node build/index.js",
|
|
20
|
+
"prepublishOnly": "npm run build",
|
|
21
|
+
"inspect": "npx @modelcontextprotocol/inspector node build/index.js"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"mcp",
|
|
25
|
+
"mcp-server",
|
|
26
|
+
"model-context-protocol",
|
|
27
|
+
"burnout",
|
|
28
|
+
"mental-health",
|
|
29
|
+
"wellness",
|
|
30
|
+
"hr",
|
|
31
|
+
"scoring",
|
|
32
|
+
"ai",
|
|
33
|
+
"llm",
|
|
34
|
+
"claude",
|
|
35
|
+
"anthropic",
|
|
36
|
+
"coaching",
|
|
37
|
+
"qvct",
|
|
38
|
+
"stresszero",
|
|
39
|
+
"api"
|
|
40
|
+
],
|
|
41
|
+
"author": {
|
|
42
|
+
"name": "Emmanuel Gomes Soares",
|
|
43
|
+
"email": "hello@stresszeroentrepreneur.fr",
|
|
44
|
+
"url": "https://stresszeroentrepreneur.fr"
|
|
45
|
+
},
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
49
|
+
"zod": "^3.23.0"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@types/node": "^22.0.0",
|
|
53
|
+
"typescript": "^5.7.0"
|
|
54
|
+
},
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=18.0.0"
|
|
57
|
+
},
|
|
58
|
+
"repository": {
|
|
59
|
+
"type": "git",
|
|
60
|
+
"url": "https://github.com/stresszero/stresszero-mcp"
|
|
61
|
+
},
|
|
62
|
+
"homepage": "https://stresszeroentrepreneur.fr/intelligence-api",
|
|
63
|
+
"bugs": {
|
|
64
|
+
"url": "https://github.com/stresszero/stresszero-mcp/issues"
|
|
65
|
+
}
|
|
66
|
+
}
|
package/smithery.yaml
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: stresszero-mcp
|
|
2
|
+
description: "MCP server for StressZero Intelligence API — Score burnout risk across 3 dimensions (physical, emotional, effectiveness) with AI agents"
|
|
3
|
+
startCommand:
|
|
4
|
+
type: stdio
|
|
5
|
+
configSchema:
|
|
6
|
+
type: object
|
|
7
|
+
properties:
|
|
8
|
+
apiKey:
|
|
9
|
+
type: string
|
|
10
|
+
description: "Your StressZero API key (get free at stresszeroentrepreneur.fr/intelligence-api)"
|
|
11
|
+
required:
|
|
12
|
+
- apiKey
|
|
13
|
+
commandFunction: |-
|
|
14
|
+
(config) => ({
|
|
15
|
+
command: "npx",
|
|
16
|
+
args: ["-y", "stresszero-mcp"],
|
|
17
|
+
env: {
|
|
18
|
+
STRESSZERO_API_KEY: config.apiKey
|
|
19
|
+
}
|
|
20
|
+
})
|