Gooals docs
Gooals turns plans made in ChatGPT, Claude or Gemini into scheduled, trackable routines. There are two doors in and they share one validator: paste back a gooals block, or use the connector.
Connector (MCP)
Server URL
https://mcp.gooals.ai
Testers can use https://arvafrtpqyiswzsbcjkf.supabase.co/functions/v1/mcp today. Streamable HTTP, OAuth 2.1 with dynamic client registration. Consent says plainly: "read your plans and progress; create and update plans".
Claude: Settings → Connectors → Add custom connector → paste the URL. ChatGPT: Settings → Connectors (developer mode) → add the URL. Set up on the web or desktop, then use it on mobile.
Tools
get_schema_reference read-only Plan format, rules and an example get_plan_requirements(category) read-only Questions a good plan needs + saved profile facts validate_plan(draft) read-only Dry-run with fix-it errors create_plan(draft, intake) write Saves a plan; sends "Your plan is ready" propose_plan_change(plan_id, draft, reason) write A diff the user accepts, edits or rejects get_overview(days) read-only Adherence, forgiving streaks, highlights, skip reasons get_plan(plan_id) read-only Full structure of one plan get_progress(plan_id, from, to) read-only Paginated occurrences, statuses and values log_progress(occurrence_id, status, values, reason) write Record actuals from chat archive_plan(plan_id) destructive Archive, never delete
Plans marked Someone else, Just exploring or Hide from AI are excluded from every read. Assistants never overwrite what the user logged. Plan text is returned as labelled user content and is never treated as instructions.
The gooals block
End a chat reply with one fenced block. Share or paste it into Gooals.
```gooals
{"title": "4-week revision", "category": "study", "built_for": "45 min on weekdays",
"items": [
{"type": "item", "title": "Revision session", "duration_min": 45,
"schedule": {"kind": "fixed", "rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR", "time": "17:00"},
"fields": [{"type": "duration", "label": "Time studied", "control": "timer",
"target": {"op": "at_least", "value": 45, "unit": "min"}}]},
{"type": "repeater", "title": "Bench press", "copies": 3,
"schedule": {"kind": "weekly", "days": ["Mon", "Thu"]},
"fields": [{"type": "number", "label": "Weight", "unit": "kg"},
{"type": "number", "label": "Reps", "unit": "reps", "target": {"op": "at_least", "value": 8}}]}
]}
```
Structures: item, group, sequence (steps with timer_sec), repeater (copies of the same fields). Value types: boolean, number (unit, control, target), choice, text, datetime, duration, reference. Schedules: fixed (RRULE subset), frequency ("3 times a week"), window (morning/afternoon/evening, "by 21:00"), every_n_days (with rotation), deadline. Anything the user skipped can be "unknown".
Progress back to your AI
Without a connector, tap Copy progress for your AI in the app and paste it into any chat. It includes planned, done, partial and skipped items with reasons, key numbers, and the current plan as a block so the AI can send back a revised one.