Wellness Project
Server Details
63 tools for Apple Health, Fitbit, Oura & Health Connect data in Claude, ChatGPT, Grok & Mistral.
- Status
- Unhealthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- turnnoblindeye/wellness-project-mcp
- GitHub Stars
- 1
- Server Listing
- Wellness Project MCP
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
- Changed
log_body_metrics4 fields changed- changed
Input schema / properties / bone_mass_lb / descriptionPrevious value: -"Bone mass in pounds. Optional."New value: +"Bone mass in POUNDS, always. Convert from kg if needed (kg × 2.2046). Optional." - changed
Input schema / properties / fat_mass_lb / descriptionPrevious value: -"Fat mass in pounds. Optional — calculate from weight and body fat % if not explicitly stated."New value: +"Fat mass in POUNDS, always. Convert from kg if needed (kg × 2.2046). Optional — calculate from weight and body fat % if not explicitly stated." - changed
Input schema / properties / lean_mass_lb / descriptionPrevious value: -"Lean (non-fat) mass in pounds. Optional — calculate from weight and body fat % if not explicitly stated."New value: +"Lean (non-fat) mass in POUNDS, always. Convert from kg if needed (kg × 2.2046). Optional — calculate from weight and body fat % if not explicitly stated." - changed
Input schema / properties / weight_lb / descriptionPrevious value: -"Body weight in pounds. Optional."New value: +"Body weight in POUNDS, always — regardless of the user’s display unit. If the user gave kg, convert to pounds before calling (kg × 2.2046). Optional."
- Changed
log_run1 field changed- changed
Input schema / properties / distance_mi / descriptionPrevious value: -"Distance in miles. Required."New value: +"Distance in MILES, always — regardless of the user’s display unit. Convert from km if needed (km ÷ 1.609344). Required."
- Changed
log_workout2 fields changed- changed
Input schema / properties / exercises / items / properties / sets / items / properties / band_label_lb / descriptionPrevious value: -"Band label weight in pounds (e.g. 80 for an 80lb band). Use when is_band is true. If omitted, weight_lb is used as the band label."New value: +"Band label weight in POUNDS, always (e.g. 80 for an 80lb band). Use when is_band is true. If omitted, weight_lb is used as the band label." - changed
Input schema / properties / exercises / items / properties / sets / items / properties / weight_lb / descriptionPrevious value: -"Load in pounds. For band exercises, this is the band label weight (e.g. 80 for an 80lb band). Optional — omit for bodyweight exercises."New value: +"Load in POUNDS, always — regardless of the user’s display unit. Convert from kg if needed (kg × 2.2046). For band exercises, this is the band label weight (e.g. 80 for an 80lb band). Optional — omit for bodyweight exercises."
- Changed
update_workout4 fields changed- changed
Input schema / properties / add_exercises / items / properties / sets / items / properties / band_label_lb / descriptionPrevious value: -"Band label weight in pounds. Optional."New value: +"Band label weight in POUNDS, always. Optional." - changed
Input schema / properties / add_exercises / items / properties / sets / items / properties / weight_lb / descriptionPrevious value: -"Load in pounds. Optional."New value: +"Load in POUNDS, always — regardless of the user’s display unit. Convert from kg if needed (kg × 2.2046). Optional." - changed
Input schema / properties / set_updates / items / properties / band_label_lb / descriptionPrevious value: -"Band label weight in pounds. Defaults to weight_lb if omitted. Optional."New value: +"Band label weight in POUNDS, always. Defaults to weight_lb if omitted. Optional." - changed
Input schema / properties / set_updates / items / properties / weight_lb / descriptionPrevious value: -"Corrected weight in pounds. Optional."New value: +"Corrected weight in POUNDS, always — regardless of the user’s display unit. Convert from kg if needed (kg × 2.2046). Optional."
2 tool updates
- Changed
log_workout4 fields changed- changed
Input schema / properties / exercises / items / properties / sets / items / properties / rpe / descriptionPrevious value: -"Per-set Rate of Perceived Exertion (1-10, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — include only if the user specifies effort for individual sets."New value: +"Per-set Rate of Perceived Exertion (1-10, half steps like 7.5 allowed, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — include only if the user specifies effort for individual sets." - changed
Input schema / properties / exercises / items / properties / sets / items / properties / rpe / typePrevious value: -"integer"New value: +"number" - changed
Input schema / properties / rpe / descriptionPrevious value: -"Session-level Rate of Perceived Exertion (1-10, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — infer from user comments about overall difficulty, or omit."New value: +"Session-level Rate of Perceived Exertion (1-10, half steps like 7.5 allowed, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — infer from user comments about overall difficulty, or omit." - changed
Input schema / properties / rpe / typePrevious value: -"integer"New value: +"number"
- Changed
update_workout6 fields changed- changed
Input schema / properties / add_exercises / items / properties / sets / items / properties / rpe / descriptionPrevious value: -"Per-set Rate of Perceived Exertion (1-10, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — include only if the user specifies effort for individual sets."New value: +"Per-set Rate of Perceived Exertion (1-10, half steps like 7.5 allowed, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — include only if the user specifies effort for individual sets." - changed
Input schema / properties / add_exercises / items / properties / sets / items / properties / rpe / typePrevious value: -"integer"New value: +"number" - changed
Input schema / properties / rpe / descriptionPrevious value: -"Session-level Rate of Perceived Exertion (1-10, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — infer from user comments about overall difficulty, or omit."New value: +"Session-level Rate of Perceived Exertion (1-10, half steps like 7.5 allowed, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — infer from user comments about overall difficulty, or omit." - changed
Input schema / properties / rpe / typePrevious value: -"integer"New value: +"number" - changed
Input schema / properties / set_updates / items / properties / rpe / descriptionPrevious value: -"Per-set Rate of Perceived Exertion (1-10, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — include only if the user specifies effort for individual sets."New value: +"Per-set Rate of Perceived Exertion (1-10, half steps like 7.5 allowed, where 5=moderate, 7=hard, 9=one rep left, 10=failure). Optional — include only if the user specifies effort for individual sets." - changed
Input schema / properties / set_updates / items / properties / rpe / typePrevious value: -"integer"New value: +"number"
59 tool updates
- First observed
cancel_rest_day - First observed
delete_cycle - First observed
delete_injury - First observed
delete_meal - First observed
delete_recovery_session - First observed
delete_run - First observed
delete_wellbeing - First observed
delete_workout - First observed
get_app_guide_section - First observed
get_exercise_history - First observed
get_workout - First observed
list_blog_posts - First observed
list_body_metrics - First observed
list_cycle - First observed
list_exercises - First observed
list_injuries - First observed
list_lab_markers - First observed
list_lab_results - First observed
list_meals - First observed
list_recovery_strategies - First observed
list_rest_days - First observed
list_runs - First observed
list_sleep - First observed
list_supplements - First observed
list_wearable_data - First observed
list_wellbeing - First observed
list_workouts - First observed
log_body_metrics - First observed
log_cycle - First observed
log_injury - First observed
log_lab_results - First observed
log_meal - First observed
log_recovery_session - First observed
log_rest_day - First observed
log_run - First observed
log_sleep - First observed
log_supplement_taken - First observed
log_wearable - First observed
log_wellbeing - First observed
log_workout - First observed
manage_recovery_strategy - First observed
manage_supplement - First observed
show_body_weight - First observed
show_exercise_progression - First observed
show_fit_score_breakdown - First observed
show_recovery - First observed
show_runs - First observed
show_week_fit_score - First observed
show_week_macros - First observed
show_week_sleep - First observed
show_week_steps - First observed
show_week_workouts - First observed
show_workout - First observed
update_cycle - First observed
update_injury - First observed
update_meal - First observed
update_recovery_session - First observed
update_wellbeing - First observed
update_workout
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
- SomviaOAuthapp.somvia
Private Apple Health metrics and workout detail for ChatGPT, Claude, and any MCP client.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Related MCP Servers
- AlicenseAqualityBmaintenanceApple HealthKit → PostgreSQL sync + MCP server for Claude Code, Cursor, and Ollama. Open-source iOS app with reliable background sync (HKObserverQuery). 11 tools covering health summary, sleep, HRV trends, workouts, daily snapshots, metric stats, period comparison, and coaching briefs. Supports Supabase, Neon, and self-hosted Postgres. Privacy-first: your data goes to your own database.11MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to read Apple Health data through three tools: current stats, detailed metrics, and trends. Deployable to Cloudflare with a one-click phone setup, exposing only read-only access.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to read-only access Apple Health data through three tools: current status and sleep, detailed metrics, and 7/14/30-day trends, deployed via one-click on Cloudflare with private-key authentication.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI to query Apple Health data through three read-only tools: current status, detailed sleep/metrics, and trends over 7/14/30 days. It deploys to Cloudflare quickly, keeping health data private and access-controlled.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct domain and action, and descriptions are detailed enough to separate similar tools (e.g., show_week_workouts vs get_workout). However, the sheer number of list_*/log_*/delete_* tools plus combined manage_* tools could occasionally cause misselection, especially between manage_recovery_strategy and log_recovery_session.
The set follows a consistent verb_noun snake_case pattern throughout, with predictable families: list_*, log_*, update_*, delete_*, get_*, show_*, and manage_*. The show_week_* and show_* prefixes clearly indicate visualization tools.
59 tools is far beyond the typical well-scoped range (3-15). While the fitness domain is broad, the surface could be consolidated (e.g., combined CRUD managers like manage_supplement; many delete_* could fold into update or manage operations). The large selection space increases agent confusion and latency.
The surface covers CRUD/lifecycle for nearly every domain (workouts, meals, sleep, cycle, injuries, labs, supplements, recovery, wellbeing, wearables, runs, body metrics), with upserts covering update for several, and rich analytics via show_* tools. Minor gap: no update_run, so correcting a run requires delete and re-log; some domains lack explicit delete (wearables, sleep, body metrics) but rely on upserts instead.