MCP Integration
Saturday provides a native Model Context Protocol (MCP) server, allowing AI agents to discover and use Saturday’s nutrition intelligence tools without custom API integration code.What is MCP?
MCP is an open standard that lets AI models discover and use external tools. Instead of writing custom API client code, an AI agent connects to Saturday’s MCP server and discovers the available nutrition tools at runtime, along with their inputs, outputs, descriptions, and safety constraints.Why use Saturday via MCP?
MCP is ideal when your platform uses AI agents that need to dynamically decide when to call Saturday’s tools based on conversation context.
Connecting to Saturday’s MCP server
There are two ways to reach Saturday’s MCP server, depending on who you are:End users connect via the Claude connector, not an API key. If you’re an individual athlete or coach connecting your own Saturday account to Claude, see the Claude Connector guide: you paste
https://api.saturday.fit/mcp into Claude and sign in, with no API key. The configuration below is for partners integrating their platform with a partner API key.Server configuration (partners)
Add Saturday to your MCP client configuration with your partner API key:Tool catalog
When your agent connects, it discovers tools including:Product tools follow the athlete’s subscription.
search_products,
list_curated_products, and analyze_product_fit take an optional athlete_id
and answer at that athlete’s tier. A connection where the caller is the
athlete (the Claude connector) resolves it from their own account and never
needs to pass one; a platform integration on a partner key passes the athlete’s
id, and gets the category tier until it does. See
Freemium Model.tools/list rather than hardcoding it. Each tool carries a description, a structured input schema, and MCP annotations (readOnlyHint, destructiveHint, idempotentHint).
Some tools are feature-gated and simply do not appear on connections that lack the feature, including the two bottling tools below. A tool you cannot see is also not callable, so absence from tools/list is the answer, not an error to retry.
Bottle Builder (interactive MCP App)
build_bottling_plan is an MCP App: alongside its structured result it returns an interactive HTML view (resource ui://saturday/bottle-builder) that renders inline in supporting clients such as Claude.ai. The athlete can drag a strategy slider (even, balanced, or concentrated), move fuel between bottles, adjust fill levels, edit their own vessels, and watch carbs, sodium, and scoop amounts recompute live. When the target will not fit the bottles on hand, it returns a “carry it more concentrated, top up with water” plan rather than a dead end. Clients that don’t render MCP App views still receive the full plan as text and structured content.
Coach tools. When a coach on Pro Coach tier or higher (Pro Coach, Head Coach, Business, or Enterprise) connects via the Claude connector, an additional set of roster and configuration tools appears:
get_roster, get_roster_digest, get_athlete_fueling_rollup, get_athlete_report, get_session_detail, get_notification_rules, set_notification_rules, apply_alert_preset, get_report_settings, set_report_settings, list_webhooks, register_webhook, and delete_webhook. These are invisible to athlete-only users and to other partners, and tier is re-checked per request, so a lapsed coach loses them without an error. See the Claude Connector guide for the full coach tool catalog and the Coach API for the equivalent REST surface.The webhook tools are the one place where being able to call a tool does not mean it will do anything. Registration succeeds on any coach tier and hands back a signing secret and an endpoint marked active, but concern events are only delivered to coaches on Business or Enterprise. On Pro Coach or Head Coach the endpoint stays quiet, with nothing on the endpoint object to say why.Example: Claude agent with Saturday MCP
Here’s how a Claude-powered agent might use Saturday’s tools in a conversation: Athlete asks: “I have a 3-hour bike race on Saturday. It’s going to be 30C and humid. What should I eat?” Agent’s tool calls:calculate_nutritionwith{activity_type: "bike", duration_min: 180, intensity_level: 8, is_race: true, thermal_stress_level: 8}search_productswith{query: "gel"}(matched against product name, brand, type, and keywords)
Safety-aware tool descriptions
Tool descriptions carry their safety contract inline, so a connecting agent reads it as part of discovery rather than needing this page.calculate_nutrition opens “Calculate personalized fuel, hydration, and electrolyte targets for an endurance activity”, then states what the result contains, when to call it, and how to report it, including which internal tuning keys not to echo back to the athlete.
Three constraints run through them:
- Prescriptions are guidance for human consideration, not automated commands.
- Safety warnings must be surfaced to the user.
- The
not_instructions: truefield on a result means “present this to the human, do not execute it”.
tools/list rather than copying them into your own prompt: they change, and the copy in your prompt will not.
Tool call example
AI agent guidelines
When building AI agents that consume Saturday via MCP:Do
- Surface all safety warnings to the human user
- Present prescriptions as recommendations, not commands
- Include “Powered by Saturday” attribution for teaser-tier responses
- Cache results when inputs haven’t changed. Prescriptions are deterministic
- Handle errors gracefully. If a tool call fails, explain why to the user
Don’t
- Don’t autonomously act on prescriptions (e.g., auto-ordering supplements)
- Don’t strip safety metadata from results before presenting to users
- Don’t modify prescription numbers based on your own logic
- Don’t use response data for ML training. This violates Saturday’s data policy
- Don’t make excessive tool calls. Batch when possible
LLM discoverability
Saturday publishes machine-readable context files for AI agents:
These follow the llms.txt standard and give an agent Saturday’s API surface without crawling the documentation site.
https://saturday.fit/llms.txt serves the same pair for the consumer product rather than the API.