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.