@starascendin/lifeos-mcp 0.7.2 → 0.7.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.
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.7.2";
2
- export declare const BUILD_TIME = "2026-02-16T23:18:40.767Z";
1
+ export declare const VERSION = "0.7.4";
2
+ export declare const BUILD_TIME = "2026-02-18T19:45:47.374Z";
@@ -1,3 +1,3 @@
1
1
  // AUTO-GENERATED — do not edit. Regenerated on every build.
2
- export const VERSION = "0.7.2";
3
- export const BUILD_TIME = "2026-02-16T23:18:40.767Z";
2
+ export const VERSION = "0.7.4";
3
+ export const BUILD_TIME = "2026-02-18T19:45:47.374Z";
package/dist/index.js CHANGED
@@ -2316,7 +2316,7 @@ const TOOLS = [
2316
2316
  // ==================== HEALTH (Oura Ring) Tools ====================
2317
2317
  {
2318
2318
  name: "get_health_sleep",
2319
- description: "Get daily sleep data from Oura Ring including scores, durations (total/deep/REM/light), HRV, resting heart rate, and sleep quality metrics.",
2319
+ description: "Get daily sleep data from Oura Ring including scores, durations (total/deep/REM/light), HRV, resting heart rate, bedtime start/end, time in bed, average breath rate, restless periods, average heart rate, and contributor scores.",
2320
2320
  inputSchema: {
2321
2321
  type: "object",
2322
2322
  properties: {
@@ -2350,7 +2350,7 @@ const TOOLS = [
2350
2350
  },
2351
2351
  {
2352
2352
  name: "get_health_readiness",
2353
- description: "Get daily readiness scores from Oura Ring including readiness score, temperature deviation, and recovery contributor scores.",
2353
+ description: "Get daily readiness scores from Oura Ring including readiness score, temperature deviation, temperature trend deviation, and recovery contributor scores.",
2354
2354
  inputSchema: {
2355
2355
  type: "object",
2356
2356
  properties: {
@@ -2384,7 +2384,7 @@ const TOOLS = [
2384
2384
  },
2385
2385
  {
2386
2386
  name: "get_health_spo2",
2387
- description: "Get daily blood oxygen (SpO2) percentage data from Oura Ring.",
2387
+ description: "Get daily blood oxygen (SpO2) percentage and breathing disturbance index data from Oura Ring.",
2388
2388
  inputSchema: {
2389
2389
  type: "object",
2390
2390
  properties: {
@@ -2418,7 +2418,58 @@ const TOOLS = [
2418
2418
  },
2419
2419
  {
2420
2420
  name: "get_health_workouts",
2421
- description: "Get workout history from Oura Ring including activity type, duration, calories, intensity, and distance.",
2421
+ description: "Get workout history from Oura Ring including activity type, label, source, duration, calories, intensity, and distance.",
2422
+ inputSchema: {
2423
+ type: "object",
2424
+ properties: {
2425
+ userId: {
2426
+ type: "string",
2427
+ description: "Override the default user ID (optional)",
2428
+ },
2429
+ days: {
2430
+ type: "number",
2431
+ description: "Number of days to fetch (default 30)",
2432
+ },
2433
+ },
2434
+ },
2435
+ },
2436
+ {
2437
+ name: "get_health_resilience",
2438
+ description: "Get daily resilience data from Oura Ring including resilience level (limited/adequate/solid/strong/exceptional) and contributor scores (sleep recovery, daytime recovery, stress).",
2439
+ inputSchema: {
2440
+ type: "object",
2441
+ properties: {
2442
+ userId: {
2443
+ type: "string",
2444
+ description: "Override the default user ID (optional)",
2445
+ },
2446
+ days: {
2447
+ type: "number",
2448
+ description: "Number of days to fetch (default 30)",
2449
+ },
2450
+ },
2451
+ },
2452
+ },
2453
+ {
2454
+ name: "get_health_cardio_age",
2455
+ description: "Get daily cardiovascular age data from Oura Ring. Shows vascular age estimate based on cardiovascular health markers.",
2456
+ inputSchema: {
2457
+ type: "object",
2458
+ properties: {
2459
+ userId: {
2460
+ type: "string",
2461
+ description: "Override the default user ID (optional)",
2462
+ },
2463
+ days: {
2464
+ type: "number",
2465
+ description: "Number of days to fetch (default 30)",
2466
+ },
2467
+ },
2468
+ },
2469
+ },
2470
+ {
2471
+ name: "get_health_vo2_max",
2472
+ description: "Get VO2 max estimates from Oura Ring. VO2 max (ml/kg/min) measures cardiorespiratory fitness level.",
2422
2473
  inputSchema: {
2423
2474
  type: "object",
2424
2475
  properties: {
@@ -2846,6 +2897,145 @@ const TOOLS = [
2846
2897
  required: ["actionItemId"],
2847
2898
  },
2848
2899
  },
2900
+ // ==================== HABIT TRACKER ====================
2901
+ {
2902
+ name: "get_habits",
2903
+ description: "Get all active habits grouped by category with streaks and completion stats. Returns habits with their current streak, longest streak, total completions, and category groupings.",
2904
+ inputSchema: {
2905
+ type: "object",
2906
+ properties: {
2907
+ categoryId: { type: "string", description: "Filter by category ID" },
2908
+ includeArchived: { type: "boolean", description: "Include archived habits (default false)" },
2909
+ },
2910
+ },
2911
+ },
2912
+ {
2913
+ name: "get_habits_for_date",
2914
+ description: "Get habits scheduled for a specific date with their check-in status (completed/skipped/pending/incomplete). Essential for daily habit reviews and check-ins.",
2915
+ inputSchema: {
2916
+ type: "object",
2917
+ properties: {
2918
+ date: { type: "string", description: "Date in YYYY-MM-DD format" },
2919
+ },
2920
+ required: ["date"],
2921
+ },
2922
+ },
2923
+ {
2924
+ name: "get_habit",
2925
+ description: "Get a single habit with extended stats including monthly completions and completion rate.",
2926
+ inputSchema: {
2927
+ type: "object",
2928
+ properties: {
2929
+ habitId: { type: "string", description: "The habit ID" },
2930
+ },
2931
+ required: ["habitId"],
2932
+ },
2933
+ },
2934
+ {
2935
+ name: "create_habit",
2936
+ description: "Create a new habit to track. Supports daily or weekly frequency with specific target days.",
2937
+ inputSchema: {
2938
+ type: "object",
2939
+ properties: {
2940
+ name: { type: "string", description: "Habit name (e.g., 'Meditate', 'Read 30 min', 'No social media')" },
2941
+ description: { type: "string", description: "Habit description" },
2942
+ icon: { type: "string", description: "Emoji icon for the habit" },
2943
+ categoryId: { type: "string", description: "Category ID to group under" },
2944
+ initiativeId: { type: "string", description: "Link to a yearly initiative" },
2945
+ frequency: { type: "string", enum: ["daily", "weekly"], description: "How often the habit should be tracked" },
2946
+ targetDays: {
2947
+ type: "array",
2948
+ items: { type: "string", enum: ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"] },
2949
+ description: "For weekly habits: which days to track",
2950
+ },
2951
+ },
2952
+ required: ["name", "frequency"],
2953
+ },
2954
+ },
2955
+ {
2956
+ name: "update_habit",
2957
+ description: "Update a habit's details (name, frequency, category, etc.)",
2958
+ inputSchema: {
2959
+ type: "object",
2960
+ properties: {
2961
+ habitId: { type: "string", description: "The habit ID" },
2962
+ name: { type: "string", description: "Updated name" },
2963
+ description: { type: "string", description: "Updated description" },
2964
+ icon: { type: "string", description: "Updated emoji icon" },
2965
+ categoryId: { type: "string", description: "Move to different category (use 'null' to uncategorize)" },
2966
+ initiativeId: { type: "string", description: "Link/unlink initiative (use 'null' to unlink)" },
2967
+ frequency: { type: "string", enum: ["daily", "weekly"], description: "Updated frequency" },
2968
+ targetDays: {
2969
+ type: "array",
2970
+ items: { type: "string", enum: ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"] },
2971
+ description: "For weekly habits: updated target days",
2972
+ },
2973
+ isActive: { type: "boolean", description: "Activate or deactivate the habit" },
2974
+ },
2975
+ required: ["habitId"],
2976
+ },
2977
+ },
2978
+ {
2979
+ name: "archive_habit",
2980
+ description: "Archive a habit (soft delete). Preserves check-in history but removes from active tracking.",
2981
+ inputSchema: {
2982
+ type: "object",
2983
+ properties: {
2984
+ habitId: { type: "string", description: "The habit ID" },
2985
+ },
2986
+ required: ["habitId"],
2987
+ },
2988
+ },
2989
+ {
2990
+ name: "check_in_habit",
2991
+ description: "Check in a habit for a specific date. Mark as completed, skipped (with optional reason), or incomplete. This is the primary tool for daily habit tracking.",
2992
+ inputSchema: {
2993
+ type: "object",
2994
+ properties: {
2995
+ habitId: { type: "string", description: "The habit ID" },
2996
+ date: { type: "string", description: "Date in YYYY-MM-DD format" },
2997
+ completed: { type: "boolean", description: "true = completed, false = incomplete" },
2998
+ skipped: { type: "boolean", description: "true = intentionally skipped (not a failure)" },
2999
+ note: { type: "string", description: "Optional note or reason (especially useful for skips)" },
3000
+ },
3001
+ required: ["habitId", "date", "completed"],
3002
+ },
3003
+ },
3004
+ {
3005
+ name: "get_habit_check_ins",
3006
+ description: "Get check-in history for a specific habit. Shows completion dates, skips, and notes.",
3007
+ inputSchema: {
3008
+ type: "object",
3009
+ properties: {
3010
+ habitId: { type: "string", description: "The habit ID" },
3011
+ limit: { type: "number", description: "Max results (default 30, max 100)" },
3012
+ },
3013
+ required: ["habitId"],
3014
+ },
3015
+ },
3016
+ {
3017
+ name: "get_habit_categories",
3018
+ description: "Get all habit categories for organizing habits into groups.",
3019
+ inputSchema: {
3020
+ type: "object",
3021
+ properties: {
3022
+ includeArchived: { type: "boolean", description: "Include archived categories (default false)" },
3023
+ },
3024
+ },
3025
+ },
3026
+ {
3027
+ name: "create_habit_category",
3028
+ description: "Create a new habit category for grouping related habits together.",
3029
+ inputSchema: {
3030
+ type: "object",
3031
+ properties: {
3032
+ name: { type: "string", description: "Category name (e.g., 'Morning Routine', 'Health', 'Mindset')" },
3033
+ icon: { type: "string", description: "Emoji icon (default: 📋)" },
3034
+ color: { type: "string", description: "Hex color (default: #6366f1)" },
3035
+ },
3036
+ required: ["name"],
3037
+ },
3038
+ },
2849
3039
  // MCP Server Info
2850
3040
  {
2851
3041
  name: "get_version",
@@ -3149,6 +3339,28 @@ const PROMPTS = [
3149
3339
  },
3150
3340
  ],
3151
3341
  },
3342
+ {
3343
+ name: "habit-check",
3344
+ description: "Daily habit check-in: review today's habits, mark completions, celebrate streaks.",
3345
+ arguments: [
3346
+ {
3347
+ name: "habits",
3348
+ description: "Specific habits to check in (optional, comma-separated habit names or IDs)",
3349
+ required: false,
3350
+ },
3351
+ ],
3352
+ },
3353
+ {
3354
+ name: "daily-training-report",
3355
+ description: "Comprehensive daily training report: yesterday's results, today's focus, habit compliance, health data, ADHD focus management.",
3356
+ arguments: [
3357
+ {
3358
+ name: "date",
3359
+ description: "Specific date in ISO format (optional, defaults to today)",
3360
+ required: false,
3361
+ },
3362
+ ],
3363
+ },
3152
3364
  ];
3153
3365
  // Prompt message templates keyed by prompt name
3154
3366
  const PROMPT_MESSAGES = {
@@ -3753,17 +3965,22 @@ ${titleClause}
3753
3965
  type: "text",
3754
3966
  text: `Give me a quick health overview. Use the LifeOS MCP tools to gather Oura Ring data for the last ${daysCount} days:
3755
3967
 
3756
- 1. Call get_health_sleep with days=${daysCount} for sleep scores and durations
3968
+ 1. Call get_health_sleep with days=${daysCount} for sleep scores, durations, bedtime, breath rate
3757
3969
  2. Call get_health_activity with days=${daysCount} for activity scores and steps
3758
3970
  3. Call get_health_readiness with days=${daysCount} for readiness scores
3759
3971
  4. Call get_health_heart_rate with days=${daysCount} for resting heart rate trends
3972
+ 5. Call get_health_resilience with days=${daysCount} for resilience levels
3973
+ 6. Call get_health_vo2_max with days=${daysCount} for VO2 max estimates
3974
+ 7. Call get_health_cardio_age with days=${daysCount} for cardiovascular age
3760
3975
 
3761
3976
  Present a concise health dashboard:
3762
3977
  - **Overall Status**: Quick assessment (great / good / needs attention)
3763
- - **Sleep**: Average score, total sleep trend, any concerning nights
3978
+ - **Sleep**: Average score, total sleep trend, bedtime consistency, avg breath rate, any concerning nights
3764
3979
  - **Activity**: Average score, daily steps, active calories
3765
3980
  - **Readiness**: Average score, trend direction (improving/declining/stable)
3766
3981
  - **Heart Rate**: Resting HR trend, HRV if available
3982
+ - **Resilience**: Current level and trend (limited/adequate/solid/strong/exceptional)
3983
+ - **Fitness**: VO2 max trend, cardiovascular age vs actual age
3767
3984
  - **Insights**: 2-3 actionable observations based on the data
3768
3985
 
3769
3986
  Keep it concise. Highlight anything unusual or noteworthy.`,
@@ -3781,19 +3998,25 @@ Keep it concise. Highlight anything unusual or noteworthy.`,
3781
3998
  type: "text",
3782
3999
  text: `Run a weekly health review for the last ${weeksCount} week(s). Use the LifeOS MCP tools:
3783
4000
 
3784
- 1. Call get_health_sleep with days=${daysCount} for sleep data
4001
+ 1. Call get_health_sleep with days=${daysCount} for sleep data (scores, durations, bedtime, breath rate, restless periods)
3785
4002
  2. Call get_health_activity with days=${daysCount} for activity data
3786
4003
  3. Call get_health_readiness with days=${daysCount} for readiness data
3787
4004
  4. Call get_health_stress with days=${daysCount} for stress/recovery data
3788
- 5. Call get_health_workouts with days=${daysCount} for workout history
4005
+ 5. Call get_health_workouts with days=${daysCount} for workout history (prefer label over activity for display name)
3789
4006
  6. Call get_health_heart_rate with days=${daysCount} for HR trends
4007
+ 7. Call get_health_resilience with days=${daysCount} for resilience levels and contributors
4008
+ 8. Call get_health_vo2_max with days=${daysCount} for VO2 max estimates
4009
+ 9. Call get_health_cardio_age with days=${daysCount} for cardiovascular age
4010
+ 10. Call get_health_spo2 with days=${daysCount} for SpO2 and breathing disturbance index
3790
4011
 
3791
4012
  Present a detailed weekly health review:
3792
- - **Sleep Quality**: Weekly average scores, best/worst nights, sleep duration trends, deep/REM balance
4013
+ - **Sleep Quality**: Weekly average scores, best/worst nights, sleep duration trends, deep/REM balance, bedtime consistency, avg breath rate
3793
4014
  - **Activity Patterns**: Weekly step averages, active days vs rest days, calorie burn
3794
- - **Readiness & Recovery**: Score trends, stress vs recovery balance
3795
- - **Workouts**: List workouts with type, duration, calories burned
3796
- - **Heart Rate**: Resting HR trend, HRV trend (if available)
4015
+ - **Readiness & Recovery**: Score trends, stress vs recovery balance, temperature trend
4016
+ - **Resilience**: Daily levels trend (limited→exceptional), contributor breakdown (sleep recovery, daytime recovery, stress)
4017
+ - **Fitness**: VO2 max trend (ml/kg/min), cardiovascular age trend, week-over-week changes
4018
+ - **Workouts**: List workouts with type/label, duration, calories burned
4019
+ - **Heart Rate & Breathing**: Resting HR trend, HRV trend, SpO2, breathing disturbance index
3797
4020
  - **Week-over-Week**: Compare this week vs last week (if multiple weeks)
3798
4021
  - **Recommendations**: 3-5 specific, actionable health recommendations
3799
4022
 
@@ -3922,6 +4145,80 @@ Present a session review:
3922
4145
  },
3923
4146
  ];
3924
4147
  },
4148
+ "habit-check": (args) => {
4149
+ const habitsClause = args.habits
4150
+ ? `The user wants to check in these specific habits: ${args.habits}. Use check_in_habit to mark them as completed.`
4151
+ : "";
4152
+ return [
4153
+ {
4154
+ role: "user",
4155
+ content: {
4156
+ type: "text",
4157
+ text: `Run a daily habit check-in. Use the LifeOS tools to:
4158
+
4159
+ 1. Call get_habits_for_date with today's date to see all scheduled habits and their status
4160
+ 2. Call get_habits to see full habit list with streaks
4161
+
4162
+ Present a clear dashboard showing:
4163
+ - Each habit scheduled for today with status (completed/pending/skipped)
4164
+ - Current streaks for each habit
4165
+ - Overall completion rate for today
4166
+ - Any streaks at risk (habits not yet completed today that have active streaks)
4167
+
4168
+ ${habitsClause}
4169
+
4170
+ Tone: Direct, accountability-focused. Celebrate completed habits, flag pending ones with urgency.`,
4171
+ },
4172
+ },
4173
+ ];
4174
+ },
4175
+ "daily-training-report": (args) => {
4176
+ const dateClause = args.date
4177
+ ? `Use date: ${args.date}`
4178
+ : "Use today's date.";
4179
+ return [
4180
+ {
4181
+ role: "user",
4182
+ content: {
4183
+ type: "text",
4184
+ text: `Generate a comprehensive daily training report. Use the LifeOS tools to gather:
4185
+
4186
+ 1. HABITS: Call get_habits_for_date for yesterday's date (habit compliance review)
4187
+ 2. HABITS TODAY: Call get_habits_for_date for today's date (today's targets)
4188
+ 3. HEALTH: Call get_health_sleep, get_health_readiness, get_health_activity (1 day each) for Oura Ring data
4189
+ 4. AGENDA: Call get_daily_agenda for today's schedule and tasks
4190
+ 5. INITIATIVES: Call get_initiatives to check yearly goal progress
4191
+ 6. ACTION ITEMS: Call get_coaching_action_items for pending coaching items
4192
+
4193
+ ${dateClause}
4194
+
4195
+ Synthesize into a structured report:
4196
+
4197
+ **YESTERDAY'S RESULTS**
4198
+ - Habit completion: X/Y completed, list each with status
4199
+ - Streaks maintained or broken
4200
+ - Health scores (sleep, readiness, activity)
4201
+
4202
+ **TODAY'S FOCUS**
4203
+ - Top 3 priorities (from agenda + top priority tasks)
4204
+ - Habits scheduled for today
4205
+ - Any overdue items or broken streaks to recover
4206
+
4207
+ **ACCOUNTABILITY**
4208
+ - Habits skipped or missed yesterday (call these out directly)
4209
+ - Streak warnings (habits with active streaks that need attention today)
4210
+ - "Never skip a rep" reminder for any pending habits
4211
+
4212
+ **ADHD FOCUS CHECK**
4213
+ - Are today's tasks aligned with your initiatives/yearly goals?
4214
+ - Flag any "busy work" vs "real progress" items
4215
+ - Suggested focus blocks for deep work
4216
+
4217
+ Keep it direct and no-BS. This is a personal trainer report, not a gentle suggestion.`,
4218
+ },
4219
+ },
4220
+ ];
4221
+ },
3925
4222
  };
3926
4223
  // Configuration: CLI flags take precedence over env vars
3927
4224
  // NOTE: HTTP routes are served from .convex.site, NOT .convex.cloud
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starascendin/lifeos-mcp",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "MCP server for LifeOS Project Management - manage projects, tasks, notes, and contacts via AI assistants",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",