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, and inspection rounds (sectors, spots, OK or problem and each room's history).
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 |
close_resource_for_ticket | Takes the ticket's room out of use for a period | Admin | Asks to confirm |
reopen_resource_for_ticket | Puts the room back in use | Admin | Changes |
get_support_report | The Support report for a period | Moderator or finance | Read-only |
list_inspection_sectors | The round sectors, with their spots | Moderator or finance | Read-only |
create_inspection_sector | Creates a round sector | Admin | Changes |
update_inspection_sector | Renames or reorders a sector | Admin | Changes |
delete_inspection_sector | Removes a sector and its spots | Admin | Asks to confirm |
create_inspection_spot | Adds a spot to a sector | Admin | Changes |
update_inspection_spot | Edits a spot | Admin | Changes |
delete_inspection_spot | Removes a spot | Admin | Asks to confirm |
list_inspection_rounds | The round history | Moderator or finance | Read-only |
get_inspection_round | One round, spot by spot | Moderator or finance | Read-only |
start_inspection_round | Starts or resumes a sector round | Moderator (not finance) | Changes |
mark_inspection_spot | Marks a spot OK or problem (a problem opens a ticket) | Moderator (not finance) | Changes |
complete_inspection_round | Completes the round | Moderator (not finance) | Changes |
get_support_resource_history | The maintenance history of a room | Moderator or finance | Read-only |
By role, the owner and the admin see all 32; the moderator, 22; finance, 19; 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, member_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_member_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_member_id | id | No | Tickets from this person |
resource_id | id | No | Tickets for this Bookings item |
origin | REQUEST or ROUND | No | REQUEST: opened by a resident or by the team on someone's behalf; ROUND: opened on an inspection round |
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_member_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_member_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_member_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 50 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.
close_resource_for_ticket
Asks for confirmation
Takes the room, desk or equipment linked to a ticket out of use for a period (a Bookings block linked to the ticket). With bookings in the period and cancel_bookings true, each one is canceled with a full credit refund, the person gets the email and the calendar invite is canceled; without cancel_bookings, nothing happens and the answer lists the bookings. Role: admin (owner or admin).
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes | A ticket with a Bookings room |
starts_at, ends_at | YYYY-MM-DDTHH:mm | Yes | In the community's local time; the end can't be in the past |
reason | text up to 255 | No | Goes in the email to whoever loses a booking. Default: the ticket title |
cancel_bookings | true or false | No | Cancels and refunds the bookings in the period; required when there are any |
Returns: on the first call, the summary (room, period, affected bookings, credits to refund, the list of bookings) and the confirmation code. After the yes, the block created. The assistant then offers reopen_resource_for_ticket.
reopen_resource_for_ticket
Changes
Puts the room back in use: removes the block this ticket created and logs it in the history. Bookings already canceled don't come back. With no block from the ticket, it returns an error. It's offered when a resolved ticket brings the option to reopen the room. Role: admin (owner or admin).
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_id | id | Yes |
get_support_report
Read only
The Support report for a period: totals and groups by category, assignee and room, each with opened and resolved in the period, open and overdue now, reopened, average first response and resolution time (in minutes) and the percentage on time. Role: team (moderator or finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | No | Without it, all Support spaces |
from, to | YYYY-MM-DD | No | Local dates, both included. Default: last 30 days; at most 366 |
Inspection rounds
The 13 tools of the inspection round, with the same roles as the Rounds tab: the owner and the admin set up sectors and spots; the owner, the admin and the moderator walk the round; the whole team, finance included, reads the rounds and a room's history; the member sees none. Only the deletions ask for confirmation.
In Claude, the ready-made Inspection round recipe (run_inspection_round) asks for the sector and, if you want, what you already found, and walks the round spot by spot until it's completed. It shows up for the owner, the admin and the moderator. See recipe 70.
list_inspection_sectors
Read-only
The sectors of a Support space, in order, each with its spots (Bookings resource or free place), openRound (the round in progress, if any) and lastCompletedAt. Role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The Support space |
create_inspection_sector
Changes
Creates a sector (a floor, a wing). Spots go in afterwards, with create_inspection_spot. Role: admin (owner or admin).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The Support space |
name | text | Yes | Up to 120 characters |
position | number | No | The order in the list |
Ask like this: "Create the 2nd floor sector with Room 3, Room 4, the kitchen and the restroom."
update_inspection_sector
Changes
Renames or reorders a sector. Role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
sector_id | id | Yes | From list_inspection_sectors |
name | text | No | Up to 120 characters |
position | number | No |
delete_inspection_sector
Asks to confirm
Removes a sector and its spots. Past rounds and the tickets they opened stay in the history. A sector with a round in progress returns 409: complete the round first. The summary shows the sector and how many spots go. Role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The Support space |
sector_id | id | Yes |
create_inspection_spot
Changes
Adds a spot to the sector: a Bookings resource (resource_id, from list_booking_resources) or a free place (label, such as "Men's restroom"), at least one of them; with both, label is the name shown. The same resource can't be added twice to the sector. Each sector holds up to 200 spots. Role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
sector_id | id | Yes | |
resource_id | id | No | Room, desk or equipment from Bookings |
label | text | No | Up to 120 characters |
position | number | No |
update_inspection_spot
Changes
Edits a spot: resource_id, label (null clears one of them; the spot must keep at least one) and position. Role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
spot_id | id | Yes | From list_inspection_sectors |
resource_id, label | id, text or null | No | |
position | number | No |
delete_inspection_spot
Asks to confirm
Removes a spot from the sector. Rounds that already checked it keep the recorded name. Role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The Support space |
spot_id | id | Yes |
list_inspection_rounds
Read-only
The round history, newest first, without the list of spots: sector, status (IN_PROGRESS or COMPLETED), who started and who completed, when, and the counts (total, OK, problem, pending, unchecked). Role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | No | |
sector_id | id | No | |
status | IN_PROGRESS or COMPLETED | No | |
page, limit | numbers | No | Pagination (up to 100) |
Ask like this: "Which rounds were walked this week and what was left pending?"
get_inspection_round
Read-only
One round, spot by spot. In progress, every spot of the sector in order, each with what was marked (OK or problem, description, the ticket opened, who marked it) or still unmarked; completed, what was recorded (unmarked spots become pending). canMark and canComplete say what you can do. Role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
round_id | id | Yes |
start_inspection_round
Changes
Starts a sector's round and records who started it and when. If the sector already has a round in progress, that one comes back, with alreadyStarted: true, instead of a new one. Role: moderator (finance doesn't walk rounds).
| Parameter | Type | Required | Description |
|---|---|---|---|
sector_id | id | Yes |
mark_inspection_spot
Changes
Marks a spot of the round in progress as OK or PROBLEM. PROBLEM requires description, takes up to 5 photos, and opens a maintenance ticket right away (category FACILITIES, with the resource or the spot name as the location, you as the author and origin ROUND): the Support new ticket e-mails go out without confirmation, so the assistant warns you first. The answer carries the ticket number. These tickets don't count toward the opening limits. One person's rounds open up to 100 tickets in 24 hours; beyond that, the call is refused. Role: moderator (finance doesn't walk rounds).
| Parameter | Type | Required | Description |
|---|---|---|---|
round_id | id | Yes | |
spot_id | id | Yes | From get_inspection_round |
status | OK or PROBLEM | Yes | |
description | text | With PROBLEM | Up to 10000 |
photos | list | No | Only with PROBLEM. Up to 5, each with image_url or image_base64 (+ image_type); private like Support photos |
A spot that already opened a ticket is locked: PROBLEM again returns the same record without opening another ticket, and OK returns 409. An OK spot can become a problem. Completed round: 409.
Ask like this: "On the 2nd floor round, Room 3 is OK and the kitchen bulb is out; here's the photo."
complete_inspection_round
Changes
Completes the round: spots nobody marked become pending, and the round records who completed it and when. Already completed: 409. Next, the assistant offers the queue filtered by origin: ROUND. Role: moderator.
| Parameter | Type | Required | Description |
|---|---|---|---|
round_id | id | Yes |
get_support_resource_history
Read-only
The maintenance history of a room, desk or equipment from Bookings: the rounds that checked it (sector, dates, what was marked, description, ticket and who checked) and the tickets linked to it (any origin), the 50 most recent of each, like the resource's History tab. It also works for a deleted resource. Role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_id | id | Yes | From list_booking_resources |
Ask like this: "What maintenance has Room 3 had?"