CONNECTED COACHING · USER APPROVED
Connect a compatible coach to Cragen
The only copyable connection prompt is generated in the signed-in Cragen app. After you copy that one-time invitation to a compatible agent, approve the named agent and exact access in Cragen. You never need to open a website or hand over a credential.
One invitation, in the app
This public page does not create a connection prompt
It is protocol documentation for a compatible agent after it has received the owner's generated pairing invitation. The signed-in Cragen app is the only place that creates the one-time prompt for the owner to copy to a compatible agent and approve in Cragen.
For AI agents
Instructions for AI agents
Follow these steps exactly. Do not invent a shortcut when a security step fails.
- 01
Accept only the one-time pairing invitation prompt copied from the signed-in Cragen app. Treat the pairing_code inside that prompt as a one-time device-authorization input, never as a bearer credential.
- 02
Continue only when this agent host can configure remote MCP, make outbound HTTPS requests, and store tokens in the agent host. A chat-only host is not compatible with this pairing flow.
- 03
Configure a remote MCP server named Cragen at https://api.cragen.app/mcp using Streamable HTTP.
- 04
Read the OAuth 2.0 Device Authorization metadata, submit the prompt's pairing_code with this agent's registered client_id and only the requested Cragen scopes to device_authorization_endpoint, then poll token_endpoint at the advertised interval.
- 05
No website is required for the user. New prompts explicitly say creating the code approved the selected access: redeem that code without requesting another approval. Older prompts still require approval in Cragen. Never ask the user to open a standards verification URI.
- 06
Follow the approval mode stated in the generated prompt. For older invitations or an authorization_pending response: Keep waiting while the user approves or rejects the requested scopes in Cragen. Never bypass a pending or rejected request. Read/proposal-only invitations use the v4 consent; any invitation requesting a write permission uses the separate v5 write consent. Existing v4 grants never gain writes through refresh.
- 07
Store the issued access and refresh tokens only in the agent host's secure token storage. Do not print, paste, export, or ask the user to hold any durable bearer credential.
- 08
After approval, call connection_info as the data-free verification action.
- 09
Report the granted scopes returned by connection_info. Do not read coaching data, propose a program, or submit a write until the user asks.
- 10
When the user asks for a program, follow the propose_program input schema and send only the proposed training structure and proposal fields it requests. Cragen derives the private connection binding, draft version, inactive status, and integrity hashes.
- 11
For a granted write, submit only the tool's bounded fields and current expected hash or version. A queued command is not applied: wait for get_command_status to return an authenticated device receipt before describing it as saved.
- 12
If the phone is offline or Cragen is not active, tell the user the command is waiting for the phone. Do not treat a pending, conflict, expired, revoked, permission-denied, or notification failure result as success.
- 13
Use get_write_context only for the granted section and its returned hash. It exposes minimal encrypted preferences, this connection's coach notes, or this connection's reminders—not the full account.
- 14
WorkOS browser OAuth is a compatibility fallback for agents that cannot complete device authorization. It is not the primary path and does not change the no-credential rule.
https://api.cragen.app/mcpcragen_generic_agenthttps://cragen.appSimple permissions
You control the access
You approve the exact access. Unknown scopes are rejected.
Full coaching context
The original seven read and proposal permissions. It does not include any write permission or automatic change.
Training only
Programs, completed training, and program suggestions. Profile, Health summaries, Current workout, and Notes stay off.
Choose access
The user turns each permission on or off, including any of the five write permissions. Creating the code approves only the selected scopes.
programs.readPrograms
See the user's program structure, exercises, and targets.
training.readTraining history
See completed set facts from the allowed recent history window.
profile.readProfile
See the profile facts the user chooses to share, such as training units and body-weight context.
health_summary.readHealth summaries
See bounded steps, sleep-duration, and body-weight summaries. Raw health-provider records stay out of the coach API.
live_training.readCurrent workout
See the active workout, including entered and unfinished sets, without changing the logger.
notes.readNotes
See bounded notes attached to programs, workouts, exercises, and sets already shared with the coach.
programs.proposeProgram suggestions
Create an inactive proposal that waits for the user to review.
programs.writeUpcoming program workouts
Change unstarted sessions in the active program. Started workouts and training history stay unchanged.
exercises.createPersonal exercises
Add exercises to the user's personal library without changing Cragen's shared catalog.
coaching_notes.writeCoach notes
Add attributed notes to programs or exercises and manage only notes from this connection. User notes stay unchanged.
training_preferences.writeTraining preferences
Change only equipment and training days per week. Account, units, body, health, and notification settings stay unchanged.
reminders.writeTraining reminders
Manage this connection's local training reminders within Cragen's time, frequency, and notification-permission limits.
Copy one prompt
Create a connection prompt in the signed-in Cragen app and copy it to your compatible agent.
Paste and connect
New prompts approve your selected access when you create the code. Paste it only into your chosen agent. Older prompts may still ask you to approve in Cragen.
The phone applies writes
A queued write is not saved until your phone returns an authenticated device receipt.
No pasted secrets
Your sign-in stays yours
An agent should never ask for your Apple credential, email code, Cragen token, API key, browser cookie, or a durable bearer credential. If it cannot use remote MCP, HTTPS, and secure token storage, it is not compatible yet. WorkOS browser OAuth is a compatibility fallback, not the primary path.
Guide cragen-agent-setup.v6 · Read consent connected-coaching-2026-09-01-v4 · Write consent connected-coaching-2026-09-05-v5 · Updated 2026-09-07