vital
Read wearables and lab health data — sleep, activity, workouts, timeseries, lab tests and orders.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWvital_get_user_connected_providers에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"vital": {
"url": "https://vital.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://vital.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (21)
🟢vital_list_users(offset, limit)
List all Vital users in your team, paginated. Vital API: GET /v2/user.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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#"
}권장 프롬프트
vital_get_uservital_get_uservital_list_usersvital_list_usersvital_list_usersvital_get_user커뮤니티
증거