{"id":"b473e541-f59c-479b-80aa-9f9e32d519f9","entityType":"agent","slug":"clawhub-moclippa-gevety","name":"Gevety MCP","canonicalUrl":"https://www.xpersona.co/agent/clawhub-moclippa-gevety","canonicalPath":"/agent/clawhub-moclippa-gevety","generatedAt":"2026-10-09T16:57:38.278Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming test... Skill: Gevety MCP Owner: moclippa Summary: Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming test... Tags: latest:1.6.0 Version history: v1.6.0 | 2026-02-27T06:24:17.015Z | user gevety-mcp v0.5.1 Released: 2026-02-27 New Tools (3) - list_test_results — List uploaded lab reports with dates, lab source, biomarker coun","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn7bbfvwa616w3864q9ry34r917zxvvz:gevety","sourceUrl":"https://clawhub.ai/moclippa/gevety","homepage":"https://clawhub.ai/moclippa/gevety","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/moclippa/gevety","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming test..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":1788,"packageName":null,"latestVersion":"1.6.0","tractionLabel":"1.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T20:15:01.858Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T20:15:01.858Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T20:15:01.858Z","lastVerifiedAt":null,"highlights":[{"version":"1.6.0","createdAt":"2026-02-27T06:24:17.015Z","changelog":"gevety-mcp v0.5.1 Released: 2026-02-27 New Tools (3) - list_test_results — List uploaded lab reports with dates, lab source, biomarker count, and filename. Supports date range filtering and pagination (1-50). - list_all_biomarkers — Get every tracked biomarker in one call with current value, unit, two-tier status classification (optimal/suboptimal/high/low/critical), category, last test date, and trend direction. Filterable by category and status. Includes counts_by_status summary. - get_content_recommendations — Personalized health content based on biomarker profile. Evidence-gated (CRAAP quality score >= 4.0). Returns title, summary, relevance reason, and quality score. Filterable by category. Summary ┌────────────────┬────────┬───────┐ │ Metric │ Before │ After │ ├────────────────┼────────┼───────┤ │ Total tools │ 11 │ 14 │ ├────────────────┼────────┼───────┤ │ PyPI version │ 0.4.2 │ 0.5.1 │ ├────────────────┼────────┼───────┤ │ Clawdbot skill │ 1.5.0 │ 1.6.0 │ └────────────────┴────────┴───────┘ Backend Changes - backend/app/api/v1/mcp/endpoints/reports.py — new endpoint - backend/app/api/v1/mcp/endpoints/content.py — new endpoint - backend/app/api/v1/mcp/endpoints/biomarkers.py — added list_all_biomarkers - backend/app/api/v1/mcp/router.py — registered 2 new routers - backend/app/api/v1/mcp/cache.py — 3 new cache entries (5min/5min/15min) - backend/app/core/cache_config.py — 3 new TTL + key constants MCP Server Changes - client.py — 6 new Pydantic models, 3 new client methods - server.py — 3 tool definitions, 3 handlers, 3 formatters (14 tools total)","fileCount":2,"zipByteSize":7866},{"version":"1.5.0","createdAt":"2026-01-28T06:24:25.342Z","changelog":"Version 1.5.0 - Updated biomarker name handling section - Fasting/non-fasting variants now preserved (no forced assumptions) - CRP vs hs-CRP are distinct (different LOINC codes) - Updated CRP example query","fileCount":2,"zipByteSize":6936},{"version":"1.4.0","createdAt":"2026-01-27T13:29:50.840Z","changelog":"Update Clawdbot skill to v1.4.0 - Add standardized biomarker names documentation (hs-CRP, Fasting Glucose, Fasting Insulin, Immature Granulocytes) - Document scoring_note field in get_health_summary for explaining score discordance - Update list_supplements to document dose_text with multi-component support - Update get_protocol to document current_value, unit, measured_at fields - Add workflow examples for CRP/inflammation queries - Update status check version to 1.4.0 - Version Bump","fileCount":null,"zipByteSize":null},{"version":"0.1.1","createdAt":"2026-01-27T13:28:33.488Z","changelog":"Update Clawdbot skill to v1.4.0 - Add standardized biomarker names documentation (hs-CRP, Fasting Glucose, Fasting Insulin, Immature Granulocytes) - Document scoring_note field in get_health_summary for explaining score discordance - Update list_supplements to document dose_text with multi-component support - Update get_protocol to document current_value, unit, measured_at fields - Add workflow examples for CRP/inflammation queries - Update status check version to 1.4.0","fileCount":null,"zipByteSize":null},{"version":"0.1.0","createdAt":"2026-01-27T08:55:28.799Z","changelog":"- Updated skill.","fileCount":null,"zipByteSize":null}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn7bbfvwa616w3864q9ry34r917zxvvz:gevety","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T16:57:38.277Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-moclippa-gevety/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: Gevety MCP\n\nOwner: moclippa\n\nSummary: Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming test...\n\nTags: latest:1.6.0\n\nVersion history:\n\nv1.6.0 | 2026-02-27T06:24:17.015Z | user\n\ngevety-mcp v0.5.1\n                                                                                                                                                                                                                                                    \n  Released: 2026-02-27                                                                                                                                                                                                                            \n                                                                                                                                                                                                                                                    \n  New Tools (3)\n\n  - list_test_results — List uploaded lab reports with dates, lab source, biomarker count, and filename. Supports date range filtering and pagination (1-50).\n  - list_all_biomarkers — Get every tracked biomarker in one call with current value, unit, two-tier status classification (optimal/suboptimal/high/low/critical), category, last test date, and trend direction. Filterable by category and status.\n   Includes counts_by_status summary.\n  - get_content_recommendations — Personalized health content based on biomarker profile. Evidence-gated (CRAAP quality score >= 4.0). Returns title, summary, relevance reason, and quality score. Filterable by category.\n\n  Summary\n\n  ┌────────────────┬────────┬───────┐\n  │     Metric     │ Before │ After │\n  ├────────────────┼────────┼───────┤\n  │ Total tools    │ 11     │ 14    │\n  ├────────────────┼────────┼───────┤\n  │ PyPI version   │ 0.4.2  │ 0.5.1 │\n  ├────────────────┼────────┼───────┤\n  │ Clawdbot skill │ 1.5.0  │ 1.6.0 │\n  └────────────────┴────────┴───────┘\n\n  Backend Changes\n\n  - backend/app/api/v1/mcp/endpoints/reports.py — new endpoint\n  - backend/app/api/v1/mcp/endpoints/content.py — new endpoint\n  - backend/app/api/v1/mcp/endpoints/biomarkers.py — added list_all_biomarkers\n  - backend/app/api/v1/mcp/router.py — registered 2 new routers\n  - backend/app/api/v1/mcp/cache.py — 3 new cache entries (5min/5min/15min)\n  - backend/app/core/cache_config.py — 3 new TTL + key constants\n\n  MCP Server Changes\n\n  - client.py — 6 new Pydantic models, 3 new client methods\n  - server.py — 3 tool definitions, 3 handlers, 3 formatters (14 tools total)\n\nv1.5.0 | 2026-01-28T06:24:25.342Z | user\n\nVersion 1.5.0\n\n- Updated biomarker name handling section\n- Fasting/non-fasting variants now preserved (no forced assumptions)\n- CRP vs hs-CRP are distinct (different LOINC codes)\n- Updated CRP example query\n\nv1.4.0 | 2026-01-27T13:29:50.840Z | user\n\nUpdate Clawdbot skill to v1.4.0\n- Add standardized biomarker names documentation (hs-CRP, Fasting Glucose, Fasting Insulin, Immature Granulocytes)\n- Document scoring_note field in get_health_summary for explaining score discordance\n- Update list_supplements to document dose_text with multi-component support\n- Update get_protocol to document current_value, unit, measured_at fields\n- Add workflow examples for CRP/inflammation queries\n- Update status check version to 1.4.0\n- Version Bump\n\nv0.1.1 | 2026-01-27T13:28:33.488Z | user\n\nUpdate Clawdbot skill to v1.4.0\n- Add standardized biomarker names documentation (hs-CRP, Fasting Glucose, Fasting Insulin, Immature Granulocytes)\n- Document scoring_note field in get_health_summary for explaining score discordance\n- Update list_supplements to document dose_text with multi-component support\n- Update get_protocol to document current_value, unit, measured_at fields\n- Add workflow examples for CRP/inflammation queries\n- Update status check version to 1.4.0\n\nv0.1.0 | 2026-01-27T08:55:28.799Z | auto\n\n- Updated skill.\n\nArchive index:\n\nArchive v1.6.0: 2 files, 7866 bytes\n\nFiles: SKILL.md (20037b), _meta.json (125b)\n\nFile v1.6.0:SKILL.md\n\n---\nname: gevety\nversion: 1.6.0\ndescription: Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming tests, lab reports, and health content\nhomepage: https://gevety.com\nuser-invocable: true\ncommand: gevety\nmetadata:\n  clawdbot:\n    primaryEnv: GEVETY_API_TOKEN\n    requires:\n      env:\n        - GEVETY_API_TOKEN\n---\n\n# Gevety Health Assistant\n\nYou 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.\n\n## First-Time Setup\n\nIf this is the user's first time using Gevety, guide them through setup:\n\n1. **Get a Gevety account**: Sign up at https://gevety.com if they don't have one\n2. **Upload blood tests**: They need to upload lab reports to have biomarker data\n3. **Generate an API token**:\n   - Go to https://gevety.com/settings\n   - Click \"Developer API\" tab\n   - Click \"Generate Token\"\n   - Copy the token (starts with `gvt_`)\n4. **Configure Clawdbot**: Add the token to `~/.clawdbot/clawdbot.json`:\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"gevety\": {\n        \"apiKey\": \"gvt_your_token_here\"\n      }\n    }\n  }\n}\n```\n\nAfter adding the token, they'll need to restart Clawdbot for changes to take effect.\n\n## Authentication\n\nAll requests require Bearer authentication. Use the `GEVETY_API_TOKEN` environment variable:\n\n```\nAuthorization: Bearer $GEVETY_API_TOKEN\n```\n\nBase URL: `https://api.gevety.com`\n\n## Biomarker Name Handling\n\nThe API preserves biomarker specificity. Fasting and non-fasting variants are distinct:\n\n| Input Name | API Returns | Notes |\n|------------|-------------|-------|\n| CRP, C-Reactive Protein | **CRP** or **C-Reactive Protein** | Standard CRP (LOINC 1988-5) |\n| hsCRP, hscrp, Cardio CRP | **hs-CRP** | High-sensitivity CRP (LOINC 30522-7) |\n| Glucose, Blood Glucose | **Glucose** | Generic/unspecified glucose |\n| Fasting Glucose, FBS, FBG | **Glucose Fasting** | Fasting-specific glucose |\n| Insulin, Serum Insulin | **Insulin** | Generic/unspecified insulin |\n| Fasting Insulin | **Insulin Fasting** | Fasting-specific insulin |\n| IG | **Immature Granulocytes** | Expanded for clarity |\n| Vitamin D, 25-OH Vitamin D | **Vitamin D** | |\n| LDL, LDL Cholesterol | **LDL Cholesterol** | |\n\n**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.\n\n## Available Endpoints\n\n### 1. List Available Data (Start Here)\n\n**Always call this first** to discover what health data exists.\n\n```\nGET /api/v1/mcp/tools/list_available_data\n```\n\nReturns:\n- `biomarkers`: List of tracked biomarkers with test counts and latest dates\n- `wearables`: Connected devices and available metrics\n- `insights`: Whether healthspan score is calculated, axis scores available\n- `data_coverage`: Percentage of recommended biomarkers tracked (0-100)\n\n### 2. Get Health Summary\n\nOverview of the user's health status.\n\n```\nGET /api/v1/mcp/tools/get_health_summary\n```\n\nReturns:\n- `overall_score`: Healthspan score (0-100)\n- `overall_status`: OPTIMAL, GOOD, SUBOPTIMAL, or NEEDS_ATTENTION\n- `trend`: IMPROVING, STABLE, or DECLINING\n- `axis_scores`: Scores for each health dimension (metabolic, cardiovascular, etc.)\n- `top_concerns`: Biomarkers needing attention\n- `scoring_note`: Explanation when overall score differs from axis scores (e.g., \"Overall healthspan is high, but Inflammation axis needs attention\")\n\n**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.\n\n### 3. Query Biomarker\n\nGet detailed history for a specific biomarker.\n\n```\nGET /api/v1/mcp/tools/query_biomarker?biomarker={name}&days={days}\n```\n\nParameters:\n- `biomarker` (required): Name or alias (e.g., \"vitamin d\", \"ldl\", \"hba1c\", \"crp\")\n- `days` (optional): History period, 1-730, default 365\n\nReturns:\n- `canonical_name`: Standardized biomarker name (see table above)\n- `history`: Array of test results with dates, values, units, flags\n- `latest`: Most recent result\n- `trend`: Direction (IMPROVING, STABLE, DECLINING) and percent change\n- `optimal_range`: Evidence-based optimal values\n\n**Tip**: If biomarker not found, the response includes `did_you_mean` suggestions.\n\n### 4. Get Wearable Stats\n\nDaily metrics from connected wearables (Garmin, Oura, Whoop, etc.).\n\n```\nGET /api/v1/mcp/tools/get_wearable_stats?days={days}&metric={metric}\n```\n\nParameters:\n- `days` (optional): History period, 1-90, default 30\n- `metric` (optional): Focus on specific metric (steps, hrv, sleep, etc.)\n\nReturns:\n- `connected_sources`: List of connected wearable platforms\n- `daily_metrics`: Per-day data (steps, resting HR, HRV, sleep, recovery)\n- `summaries`: Aggregated stats with averages, min, max, trends\n\n### 5. Get Opportunities\n\nGet ranked health improvement opportunities with estimated healthspan impact.\n\n```\nGET /api/v1/mcp/tools/get_opportunities?limit={limit}&axis={axis}\n```\n\nParameters:\n- `limit` (optional): Max opportunities to return, 1-50, default 10\n- `axis` (optional): Filter by health axis (metabolic, cardiovascular, etc.)\n\nReturns:\n- `opportunities`: Ranked list of improvement opportunities\n- `total_opportunity_score`: Total healthspan points available\n- `total_years_estimate`: Estimated years of healthy life if all optimized\n- `healthspan_score`: Current healthspan score\n\nEach opportunity includes:\n- `biomarker`: Standardized biomarker name\n- `current_value` / `optimal_value`: Where you are vs target\n- `opportunity_score`: Healthspan points gained if optimized\n- `years_estimate`: Estimated healthy years gained\n- `priority`: Rank (1 = highest impact)\n\n### 6. Get Biological Age\n\nCalculate biological age using validated algorithms (PhenoAge, Light BioAge).\n\n```\nGET /api/v1/mcp/tools/get_biological_age\n```\n\nReturns:\n- `result`: Biological age calculation (if available)\n  - `biological_age`: Calculated biological age\n  - `chronological_age`: Calendar age\n  - `age_acceleration`: Difference (positive = aging faster)\n  - `algorithm`: Which algorithm was used\n  - `biomarkers_used`: Biomarkers that contributed\n  - `interpretation`: What the result means\n- `available`: Whether calculation was possible\n- `reason`: Why not available (if applicable)\n- `upgrade_available`: Can unlock better algorithm with more data\n- `upgrade_message`: What additional tests would help\n\n### 7. List Supplements\n\nGet the user's supplement stack.\n\n```\nGET /api/v1/mcp/tools/list_supplements?active_only={true|false}\n```\n\nParameters:\n- `active_only` (optional): Only show currently active supplements, default false\n\nReturns:\n- `supplements`: List of supplements with dosage, frequency, duration\n- `active_count`: Number of currently active supplements\n- `total_count`: Total supplements tracked\n\nEach supplement includes:\n- `name`: Supplement name\n- `dose_text`: Formatted dosage (e.g., \"1000 mg daily\", \"200mg EPA + 100mg DHA daily\")\n- `is_active`: Currently taking\n- `duration_days`: How long on this supplement\n\n**Note**: For multi-component supplements (like fish oil), `dose_text` shows all components (e.g., \"200mg EPA + 100mg DHA daily\").\n\n### 8. Get Activities\n\nGet workout/activity history from connected wearables.\n\n```\nGET /api/v1/mcp/tools/get_activities?days={days}&activity_type={type}\n```\n\nParameters:\n- `days` (optional): History period, 1-90, default 30\n- `activity_type` (optional): Filter by type (running, cycling, strength, etc.)\n\nReturns:\n- `activities`: List of workouts with metrics\n- `total_count`: Number of activities\n- `total_duration_minutes`: Total workout time\n- `total_distance_km`: Total distance covered\n- `total_calories`: Total calories burned\n\nEach activity includes:\n- `activity_type`: Type (running, cycling, swimming, etc.)\n- `name`: Activity name\n- `start_time`: When it started\n- `duration_minutes`: How long\n- `distance_km`: Distance (if applicable)\n- `calories`: Calories burned\n- `avg_hr` / `max_hr`: Heart rate data\n- `source`: Where the data came from (garmin, strava, etc.)\n\n### 9. Get Today's Actions\n\nGet the user's action checklist for today.\n\n```\nGET /api/v1/mcp/tools/get_today_actions?timezone={timezone}\n```\n\nParameters:\n- `timezone` (optional): IANA timezone (e.g., \"America/New_York\"), default UTC\n\nReturns:\n- `effective_date`: The date being queried in user's timezone\n- `timezone`: Timezone used for calculation\n- `window_start` / `window_end`: Day boundaries (ISO datetime)\n- `actions`: List of today's actions\n- `completed_count` / `total_count`: Completion stats\n- `completion_pct`: Numeric completion percentage (0-100)\n- `last_updated_at`: Cache staleness indicator\n\nEach action includes:\n- `action_id`: Stable ID for deep-linking\n- `title`: Action title\n- `action_type`: Type (supplement, habit, diet, medication, test, procedure)\n- `completed`: Whether completed today\n- `scheduled_window`: Time window (morning, afternoon, evening, any)\n- `dose_text`: Dosage info if applicable (e.g., \"1000 mg daily\")\n\n### 10. Get Protocol\n\nGet the user's 90-day health protocol with top priorities.\n\n```\nGET /api/v1/mcp/tools/get_protocol\n```\n\nReturns:\n- `protocol_id`: Stable protocol ID\n- `phase`: Current phase (week1, month1, month3)\n- `days_remaining`: Days until protocol expires\n- `generated_at` / `last_updated_at`: Timestamps\n- `top_priorities`: Top 5 health priorities with reasoning\n- `key_recommendations`: Diet and lifestyle action items\n- `total_actions`: Total actions in protocol\n\nEach priority includes:\n- `priority_id`: Stable ID (same as rank)\n- `rank`: Priority rank (1 = highest)\n- `biomarker`: Standardized biomarker name\n- `status`: Current status (critical, concerning, suboptimal, optimal)\n- `target`: Target value with unit\n- `current_value` / `unit`: Current measured value\n- `measured_at`: When this biomarker was last measured\n- `why_prioritized`: Explanation for why this is prioritized\n\n**Note**: If no protocol exists, returns a helpful error with suggestion to generate one at gevety.com/protocol.\n\n### 11. Get Upcoming Tests\n\nGet tests that are due or recommended based on biomarker history and AI recommendations.\n\n```\nGET /api/v1/mcp/tools/get_upcoming_tests\n```\n\nReturns:\n- `tests`: List of upcoming tests sorted by urgency\n- `overdue_count`: Number of overdue tests\n- `due_soon_count`: Tests due within 30 days\n- `recommended_count`: AI-recommended tests\n- `total_count`: Total number of upcoming tests\n\nEach test includes:\n- `test_id`: Stable ID for deep-linking (format: `panel_{id}` or `recommended_{id}`)\n- `name`: Test or panel name\n- `test_type`: Type (panel, biomarker, recommended)\n- `urgency`: Priority level (overdue, due_soon, recommended)\n- `due_reason`: Why this test is needed (e.g., \"Due 2 weeks ago\", \"AI recommendation\")\n- `last_tested_at`: When this was last tested (if applicable)\n- `biomarkers`: List of biomarkers included (for panels)\n\n### 12. List Test Results\n\nGet a list of uploaded lab reports with dates, source, and biomarker count.\n\n```\nGET /api/v1/mcp/tools/list_test_results?limit={limit}&start_date={date}&end_date={date}\n```\n\nParameters:\n- `limit` (optional): Max reports to return, 1-50, default 10\n- `start_date` (optional): Filter from date (YYYY-MM-DD)\n- `end_date` (optional): Filter to date (YYYY-MM-DD)\n\nReturns:\n- `reports`: List of lab reports\n- `total_reports`: Total number of reports\n\nEach report includes:\n- `report_id`: Stable report ID\n- `report_date`: Date of the lab test\n- `source`: How it was uploaded (pdf, email, manual)\n- `lab_name`: Laboratory name (if available)\n- `biomarker_count`: Number of biomarkers in this report\n- `filename`: Original filename (if uploaded as PDF)\n\n### 13. List All Biomarkers\n\nGet ALL tracked biomarkers with current value, status classification, and trend in one call.\n\n```\nGET /api/v1/mcp/tools/list_all_biomarkers?category={category}&status={status}\n```\n\nParameters:\n- `category` (optional): Filter by category (e.g., \"metabolic\", \"cardiovascular\")\n- `status` (optional): Filter by status (optimal, suboptimal, high, low, critical_high, critical_low)\n\nReturns:\n- `biomarkers`: List of all biomarkers with latest values\n- `total_count`: Total number of biomarkers\n- `counts_by_status`: Breakdown by status (optimal, suboptimal, high, low, critical_high, critical_low, unknown)\n\nEach biomarker includes:\n- `name`: Standardized biomarker name\n- `category`: Health category (metabolic, cardiovascular, etc.)\n- `latest_value`: Most recent test value\n- `unit`: Measurement unit\n- `status`: Classification (optimal, suboptimal, high, low, critical_high, critical_low, unknown)\n- `last_test_date`: When this was last tested\n- `trend_direction`: Trend since previous test (increasing, decreasing, stable)\n\n### 14. Get Content Recommendations\n\nGet personalized health content recommendations based on biomarker profile.\n\n```\nGET /api/v1/mcp/tools/get_content_recommendations?limit={limit}&category={category}\n```\n\nParameters:\n- `limit` (optional): Max recommendations, 1-20, default 5\n- `category` (optional): Filter by content category\n\nReturns:\n- `recommendations`: List of recommended articles\n- `total_available`: Total recommendations available\n\nEach recommendation includes:\n- `content_id`: Stable content ID\n- `title`: Article title\n- `summary`: Brief summary\n- `category`: Content category\n- `relevance_reason`: Why this is relevant to the user\n- `quality_score`: Evidence quality score (only high-quality content is shown)\n- `url`: Link to the article\n\n## Interpreting Scores\n\n### Healthspan Score (0-100)\n| Range | Status | Meaning |\n|-------|--------|---------|\n| 80-100 | OPTIMAL | Excellent health optimization |\n| 65-79 | GOOD | Above average, minor improvements possible |\n| 50-64 | SUBOPTIMAL | Room for improvement |\n| <50 | NEEDS_ATTENTION | Several areas need focus |\n\n### Axis Scores\nEach health dimension is scored independently:\n- **Metabolic**: Blood sugar, insulin, lipids\n- **Cardiovascular**: Heart health markers\n- **Inflammatory**: hs-CRP, homocysteine\n- **Hormonal**: Thyroid, testosterone, cortisol\n- **Nutritional**: Vitamins, minerals\n- **Liver/Kidney**: Organ function markers\n\n**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.\n\n### Biomarker Status Labels\n| Label | Meaning |\n|-------|---------|\n| OPTIMAL | Within evidence-based ideal range |\n| NORMAL | Within lab reference range |\n| SUBOPTIMAL | Room for improvement |\n| HIGH/LOW | Outside lab reference range |\n| CRITICAL | Needs immediate medical attention |\n\n## Common Workflows\n\n### \"How am I doing?\"\n1. Call `list_available_data` to see what's tracked\n2. Call `get_health_summary` for the overall picture\n3. Highlight top concerns and recent trends\n4. If `scoring_note` is present, explain the score discordance\n\n### \"Tell me about my vitamin D\"\n1. Call `query_biomarker?biomarker=vitamin d`\n2. Present history, current status, and trend\n3. Note optimal range vs current value\n\n### \"What's my CRP?\" / \"How's my inflammation?\"\n1. Call `query_biomarker?biomarker=crp` (returns as \"CRP\" or \"hs-CRP\" depending on lab)\n2. Present the value and trend\n3. Explain what CRP measures (inflammation marker) - note if it's high-sensitivity\n\n### \"How's my sleep/HRV?\"\n1. Call `get_wearable_stats?metric=sleep` or `?metric=hrv`\n2. Show recent trends and averages\n3. Compare to healthy baselines\n\n### \"What should I focus on?\"\n1. Call `get_opportunities?limit=5`\n2. Present top opportunities ranked by healthspan impact\n3. Explain what each biomarker does and why optimizing it matters\n\n### \"How old am I biologically?\"\n1. Call `get_biological_age`\n2. If available, compare biological vs chronological age\n3. Explain what age acceleration means\n4. If not available, explain what tests are needed\n\n### \"What supplements am I taking?\"\n1. Call `list_supplements?active_only=true`\n2. List active supplements with dosages (use `dose_text` field)\n3. Note duration on each supplement\n\n### \"What workouts have I done?\"\n1. Call `get_activities?days=30`\n2. Summarize total activity (duration, calories, distance)\n3. List recent workouts with key metrics\n\n### \"What should I do today?\"\n1. Call `get_today_actions?timezone=America/New_York` (use user's timezone if known)\n2. Group actions by scheduled window (morning, afternoon, evening)\n3. Show completion progress\n4. Highlight uncompleted actions\n\n### \"What should I focus on?\" / \"What are my health priorities?\"\n1. Call `get_protocol`\n2. Present top priorities with current values and targets\n3. Explain why each is prioritized\n4. List key recommendations\n5. Note protocol phase and days remaining\n\n### \"What tests should I do next?\" / \"Am I due for any blood work?\"\n1. Call `get_upcoming_tests`\n2. Highlight overdue tests first (urgent)\n3. List tests due soon with timeframes\n4. Mention AI-recommended tests for optimization\n5. Note which biomarkers each panel covers\n\n### \"Show me my lab reports\" / \"When was my last blood test?\"\n1. Call `list_test_results?limit=10`\n2. Show reports with dates, lab names, and biomarker counts\n3. Note the source (PDF upload, email, manual entry)\n\n### \"Give me a full overview of all my biomarkers\"\n1. Call `list_all_biomarkers`\n2. Group by category (metabolic, cardiovascular, etc.)\n3. Highlight any critical or high/low values\n4. Show status counts (e.g., \"12 optimal, 3 suboptimal, 1 high\")\n5. Note trends (increasing/decreasing/stable)\n\n### \"What should I read about?\" / \"Any health articles for me?\"\n1. Call `get_content_recommendations?limit=5`\n2. Present articles with titles and relevance reasons\n3. Explain why each is relevant to the user's biomarker profile\n\n## Example API Call\n\n```javascript\n// Using web_fetch\nweb_fetch({\n  url: \"https://api.gevety.com/api/v1/mcp/tools/get_health_summary\",\n  method: \"GET\",\n  headers: {\n    \"Authorization\": \"Bearer $GEVETY_API_TOKEN\",\n    \"Content-Type\": \"application/json\"\n  }\n})\n```\n\n## Important Guidelines\n\n1. **Never diagnose** - Present data clearly but always suggest consulting healthcare providers for medical decisions\n2. **Trends matter more than single values** - A slightly elevated reading improving over time is better than a normal reading that's declining\n3. **Note data freshness** - Lab results may be weeks/months old; wearable data is typically daily\n4. **Context is key** - Ask about supplements, medications, or lifestyle changes that might explain trends\n5. **Privacy first** - Health data is sensitive; don't share or reference specific values outside this conversation\n\n## Error Handling\n\n| Error Code | Meaning | Action |\n|------------|---------|--------|\n| 401 | Invalid or expired token | User needs to regenerate token at gevety.com/settings |\n| 404 + `did_you_mean` | Biomarker not found | Suggest alternatives from the response |\n| 404 | No data found | User may not have uploaded labs yet |\n| 429 | Rate limited | Wait a moment and retry |\n\n## Getting a Token\n\nUsers can generate their API token at:\n**https://gevety.com/settings** → Developer API → Generate Token\n\nThe token format is `gvt_` followed by random characters.\n\n## Checking for Updates\n\nOn first use each session, optionally check for updates:\n\n```\nGET https://api.gevety.com/api/v1/mcp/tools/status\n```\n\nNo authentication required. If the request fails or times out, skip the check and proceed normally.\n\nResponse (when successful):\n```json\n{\n  \"clawdbot_skill\": { \"latest\": \"1.6.0\", \"update_command\": \"clawdhub update gevety\" },\n  \"announcement\": \"New feature available!\"\n}\n```\n\n**If `clawdbot_skill.latest` > 1.6.0** (this skill's version), tell the user:\n> \"A Gevety skill update is available. Run: `clawdhub update gevety`\"\n\n**If `announcement` is present**, mention it once per session.\n\n**If the status check fails**, don't mention it - just proceed with the user's request.\n\nTo manually update:\n```bash\nclawdhub update gevety\n```\n\nFile v1.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn7bbfvwa616w3864q9ry34r917zxvvz\",\n  \"slug\": \"gevety\",\n  \"version\": \"1.6.0\",\n  \"publishedAt\": 1772173457015\n}\n\nArchive v1.5.0: 2 files, 6936 bytes\n\nFiles: SKILL.md (16693b), _meta.json (125b)\n\nFile v1.5.0:SKILL.md\n\n---\nname: gevety\nversion: 1.5.0\ndescription: Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, and upcoming tests\nhomepage: https://gevety.com\nuser-invocable: true\ncommand: gevety\nmetadata:\n  clawdbot:\n    primaryEnv: GEVETY_API_TOKEN\n    requires:\n      env:\n        - GEVETY_API_TOKEN\n---\n\n# Gevety Health Assistant\n\nYou 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.\n\n## First-Time Setup\n\nIf this is the user's first time using Gevety, guide them through setup:\n\n1. **Get a Gevety account**: Sign up at https://gevety.com if they don't have one\n2. **Upload blood tests**: They need to upload lab reports to have biomarker data\n3. **Generate an API token**:\n   - Go to https://gevety.com/settings\n   - Click \"Developer API\" tab\n   - Click \"Generate Token\"\n   - Copy the token (starts with `gvt_`)\n4. **Configure Clawdbot**: Add the token to `~/.clawdbot/clawdbot.json`:\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"gevety\": {\n        \"apiKey\": \"gvt_your_token_here\"\n      }\n    }\n  }\n}\n```\n\nAfter adding the token, they'll need to restart Clawdbot for changes to take effect.\n\n## Authentication\n\nAll requests require Bearer authentication. Use the `GEVETY_API_TOKEN` environment variable:\n\n```\nAuthorization: Bearer $GEVETY_API_TOKEN\n```\n\nBase URL: `https://api.gevety.com`\n\n## Biomarker Name Handling\n\nThe API preserves biomarker specificity. Fasting and non-fasting variants are distinct:\n\n| Input Name | API Returns | Notes |\n|------------|-------------|-------|\n| CRP, C-Reactive Protein | **CRP** or **C-Reactive Protein** | Standard CRP (LOINC 1988-5) |\n| hsCRP, hscrp, Cardio CRP | **hs-CRP** | High-sensitivity CRP (LOINC 30522-7) |\n| Glucose, Blood Glucose | **Glucose** | Generic/unspecified glucose |\n| Fasting Glucose, FBS, FBG | **Glucose Fasting** | Fasting-specific glucose |\n| Insulin, Serum Insulin | **Insulin** | Generic/unspecified insulin |\n| Fasting Insulin | **Insulin Fasting** | Fasting-specific insulin |\n| IG | **Immature Granulocytes** | Expanded for clarity |\n| Vitamin D, 25-OH Vitamin D | **Vitamin D** | |\n| LDL, LDL Cholesterol | **LDL Cholesterol** | |\n\n**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.\n\n## Available Endpoints\n\n### 1. List Available Data (Start Here)\n\n**Always call this first** to discover what health data exists.\n\n```\nGET /api/v1/mcp/tools/list_available_data\n```\n\nReturns:\n- `biomarkers`: List of tracked biomarkers with test counts and latest dates\n- `wearables`: Connected devices and available metrics\n- `insights`: Whether healthspan score is calculated, axis scores available\n- `data_coverage`: Percentage of recommended biomarkers tracked (0-100)\n\n### 2. Get Health Summary\n\nOverview of the user's health status.\n\n```\nGET /api/v1/mcp/tools/get_health_summary\n```\n\nReturns:\n- `overall_score`: Healthspan score (0-100)\n- `overall_status`: OPTIMAL, GOOD, SUBOPTIMAL, or NEEDS_ATTENTION\n- `trend`: IMPROVING, STABLE, or DECLINING\n- `axis_scores`: Scores for each health dimension (metabolic, cardiovascular, etc.)\n- `top_concerns`: Biomarkers needing attention\n- `scoring_note`: Explanation when overall score differs from axis scores (e.g., \"Overall healthspan is high, but Inflammation axis needs attention\")\n\n**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.\n\n### 3. Query Biomarker\n\nGet detailed history for a specific biomarker.\n\n```\nGET /api/v1/mcp/tools/query_biomarker?biomarker={name}&days={days}\n```\n\nParameters:\n- `biomarker` (required): Name or alias (e.g., \"vitamin d\", \"ldl\", \"hba1c\", \"crp\")\n- `days` (optional): History period, 1-730, default 365\n\nReturns:\n- `canonical_name`: Standardized biomarker name (see table above)\n- `history`: Array of test results with dates, values, units, flags\n- `latest`: Most recent result\n- `trend`: Direction (IMPROVING, STABLE, DECLINING) and percent change\n- `optimal_range`: Evidence-based optimal values\n\n**Tip**: If biomarker not found, the response includes `did_you_mean` suggestions.\n\n### 4. Get Wearable Stats\n\nDaily metrics from connected wearables (Garmin, Oura, Whoop, etc.).\n\n```\nGET /api/v1/mcp/tools/get_wearable_stats?days={days}&metric={metric}\n```\n\nParameters:\n- `days` (optional): History period, 1-90, default 30\n- `metric` (optional): Focus on specific metric (steps, hrv, sleep, etc.)\n\nReturns:\n- `connected_sources`: List of connected wearable platforms\n- `daily_metrics`: Per-day data (steps, resting HR, HRV, sleep, recovery)\n- `summaries`: Aggregated stats with averages, min, max, trends\n\n### 5. Get Opportunities\n\nGet ranked health improvement opportunities with estimated healthspan impact.\n\n```\nGET /api/v1/mcp/tools/get_opportunities?limit={limit}&axis={axis}\n```\n\nParameters:\n- `limit` (optional): Max opportunities to return, 1-50, default 10\n- `axis` (optional): Filter by health axis (metabolic, cardiovascular, etc.)\n\nReturns:\n- `opportunities`: Ranked list of improvement opportunities\n- `total_opportunity_score`: Total healthspan points available\n- `total_years_estimate`: Estimated years of healthy life if all optimized\n- `healthspan_score`: Current healthspan score\n\nEach opportunity includes:\n- `biomarker`: Standardized biomarker name\n- `current_value` / `optimal_value`: Where you are vs target\n- `opportunity_score`: Healthspan points gained if optimized\n- `years_estimate`: Estimated healthy years gained\n- `priority`: Rank (1 = highest impact)\n\n### 6. Get Biological Age\n\nCalculate biological age using validated algorithms (PhenoAge, Light BioAge).\n\n```\nGET /api/v1/mcp/tools/get_biological_age\n```\n\nReturns:\n- `result`: Biological age calculation (if available)\n  - `biological_age`: Calculated biological age\n  - `chronological_age`: Calendar age\n  - `age_acceleration`: Difference (positive = aging faster)\n  - `algorithm`: Which algorithm was used\n  - `biomarkers_used`: Biomarkers that contributed\n  - `interpretation`: What the result means\n- `available`: Whether calculation was possible\n- `reason`: Why not available (if applicable)\n- `upgrade_available`: Can unlock better algorithm with more data\n- `upgrade_message`: What additional tests would help\n\n### 7. List Supplements\n\nGet the user's supplement stack.\n\n```\nGET /api/v1/mcp/tools/list_supplements?active_only={true|false}\n```\n\nParameters:\n- `active_only` (optional): Only show currently active supplements, default false\n\nReturns:\n- `supplements`: List of supplements with dosage, frequency, duration\n- `active_count`: Number of currently active supplements\n- `total_count`: Total supplements tracked\n\nEach supplement includes:\n- `name`: Supplement name\n- `dose_text`: Formatted dosage (e.g., \"1000 mg daily\", \"200mg EPA + 100mg DHA daily\")\n- `is_active`: Currently taking\n- `duration_days`: How long on this supplement\n\n**Note**: For multi-component supplements (like fish oil), `dose_text` shows all components (e.g., \"200mg EPA + 100mg DHA daily\").\n\n### 8. Get Activities\n\nGet workout/activity history from connected wearables.\n\n```\nGET /api/v1/mcp/tools/get_activities?days={days}&activity_type={type}\n```\n\nParameters:\n- `days` (optional): History period, 1-90, default 30\n- `activity_type` (optional): Filter by type (running, cycling, strength, etc.)\n\nReturns:\n- `activities`: List of workouts with metrics\n- `total_count`: Number of activities\n- `total_duration_minutes`: Total workout time\n- `total_distance_km`: Total distance covered\n- `total_calories`: Total calories burned\n\nEach activity includes:\n- `activity_type`: Type (running, cycling, swimming, etc.)\n- `name`: Activity name\n- `start_time`: When it started\n- `duration_minutes`: How long\n- `distance_km`: Distance (if applicable)\n- `calories`: Calories burned\n- `avg_hr` / `max_hr`: Heart rate data\n- `source`: Where the data came from (garmin, strava, etc.)\n\n### 9. Get Today's Actions\n\nGet the user's action checklist for today.\n\n```\nGET /api/v1/mcp/tools/get_today_actions?timezone={timezone}\n```\n\nParameters:\n- `timezone` (optional): IANA timezone (e.g., \"America/New_York\"), default UTC\n\nReturns:\n- `effective_date`: The date being queried in user's timezone\n- `timezone`: Timezone used for calculation\n- `window_start` / `window_end`: Day boundaries (ISO datetime)\n- `actions`: List of today's actions\n- `completed_count` / `total_count`: Completion stats\n- `completion_pct`: Numeric completion percentage (0-100)\n- `last_updated_at`: Cache staleness indicator\n\nEach action includes:\n- `action_id`: Stable ID for deep-linking\n- `title`: Action title\n- `action_type`: Type (supplement, habit, diet, medication, test, procedure)\n- `completed`: Whether completed today\n- `scheduled_window`: Time window (morning, afternoon, evening, any)\n- `dose_text`: Dosage info if applicable (e.g., \"1000 mg daily\")\n\n### 10. Get Protocol\n\nGet the user's 90-day health protocol with top priorities.\n\n```\nGET /api/v1/mcp/tools/get_protocol\n```\n\nReturns:\n- `protocol_id`: Stable protocol ID\n- `phase`: Current phase (week1, month1, month3)\n- `days_remaining`: Days until protocol expires\n- `generated_at` / `last_updated_at`: Timestamps\n- `top_priorities`: Top 5 health priorities with reasoning\n- `key_recommendations`: Diet and lifestyle action items\n- `total_actions`: Total actions in protocol\n\nEach priority includes:\n- `priority_id`: Stable ID (same as rank)\n- `rank`: Priority rank (1 = highest)\n- `biomarker`: Standardized biomarker name\n- `status`: Current status (critical, concerning, suboptimal, optimal)\n- `target`: Target value with unit\n- `current_value` / `unit`: Current measured value\n- `measured_at`: When this biomarker was last measured\n- `why_prioritized`: Explanation for why this is prioritized\n\n**Note**: If no protocol exists, returns a helpful error with suggestion to generate one at gevety.com/protocol.\n\n### 11. Get Upcoming Tests\n\nGet tests that are due or recommended based on biomarker history and AI recommendations.\n\n```\nGET /api/v1/mcp/tools/get_upcoming_tests\n```\n\nReturns:\n- `tests`: List of upcoming tests sorted by urgency\n- `overdue_count`: Number of overdue tests\n- `due_soon_count`: Tests due within 30 days\n- `recommended_count`: AI-recommended tests\n- `total_count`: Total number of upcoming tests\n\nEach test includes:\n- `test_id`: Stable ID for deep-linking (format: `panel_{id}` or `recommended_{id}`)\n- `name`: Test or panel name\n- `test_type`: Type (panel, biomarker, recommended)\n- `urgency`: Priority level (overdue, due_soon, recommended)\n- `due_reason`: Why this test is needed (e.g., \"Due 2 weeks ago\", \"AI recommendation\")\n- `last_tested_at`: When this was last tested (if applicable)\n- `biomarkers`: List of biomarkers included (for panels)\n\n## Interpreting Scores\n\n### Healthspan Score (0-100)\n| Range | Status | Meaning |\n|-------|--------|---------|\n| 80-100 | OPTIMAL | Excellent health optimization |\n| 65-79 | GOOD | Above average, minor improvements possible |\n| 50-64 | SUBOPTIMAL | Room for improvement |\n| <50 | NEEDS_ATTENTION | Several areas need focus |\n\n### Axis Scores\nEach health dimension is scored independently:\n- **Metabolic**: Blood sugar, insulin, lipids\n- **Cardiovascular**: Heart health markers\n- **Inflammatory**: hs-CRP, homocysteine\n- **Hormonal**: Thyroid, testosterone, cortisol\n- **Nutritional**: Vitamins, minerals\n- **Liver/Kidney**: Organ function markers\n\n**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.\n\n### Biomarker Status Labels\n| Label | Meaning |\n|-------|---------|\n| OPTIMAL | Within evidence-based ideal range |\n| NORMAL | Within lab reference range |\n| SUBOPTIMAL | Room for improvement |\n| HIGH/LOW | Outside lab reference range |\n| CRITICAL | Needs immediate medical attention |\n\n## Common Workflows\n\n### \"How am I doing?\"\n1. Call `list_available_data` to see what's tracked\n2. Call `get_health_summary` for the overall picture\n3. Highlight top concerns and recent trends\n4. If `scoring_note` is present, explain the score discordance\n\n### \"Tell me about my vitamin D\"\n1. Call `query_biomarker?biomarker=vitamin d`\n2. Present history, current status, and trend\n3. Note optimal range vs current value\n\n### \"What's my CRP?\" / \"How's my inflammation?\"\n1. Call `query_biomarker?biomarker=crp` (returns as \"CRP\" or \"hs-CRP\" depending on lab)\n2. Present the value and trend\n3. Explain what CRP measures (inflammation marker) - note if it's high-sensitivity\n\n### \"How's my sleep/HRV?\"\n1. Call `get_wearable_stats?metric=sleep` or `?metric=hrv`\n2. Show recent trends and averages\n3. Compare to healthy baselines\n\n### \"What should I focus on?\"\n1. Call `get_opportunities?limit=5`\n2. Present top opportunities ranked by healthspan impact\n3. Explain what each biomarker does and why optimizing it matters\n\n### \"How old am I biologically?\"\n1. Call `get_biological_age`\n2. If available, compare biological vs chronological age\n3. Explain what age acceleration means\n4. If not available, explain what tests are needed\n\n### \"What supplements am I taking?\"\n1. Call `list_supplements?active_only=true`\n2. List active supplements with dosages (use `dose_text` field)\n3. Note duration on each supplement\n\n### \"What workouts have I done?\"\n1. Call `get_activities?days=30`\n2. Summarize total activity (duration, calories, distance)\n3. List recent workouts with key metrics\n\n### \"What should I do today?\"\n1. Call `get_today_actions?timezone=America/New_York` (use user's timezone if known)\n2. Group actions by scheduled window (morning, afternoon, evening)\n3. Show completion progress\n4. Highlight uncompleted actions\n\n### \"What should I focus on?\" / \"What are my health priorities?\"\n1. Call `get_protocol`\n2. Present top priorities with current values and targets\n3. Explain why each is prioritized\n4. List key recommendations\n5. Note protocol phase and days remaining\n\n### \"What tests should I do next?\" / \"Am I due for any blood work?\"\n1. Call `get_upcoming_tests`\n2. Highlight overdue tests first (urgent)\n3. List tests due soon with timeframes\n4. Mention AI-recommended tests for optimization\n5. Note which biomarkers each panel covers\n\n## Example API Call\n\n```javascript\n// Using web_fetch\nweb_fetch({\n  url: \"https://api.gevety.com/api/v1/mcp/tools/get_health_summary\",\n  method: \"GET\",\n  headers: {\n    \"Authorization\": \"Bearer $GEVETY_API_TOKEN\",\n    \"Content-Type\": \"application/json\"\n  }\n})\n```\n\n## Important Guidelines\n\n1. **Never diagnose** - Present data clearly but always suggest consulting healthcare providers for medical decisions\n2. **Trends matter more than single values** - A slightly elevated reading improving over time is better than a normal reading that's declining\n3. **Note data freshness** - Lab results may be weeks/months old; wearable data is typically daily\n4. **Context is key** - Ask about supplements, medications, or lifestyle changes that might explain trends\n5. **Privacy first** - Health data is sensitive; don't share or reference specific values outside this conversation\n\n## Error Handling\n\n| Error Code | Meaning | Action |\n|------------|---------|--------|\n| 401 | Invalid or expired token | User needs to regenerate token at gevety.com/settings |\n| 404 + `did_you_mean` | Biomarker not found | Suggest alternatives from the response |\n| 404 | No data found | User may not have uploaded labs yet |\n| 429 | Rate limited | Wait a moment and retry |\n\n## Getting a Token\n\nUsers can generate their API token at:\n**https://gevety.com/settings** → Developer API → Generate Token\n\nThe token format is `gvt_` followed by random characters.\n\n## Checking for Updates\n\nOn first use each session, optionally check for updates:\n\n```\nGET https://api.gevety.com/api/v1/mcp/tools/status\n```\n\nNo authentication required. If the request fails or times out, skip the check and proceed normally.\n\nResponse (when successful):\n```json\n{\n  \"clawdbot_skill\": { \"latest\": \"1.4.0\", \"update_command\": \"clawdhub update gevety\" },\n  \"announcement\": \"New feature available!\"\n}\n```\n\n**If `clawdbot_skill.latest` > 1.4.0** (this skill's version), tell the user:\n> \"A Gevety skill update is available. Run: `clawdhub update gevety`\"\n\n**If `announcement` is present**, mention it once per session.\n\n**If the status check fails**, don't mention it - just proceed with the user's request.\n\nTo manually update:\n```bash\nclawdhub update gevety\n```\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn7bbfvwa616w3864q9ry34r917zxvvz\",\n  \"slug\": \"gevety\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1769581465342\n}","readmeExcerpt":"Skill: Gevety MCP Owner: moclippa Summary: Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming test... Tags: latest:1.6.0 Version history: v1.6.0 | 2026-02-27T06:24:17.015Z | user gevety-mcp v0.5.1 Released: 2026-02-27 New Tools (3) - list_test_results — List uploaded lab reports with dates, lab source, biomarker coun","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"skills\": {\n    \"entries\": {\n      \"gevety\": {\n        \"apiKey\": \"gvt_your_token_here\"\n      }\n    }\n  }\n}"},{"language":"text","snippet":"Authorization: Bearer $GEVETY_API_TOKEN"},{"language":"text","snippet":"GET /api/v1/mcp/tools/list_available_data"},{"language":"text","snippet":"GET /api/v1/mcp/tools/get_health_summary"},{"language":"text","snippet":"GET /api/v1/mcp/tools/query_biomarker?biomarker={name}&days={days}"},{"language":"text","snippet":"GET /api/v1/mcp/tools/get_wearable_stats?days={days}&metric={metric}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: gevety\nversion: 1.6.0\ndescription: Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming tests, lab reports, and health content\nhomepage: https://gevety.com\nuser-invocable: true\ncommand: gevety\nmetadata:\n  clawdbot:\n    primaryEnv: GEVETY_API_TOKEN\n    requires:\n      env:\n        - GEVETY_API_TOKEN\n---\n\n# Gevety Health Assistant\n\nYou 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.\n\n## First-Time Setup\n\nIf this is the user's first time using Gevety, guide them through setup:\n\n1. **Get a Gevety account**: Sign up at https://gevety.com if they don't have one\n2. **Upload blood tests**: They need to upload lab reports to have biomarker data\n3. **Generate an API token**:\n   - Go to https://gevety.com/settings\n   - Click \"Developer API\" tab\n   - Click \"Generate Token\"\n   - Copy the token (starts with `gvt_`)\n4. **Configure Clawdbot**: Add the token to `~/.clawdbot/clawdbot.json`:\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"gevety\": {\n        \"apiKey\": \"gvt_your_token_here\"\n      }\n    }\n  }\n}\n```\n\nAfter adding the token, they'll need to restart Clawdbot for changes to take effect.\n\n## Authentication\n\nAll requests require Bearer authentication. Use the `GEVETY_API_TOKEN` environment variable:\n\n```\nAuthorization: Bearer $GEVETY_API_TOKEN\n```\n\nBase URL: `https://api.gevety.com`\n\n## Biomarker Name Handling\n\nThe API preserves biomarker specificity. Fasting and non-fasting variants are distinct:\n\n| Input Name | API Returns | Notes |\n|------------|-------------|-------|\n| CRP, C-Reactive Protein | **CRP** or **C-Reactive Protein** | Standard CRP (LOINC 1988-5) |\n| hsCRP, hscrp, Cardio CRP | **hs-CRP** | High-sensitivity CRP (LOINC 30522-7) |\n| Glucose, Blood Glucose | **Glucose** | Generic/unspecified glucose |\n| Fasting Glucose, FBS, FBG | **Glucose Fasting** | Fasting-specific glucose |\n| Insulin, Serum Insulin | **Insulin** | Generic/unspecified insulin |\n| Fasting Insulin | **Insulin Fasting** | Fasting-specific insulin |\n| IG | **Immature Granulocytes** | Expanded for clarity |\n| Vitamin D, 25-OH Vitamin D | **Vitamin D** | |\n| LDL, LDL Cholesterol | **LDL Cholesterol** | |\n\n**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.\n\n## Available Endpoints\n\n### 1. List Available Data (Start Here)\n\n**Always call this first** to discover what health data exists.\n\n```\nGET /api/v1/mcp/tools/list_available_data\n```\n\nReturns:\n- `biomarkers`: List of tracked biomarkers with test counts and latest dates\n- `wearables`: Connected devices and available metrics\n- `insights`: Whether healthspan score is calculated, axis scores available\n- `data_coverage`: Percentage of recommended "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7bbfvwa616w3864q9ry34r917zxvvz\",\n  \"slug\": \"gevety\",\n  \"version\": \"1.6.0\",\n  \"publishedAt\": 1772173457015\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming test... Skill: Gevety MCP Owner: moclippa Summary: Access your Gevety health data - biomarkers, healthspan scores, biological age, supplements, activities, daily actions, 90-day health protocol, upcoming test... Tags: latest:1.6.0 Version history: v1.6.0 | 2026-02-27T06:24:17.015Z | user gevety-mcp v0.5.1 Released: 2026-02-27 New Tools (3) - list_test_results — List uploaded lab reports with dates, lab source, biomarker coun","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1103,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T16:57:38.278Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}