Tools · Support
MCP tools for the Support module (coworking): open a ticket with photos, list the queue and my tickets, triage, assign, resolve, internal note, cancel, reopen, photos and deadlines, plus the settings for who answers and the deadline per category.
The Support module through the assistant: the resident opens and follows tickets (with photos), the team triages the queue, answers, writes internal notes and resolves, and the admin configures who answers and the deadlines. The roles are those of the screen: the assistant never does more than the connected person would do.
Each tool carries a badge: Read-only changes nothing, Changes creates or changes something right away, and Asks to confirm only acts after your yes to a summary. See Money and confirmation.
In short
| Tool | What it does | Minimum role | Type |
|---|---|---|---|
get_support_space_settings | How the space works: limits, deadlines and, for the team, who answers | Any | Read-only |
get_support_overview | The queue in numbers | Moderator or finance | Read-only |
list_support_tickets | The whole queue, with filters and deadlines | Moderator or finance | Read-only |
list_my_support_tickets | Your tickets | Any | Read-only |
get_support_ticket | One ticket with the conversation and the photos | Any (the resident reads their own) | Read-only |
get_support_resource_open_count | How many open tickets an item has | Any | Read-only |
create_support_ticket | Opens a ticket, with photos | Any | Changes |
update_support_ticket | Triage: status, priority, category, assignee, place | Moderator or finance, and answering the category | Changes |
add_support_comment | Comments, or writes an internal note | Any (the note, only whoever answers) | Changes |
cancel_support_ticket | Cancels a ticket | Any (the resident, their own) | Asks to confirm |
reopen_support_ticket | Reopens a ticket | Any (the resident, their own resolved one) | Changes |
add_support_photo | Attaches a photo | Any | Changes |
replace_support_photo | Swaps one photo for another | Any | Changes |
remove_support_photo | Removes a photo | Any | Asks to confirm |
delete_support_comment | Deletes a message from the conversation | Admin | Asks to confirm |
delete_support_ticket | Deletes a ticket and its photos | Admin | Asks to confirm |
By role, the owner and the admin see all 16; the moderator and finance, 14; the member, 11. The team is the owner, the admin, the moderator and finance, but whoever answers (triage, assign, answer, write notes) is only whoever is in the category's selection; outside it, the API refuses with a translated 403 and the assistant tells you so. See Who answers.
The space is created with create_space and module: "support"; update_space changes only what you send.
The space settings
The support argument of create_space and update_space accepts (what you send is merged with what already exists):
| Field | Type | Description |
|---|---|---|
allow_urgent_flag | true or false | The resident can tick "it is urgent" (becomes high priority). Default: yes |
max_open_per_member | 0 to 1000 | Open tickets per resident; 0 = no limit. Default: 10 |
location_hint | text up to 200 | The hint for the "Place" field |
default_assignee_id | id or null | Who receives new tickets |
responders | object | Who answers: tags (tag names), group_ids, profile_ids and by_category (each category's selection, which replaces the space's). Owner and admin always answer; with no selection, the whole team answers |
sla.enabled | true or false | Turns deadlines on. Default: yes |
sla.business_hours | {days, start, end} | Days of the week (0 = Sunday to 6 = Saturday) and HH:MM times, in the community's time zone. Default: Mon to Fri, 09:00 to 18:00. No holidays |
sla.categories | per category | first_response and resolution, each with value (whole number) and unit (hours or days). Default: 4 hours and 1 day |
The categories are FACILITIES, CLEANING, EQUIPMENT, INTERNET, ACCESS, BILLING and OTHER; the kinds, MAINTENANCE and REQUEST; the statuses, OPEN, IN_PROGRESS, WAITING_REQUESTER, RESOLVED and CANCELED; the priorities, LOW, NORMAL, HIGH and URGENT.
get_support_space_settings
Read-only
How the space works. allowUrgentFlag, maxOpenPerMember, locationHint, hasBookings (whether resource_id can be used) and sla. The team also gets responders, defaultAssigneeId and canAnswerCategories (the categories you answer); the resident never gets responders. Role: any with access to the space.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The Support space (list_spaces) |
get_support_overview
Read-only
The queue in numbers: open, inProgress, waitingRequester, unassigned, mine, overdue (deadline passed, clock running) and total. Without space, it adds up all Support spaces. Role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | No |
Ask like this: "How's the ticket queue?"
list_support_tickets
Read-only
The whole queue, by most recent activity or by priority. With deadlines on, each ticket carries sla (firstResponseDueAt, resolveDueAt, paused, and the readable dates in the community's time zone) and, for the team, sla.overdue. Each item says what you can do (canAnswer, canAssign...). The resident uses list_my_support_tickets. Role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | No | |
kind, status, priority, category | values above | No | One value each |
assignee_profile_id | id | No | Tickets of this assignee |
unassigned | true or false | No | Unassigned |
mine | true or false | No | Assigned to you |
overdue | true or false | No | Deadline passed and clock running (Waiting for a reply doesn't count) |
due_today | true or false | No | The next deadline falls today; only in spaces with deadlines |
requester_profile_id | id | No | Tickets from this person |
resource_id | id | No | Tickets for this Bookings item |
q | text | No | Number, #42 or part of the title |
sort | activity or priority | No | |
page, limit | numbers | No | Pagination (up to 100) |
Ask like this: "Which tickets are overdue or due today?"
list_my_support_tickets
Read-only
The tickets you opened, most recent first. Role: any with access to the space.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | No | |
kind, status, priority, category | values above | No | |
resource_id | id | No | |
q | text | No | |
page, limit | numbers | No |
get_support_ticket
Read-only
One ticket with its timeline: messages, change history, internal notes (team only) and photos as short-lived links. The resident reads their own; the team reads all of them, also outside the selection of who answers. Another person's ticket: 404. Role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes | From list_support_tickets or list_my_support_tickets |
get_support_resource_open_count
Read-only
The duplicate notice. Only the number of open tickets for a room, desk or equipment from Bookings, with no title or author, to warn before opening one more. Role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_id | id | Yes | From list_booking_resources |
create_support_ticket
Changes
Open a ticket, with photos. The team is notified through the email queue. Whoever answers the category can also set the priority and open it on behalf of a resident (requester_profile_id): the resident gets an email, so the assistant first shows who will receive it. Above the space's open-ticket limit, 409; above 10 tickets opened per hour, 429. Repeating the call with the same client_request_id returns the same ticket. Role: any with access to the space.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The Support space |
kind | MAINTENANCE or REQUEST | Yes | |
category | category | Yes | |
title | text | Yes | Up to 140 characters |
description | text | Yes | Up to 10000 |
resource_id | id | No | Room, desk or equipment (list_booking_resources) |
location_text | text | No | Up to 120 characters; works without an item |
urgent | true or false | No | Becomes high priority, if the space allows it |
priority | priority | No | Only whoever answers |
requester_profile_id | id | No | Only whoever answers: opens it on behalf of this resident |
photos | list | No | Up to 5, each with image_url or image_base64 (+ image_type) |
client_request_id | text | No | Avoids duplicates on a repeated tap |
Ask like this: "Open a maintenance ticket: the projector in Room 3 won't turn on, here's the photo."
update_support_ticket
Changes
Triage. Only whoever answers the ticket's category; outside it, a translated 403. Send only what changes. message goes with RESOLVED or WAITING_REQUESTER as a public answer, and the resident gets an email; assigning notifies the assignee. RESOLVED and CANCELED only go back to OPEN. URGENT can only be set here. Every change goes into the conversation. Role: moderator or finance, and answering the category.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes | |
status | status | No | |
priority | priority | No | |
kind, category | values | No | The category can only change to one you also answer |
assignee_profile_id | id or null | No | Must answer the category; null removes the assignee |
resource_id | id or null | No | The Bookings item |
location_text | text or null | No | |
title | text | No | |
message | text | No | Together with RESOLVED or WAITING_REQUESTER |
Ask like this: "Assign ticket #42 to Pedro and resolve it saying we replaced the light bulb."
add_support_comment
Changes
Comment, with photos. The resident comments on their own (in Waiting for a reply it goes back to In progress; on a Resolved one, it reopens); whoever answers does too, and the resident gets an email (two replies within 10 minutes produce a single email). With internal: true it's an internal note: only whoever answers can write it, the resident never sees it, and it sends no email. Comments can't be edited. Role: any (the note, only whoever answers).
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes | |
body | text | Yes | Up to 10000 characters |
internal | true or false | No | Internal note |
photos | list | No | Up to 5, as in create_support_ticket |
Ask like this: "On ticket #42, add an internal note that the technician is coming on Thursday."
cancel_support_ticket
Asks to confirm
Cancel an open ticket. It becomes Canceled; nothing is deleted. The resident cancels their own while it isn't resolved; whoever answers the category can too (a duplicate, for example). Resolved or already canceled: 400. Role: any, within the limits above.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes |
Returns: on the first call, the summary (number, title, status, resident) and the confirmation code.
reopen_support_ticket
Changes
Reopen. The resident reopens their own Resolved ticket, and the team is notified; whoever answers can also reopen a Canceled one. Any other status: 400. The resolution deadline starts over. Role: any, within the limits above.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes |
add_support_photo
Changes
Attach a photo (JPEG, PNG or WebP, up to 20 MB), stored privately: only the resident and the team open it. Up to 20 per ticket (409 above that). The resident on their own; whoever answers on any. Role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes | |
image_url or image_base64 | link or text | Yes | The image; image_base64 goes with image_type |
replace_support_photo
Changes
Swap a photo. The new one is attached first; then the old one is removed and its file deleted. The resident swaps the photos from the opening and from their own comments; whoever answers, any of them. Role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes | |
photo_id | id | Yes | From get_support_ticket |
image_url or image_base64 | link or text | Yes | The new image |
remove_support_photo
Asks to confirm
Remove a photo (the file is deleted for good). Whoever answers removes any of them; the resident, those from the opening and from their own comments. Role: any, within the limits above.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes | |
photo_id | id | Yes | From get_support_ticket |
Returns: on the first call, the summary and the confirmation code.
delete_support_comment
Asks to confirm
Delete a message from the conversation, with its photos. History lines aren't deleted. Role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes | |
comment_id | id | Yes | From get_support_ticket |
delete_support_ticket
Asks to confirm
Delete a ticket and its photos; nothing is anonymized or kept. To really close a ticket, use update_support_ticket (Resolved) or cancel_support_ticket. Role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes |
Returns: on the first call, the summary (number, title, status, resident, photos) and the confirmation code.