@fbdo/smart-agentic-calendar 0.1.2 → 0.1.4
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/README.md +449 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
|
|
|
57
57
|
"mcpServers": {
|
|
58
58
|
"smart-agentic-calendar": {
|
|
59
59
|
"command": "npx",
|
|
60
|
-
"args": ["-y", "@fbdo/smart-agentic-calendar"],
|
|
60
|
+
"args": ["-y", "@fbdo/smart-agentic-calendar@latest"],
|
|
61
61
|
"env": {
|
|
62
62
|
"CALENDAR_DB_PATH": "/absolute/path/to/calendar.db"
|
|
63
63
|
}
|
|
@@ -75,7 +75,7 @@ Add to your project's `.mcp.json` or global `~/.claude/settings.json`:
|
|
|
75
75
|
"mcpServers": {
|
|
76
76
|
"smart-agentic-calendar": {
|
|
77
77
|
"command": "npx",
|
|
78
|
-
"args": ["-y", "@fbdo/smart-agentic-calendar"],
|
|
78
|
+
"args": ["-y", "@fbdo/smart-agentic-calendar@latest"],
|
|
79
79
|
"env": {
|
|
80
80
|
"CALENDAR_DB_PATH": "/absolute/path/to/calendar.db"
|
|
81
81
|
}
|
|
@@ -93,7 +93,7 @@ Add to `.cursor/mcp.json` in your project root:
|
|
|
93
93
|
"mcpServers": {
|
|
94
94
|
"smart-agentic-calendar": {
|
|
95
95
|
"command": "npx",
|
|
96
|
-
"args": ["-y", "@fbdo/smart-agentic-calendar"],
|
|
96
|
+
"args": ["-y", "@fbdo/smart-agentic-calendar@latest"],
|
|
97
97
|
"env": {
|
|
98
98
|
"CALENDAR_DB_PATH": "/absolute/path/to/calendar.db"
|
|
99
99
|
}
|
|
@@ -107,17 +107,457 @@ Add to `.cursor/mcp.json` in your project root:
|
|
|
107
107
|
Spawn the server as a child process with stdio transport:
|
|
108
108
|
|
|
109
109
|
```bash
|
|
110
|
-
npx -y @fbdo/smart-agentic-calendar
|
|
110
|
+
npx -y @fbdo/smart-agentic-calendar@latest
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
Or with a custom database path:
|
|
114
114
|
|
|
115
115
|
```bash
|
|
116
|
-
CALENDAR_DB_PATH=/path/to/calendar.db npx -y @fbdo/smart-agentic-calendar
|
|
116
|
+
CALENDAR_DB_PATH=/path/to/calendar.db npx -y @fbdo/smart-agentic-calendar@latest
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
The server reads JSON-RPC messages from stdin and writes responses to stdout. Diagnostic messages go to stderr.
|
|
120
120
|
|
|
121
|
+
## Usage Examples
|
|
122
|
+
|
|
123
|
+
The examples below show natural-language prompts you would give to an AI agent (like Claude) connected to this MCP server, along with the tool calls the agent makes and the responses it receives. The agent interprets these responses and presents them conversationally — you never see raw JSON yourself.
|
|
124
|
+
|
|
125
|
+
### 1. Configure Your Work Schedule
|
|
126
|
+
|
|
127
|
+
> **You:** Set my work hours to Monday through Friday, 9 AM to 5 PM.
|
|
128
|
+
|
|
129
|
+
The agent calls `set_availability`:
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"windows": [
|
|
134
|
+
{ "day": 1, "start_time": "09:00", "end_time": "17:00" },
|
|
135
|
+
{ "day": 2, "start_time": "09:00", "end_time": "17:00" },
|
|
136
|
+
{ "day": 3, "start_time": "09:00", "end_time": "17:00" },
|
|
137
|
+
{ "day": 4, "start_time": "09:00", "end_time": "17:00" },
|
|
138
|
+
{ "day": 5, "start_time": "09:00", "end_time": "17:00" }
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Response:
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"windows": [
|
|
148
|
+
{ "day": 1, "start_time": "09:00", "end_time": "17:00" },
|
|
149
|
+
{ "day": 2, "start_time": "09:00", "end_time": "17:00" },
|
|
150
|
+
{ "day": 3, "start_time": "09:00", "end_time": "17:00" },
|
|
151
|
+
{ "day": 4, "start_time": "09:00", "end_time": "17:00" },
|
|
152
|
+
{ "day": 5, "start_time": "09:00", "end_time": "17:00" }
|
|
153
|
+
],
|
|
154
|
+
"message": "Availability updated successfully"
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 2. Protect Deep Work Time
|
|
159
|
+
|
|
160
|
+
> **You:** I want focus time on Monday, Wednesday, and Friday mornings from 9 to 11 AM. Minimum 60-minute blocks.
|
|
161
|
+
|
|
162
|
+
The agent calls `set_focus_time`:
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"blocks": [
|
|
167
|
+
{ "day": 1, "start_time": "09:00", "end_time": "11:00" },
|
|
168
|
+
{ "day": 3, "start_time": "09:00", "end_time": "11:00" },
|
|
169
|
+
{ "day": 5, "start_time": "09:00", "end_time": "11:00" }
|
|
170
|
+
],
|
|
171
|
+
"minimum_block_minutes": 60
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Response:
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"blocks": [
|
|
180
|
+
{ "day": 1, "start_time": "09:00", "end_time": "11:00" },
|
|
181
|
+
{ "day": 3, "start_time": "09:00", "end_time": "11:00" },
|
|
182
|
+
{ "day": 5, "start_time": "09:00", "end_time": "11:00" }
|
|
183
|
+
],
|
|
184
|
+
"minimum_block_minutes": 60,
|
|
185
|
+
"message": "Focus time updated successfully"
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### 3. Set Scheduling Preferences
|
|
190
|
+
|
|
191
|
+
> **You:** I'd like 15-minute buffers between tasks, a 2-week scheduling horizon, and minimum 25-minute blocks.
|
|
192
|
+
|
|
193
|
+
The agent calls `set_preferences`:
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"buffer_time_minutes": 15,
|
|
198
|
+
"default_priority": "P3",
|
|
199
|
+
"default_duration": 30,
|
|
200
|
+
"scheduling_horizon_weeks": 2,
|
|
201
|
+
"minimum_block_minutes": 25
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Response:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"buffer_time_minutes": 15,
|
|
210
|
+
"default_priority": "P3",
|
|
211
|
+
"default_duration": 30,
|
|
212
|
+
"scheduling_horizon_weeks": 2,
|
|
213
|
+
"minimum_block_minutes": 25
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 4. Review Your Full Configuration
|
|
218
|
+
|
|
219
|
+
> **You:** Show me my current calendar settings.
|
|
220
|
+
|
|
221
|
+
The agent calls `get_preferences` (no parameters):
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"availability": [
|
|
226
|
+
{ "day": 1, "start_time": "09:00", "end_time": "17:00" },
|
|
227
|
+
{ "day": 2, "start_time": "09:00", "end_time": "17:00" },
|
|
228
|
+
{ "day": 3, "start_time": "09:00", "end_time": "17:00" },
|
|
229
|
+
{ "day": 4, "start_time": "09:00", "end_time": "17:00" },
|
|
230
|
+
{ "day": 5, "start_time": "09:00", "end_time": "17:00" }
|
|
231
|
+
],
|
|
232
|
+
"focus_time": {
|
|
233
|
+
"blocks": [
|
|
234
|
+
{ "day": 1, "start_time": "09:00", "end_time": "11:00" },
|
|
235
|
+
{ "day": 3, "start_time": "09:00", "end_time": "11:00" },
|
|
236
|
+
{ "day": 5, "start_time": "09:00", "end_time": "11:00" }
|
|
237
|
+
],
|
|
238
|
+
"minimum_block_minutes": 60
|
|
239
|
+
},
|
|
240
|
+
"preferences": {
|
|
241
|
+
"buffer_time_minutes": 15,
|
|
242
|
+
"default_priority": "P3",
|
|
243
|
+
"default_duration": 30,
|
|
244
|
+
"scheduling_horizon_weeks": 2,
|
|
245
|
+
"minimum_block_minutes": 25
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### 5. Create Tasks
|
|
251
|
+
|
|
252
|
+
> **You:** I need to write the Q2 project proposal — it'll take about 2 hours, due Friday at 5 PM. High priority. Also, I need to prepare slides for the sprint demo by Thursday at 2 PM, about an hour of work.
|
|
253
|
+
|
|
254
|
+
The agent calls `create_task` twice. First call:
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"title": "Write Q2 project proposal",
|
|
259
|
+
"description": "Draft the project proposal for the Q2 planning review",
|
|
260
|
+
"estimated_duration": 120,
|
|
261
|
+
"deadline": "2026-04-18T17:00:00Z",
|
|
262
|
+
"priority": "P1",
|
|
263
|
+
"category": "work",
|
|
264
|
+
"tags": ["planning", "writing"]
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Response:
|
|
269
|
+
|
|
270
|
+
```json
|
|
271
|
+
{
|
|
272
|
+
"task": {
|
|
273
|
+
"id": "a115d241-e8f8-4078-8ee5-7182ff04fa48",
|
|
274
|
+
"title": "Write Q2 project proposal",
|
|
275
|
+
"description": "Draft the project proposal for the Q2 planning review",
|
|
276
|
+
"estimated_duration": 120,
|
|
277
|
+
"deadline": "2026-04-18T17:00:00Z",
|
|
278
|
+
"priority": "P1",
|
|
279
|
+
"status": "pending",
|
|
280
|
+
"category": "work",
|
|
281
|
+
"tags": ["planning", "writing"],
|
|
282
|
+
"is_recurring": false,
|
|
283
|
+
"recurrence_template_id": null,
|
|
284
|
+
"actual_duration": null,
|
|
285
|
+
"created_at": "2026-04-13T08:36:22.887Z",
|
|
286
|
+
"updated_at": "2026-04-13T08:36:22.887Z"
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Second call:
|
|
292
|
+
|
|
293
|
+
```json
|
|
294
|
+
{
|
|
295
|
+
"title": "Prepare sprint demo",
|
|
296
|
+
"estimated_duration": 60,
|
|
297
|
+
"deadline": "2026-04-17T14:00:00Z",
|
|
298
|
+
"priority": "P2",
|
|
299
|
+
"category": "work",
|
|
300
|
+
"tags": ["presentation"]
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Response:
|
|
305
|
+
|
|
306
|
+
```json
|
|
307
|
+
{
|
|
308
|
+
"task": {
|
|
309
|
+
"id": "2f293125-8280-43d5-b183-f5be9e90e119",
|
|
310
|
+
"title": "Prepare sprint demo",
|
|
311
|
+
"estimated_duration": 60,
|
|
312
|
+
"deadline": "2026-04-17T14:00:00Z",
|
|
313
|
+
"priority": "P2",
|
|
314
|
+
"status": "pending",
|
|
315
|
+
"category": "work",
|
|
316
|
+
"tags": ["presentation"],
|
|
317
|
+
"is_recurring": false,
|
|
318
|
+
"recurrence_template_id": null,
|
|
319
|
+
"actual_duration": null,
|
|
320
|
+
"created_at": "2026-04-13T08:36:22.908Z",
|
|
321
|
+
"updated_at": "2026-04-13T08:36:22.908Z"
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Each `create_task` triggers a background replan — the scheduler automatically finds time slots for the new tasks.
|
|
327
|
+
|
|
328
|
+
### 6. Create Events
|
|
329
|
+
|
|
330
|
+
> **You:** Add a team standup on Monday at 2 PM for 30 minutes, and a sprint demo meeting on Thursday at 3 PM for an hour.
|
|
331
|
+
|
|
332
|
+
The agent calls `create_event` twice. First call:
|
|
333
|
+
|
|
334
|
+
```json
|
|
335
|
+
{
|
|
336
|
+
"title": "Team standup",
|
|
337
|
+
"start_time": "2026-04-14T14:00:00Z",
|
|
338
|
+
"end_time": "2026-04-14T14:30:00Z"
|
|
339
|
+
}
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
Response:
|
|
343
|
+
|
|
344
|
+
```json
|
|
345
|
+
{
|
|
346
|
+
"event": {
|
|
347
|
+
"id": "e76cbe94-2f7e-4f7a-9a09-29370370fdad",
|
|
348
|
+
"title": "Team standup",
|
|
349
|
+
"start_time": "2026-04-14T14:00:00Z",
|
|
350
|
+
"end_time": "2026-04-14T14:30:00Z",
|
|
351
|
+
"is_all_day": false,
|
|
352
|
+
"date": null,
|
|
353
|
+
"created_at": "2026-04-13T08:36:22.932Z",
|
|
354
|
+
"updated_at": "2026-04-13T08:36:22.932Z"
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Events block time on the calendar — the scheduler works around them when placing tasks.
|
|
360
|
+
|
|
361
|
+
### 7. View Your Schedule
|
|
362
|
+
|
|
363
|
+
> **You:** What does my week look like?
|
|
364
|
+
|
|
365
|
+
The agent calls `get_schedule`:
|
|
366
|
+
|
|
367
|
+
```json
|
|
368
|
+
{
|
|
369
|
+
"start_date": "2026-04-14",
|
|
370
|
+
"end_date": "2026-04-18"
|
|
371
|
+
}
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Response:
|
|
375
|
+
|
|
376
|
+
```json
|
|
377
|
+
{
|
|
378
|
+
"schedule": [
|
|
379
|
+
{
|
|
380
|
+
"id": "12c6493f-7e4d-4c4a-8084-85fcc36eeea3",
|
|
381
|
+
"task_id": "a115d241-e8f8-4078-8ee5-7182ff04fa48",
|
|
382
|
+
"start_time": "2026-04-14T09:00:00.000Z",
|
|
383
|
+
"end_time": "2026-04-14T11:00:00.000Z",
|
|
384
|
+
"date": "2026-04-14",
|
|
385
|
+
"block_index": 0,
|
|
386
|
+
"total_blocks": 1,
|
|
387
|
+
"task_title": "Write Q2 project proposal",
|
|
388
|
+
"task_priority": "P1",
|
|
389
|
+
"task_category": "work",
|
|
390
|
+
"task_status": "scheduled"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"id": "0391fd94-6693-4139-812c-437b31988c12",
|
|
394
|
+
"task_id": "2f293125-8280-43d5-b183-f5be9e90e119",
|
|
395
|
+
"start_time": "2026-04-16T09:00:00.000Z",
|
|
396
|
+
"end_time": "2026-04-16T10:00:00.000Z",
|
|
397
|
+
"date": "2026-04-16",
|
|
398
|
+
"block_index": 0,
|
|
399
|
+
"total_blocks": 1,
|
|
400
|
+
"task_title": "Prepare sprint demo",
|
|
401
|
+
"task_priority": "P2",
|
|
402
|
+
"task_category": "work",
|
|
403
|
+
"task_status": "scheduled"
|
|
404
|
+
}
|
|
405
|
+
],
|
|
406
|
+
"schedule_status": "up_to_date"
|
|
407
|
+
}
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
The P1 proposal was placed in Monday's focus time block (9–11 AM), and the sprint demo prep was scheduled for Wednesday morning — both before their deadlines. The `schedule_status` field tells the agent whether the schedule reflects the latest changes.
|
|
411
|
+
|
|
412
|
+
### 8. Complete a Task
|
|
413
|
+
|
|
414
|
+
> **You:** I finished reviewing the pull requests. Took me about 35 minutes instead of the 45 I estimated.
|
|
415
|
+
|
|
416
|
+
The agent calls `complete_task`:
|
|
417
|
+
|
|
418
|
+
```json
|
|
419
|
+
{
|
|
420
|
+
"task_id": "4acb7a3d-cc43-42cb-9aee-974b797d95ee",
|
|
421
|
+
"actual_duration_minutes": 35
|
|
422
|
+
}
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
Response:
|
|
426
|
+
|
|
427
|
+
```json
|
|
428
|
+
{
|
|
429
|
+
"task": {
|
|
430
|
+
"id": "4acb7a3d-cc43-42cb-9aee-974b797d95ee",
|
|
431
|
+
"title": "Review pull requests",
|
|
432
|
+
"estimated_duration": 45,
|
|
433
|
+
"deadline": "2026-04-15T17:00:00Z",
|
|
434
|
+
"priority": "P2",
|
|
435
|
+
"status": "completed",
|
|
436
|
+
"category": "work",
|
|
437
|
+
"tags": ["code-review"],
|
|
438
|
+
"actual_duration": 35,
|
|
439
|
+
"created_at": "2026-04-13T08:36:22.899Z",
|
|
440
|
+
"updated_at": "2026-04-13T08:36:31.378Z"
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
Recording actual duration feeds into estimation accuracy analytics. The scheduler replans in the background to reclaim the freed time.
|
|
446
|
+
|
|
447
|
+
### 9. Check Schedule Health
|
|
448
|
+
|
|
449
|
+
> **You:** How healthy is my schedule right now?
|
|
450
|
+
|
|
451
|
+
The agent calls `get_schedule_health` (no parameters):
|
|
452
|
+
|
|
453
|
+
```json
|
|
454
|
+
{
|
|
455
|
+
"health_score": 90,
|
|
456
|
+
"utilization_percentage": 10,
|
|
457
|
+
"overdue_count": 0,
|
|
458
|
+
"at_risk_count": 0,
|
|
459
|
+
"free_hours_this_week": 36,
|
|
460
|
+
"busiest_day": "Tuesday",
|
|
461
|
+
"lightest_day": "Monday"
|
|
462
|
+
}
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
The health score (0–100) is a composite of utilization, overdue tasks, and at-risk tasks. A score of 90 with zero at-risk items means the schedule is in good shape.
|
|
466
|
+
|
|
467
|
+
### 10. View Productivity Stats
|
|
468
|
+
|
|
469
|
+
> **You:** How productive have I been this week?
|
|
470
|
+
|
|
471
|
+
The agent calls `get_productivity_stats`:
|
|
472
|
+
|
|
473
|
+
```json
|
|
474
|
+
{
|
|
475
|
+
"period": "week"
|
|
476
|
+
}
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
Response:
|
|
480
|
+
|
|
481
|
+
```json
|
|
482
|
+
{
|
|
483
|
+
"period": "week",
|
|
484
|
+
"tasks_completed": 1,
|
|
485
|
+
"tasks_overdue": 2,
|
|
486
|
+
"tasks_cancelled": 0,
|
|
487
|
+
"completion_rate": 33.33,
|
|
488
|
+
"on_time_rate": 100
|
|
489
|
+
}
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
### 11. Check Time Allocation
|
|
493
|
+
|
|
494
|
+
> **You:** Where am I spending my time this week?
|
|
495
|
+
|
|
496
|
+
The agent calls `get_time_allocation`:
|
|
497
|
+
|
|
498
|
+
```json
|
|
499
|
+
{
|
|
500
|
+
"period": "week"
|
|
501
|
+
}
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
Response:
|
|
505
|
+
|
|
506
|
+
```json
|
|
507
|
+
{
|
|
508
|
+
"period": "week",
|
|
509
|
+
"categories": [
|
|
510
|
+
{ "category": "work", "hours": 0.58, "percentage": 100 }
|
|
511
|
+
]
|
|
512
|
+
}
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
Time allocation breaks down scheduled hours by category, so you can see if your time distribution matches your priorities.
|
|
516
|
+
|
|
517
|
+
### 12. Review Estimation Accuracy
|
|
518
|
+
|
|
519
|
+
> **You:** How accurate are my time estimates?
|
|
520
|
+
|
|
521
|
+
The agent calls `get_estimation_accuracy`:
|
|
522
|
+
|
|
523
|
+
```json
|
|
524
|
+
{
|
|
525
|
+
"period": "week"
|
|
526
|
+
}
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
Response:
|
|
530
|
+
|
|
531
|
+
```json
|
|
532
|
+
{
|
|
533
|
+
"average_accuracy_percentage": 77.78,
|
|
534
|
+
"overestimate_count": 1,
|
|
535
|
+
"underestimate_count": 0,
|
|
536
|
+
"average_overestimate_minutes": 10,
|
|
537
|
+
"average_underestimate_minutes": null,
|
|
538
|
+
"accuracy_by_category": {
|
|
539
|
+
"work": 77.78
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
This compares estimated vs. actual durations from completed tasks. In this case, the 45-minute estimate for PR review vs. 35 minutes actual shows a tendency to overestimate — useful feedback for calibrating future estimates.
|
|
545
|
+
|
|
546
|
+
### 13. Check for Conflicts
|
|
547
|
+
|
|
548
|
+
> **You:** Are there any scheduling conflicts I should worry about?
|
|
549
|
+
|
|
550
|
+
The agent calls `get_conflicts` (no parameters):
|
|
551
|
+
|
|
552
|
+
```json
|
|
553
|
+
{
|
|
554
|
+
"conflicts": [],
|
|
555
|
+
"schedule_status": "up_to_date"
|
|
556
|
+
}
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
An empty conflicts array means all tasks fit within available time before their deadlines. When conflicts exist, the response includes details about which tasks are at risk, why (insufficient time, dependency chains, or overdue), and suggestions for which lower-priority tasks to deprioritize to free up time.
|
|
560
|
+
|
|
121
561
|
## Logging
|
|
122
562
|
|
|
123
563
|
The server has two independent logging channels, each with its own level filtering:
|
|
@@ -141,13 +581,13 @@ Controlled by the `LOG_LEVEL` environment variable. Set it to any [RFC 5424 sysl
|
|
|
141
581
|
|
|
142
582
|
```bash
|
|
143
583
|
# Full diagnostics (all log output to stderr)
|
|
144
|
-
LOG_LEVEL=debug npx -y @fbdo/smart-agentic-calendar
|
|
584
|
+
LOG_LEVEL=debug npx -y @fbdo/smart-agentic-calendar@latest
|
|
145
585
|
|
|
146
586
|
# Only errors and above
|
|
147
|
-
LOG_LEVEL=error npx -y @fbdo/smart-agentic-calendar
|
|
587
|
+
LOG_LEVEL=error npx -y @fbdo/smart-agentic-calendar@latest
|
|
148
588
|
|
|
149
589
|
# Default (warning and above) — quiet operation
|
|
150
|
-
npx -y @fbdo/smart-agentic-calendar
|
|
590
|
+
npx -y @fbdo/smart-agentic-calendar@latest
|
|
151
591
|
```
|
|
152
592
|
|
|
153
593
|
In your MCP client config, add `LOG_LEVEL` to the `env` block:
|
|
@@ -157,7 +597,7 @@ In your MCP client config, add `LOG_LEVEL` to the `env` block:
|
|
|
157
597
|
"mcpServers": {
|
|
158
598
|
"smart-agentic-calendar": {
|
|
159
599
|
"command": "npx",
|
|
160
|
-
"args": ["-y", "@fbdo/smart-agentic-calendar"],
|
|
600
|
+
"args": ["-y", "@fbdo/smart-agentic-calendar@latest"],
|
|
161
601
|
"env": {
|
|
162
602
|
"CALENDAR_DB_PATH": "/path/to/calendar.db",
|
|
163
603
|
"LOG_LEVEL": "debug"
|