vital
Read wearables and lab health data — sleep, activity, workouts, timeseries, lab tests and orders.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin vital_get_user_connected_providers
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"vital": {
"url": "https://vital.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://vital.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (21)
🟢vital_list_users(offset, limit)
List all Vital users in your team, paginated. Vital API: GET /v2/user.
Eingabe-Schema
{
"type": "object",
"properties": {
"offset": {
"description": "Pagination offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Max users to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_user(user_id)
Get a single Vital user by their Vital user_id. Vital API: GET /v2/user/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_resolve_user(client_user_id)
Look up a Vital user by your own client_user_id (the stable id you assigned). Vital API: GET /v2/user/resolve/{client_user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"client_user_id": {
"type": "string",
"description": "Your own stable id for the user."
}
},
"required": [
"client_user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_user_connected_providers(user_id)
List the wearables/data sources (providers) a user has connected. Vital API: GET /v2/user/providers/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_user_latest_info(user_id)
Get the latest device/app info reported for a user. Vital API: GET /v2/user/{user_id}/info/latest.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_list_providers
List all providers (wearables/data sources) Vital supports. Vital API: GET /v2/providers.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_sleep(user_id, start_date, end_date, provider)
Get sleep summaries for a user over a date range. Vital API: GET /v2/summary/sleep/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date yyyy-mm-dd (inclusive, required)."
},
"end_date": {
"description": "End date yyyy-mm-dd (inclusive). Defaults to today upstream.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"provider": {
"description": "Filter to a single provider slug (e.g. oura, fitbit).",
"type": "string"
}
},
"required": [
"user_id",
"start_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_activity(user_id, start_date, end_date, provider)
Get activity summaries for a user over a date range. Vital API: GET /v2/summary/activity/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date yyyy-mm-dd (inclusive, required)."
},
"end_date": {
"description": "End date yyyy-mm-dd (inclusive). Defaults to today upstream.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"provider": {
"description": "Filter to a single provider slug (e.g. oura, fitbit).",
"type": "string"
}
},
"required": [
"user_id",
"start_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_workouts(user_id, start_date, end_date, provider)
Get workouts summaries for a user over a date range. Vital API: GET /v2/summary/workouts/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date yyyy-mm-dd (inclusive, required)."
},
"end_date": {
"description": "End date yyyy-mm-dd (inclusive). Defaults to today upstream.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"provider": {
"description": "Filter to a single provider slug (e.g. oura, fitbit).",
"type": "string"
}
},
"required": [
"user_id",
"start_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_body(user_id, start_date, end_date, provider)
Get body summaries for a user over a date range. Vital API: GET /v2/summary/body/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date yyyy-mm-dd (inclusive, required)."
},
"end_date": {
"description": "End date yyyy-mm-dd (inclusive). Defaults to today upstream.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"provider": {
"description": "Filter to a single provider slug (e.g. oura, fitbit).",
"type": "string"
}
},
"required": [
"user_id",
"start_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_meal(user_id, start_date, end_date, provider)
Get meal summaries for a user over a date range. Vital API: GET /v2/summary/meal/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date yyyy-mm-dd (inclusive, required)."
},
"end_date": {
"description": "End date yyyy-mm-dd (inclusive). Defaults to today upstream.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"provider": {
"description": "Filter to a single provider slug (e.g. oura, fitbit).",
"type": "string"
}
},
"required": [
"user_id",
"start_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_menstrual_cycle(user_id, start_date, end_date, provider)
Get menstrual cycle summaries for a user over a date range. Vital API: GET /v2/summary/menstrual_cycle/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date yyyy-mm-dd (inclusive, required)."
},
"end_date": {
"description": "End date yyyy-mm-dd (inclusive). Defaults to today upstream.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"provider": {
"description": "Filter to a single provider slug (e.g. oura, fitbit).",
"type": "string"
}
},
"required": [
"user_id",
"start_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_profile(user_id, provider)
Get a user's profile summary (height, and other static attributes). Vital API: GET /v2/summary/profile/{user_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
},
"provider": {
"description": "Filter to a single provider slug (e.g. oura, fitbit).",
"type": "string"
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_timeseries(user_id, resource, start_date, end_date, provider)
Get timeseries data points for a user and resource over a date range. Supported resources: heartrate, hrv, glucose, blood_pressure, blood_oxygen, steps, respiratory_rate, body_weight, body_fat, distance, water, vo2_max, stress_level, mindfulness_minutes, calories_active, calories_basal, floors_climbed, caffeine, cholesterol. Vital API: GET /v2/timeseries/{user_id}/{resource}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id (UUID)."
},
"resource": {
"type": "string",
"enum": [
"heartrate",
"hrv",
"glucose",
"blood_pressure",
"blood_oxygen",
"steps",
"respiratory_rate",
"body_weight",
"body_fat",
"distance",
"water",
"vo2_max",
"stress_level",
"mindfulness_minutes",
"calories_active",
"calories_basal",
"floors_climbed",
"caffeine",
"cholesterol"
],
"description": "Timeseries resource to fetch."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date yyyy-mm-dd (inclusive, required)."
},
"end_date": {
"description": "End date yyyy-mm-dd (inclusive). Defaults to today upstream.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"provider": {
"description": "Filter to a single provider slug (e.g. oura, fitbit).",
"type": "string"
}
},
"required": [
"user_id",
"resource",
"start_date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_list_lab_tests(name, status, lab_slug, order_key, order_direction)
List the lab tests available/configured for your team. Vital API: GET /v3/lab_tests.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"description": "Filter by lab test name.",
"type": "string"
},
"status": {
"description": "Filter by lab test status (e.g. active).",
"type": "string"
},
"lab_slug": {
"description": "Filter by lab slug.",
"type": "string"
},
"order_key": {
"description": "Sort key.",
"type": "string",
"enum": [
"price",
"created_at",
"updated_at"
]
},
"order_direction": {
"description": "Sort direction.",
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_lab_test(lab_test_id)
Get a single lab test by id. Vital API: GET /v3/lab_tests/{lab_test_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"lab_test_id": {
"type": "string",
"description": "The lab test id (UUID)."
}
},
"required": [
"lab_test_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_list_orders(page, size, user_id, status, start_date, ...)
List lab-test orders with filters, paginated. Vital API: GET /v3/orders.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number (1-based).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"user_id": {
"description": "Filter to a single Vital user id (UUID).",
"type": "string"
},
"status": {
"description": "Filter by order status.",
"type": "string"
},
"start_date": {
"description": "Filter by created-at start (ISO datetime).",
"type": "string"
},
"end_date": {
"description": "Filter by created-at end (ISO datetime).",
"type": "string"
},
"search_input": {
"description": "Free-text search.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_order(order_id)
Get a single lab-test order by id. Vital API: GET /v3/order/{order_id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "The order id (UUID)."
}
},
"required": [
"order_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢vital_get_order_results(order_id)
Get the lab-test results for an order. Vital API: GET /v3/order/{order_id}/result.
Eingabe-Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "The order id (UUID)."
}
},
"required": [
"order_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴vital_create_user(client_user_id, fallback_time_zone, fallback_birth_date, ingestion_start, ingestion_end)
Creates a Vital user record (additive). Returns the Vital user_id. Vital API: POST /v2/user.
Eingabe-Schema
{
"type": "object",
"properties": {
"client_user_id": {
"type": "string",
"description": "Your own stable id for the user (required)."
},
"fallback_time_zone": {
"description": "IANA time zone used if the provider doesn't report one.",
"type": "string"
},
"fallback_birth_date": {
"description": "Fallback birth date yyyy-mm-dd.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"ingestion_start": {
"description": "Earliest date to ingest data from (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"ingestion_end": {
"description": "Latest date to ingest data to (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"client_user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴vital_create_link_token(user_id, provider, redirect_url, filter_on_providers)
Creates a short-lived Link token to connect a user's wearable/provider (no health data is modified). Vital API: POST /v2/link/token.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The Vital user id to create the link token for (required)."
},
"provider": {
"description": "Pre-select a single provider slug to connect.",
"type": "string"
},
"redirect_url": {
"description": "URL to redirect to after the connection flow.",
"type": "string"
},
"filter_on_providers": {
"description": "Restrict the connectable providers to this list of slugs.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"user_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Empfohlene Prompts
vital_get_uservital_get_uservital_list_usersvital_list_usersvital_list_usersvital_get_userCommunity
Nachweis