Gevety Health Assistant
You have access to the user's health data from Gevety via the REST API. Use web_fetch to retrieve their biomarkers, healthspan scores, and wearable statistics.
First-Time Setup
If this is the user's first time using Gevety, guide them through setup:
- Get a Gevety account: Sign up at https://gevety.com if they don't have one
- Upload blood tests: They need to upload lab reports to have biomarker data
- Generate an API token:
- Configure Clawdbot: Add the token to
~/.clawdbot/clawdbot.json:
{
"skills": {
"entries": {
"gevety": {
"apiKey": "gvt_your_token_here"
}
}
}
}
After adding the token, they'll need to restart Clawdbot for changes to take effect.
Authentication
All requests require Bearer authentication. Use the GEVETY_API_TOKEN environment variable:
Authorization: Bearer $GEVETY_API_TOKEN
Base URL: https://api.gevety.com
Biomarker Name Handling
The API preserves biomarker specificity. Fasting and non-fasting variants are distinct:
| Input Name |
API Returns |
Notes |
| CRP, C-Reactive Protein |
CRP or C-Reactive Protein |
Standard CRP (LOINC 1988-5) |
| hsCRP, hscrp, Cardio CRP |
hs-CRP |
High-sensitivity CRP (LOINC 30522-7) |
| Glucose, Blood Glucose |
Glucose |
Generic/unspecified glucose |
| Fasting Glucose, FBS, FBG |
Glucose Fasting |
Fasting-specific glucose |
| Insulin, Serum Insulin |
Insulin |
Generic/unspecified insulin |
| Fasting Insulin |
Insulin Fasting |
Fasting-specific insulin |
| IG |
Immature Granulocytes |
Expanded for clarity |
| Vitamin D, 25-OH Vitamin D |
Vitamin D |
|
| LDL, LDL Cholesterol |
LDL Cholesterol |
|
Important: The API no longer forces fasting assumptions. If a lab report says "Glucose" without specifying fasting, it returns as "Glucose" (not "Fasting Glucose"). This preserves the original context from your lab results.
Available Endpoints
1. List Available Data (Start Here)
Always call this first to discover what health data exists.
GET /api/v1/mcp/tools/list_available_data
Returns:
biomarkers: List of tracked biomarkers with test counts and latest dates
wearables: Connected devices and available metrics
insights: Whether healthspan score is calculated, axis scores available
data_coverage: Percentage of recommended biomarkers tracked (0-100)
2. Get Health Summary
Overview of the user's health status.
GET /api/v1/mcp/tools/get_health_summary
Returns:
overall_score: Healthspan score (0-100)
overall_status: OPTIMAL, GOOD, SUBOPTIMAL, or NEEDS_ATTENTION
trend: IMPROVING, STABLE, or DECLINING
axis_scores: Scores for each health dimension (metabolic, cardiovascular, etc.)
top_concerns: Biomarkers needing attention
scoring_note: Explanation when overall score differs from axis scores (e.g., "Overall healthspan is high, but Inflammation axis needs attention")
Note on scores: The overall healthspan score is a weighted composite. It's possible to have a high overall score while one axis is low (or vice versa). The scoring_note field explains these situations.
3. Query Biomarker
Get detailed history for a specific biomarker.
GET /api/v1/mcp/tools/query_biomarker?biomarker={name}&days={days}
Parameters:
biomarker (required): Name or alias (e.g., "vitamin d", "ldl", "hba1c", "crp")
days (optional): History period, 1-730, default 365
Returns:
canonical_name: Standardized biomarker name (see table above)
history: Array of test results with dates, values, units, flags
latest: Most recent result
trend: Direction (IMPROVING, STABLE, DECLINING) and percent change
optimal_range: Evidence-based optimal values
Tip: If biomarker not found, the response includes did_you_mean suggestions.
4. Get Wearable Stats
Daily metrics from connected wearables (Garmin, Oura, Whoop, etc.).
GET /api/v1/mcp/tools/get_wearable_stats?days={days}&metric={metric}
Parameters:
days (optional): History period, 1-90, default 30
metric (optional): Focus on specific metric (steps, hrv, sleep, etc.)
Returns:
connected_sources: List of connected wearable platforms
daily_metrics: Per-day data (steps, resting HR, HRV, sleep, recovery)
summaries: Aggregated stats with averages, min, max, trends
5. Get Opportunities
Get ranked health improvement opportunities with estimated healthspan impact.
GET /api/v1/mcp/tools/get_opportunities?limit={limit}&axis={axis}
Parameters:
limit (optional): Max opportunities to return, 1-50, default 10
axis (optional): Filter by health axis (metabolic, cardiovascular, etc.)
Returns:
opportunities: Ranked list of improvement opportunities
total_opportunity_score: Total healthspan points available
total_years_estimate: Estimated years of healthy life if all optimized
healthspan_score: Current healthspan score
Each opportunity includes:
biomarker: Standardized biomarker name
current_value / optimal_value: Where you are vs target
opportunity_score: Healthspan points gained if optimized
years_estimate: Estimated healthy years gained
priority: Rank (1 = highest impact)
6. Get Biological Age
Calculate biological age using validated algorithms (PhenoAge, Light BioAge).
GET /api/v1/mcp/tools/get_biological_age
Returns:
result: Biological age calculation (if available)
biological_age: Calculated biological age
chronological_age: Calendar age
age_acceleration: Difference (positive = aging faster)
algorithm: Which algorithm was used
biomarkers_used: Biomarkers that contributed
interpretation: What the result means
available: Whether calculation was possible
reason: Why not available (if applicable)
upgrade_available: Can unlock better algorithm with more data
upgrade_message: What additional tests would help
7. List Supplements
Get the user's supplement stack.
GET /api/v1/mcp/tools/list_supplements?active_only={true|false}
Parameters:
active_only (optional): Only show currently active supplements, default false
Returns:
supplements: List of supplements with dosage, frequency, duration
active_count: Number of currently active supplements
total_count: Total supplements tracked
Each supplement includes:
name: Supplement name
dose_text: Formatted dosage (e.g., "1000 mg daily", "200mg EPA + 100mg DHA daily")
is_active: Currently taking
duration_days: How long on this supplement
Note: For multi-component supplements (like fish oil), dose_text shows all components (e.g., "200mg EPA + 100mg DHA daily").
8. Get Activities
Get workout/activity history from connected wearables.
GET /api/v1/mcp/tools/get_activities?days={days}&activity_type={type}
Parameters:
days (optional): History period, 1-90, default 30
activity_type (optional): Filter by type (running, cycling, strength, etc.)
Returns:
activities: List of workouts with metrics
total_count: Number of activities
total_duration_minutes: Total workout time
total_distance_km: Total distance covered
total_calories: Total calories burned
Each activity includes:
activity_type: Type (running, cycling, swimming, etc.)
name: Activity name
start_time: When it started
duration_minutes: How long
distance_km: Distance (if applicable)
calories: Calories burned
avg_hr / max_hr: Heart rate data
source: Where the data came from (garmin, strava, hevy, concept2, etc.)
elevation_gain_m: Elevation gain in meters (outdoor activities)
avg_pace_min_per_km: Average running pace
avg_watts: Average cycling power
strain_score: Whoop strain (0-21)
avg_cadence: Cadence (RPM or steps/min)
is_indoor: Indoor activity flag
total_volume_kg: Total weight lifted (Hevy strength workouts)
exercise_count: Number of exercises (Hevy)
set_count: Number of sets (Hevy)
pace_500m: Pace per 500m (Concept2 erg sessions)
stroke_rate: Strokes per minute (Concept2)
machine_type: Erg machine type — rower, skierg, bikerg (Concept2)
Note: Source-specific fields (volume, pace, stroke rate, etc.) are only populated for the relevant source. For example, total_volume_kg only appears on Hevy activities and pace_500m only on Concept2 activities.
9. Get Today's Actions
Get the user's action checklist for today.
GET /api/v1/mcp/tools/get_today_actions?timezone={timezone}
Parameters:
timezone (optional): IANA timezone (e.g., "America/New_York"), default UTC
Returns:
effective_date: The date being queried in user's timezone
timezone: Timezone used for calculation
window_start / window_end: Day boundaries (ISO datetime)
actions: List of today's actions
completed_count / total_count: Completion stats
completion_pct: Numeric completion percentage (0-100)
last_updated_at: Cache staleness indicator
Each action includes:
action_id: Stable ID for deep-linking
title: Action title
action_type: Type (supplement, habit, diet, medication, test, procedure)
completed: Whether completed today
scheduled_window: Time window (morning, afternoon, evening, any)
dose_text: Dosage info if applicable (e.g., "1000 mg daily")
10. Get Protocol
Get the user's 90-day health protocol with top priorities.
GET /api/v1/mcp/tools/get_protocol
Returns:
protocol_id: Stable protocol ID
phase: Current phase (week1, month1, month3)
days_remaining: Days until protocol expires
generated_at / last_updated_at: Timestamps
top_priorities: Top 5 health priorities with reasoning
key_recommendations: Diet and lifestyle action items
total_actions: Total actions in protocol
Each priority includes:
priority_id: Stable ID (same as rank)
rank: Priority rank (1 = highest)
biomarker: Standardized biomarker name
status: Current status (critical, concerning, suboptimal, optimal)
target: Target value with unit
current_value / unit: Current measured value
measured_at: When this biomarker was last measured
why_prioritized: Explanation for why this is prioritized
Note: If no protocol exists, returns a helpful error with suggestion to generate one at gevety.com/protocol.
11. Get Upcoming Tests
Get tests that are due or recommended based on biomarker history and AI recommendations.
GET /api/v1/mcp/tools/get_upcoming_tests
Returns:
tests: List of upcoming tests sorted by urgency
overdue_count: Number of overdue tests
due_soon_count: Tests due within 30 days
recommended_count: AI-recommended tests
total_count: Total number of upcoming tests
Each test includes:
test_id: Stable ID for deep-linking (format: panel_{id} or recommended_{id})
name: Test or panel name
test_type: Type (panel, biomarker, recommended)
urgency: Priority level (overdue, due_soon, recommended)
due_reason: Why this test is needed (e.g., "Due 2 weeks ago", "AI recommendation")
last_tested_at: When this was last tested (if applicable)
biomarkers: List of biomarkers included (for panels)
12. List Test Results
Get a list of uploaded lab reports with dates, source, and biomarker count.
GET /api/v1/mcp/tools/list_test_results?limit={limit}&start_date={date}&end_date={date}
Parameters:
limit (optional): Max reports to return, 1-50, default 10
start_date (optional): Filter from date (YYYY-MM-DD)
end_date (optional): Filter to date (YYYY-MM-DD)
Returns:
reports: List of lab reports
total_reports: Total number of reports
Each report includes:
report_id: Stable report ID
report_date: Date of the lab test
source: How it was uploaded (pdf, email, manual)
lab_name: Laboratory name (if available)
biomarker_count: Number of biomarkers in this report
filename: Original filename (if uploaded as PDF)
13. List All Biomarkers
Get ALL tracked biomarkers with current value, status classification, and trend in one call.
GET /api/v1/mcp/tools/list_all_biomarkers?category={category}&status={status}
Parameters:
category (optional): Filter by category (e.g., "metabolic", "cardiovascular")
status (optional): Filter by status (optimal, suboptimal, high, low, critical_high, critical_low)
Returns:
biomarkers: List of all biomarkers with latest values
total_count: Total number of biomarkers
counts_by_status: Breakdown by status (optimal, suboptimal, high, low, critical_high, critical_low, unknown)
Each biomarker includes:
name: Standardized biomarker name
category: Health category (metabolic, cardiovascular, etc.)
latest_value: Most recent test value
unit: Measurement unit
status: Classification (optimal, suboptimal, high, low, critical_high, critical_low, unknown)
last_test_date: When this was last tested
trend_direction: Trend since previous test (increasing, decreasing, stable)
14. Get Content Recommendations
Get personalized health content recommendations based on biomarker profile.
GET /api/v1/mcp/tools/get_content_recommendations?limit={limit}&category={category}
Parameters:
limit (optional): Max recommendations, 1-20, default 5
category (optional): Filter by content category
Returns:
recommendations: List of recommended articles
total_available: Total recommendations available
Each recommendation includes:
content_id: Stable content ID
title: Article title
summary: Brief summary
category: Content category
relevance_reason: Why this is relevant to the user
quality_score: Evidence quality score (only high-quality content is shown)
url: Link to the article
15. Get Strength Training
Get detailed strength training data from Hevy (workouts, volume, muscle distribution).
GET /api/v1/mcp/tools/get_strength_training?days={days}&muscle_group={group}
Parameters:
days (optional): History period, 1-90, default 30
muscle_group (optional): Filter by muscle group (e.g., "chest", "back", "legs")
Returns:
workouts: List of strength workouts with exercises, sets, and volume
total_workouts: Total workout count
total_volume_kg: Total weight lifted
avg_sessions_per_week: Training frequency
muscle_distribution: Volume breakdown by muscle group (with percentages)
weekly_volume: Weekly volume trend data
Each workout includes:
started_at: When the workout started
duration_minutes: Workout duration
total_volume_kg: Total volume for this workout
exercise_count / set_count: Number of exercises and sets
exercises: Detailed exercise list with name, muscle group, sets, top set weight, total volume, total reps
enrichment_source: If enriched with HR data from another wearable (garmin, strava, etc.)
enrichment_avg_hr: Average HR from enrichment source
Note: Requires Hevy connection. Returns error if user has no Hevy integration.
16. Get Erg Results
Get Concept2 ergometer results (rowing, skiing, biking).
GET /api/v1/mcp/tools/get_erg_results?days={days}&machine_type={type}
Parameters:
days (optional): History period, 1-90, default 30
machine_type (optional): Filter by machine — rower, skierg, bikerg
Returns:
sessions: List of erg sessions with detailed metrics
total_sessions: Total session count
total_meters: Total distance
total_time_seconds: Total time on erg
avg_pace_formatted: Overall average pace per 500m (e.g., "2:05.3")
machines: Per-machine summary (session count, total meters, avg pace)
weekly_volume: Weekly volume trend data
Each session includes:
date: Session date
machine_type: rower, skierg, or bikerg
distance_meters: Distance in meters
time_seconds: Duration in seconds
pace_500m: Pace per 500m formatted (e.g., "2:05.3")
calories: Calories burned
stroke_rate: Average strokes per minute
avg_hr: Average heart rate (if available)
drag_factor: Erg drag factor setting
Note: Requires Concept2 connection. Returns error if user has no Concept2 integration.
17. List Medications
Get the user's prescription medications.
GET /api/v1/mcp/tools/list_medications?active_only={true|false}
Parameters:
active_only (optional): Only show currently active medications, default true
Returns:
medications: List of medications with dosage, frequency, route, and reason
active_count: Number of currently active medications
total_count: Total medications tracked
Each medication includes:
name: Medication name (brand)
generic_name: Generic/active ingredient name
dosage: Dosage (e.g., "500mg")
frequency: How often taken (e.g., "twice daily")
route: Route of administration (oral, topical, injection, etc.)
is_active: Currently taking
start_date / end_date: When started/stopped
duration_days: How long on this medication
reason: Why prescribed (auto-decrypted from encrypted storage)
18. Get Medical Profile
Get the user's medical profile including conditions, allergies, family history, and health goals.
GET /api/v1/mcp/tools/get_medical_profile
Returns:
conditions: List of medical conditions (active/managed)
allergies: List of allergies with severity and reaction type
family_history: Family medical history with relationships and onset ages
goals: Active health goals with priorities and target dates
diet_type: Current dietary pattern (if set)
condition_count / allergy_count: Summary counts
Each condition includes: name, status (active/managed/resolved/monitoring), severity, diagnosed date, notes
Each allergy includes: allergen, severity (mild/moderate/severe/life_threatening), reaction_type
Each family history item includes: condition, relationship (father/mother/etc.), age_at_onset, notes
19. List Health Documents
List all health documents including procedure reports, imaging, prescriptions, and more.
GET /api/v1/mcp/tools/list_health_documents?limit={limit}&document_type={type}
Parameters:
limit (optional): Max documents to return, 1-50, default 20
document_type (optional): Filter by type (lab_report, procedure_report, imaging, prescription, doctor_note, other)
Returns:
documents: List of health documents sorted by received date (newest first)
total_count: Total documents for this user
by_type: Breakdown of document counts by type
Each document includes:
document_id: Document ID
document_type: Type (lab_report, procedure_report, imaging, etc.)
document_subtype: Subtype (cac, dexa, colonoscopy, mammogram, etc.)
status: Processing status (pending, processing, needs_review, extracted, archived)
filename: Original filename
received_at: When received (ISO format)
ai_summary: AI-generated summary of the document
lab_name: Lab name (for lab reports)
test_date: Test/procedure date
Note: This goes beyond list_test_results which only shows lab reports. This includes ALL uploaded documents — procedure reports (CAC, DEXA, colonoscopy), imaging studies, prescriptions, and doctor notes.
Interpreting Scores
Healthspan Score (0-100)
| Range |
Status |
Meaning |
| 80-100 |
OPTIMAL |
Excellent health optimization |
| 65-79 |
GOOD |
Above average, minor improvements possible |
| 50-64 |
SUBOPTIMAL |
Room for improvement |
| <50 |
NEEDS_ATTENTION |
Several areas need focus |
Axis Scores
Each health dimension is scored independently:
- Metabolic: Blood sugar, insulin, lipids
- Cardiovascular: Heart health markers
- Inflammatory: hs-CRP, homocysteine
- Hormonal: Thyroid, testosterone, cortisol
- Nutritional: Vitamins, minerals
- Liver/Kidney: Organ function markers
Important: It's possible to have a high overall score with one low axis score (or vice versa). The scoring_note field in get_health_summary explains these situations.
Biomarker Status Labels
| Label |
Meaning |
| OPTIMAL |
Within evidence-based ideal range |
| NORMAL |
Within lab reference range |
| SUBOPTIMAL |
Room for improvement |
| HIGH/LOW |
Outside lab reference range |
| CRITICAL |
Needs immediate medical attention |
Common Workflows
"How am I doing?"
- Call
list_available_data to see what's tracked
- Call
get_health_summary for the overall picture
- Highlight top concerns and recent trends
- If
scoring_note is present, explain the score discordance
"Tell me about my vitamin D"
- Call
query_biomarker?biomarker=vitamin d
- Present history, current status, and trend
- Note optimal range vs current value
"What's my CRP?" / "How's my inflammation?"
- Call
query_biomarker?biomarker=crp (returns as "CRP" or "hs-CRP" depending on lab)
- Present the value and trend
- Explain what CRP measures (inflammation marker) - note if it's high-sensitivity
"How's my sleep/HRV?"
- Call
get_wearable_stats?metric=sleep or ?metric=hrv
- Show recent trends and averages
- Compare to healthy baselines
"What should I focus on?"
- Call
get_opportunities?limit=5
- Present top opportunities ranked by healthspan impact
- Explain what each biomarker does and why optimizing it matters
"How old am I biologically?"
- Call
get_biological_age
- If available, compare biological vs chronological age
- Explain what age acceleration means
- If not available, explain what tests are needed
"What supplements am I taking?"
- Call
list_supplements?active_only=true
- List active supplements with dosages (use
dose_text field)
- Note duration on each supplement
"What workouts have I done?"
- Call
get_activities?days=30
- Summarize total activity (duration, calories, distance)
- List recent workouts with key metrics
"What should I do today?"
- Call
get_today_actions?timezone=America/New_York (use user's timezone if known)
- Group actions by scheduled window (morning, afternoon, evening)
- Show completion progress
- Highlight uncompleted actions
"What should I focus on?" / "What are my health priorities?"
- Call
get_protocol
- Present top priorities with current values and targets
- Explain why each is prioritized
- List key recommendations
- Note protocol phase and days remaining
"What tests should I do next?" / "Am I due for any blood work?"
- Call
get_upcoming_tests
- Highlight overdue tests first (urgent)
- List tests due soon with timeframes
- Mention AI-recommended tests for optimization
- Note which biomarkers each panel covers
"Show me my lab reports" / "When was my last blood test?"
- Call
list_test_results?limit=10
- Show reports with dates, lab names, and biomarker counts
- Note the source (PDF upload, email, manual entry)
"Give me a full overview of all my biomarkers"
- Call
list_all_biomarkers
- Group by category (metabolic, cardiovascular, etc.)
- Highlight any critical or high/low values
- Show status counts (e.g., "12 optimal, 3 suboptimal, 1 high")
- Note trends (increasing/decreasing/stable)
"Show me my strength training" / "How's my lifting?"
- Call
get_strength_training?days=30
- Summarize workout frequency and total volume
- Show muscle group distribution (highlight any imbalances)
- List recent workouts with top exercises
"Show me my rowing results" / "How are my erg sessions?"
- Call
get_erg_results?days=30
- Summarize total sessions, distance, and average pace
- Show per-machine breakdown if using multiple ergs
- Highlight pace trends (improving/declining)
"What medications am I on?" / "What prescriptions do I take?"
- Call
list_medications?active_only=true
- List active medications with dosage and frequency
- Note route and reason if available
- To see historical medications too, use
active_only=false
"What are my medical conditions?" / "Do I have any allergies?"
- Call
get_medical_profile
- Present conditions with status and severity
- List allergies with severity levels
- Show family history (relevant for risk assessment)
- Note active health goals
"Show me all my health documents" / "What procedure reports do I have?"
- Call
list_health_documents?limit=20
- Show type breakdown (lab reports, procedures, imaging, etc.)
- List documents with AI summaries
- Filter by type if user asks about specific category:
document_type=procedure_report
"What should I read about?" / "Any health articles for me?"
- Call
get_content_recommendations?limit=5
- Present articles with titles and relevance reasons
- Explain why each is relevant to the user's biomarker profile
Example API Call
// Using web_fetch
web_fetch({
url: "https://api.gevety.com/api/v1/mcp/tools/get_health_summary",
method: "GET",
headers: {
"Authorization": "Bearer $GEVETY_API_TOKEN",
"Content-Type": "application/json"
}
})
Important Guidelines
- Never diagnose - Present data clearly but always suggest consulting healthcare providers for medical decisions
- Trends matter more than single values - A slightly elevated reading improving over time is better than a normal reading that's declining
- Note data freshness - Lab results may be weeks/months old; wearable data is typically daily
- Context is key - Ask about supplements, medications, or lifestyle changes that might explain trends
- Privacy first - Health data is sensitive; don't share or reference specific values outside this conversation
Error Handling
| Error Code |
Meaning |
Action |
| 401 |
Invalid or expired token |
User needs to regenerate token at gevety.com/settings |
404 + did_you_mean |
Biomarker not found |
Suggest alternatives from the response |
| 404 |
No data found |
User may not have uploaded labs yet |
| 429 |
Rate limited |
Wait a moment and retry |
Getting a Token
Users can generate their API token at:
https://gevety.com/settings → Developer API → Generate Token
The token format is gvt_ followed by random characters.
Checking for Updates
On first use each session, optionally check for updates:
GET https://api.gevety.com/api/v1/mcp/tools/status
No authentication required. If the request fails or times out, skip the check and proceed normally.
Response (when successful):
{
"clawdbot_skill": { "latest": "1.8.0", "update_command": "clawdhub update gevety" },
"announcement": "New feature available!"
}
If clawdbot_skill.latest > 1.8.0 (this skill's version), tell the user:
"A Gevety skill update is available. Run: clawdhub update gevety"
If announcement is present, mention it once per session.
If the status check fails, don't mention it - just proceed with the user's request.
To manually update:
clawdhub update gevety
1---2name: gevety3description: Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, medications, medical profile, activities, strength training, erg results, daily actions, 90-day health protocol, upcoming tests, lab reports, health documents, and health content4---56# Gevety Health Assistant78You have access to the user's health data from Gevety via the REST API. Use `web_fetch` to retrieve their biomarkers, healthspan scores, and wearable statistics.910## First-Time Setup1112If this is the user's first time using Gevety, guide them through setup:13141. **Get a Gevety account**: Sign up at https://gevety.com if they don't have one152. **Upload blood tests**: They need to upload lab reports to have biomarker data163. **Generate an API token**:17 - Go to https://gevety.com/settings18 - Click "Developer API" tab19 - Click "Generate Token"20 - Copy the token (starts with `gvt_`)214. **Configure Clawdbot**: Add the token to `~/.clawdbot/clawdbot.json`:2223```json24{25 "skills": {26 "entries": {27 "gevety": {28 "apiKey": "gvt_your_token_here"29 }30 }31 }32}33```3435After adding the token, they'll need to restart Clawdbot for changes to take effect.3637## Authentication3839All requests require Bearer authentication. Use the `GEVETY_API_TOKEN` environment variable:4041```42Authorization: Bearer $GEVETY_API_TOKEN43```4445Base URL: `https://api.gevety.com`4647## Biomarker Name Handling4849The API preserves biomarker specificity. Fasting and non-fasting variants are distinct:5051| Input Name | API Returns | Notes |52|------------|-------------|-------|53| CRP, C-Reactive Protein | **CRP** or **C-Reactive Protein** | Standard CRP (LOINC 1988-5) |54| hsCRP, hscrp, Cardio CRP | **hs-CRP** | High-sensitivity CRP (LOINC 30522-7) |55| Glucose, Blood Glucose | **Glucose** | Generic/unspecified glucose |56| Fasting Glucose, FBS, FBG | **Glucose Fasting** | Fasting-specific glucose |57| Insulin, Serum Insulin | **Insulin** | Generic/unspecified insulin |58| Fasting Insulin | **Insulin Fasting** | Fasting-specific insulin |59| IG | **Immature Granulocytes** | Expanded for clarity |60| Vitamin D, 25-OH Vitamin D | **Vitamin D** | |61| LDL, LDL Cholesterol | **LDL Cholesterol** | |6263**Important**: The API no longer forces fasting assumptions. If a lab report says "Glucose" without specifying fasting, it returns as "Glucose" (not "Fasting Glucose"). This preserves the original context from your lab results.6465## Available Endpoints6667### 1. List Available Data (Start Here)6869**Always call this first** to discover what health data exists.7071```72GET /api/v1/mcp/tools/list_available_data73```7475Returns:76- `biomarkers`: List of tracked biomarkers with test counts and latest dates77- `wearables`: Connected devices and available metrics78- `insights`: Whether healthspan score is calculated, axis scores available79- `data_coverage`: Percentage of recommended biomarkers tracked (0-100)8081### 2. Get Health Summary8283Overview of the user's health status.8485```86GET /api/v1/mcp/tools/get_health_summary87```8889Returns:90- `overall_score`: Healthspan score (0-100)91- `overall_status`: OPTIMAL, GOOD, SUBOPTIMAL, or NEEDS_ATTENTION92- `trend`: IMPROVING, STABLE, or DECLINING93- `axis_scores`: Scores for each health dimension (metabolic, cardiovascular, etc.)94- `top_concerns`: Biomarkers needing attention95- `scoring_note`: Explanation when overall score differs from axis scores (e.g., "Overall healthspan is high, but Inflammation axis needs attention")9697**Note on scores**: The overall healthspan score is a weighted composite. It's possible to have a high overall score while one axis is low (or vice versa). The `scoring_note` field explains these situations.9899### 3. Query Biomarker100101Get detailed history for a specific biomarker.102103```104GET /api/v1/mcp/tools/query_biomarker?biomarker={name}&days={days}105```106107Parameters:108- `biomarker` (required): Name or alias (e.g., "vitamin d", "ldl", "hba1c", "crp")109- `days` (optional): History period, 1-730, default 365110111Returns:112- `canonical_name`: Standardized biomarker name (see table above)113- `history`: Array of test results with dates, values, units, flags114- `latest`: Most recent result115- `trend`: Direction (IMPROVING, STABLE, DECLINING) and percent change116- `optimal_range`: Evidence-based optimal values117118**Tip**: If biomarker not found, the response includes `did_you_mean` suggestions.119120### 4. Get Wearable Stats121122Daily metrics from connected wearables (Garmin, Oura, Whoop, etc.).123124```125GET /api/v1/mcp/tools/get_wearable_stats?days={days}&metric={metric}126```127128Parameters:129- `days` (optional): History period, 1-90, default 30130- `metric` (optional): Focus on specific metric (steps, hrv, sleep, etc.)131132Returns:133- `connected_sources`: List of connected wearable platforms134- `daily_metrics`: Per-day data (steps, resting HR, HRV, sleep, recovery)135- `summaries`: Aggregated stats with averages, min, max, trends136137### 5. Get Opportunities138139Get ranked health improvement opportunities with estimated healthspan impact.140141```142GET /api/v1/mcp/tools/get_opportunities?limit={limit}&axis={axis}143```144145Parameters:146- `limit` (optional): Max opportunities to return, 1-50, default 10147- `axis` (optional): Filter by health axis (metabolic, cardiovascular, etc.)148149Returns:150- `opportunities`: Ranked list of improvement opportunities151- `total_opportunity_score`: Total healthspan points available152- `total_years_estimate`: Estimated years of healthy life if all optimized153- `healthspan_score`: Current healthspan score154155Each opportunity includes:156- `biomarker`: Standardized biomarker name157- `current_value` / `optimal_value`: Where you are vs target158- `opportunity_score`: Healthspan points gained if optimized159- `years_estimate`: Estimated healthy years gained160- `priority`: Rank (1 = highest impact)161162### 6. Get Biological Age163164Calculate biological age using validated algorithms (PhenoAge, Light BioAge).165166```167GET /api/v1/mcp/tools/get_biological_age168```169170Returns:171- `result`: Biological age calculation (if available)172 - `biological_age`: Calculated biological age173 - `chronological_age`: Calendar age174 - `age_acceleration`: Difference (positive = aging faster)175 - `algorithm`: Which algorithm was used176 - `biomarkers_used`: Biomarkers that contributed177 - `interpretation`: What the result means178- `available`: Whether calculation was possible179- `reason`: Why not available (if applicable)180- `upgrade_available`: Can unlock better algorithm with more data181- `upgrade_message`: What additional tests would help182183### 7. List Supplements184185Get the user's supplement stack.186187```188GET /api/v1/mcp/tools/list_supplements?active_only={true|false}189```190191Parameters:192- `active_only` (optional): Only show currently active supplements, default false193194Returns:195- `supplements`: List of supplements with dosage, frequency, duration196- `active_count`: Number of currently active supplements197- `total_count`: Total supplements tracked198199Each supplement includes:200- `name`: Supplement name201- `dose_text`: Formatted dosage (e.g., "1000 mg daily", "200mg EPA + 100mg DHA daily")202- `is_active`: Currently taking203- `duration_days`: How long on this supplement204205**Note**: For multi-component supplements (like fish oil), `dose_text` shows all components (e.g., "200mg EPA + 100mg DHA daily").206207### 8. Get Activities208209Get workout/activity history from connected wearables.210211```212GET /api/v1/mcp/tools/get_activities?days={days}&activity_type={type}213```214215Parameters:216- `days` (optional): History period, 1-90, default 30217- `activity_type` (optional): Filter by type (running, cycling, strength, etc.)218219Returns:220- `activities`: List of workouts with metrics221- `total_count`: Number of activities222- `total_duration_minutes`: Total workout time223- `total_distance_km`: Total distance covered224- `total_calories`: Total calories burned225226Each activity includes:227- `activity_type`: Type (running, cycling, swimming, etc.)228- `name`: Activity name229- `start_time`: When it started230- `duration_minutes`: How long231- `distance_km`: Distance (if applicable)232- `calories`: Calories burned233- `avg_hr` / `max_hr`: Heart rate data234- `source`: Where the data came from (garmin, strava, hevy, concept2, etc.)235- `elevation_gain_m`: Elevation gain in meters (outdoor activities)236- `avg_pace_min_per_km`: Average running pace237- `avg_watts`: Average cycling power238- `strain_score`: Whoop strain (0-21)239- `avg_cadence`: Cadence (RPM or steps/min)240- `is_indoor`: Indoor activity flag241- `total_volume_kg`: Total weight lifted (Hevy strength workouts)242- `exercise_count`: Number of exercises (Hevy)243- `set_count`: Number of sets (Hevy)244- `pace_500m`: Pace per 500m (Concept2 erg sessions)245- `stroke_rate`: Strokes per minute (Concept2)246- `machine_type`: Erg machine type — rower, skierg, bikerg (Concept2)247248**Note**: Source-specific fields (volume, pace, stroke rate, etc.) are only populated for the relevant source. For example, `total_volume_kg` only appears on Hevy activities and `pace_500m` only on Concept2 activities.249250### 9. Get Today's Actions251252Get the user's action checklist for today.253254```255GET /api/v1/mcp/tools/get_today_actions?timezone={timezone}256```257258Parameters:259- `timezone` (optional): IANA timezone (e.g., "America/New_York"), default UTC260261Returns:262- `effective_date`: The date being queried in user's timezone263- `timezone`: Timezone used for calculation264- `window_start` / `window_end`: Day boundaries (ISO datetime)265- `actions`: List of today's actions266- `completed_count` / `total_count`: Completion stats267- `completion_pct`: Numeric completion percentage (0-100)268- `last_updated_at`: Cache staleness indicator269270Each action includes:271- `action_id`: Stable ID for deep-linking272- `title`: Action title273- `action_type`: Type (supplement, habit, diet, medication, test, procedure)274- `completed`: Whether completed today275- `scheduled_window`: Time window (morning, afternoon, evening, any)276- `dose_text`: Dosage info if applicable (e.g., "1000 mg daily")277278### 10. Get Protocol279280Get the user's 90-day health protocol with top priorities.281282```283GET /api/v1/mcp/tools/get_protocol284```285286Returns:287- `protocol_id`: Stable protocol ID288- `phase`: Current phase (week1, month1, month3)289- `days_remaining`: Days until protocol expires290- `generated_at` / `last_updated_at`: Timestamps291- `top_priorities`: Top 5 health priorities with reasoning292- `key_recommendations`: Diet and lifestyle action items293- `total_actions`: Total actions in protocol294295Each priority includes:296- `priority_id`: Stable ID (same as rank)297- `rank`: Priority rank (1 = highest)298- `biomarker`: Standardized biomarker name299- `status`: Current status (critical, concerning, suboptimal, optimal)300- `target`: Target value with unit301- `current_value` / `unit`: Current measured value302- `measured_at`: When this biomarker was last measured303- `why_prioritized`: Explanation for why this is prioritized304305**Note**: If no protocol exists, returns a helpful error with suggestion to generate one at gevety.com/protocol.306307### 11. Get Upcoming Tests308309Get tests that are due or recommended based on biomarker history and AI recommendations.310311```312GET /api/v1/mcp/tools/get_upcoming_tests313```314315Returns:316- `tests`: List of upcoming tests sorted by urgency317- `overdue_count`: Number of overdue tests318- `due_soon_count`: Tests due within 30 days319- `recommended_count`: AI-recommended tests320- `total_count`: Total number of upcoming tests321322Each test includes:323- `test_id`: Stable ID for deep-linking (format: `panel_{id}` or `recommended_{id}`)324- `name`: Test or panel name325- `test_type`: Type (panel, biomarker, recommended)326- `urgency`: Priority level (overdue, due_soon, recommended)327- `due_reason`: Why this test is needed (e.g., "Due 2 weeks ago", "AI recommendation")328- `last_tested_at`: When this was last tested (if applicable)329- `biomarkers`: List of biomarkers included (for panels)330331### 12. List Test Results332333Get a list of uploaded lab reports with dates, source, and biomarker count.334335```336GET /api/v1/mcp/tools/list_test_results?limit={limit}&start_date={date}&end_date={date}337```338339Parameters:340- `limit` (optional): Max reports to return, 1-50, default 10341- `start_date` (optional): Filter from date (YYYY-MM-DD)342- `end_date` (optional): Filter to date (YYYY-MM-DD)343344Returns:345- `reports`: List of lab reports346- `total_reports`: Total number of reports347348Each report includes:349- `report_id`: Stable report ID350- `report_date`: Date of the lab test351- `source`: How it was uploaded (pdf, email, manual)352- `lab_name`: Laboratory name (if available)353- `biomarker_count`: Number of biomarkers in this report354- `filename`: Original filename (if uploaded as PDF)355356### 13. List All Biomarkers357358Get ALL tracked biomarkers with current value, status classification, and trend in one call.359360```361GET /api/v1/mcp/tools/list_all_biomarkers?category={category}&status={status}362```363364Parameters:365- `category` (optional): Filter by category (e.g., "metabolic", "cardiovascular")366- `status` (optional): Filter by status (optimal, suboptimal, high, low, critical_high, critical_low)367368Returns:369- `biomarkers`: List of all biomarkers with latest values370- `total_count`: Total number of biomarkers371- `counts_by_status`: Breakdown by status (optimal, suboptimal, high, low, critical_high, critical_low, unknown)372373Each biomarker includes:374- `name`: Standardized biomarker name375- `category`: Health category (metabolic, cardiovascular, etc.)376- `latest_value`: Most recent test value377- `unit`: Measurement unit378- `status`: Classification (optimal, suboptimal, high, low, critical_high, critical_low, unknown)379- `last_test_date`: When this was last tested380- `trend_direction`: Trend since previous test (increasing, decreasing, stable)381382### 14. Get Content Recommendations383384Get personalized health content recommendations based on biomarker profile.385386```387GET /api/v1/mcp/tools/get_content_recommendations?limit={limit}&category={category}388```389390Parameters:391- `limit` (optional): Max recommendations, 1-20, default 5392- `category` (optional): Filter by content category393394Returns:395- `recommendations`: List of recommended articles396- `total_available`: Total recommendations available397398Each recommendation includes:399- `content_id`: Stable content ID400- `title`: Article title401- `summary`: Brief summary402- `category`: Content category403- `relevance_reason`: Why this is relevant to the user404- `quality_score`: Evidence quality score (only high-quality content is shown)405- `url`: Link to the article406407### 15. Get Strength Training408409Get detailed strength training data from Hevy (workouts, volume, muscle distribution).410411```412GET /api/v1/mcp/tools/get_strength_training?days={days}&muscle_group={group}413```414415Parameters:416- `days` (optional): History period, 1-90, default 30417- `muscle_group` (optional): Filter by muscle group (e.g., "chest", "back", "legs")418419Returns:420- `workouts`: List of strength workouts with exercises, sets, and volume421- `total_workouts`: Total workout count422- `total_volume_kg`: Total weight lifted423- `avg_sessions_per_week`: Training frequency424- `muscle_distribution`: Volume breakdown by muscle group (with percentages)425- `weekly_volume`: Weekly volume trend data426427Each workout includes:428- `started_at`: When the workout started429- `duration_minutes`: Workout duration430- `total_volume_kg`: Total volume for this workout431- `exercise_count` / `set_count`: Number of exercises and sets432- `exercises`: Detailed exercise list with name, muscle group, sets, top set weight, total volume, total reps433- `enrichment_source`: If enriched with HR data from another wearable (garmin, strava, etc.)434- `enrichment_avg_hr`: Average HR from enrichment source435436**Note**: Requires Hevy connection. Returns error if user has no Hevy integration.437438### 16. Get Erg Results439440Get Concept2 ergometer results (rowing, skiing, biking).441442```443GET /api/v1/mcp/tools/get_erg_results?days={days}&machine_type={type}444```445446Parameters:447- `days` (optional): History period, 1-90, default 30448- `machine_type` (optional): Filter by machine — rower, skierg, bikerg449450Returns:451- `sessions`: List of erg sessions with detailed metrics452- `total_sessions`: Total session count453- `total_meters`: Total distance454- `total_time_seconds`: Total time on erg455- `avg_pace_formatted`: Overall average pace per 500m (e.g., "2:05.3")456- `machines`: Per-machine summary (session count, total meters, avg pace)457- `weekly_volume`: Weekly volume trend data458459Each session includes:460- `date`: Session date461- `machine_type`: rower, skierg, or bikerg462- `distance_meters`: Distance in meters463- `time_seconds`: Duration in seconds464- `pace_500m`: Pace per 500m formatted (e.g., "2:05.3")465- `calories`: Calories burned466- `stroke_rate`: Average strokes per minute467- `avg_hr`: Average heart rate (if available)468- `drag_factor`: Erg drag factor setting469470**Note**: Requires Concept2 connection. Returns error if user has no Concept2 integration.471472### 17. List Medications473474Get the user's prescription medications.475476```477GET /api/v1/mcp/tools/list_medications?active_only={true|false}478```479480Parameters:481- `active_only` (optional): Only show currently active medications, default true482483Returns:484- `medications`: List of medications with dosage, frequency, route, and reason485- `active_count`: Number of currently active medications486- `total_count`: Total medications tracked487488Each medication includes:489- `name`: Medication name (brand)490- `generic_name`: Generic/active ingredient name491- `dosage`: Dosage (e.g., "500mg")492- `frequency`: How often taken (e.g., "twice daily")493- `route`: Route of administration (oral, topical, injection, etc.)494- `is_active`: Currently taking495- `start_date` / `end_date`: When started/stopped496- `duration_days`: How long on this medication497- `reason`: Why prescribed (auto-decrypted from encrypted storage)498499### 18. Get Medical Profile500501Get the user's medical profile including conditions, allergies, family history, and health goals.502503```504GET /api/v1/mcp/tools/get_medical_profile505```506507Returns:508- `conditions`: List of medical conditions (active/managed)509- `allergies`: List of allergies with severity and reaction type510- `family_history`: Family medical history with relationships and onset ages511- `goals`: Active health goals with priorities and target dates512- `diet_type`: Current dietary pattern (if set)513- `condition_count` / `allergy_count`: Summary counts514515Each condition includes: `name`, `status` (active/managed/resolved/monitoring), `severity`, `diagnosed` date, `notes`516517Each allergy includes: `allergen`, `severity` (mild/moderate/severe/life_threatening), `reaction_type`518519Each family history item includes: `condition`, `relationship` (father/mother/etc.), `age_at_onset`, `notes`520521### 19. List Health Documents522523List all health documents including procedure reports, imaging, prescriptions, and more.524525```526GET /api/v1/mcp/tools/list_health_documents?limit={limit}&document_type={type}527```528529Parameters:530- `limit` (optional): Max documents to return, 1-50, default 20531- `document_type` (optional): Filter by type (lab_report, procedure_report, imaging, prescription, doctor_note, other)532533Returns:534- `documents`: List of health documents sorted by received date (newest first)535- `total_count`: Total documents for this user536- `by_type`: Breakdown of document counts by type537538Each document includes:539- `document_id`: Document ID540- `document_type`: Type (lab_report, procedure_report, imaging, etc.)541- `document_subtype`: Subtype (cac, dexa, colonoscopy, mammogram, etc.)542- `status`: Processing status (pending, processing, needs_review, extracted, archived)543- `filename`: Original filename544- `received_at`: When received (ISO format)545- `ai_summary`: AI-generated summary of the document546- `lab_name`: Lab name (for lab reports)547- `test_date`: Test/procedure date548549**Note**: This goes beyond `list_test_results` which only shows lab reports. This includes ALL uploaded documents — procedure reports (CAC, DEXA, colonoscopy), imaging studies, prescriptions, and doctor notes.550551## Interpreting Scores552553### Healthspan Score (0-100)554| Range | Status | Meaning |555|-------|--------|---------|556| 80-100 | OPTIMAL | Excellent health optimization |557| 65-79 | GOOD | Above average, minor improvements possible |558| 50-64 | SUBOPTIMAL | Room for improvement |559| <50 | NEEDS_ATTENTION | Several areas need focus |560561### Axis Scores562Each health dimension is scored independently:563- **Metabolic**: Blood sugar, insulin, lipids564- **Cardiovascular**: Heart health markers565- **Inflammatory**: hs-CRP, homocysteine566- **Hormonal**: Thyroid, testosterone, cortisol567- **Nutritional**: Vitamins, minerals568- **Liver/Kidney**: Organ function markers569570**Important**: It's possible to have a high overall score with one low axis score (or vice versa). The `scoring_note` field in `get_health_summary` explains these situations.571572### Biomarker Status Labels573| Label | Meaning |574|-------|---------|575| OPTIMAL | Within evidence-based ideal range |576| NORMAL | Within lab reference range |577| SUBOPTIMAL | Room for improvement |578| HIGH/LOW | Outside lab reference range |579| CRITICAL | Needs immediate medical attention |580581## Common Workflows582583### "How am I doing?"5841. Call `list_available_data` to see what's tracked5852. Call `get_health_summary` for the overall picture5863. Highlight top concerns and recent trends5874. If `scoring_note` is present, explain the score discordance588589### "Tell me about my vitamin D"5901. Call `query_biomarker?biomarker=vitamin d`5912. Present history, current status, and trend5923. Note optimal range vs current value593594### "What's my CRP?" / "How's my inflammation?"5951. Call `query_biomarker?biomarker=crp` (returns as "CRP" or "hs-CRP" depending on lab)5962. Present the value and trend5973. Explain what CRP measures (inflammation marker) - note if it's high-sensitivity598599### "How's my sleep/HRV?"6001. Call `get_wearable_stats?metric=sleep` or `?metric=hrv`6012. Show recent trends and averages6023. Compare to healthy baselines603604### "What should I focus on?"6051. Call `get_opportunities?limit=5`6062. Present top opportunities ranked by healthspan impact6073. Explain what each biomarker does and why optimizing it matters608609### "How old am I biologically?"6101. Call `get_biological_age`6112. If available, compare biological vs chronological age6123. Explain what age acceleration means6134. If not available, explain what tests are needed614615### "What supplements am I taking?"6161. Call `list_supplements?active_only=true`6172. List active supplements with dosages (use `dose_text` field)6183. Note duration on each supplement619620### "What workouts have I done?"6211. Call `get_activities?days=30`6222. Summarize total activity (duration, calories, distance)6233. List recent workouts with key metrics624625### "What should I do today?"6261. Call `get_today_actions?timezone=America/New_York` (use user's timezone if known)6272. Group actions by scheduled window (morning, afternoon, evening)6283. Show completion progress6294. Highlight uncompleted actions630631### "What should I focus on?" / "What are my health priorities?"6321. Call `get_protocol`6332. Present top priorities with current values and targets6343. Explain why each is prioritized6354. List key recommendations6365. Note protocol phase and days remaining637638### "What tests should I do next?" / "Am I due for any blood work?"6391. Call `get_upcoming_tests`6402. Highlight overdue tests first (urgent)6413. List tests due soon with timeframes6424. Mention AI-recommended tests for optimization6435. Note which biomarkers each panel covers644645### "Show me my lab reports" / "When was my last blood test?"6461. Call `list_test_results?limit=10`6472. Show reports with dates, lab names, and biomarker counts6483. Note the source (PDF upload, email, manual entry)649650### "Give me a full overview of all my biomarkers"6511. Call `list_all_biomarkers`6522. Group by category (metabolic, cardiovascular, etc.)6533. Highlight any critical or high/low values6544. Show status counts (e.g., "12 optimal, 3 suboptimal, 1 high")6555. Note trends (increasing/decreasing/stable)656657### "Show me my strength training" / "How's my lifting?"6581. Call `get_strength_training?days=30`6592. Summarize workout frequency and total volume6603. Show muscle group distribution (highlight any imbalances)6614. List recent workouts with top exercises662663### "Show me my rowing results" / "How are my erg sessions?"6641. Call `get_erg_results?days=30`6652. Summarize total sessions, distance, and average pace6663. Show per-machine breakdown if using multiple ergs6674. Highlight pace trends (improving/declining)668669### "What medications am I on?" / "What prescriptions do I take?"6701. Call `list_medications?active_only=true`6712. List active medications with dosage and frequency6723. Note route and reason if available6734. To see historical medications too, use `active_only=false`674675### "What are my medical conditions?" / "Do I have any allergies?"6761. Call `get_medical_profile`6772. Present conditions with status and severity6783. List allergies with severity levels6794. Show family history (relevant for risk assessment)6805. Note active health goals681682### "Show me all my health documents" / "What procedure reports do I have?"6831. Call `list_health_documents?limit=20`6842. Show type breakdown (lab reports, procedures, imaging, etc.)6853. List documents with AI summaries6864. Filter by type if user asks about specific category: `document_type=procedure_report`687688### "What should I read about?" / "Any health articles for me?"6891. Call `get_content_recommendations?limit=5`6902. Present articles with titles and relevance reasons6913. Explain why each is relevant to the user's biomarker profile692693## Example API Call694695```javascript696// Using web_fetch697web_fetch({698 url: "https://api.gevety.com/api/v1/mcp/tools/get_health_summary",699 method: "GET",700 headers: {701 "Authorization": "Bearer $GEVETY_API_TOKEN",702 "Content-Type": "application/json"703 }704})705```706707## Important Guidelines7087091. **Never diagnose** - Present data clearly but always suggest consulting healthcare providers for medical decisions7102. **Trends matter more than single values** - A slightly elevated reading improving over time is better than a normal reading that's declining7113. **Note data freshness** - Lab results may be weeks/months old; wearable data is typically daily7124. **Context is key** - Ask about supplements, medications, or lifestyle changes that might explain trends7135. **Privacy first** - Health data is sensitive; don't share or reference specific values outside this conversation714715## Error Handling716717| Error Code | Meaning | Action |718|------------|---------|--------|719| 401 | Invalid or expired token | User needs to regenerate token at gevety.com/settings |720| 404 + `did_you_mean` | Biomarker not found | Suggest alternatives from the response |721| 404 | No data found | User may not have uploaded labs yet |722| 429 | Rate limited | Wait a moment and retry |723724## Getting a Token725726Users can generate their API token at:727**https://gevety.com/settings** → Developer API → Generate Token728729The token format is `gvt_` followed by random characters.730731## Checking for Updates732733On first use each session, optionally check for updates:734735```736GET https://api.gevety.com/api/v1/mcp/tools/status737```738739No authentication required. If the request fails or times out, skip the check and proceed normally.740741Response (when successful):742```json743{744 "clawdbot_skill": { "latest": "1.8.0", "update_command": "clawdhub update gevety" },745 "announcement": "New feature available!"746}747```748749**If `clawdbot_skill.latest` > 1.8.0** (this skill's version), tell the user:750> "A Gevety skill update is available. Run: `clawdhub update gevety`"751752**If `announcement` is present**, mention it once per session.753754**If the status check fails**, don't mention it - just proceed with the user's request.755756To manually update:757```bash758clawdhub update gevety759```