# 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](/espacos/suporte) 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: <span class="tool-kind tool-kind-read">Read-only</span> changes nothing, <span class="tool-kind tool-kind-write">Changes</span> creates or changes something right away, and <span class="tool-kind tool-kind-confirm">Asks to confirm</span> only acts after your yes to a summary. See [Money and confirmation](/mcp/dinheiro-e-confirmacao).

## In short

| Tool | What it does | Minimum role | Type |
|---|---|---|---|
| [`get_support_space_settings`](#get-support-space-settings) | How the space works: limits, deadlines and, for the team, who answers | Any | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`get_support_overview`](#get-support-overview) | The queue in numbers | Moderator or finance | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`list_support_tickets`](#list-support-tickets) | The whole queue, with filters and deadlines | Moderator or finance | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`list_my_support_tickets`](#list-my-support-tickets) | Your tickets | Any | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`get_support_ticket`](#get-support-ticket) | One ticket with the conversation and the photos | Any (the resident reads their own) | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`get_support_resource_open_count`](#get-support-resource-open-count) | How many open tickets an item has | Any | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`create_support_ticket`](#create-support-ticket) | Opens a ticket, with photos | Any | <span class="tool-kind tool-kind-write">Changes</span> |
| [`update_support_ticket`](#update-support-ticket) | Triage: status, priority, category, assignee, place | Moderator or finance, and answering the category | <span class="tool-kind tool-kind-write">Changes</span> |
| [`add_support_comment`](#add-support-comment) | Comments, or writes an internal note | Any (the note, only whoever answers) | <span class="tool-kind tool-kind-write">Changes</span> |
| [`cancel_support_ticket`](#cancel-support-ticket) | Cancels a ticket | Any (the resident, their own) | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`reopen_support_ticket`](#reopen-support-ticket) | Reopens a ticket | Any (the resident, their own resolved one) | <span class="tool-kind tool-kind-write">Changes</span> |
| [`add_support_photo`](#add-support-photo) | Attaches a photo | Any | <span class="tool-kind tool-kind-write">Changes</span> |
| [`replace_support_photo`](#replace-support-photo) | Swaps one photo for another | Any | <span class="tool-kind tool-kind-write">Changes</span> |
| [`remove_support_photo`](#remove-support-photo) | Removes a photo | Any | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`delete_support_comment`](#delete-support-comment) | Deletes a message from the conversation | Admin | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`delete_support_ticket`](#delete-support-ticket) | Deletes a ticket and its photos | Admin | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`close_resource_for_ticket`](#close-resource-for-ticket) | Takes the ticket's room out of use for a period | Admin | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`reopen_resource_for_ticket`](#reopen-resource-for-ticket) | Puts the room back in use | Admin | <span class="tool-kind tool-kind-write">Changes</span> |
| [`get_support_report`](#get-support-report) | The Support report for a period | Moderator or finance | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`list_inspection_sectors`](#list-inspection-sectors) | The round sectors, with their spots | Moderator or finance | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`create_inspection_sector`](#create-inspection-sector) | Creates a round sector | Admin | <span class="tool-kind tool-kind-write">Changes</span> |
| [`update_inspection_sector`](#update-inspection-sector) | Renames or reorders a sector | Admin | <span class="tool-kind tool-kind-write">Changes</span> |
| [`delete_inspection_sector`](#delete-inspection-sector) | Removes a sector and its spots | Admin | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`create_inspection_spot`](#create-inspection-spot) | Adds a spot to a sector | Admin | <span class="tool-kind tool-kind-write">Changes</span> |
| [`update_inspection_spot`](#update-inspection-spot) | Edits a spot | Admin | <span class="tool-kind tool-kind-write">Changes</span> |
| [`delete_inspection_spot`](#delete-inspection-spot) | Removes a spot | Admin | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`list_inspection_rounds`](#list-inspection-rounds) | The round history | Moderator or finance | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`get_inspection_round`](#get-inspection-round) | One round, spot by spot | Moderator or finance | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`start_inspection_round`](#start-inspection-round) | Starts or resumes a sector round | Moderator (not finance) | <span class="tool-kind tool-kind-write">Changes</span> |
| [`mark_inspection_spot`](#mark-inspection-spot) | Marks a spot OK or problem (a problem opens a ticket) | Moderator (not finance) | <span class="tool-kind tool-kind-write">Changes</span> |
| [`complete_inspection_round`](#complete-inspection-round) | Completes the round | Moderator (not finance) | <span class="tool-kind tool-kind-write">Changes</span> |
| [`get_support_resource_history`](#get-support-resource-history) | The maintenance history of a room | Moderator or finance | <span class="tool-kind tool-kind-read">Read-only</span> |

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](/espacos/suporte#who-answers).

The space is created with [`create_space`](/mcp/ferramentas-comunidade#create-space) and `module: "support"`; [`update_space`](/mcp/ferramentas-comunidade#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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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](#mark-inspection-spot) |
| `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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**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`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**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`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**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`

<span class="tool-kind tool-kind-confirm">Asks for confirmation</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-read">Read only</span>

**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](/espacos/rondas-de-inspecao), 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](/mcp/receitas#71-walk-the-2nd-floor-round).

## `list_inspection_sectors`

<span class="tool-kind tool-kind-read">Read-only</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-write">Changes</span>

**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`

<span class="tool-kind tool-kind-read">Read-only</span>

**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?"*

## Related

- [Support](/espacos/suporte)
- [Inspection rounds](/espacos/rondas-de-inspecao)
- [Recipes](/mcp/receitas)
- [Bookings and Scheduling](/mcp/ferramentas-reservas)
- [Money and confirmation](/mcp/dinheiro-e-confirmacao)
