Vital MCP server. Read wearables and lab health data — sleep, activity, workouts, timeseries, lab tests and orders.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"vital": {
"url": "https://vital.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
vital_list_users | read | List users List every Vital user in your team with pagination, so you can browse or reconcile the people whose wearable and lab data you manage. |
vital_get_user | read | Get user Fetch a single Vital user by their Vital user_id, returning that user's profile and connection metadata. |
vital_resolve_user | read | Resolve user Look up a Vital user by the stable client_user_id you assigned, mapping your own identifier back to Vital's user_id. |
vital_get_user_connected_providers | read | Get user connected providers List the wearables and data sources a user has connected (Oura, Fitbit, Apple Health and more), so you know which data streams are available. |
vital_get_user_latest_info | read | Get user latest info Get the most recent device and app info reported for a user, useful for confirming a connection is live and actively syncing. |
vital_list_providers | read | List providers List every provider (wearable or data source) Vital supports, to see the full set a user could connect. |
vital_get_sleep | read | Get sleep Retrieve sleep summaries for a user over a date range, including stages, duration and efficiency across their connected providers. |
vital_get_activity | read | Get activity Retrieve daily activity summaries for a user over a date range, covering steps, active and basal calories, and overall movement. |
vital_get_workouts | read | Get workouts Retrieve workout summaries for a user over a date range, with per-session sport, duration, distance and intensity. |
vital_get_body | read | Get body Retrieve body summaries for a user over a date range, such as body weight and body-fat percentage measurements. |
vital_get_meal | read | Get meal Retrieve logged meal summaries for a user over a date range, including nutrition and macronutrient breakdowns. |
vital_get_menstrual_cycle | read | Get menstrual cycle Retrieve menstrual-cycle summaries for a user over a date range, including cycle phases and related metrics. |
vital_get_profile | read | Get profile Get a user's profile summary of static attributes such as height, optionally filtered to a single provider. |
vital_get_timeseries | read | Get timeseries Fetch fine-grained timeseries data points for a user and resource — heart rate, HRV, glucose, blood pressure, steps and 15+ more — over a date range. |
vital_list_lab_tests | read | List lab tests List the lab tests configured for your team, filtering by name, status or lab and sorting by price or date. |
vital_get_lab_test | read | Get lab test Get the full definition of a single lab test by its id, including its markers and metadata. |
vital_list_orders | read | List orders List lab-test orders with filters for user, status, date range and free-text search, returned paginated. |
vital_get_order | read | Get order Get a single lab-test order by its id, including its current status and fulfillment details. |
vital_get_order_results | read | Get order results Get the finalized lab-test results for an order, including biomarker values and their reference ranges. |
vital_create_user | write | Create user Create a new Vital user record from your own client_user_id (additive), returning the Vital user_id to key future data against. |
vital_create_link_token | write | Create link token Create a short-lived Link token so a user can connect a wearable or provider, optionally pre-selecting or restricting which providers appear. |
vital_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
vital_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED Vital tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Pro | $9/mo · $90/yr | Unlimited |
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.