quok-mcp - MCP tools

Server version 0.1.0 · 20 tools

JSONMarkdown

Quok is a household organiser: one family's shared calendar, task lists and shopping lists. Every tool here operates on the single family this connection is bound to, and on data the whole household shares - the events, lists, tasks and shopping items they keep together in Quok, rather than any one member's private calendar or notes.

server_inforead-only

Server info

Returns Quok MCP server status, version, and the family/member this connection is bound to. Use to verify connectivity and which environment (staging vs prod) you are hitting.

No parameters.

list_family_eventsread-only

List family events

List this Quok family's shared calendar events (appointments, bills, chores, birthdays, etc.) within a time window. Recurring events are expanded: one entry per occurrence falling inside the window, each with its own `occurrenceStart` (the series may have started long before `from`), plus `seriesEventId` and `isException`. Use `occurrenceStart`, not `startsAt`, to date an occurrence. Returns only events the connected member can see. Includes both confirmed and `proposed` events (the latter staged by ingestion, pending review) - pass `status` to filter to one. Approve a proposal by calling update_family_event with status `confirmed`.

ParameterTypeRequiredDescription
fromstringyesInclusive lower bound on start time (ISO 8601)
tostringyesExclusive upper bound on start time (ISO 8601)
typestringno
statusstringno

get_family_eventread-only

Get family event

Fetch a single event from this Quok family's shared calendar by id, including its full details.

ParameterTypeRequiredDescription
idstringyesEvent id

create_family_event

Create family event

Create an event on this Quok family's shared calendar (a typed event: appointment, bill, chore, birthday, meal, lesson, flight, hotel, etc.). Defaults to `confirmed`; pass status `proposed` to stage it for review.

ParameterTypeRequiredDescription
titlestringyes
startsAtstringyesStart time as an ABSOLUTE INSTANT in ISO 8601: either UTC (`2026-07-18T05:20:00Z`) or a local time WITH its UTC offset (`2026-07-18T07:20:00+02:00`). Never append `Z` to a local wall-clock time - that shifts the event by the zone offset. For a flight, use the DEPARTURE airport local time with that airport offset.
endsAtunionnoEnd time as an absolute instant; same offset rules as `startsAt` (`null` = open-ended). For a flight, use the ARRIVAL airport local time with that airport offset.
allDaybooleanno
locationunionno
locationLatunionno
locationLonunionno
locationTimezoneunionno
locationPlaceRefunionno
locationDetailunionno
locationCountryCodeunionno
locationCategoryunionno
notesunionno
assigneeIdsarrayno
visibilitystringno
rruleunionno
timezoneunionnoIANA timezone a RECURRING series expands against (e.g. "Europe/Warsaw"); omit/null for one-offs. Does NOT shift `startsAt`/`endsAt` - those must already be correct instants.
endTimezoneunionnoIANA timezone for the `endsAt` wall clock (e.g. "Australia/Sydney" for a flight arrival). Omit/null to use `timezone`. Does NOT shift `endsAt` - it must already be the correct absolute instant.
reminderOffsetsarrayno
statusstringno
typestringyesEvent type - selects the shape of `data`.
dataobjectyesType-specific fields, validated against `type` (appointment, chore, birthday, anniversary, meal, bill, lesson, flight, hotel, activity). Pass {} when the type carries no extra data.

update_family_eventidempotent

Update family event

Update fields on an existing event in this Quok family's shared calendar. Provide only the fields to change in "patch". Patch `status` to transition the event (e.g. confirm a proposed event, or re-propose a confirmed one).

ParameterTypeRequiredDescription
idstringyesEvent id
patchobjectyes
expectedVersionstringnoOptional optimistic-concurrency version (updatedAt) to guard against races

delete_family_eventdestructiveidempotent

Delete family event

Permanently delete an event from this Quok family's shared calendar.

ParameterTypeRequiredDescription
idstringyesEvent id
expectedVersionstringno

list_family_listsread-only

List family lists

List the family's task and shopping lists, optionally filtered by type.

ParameterTypeRequiredDescription
typestringno

list_family_itemsread-only

List family items

List the items on a specific list.

ParameterTypeRequiredDescription
listIdstringyesList id

get_family_itemread-only

Get family item

Fetch a single list item (task or shopping item) by id.

ParameterTypeRequiredDescription
idstringyesList item id

list_family_tasksread-only

List family tasks

List the family's to-do items: items across all todo lists. Mirrors the app's "All tasks" view.

No parameters.

list_family_shoppingread-only

List family shopping items

List the family's shopping items (items across all shopping and groceries lists).

No parameters.

add_family_task

Add family task

Add a to-do item. Targets the given listId, or the family's default todo list when omitted.

ParameterTypeRequiredDescription
textstringyes
checkedbooleanno
assigneeIdsarrayno
visibilitystringno
dueAtunionno
notesunionno
listIdstringnoTarget todo list id; defaults to the family todo list

add_family_shopping_item

Add family shopping item

Add a shopping item. Targets the given listId, or the family's default shopping list when omitted.

ParameterTypeRequiredDescription
textstringyes
checkedbooleanno
assigneeIdsarrayno
visibilitystringno
dueAtunionno
quantityunionno
unitunionno
notesunionno
listIdstringnoTarget shopping list id; defaults to the family shopping list

update_family_list_itemidempotent

Update family list item

Update fields on a Quok list item (task or shopping item). Provide only the fields to change in "patch"; set `checked` to tick/untick it, or `listId` to move it to another list.

ParameterTypeRequiredDescription
listIdstringnoId of the list the item belongs to; omit to resolve the item by its id alone
itemIdstringyesList item id
patchobjectyes
expectedVersionstringnoOptional optimistic-concurrency version (updatedAt) to guard against races

complete_family_list_itemidempotent

Complete family list item

Tick off a list item (or untick it by passing checked=false).

ParameterTypeRequiredDescription
listIdstringnoId of the list the item belongs to; omit to resolve the item by its id alone
itemIdstringyesList item id
checkedbooleannoTarget checked state; defaults to true (tick off). Pass false to untick.
expectedVersionstringno

delete_family_list_itemdestructiveidempotent

Delete family list item

Permanently delete a list item (task or shopping item).

ParameterTypeRequiredDescription
listIdstringnoId of the list the item belongs to; omit to resolve the item by its id alone
itemIdstringyesList item id
expectedVersionstringno

create_family_list

Create family list

Create a new Quok family list (a todo, shopping, groceries, or packing list). Returns the new list including its id.

ParameterTypeRequiredDescription
typestringyes
titlestringyes
eventIdunionno

rename_family_listidempotent

Rename family list

Rename a Quok family list. Provide only the fields to change in "patch".

ParameterTypeRequiredDescription
idstringyesList id
patchobjectyes
expectedVersionstringno

delete_family_listdestructiveidempotent

Delete family list

Permanently delete a Quok family list and all its items. A list that is its type's default cannot be deleted - it is where items land when no list is specified.

ParameterTypeRequiredDescription
idstringyesList id
expectedVersionstringno

search_familyread-only

Search family

Full-text search across this Quok family's entities - calendar events, lists, list items (shopping/tasks), and members - ranked by relevance. Use this to find something by keyword when you don't know its id or exact location (e.g. "dentist", "milk", a person's name). Returns only entities the connected member can see. Pass `types` to restrict to certain kinds.

ParameterTypeRequiredDescription
qstringyesFree-text search query
typesarraynoRestrict to these entity kinds (event, list, list_item, member); omit to search all
limitintegernoMaximum number of results to return (1–50, default 20)