Tools · Attendance
MCP tools for the Attendance module (coworking): the occupancy, I've arrived and I'm leaving, who's here, guests, history, fixing and removing visits, and the front desk kiosk links.
The Attendance module through the assistant: seeing the occupancy, marking arrival and departure (yours, a member's or a guest's), listing who's in the space and the history, fixing or removing visits, and generating and revoking kiosk links. The kiosk itself is a guest screen on the front desk iPad; the assistant manages the links, it doesn't run the kiosk.
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_attendance_overview | The occupancy and your open visit | Anyone who sees the space | Read-only |
check_in | Records an arrival, yours or a member's | Any (yours); moderator or finance (someone else's) | Changes |
check_out | Records the departure | Any (yours); moderator or finance (someone else's) | Changes |
list_present | Who's in the space now | Moderator or finance | Read-only |
list_visits | The visit history, with filters | Moderator or finance (today); admin (any day) | Read-only |
list_my_visits | Your visits and the month's summary | Any | Read-only |
update_visit | Fixes a visit's arrival or departure | Moderator or finance (today); admin (any day) | Changes |
delete_visit | Removes a visit | Admin | Asks to confirm |
check_guest_in | Records a guest's arrival | Moderator or finance | Changes |
list_attendance_kiosks | The space's kiosk devices | Moderator or finance | Read-only |
create_attendance_kiosk | Generates a kiosk link (shown once) | Moderator | Changes |
revoke_attendance_kiosk | Revokes a kiosk link | Moderator | Asks to confirm |
The space is created with create_space and module: "attendance", with the attendance argument for the settings; update_space changes only what you send and keeps the rest.
The team, here, is the owner, the admin, the moderator and finance; finance reads and marks, but doesn't generate or revoke kiosk links. The roles are the routes' roles: the assistant never does more than the connected person could do on screen.
The space settings
The attendance argument of create_space and update_space accepts:
| Field | Type | Description |
|---|---|---|
self_check_in | off, button or code | Who marks arrival: off, only the team; button, the member, with the I've arrived button (code isn't available yet) |
capacity | number from 1 to 100000, or null | The capacity, informational. null removes the limit |
auto_checkout_time | HH:MM | The automatic check-out, in the community's time zone (default 23:59) |
show_who_is_here | staff | Who sees the names: only the team |
kiosk.guest_fields | {company, phone}, each off, optional or required | What the kiosk screen asks for besides the name |
kiosk.notify_host | true or false | Emails the host when the guest arrives (default: yes) |
kiosk.reset_seconds | 5 to 60 | How many seconds until the kiosk screen goes back to the start (default: 10) |
get_attendance_overview
Read-only
Space occupancy. Just the number of people and the capacity (never names), the open visit of whoever asks and the check-in mode (off, button or code). Minimum role: anyone who sees the space.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The Attendance space |
Ask like this: "How many people are at the Downtown location right now?"
check_in
Changes
Record an arrival. Without profile_id, it's your arrival, and only if the space lets members mark (the team can always mark itself). With profile_id, the team records another member's arrival; a regular member is refused. Someone without access to the space (plan expired, group not included) is refused, even by the team. It's idempotent: with a visit already open, it returns that visit (already_checked_in: true). A guest without an account is check_guest_in. Role: any (yours); moderator or finance (someone else's).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
profile_id | id | No | Team only: the member to mark (list_members). Without it, it's you |
Returns: visit and already_checked_in.
Ask like this: "Record my arrival at the Downtown location." · "Mark Maria's arrival at the coworking."
check_out
Changes
Record the departure. With no parameters besides the space, it closes your open visit. The team closes a member's (profile_id) or any open visit (visit_id, from list_present). With no open visit, the response is 409. Role: any (yours); moderator or finance (someone else's).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
profile_id | id | No | Team only: the member whose visit to close |
visit_id | id | No | The open visit to close (the team; a member, only their own) |
Ask like this: "I'm leaving."
list_present
Read-only
Who's here. The open visits, of members and guests, newest to oldest, with the name and the arrival time, plus the count and the capacity. Members see only the number, in get_attendance_overview. Minimum role: moderator (or finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
page, limit | numbers | No | Pagination (up to 100 per page) |
Ask like this: "Who's in the house right now?"
list_visits
Read-only
The history. The space's visits, newest to oldest: who, arrival, departure, the kind (member or guest), and whether it's open or was closed automatically. The admin and the owner read any period; the moderator and finance see only today (the API narrows the range). Minimum role: moderator (or finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
profile_id | id | No | Only this member |
kind | member or guest | No | Members or guests |
open | true or false | No | true: only who's still here |
from, to | date | No | YYYY-MM-DD or ISO 8601, read in the community's time zone |
page, limit | numbers | No | Pagination |
Ask like this: "How many guests came last week?"
list_my_visits
Read-only
Your visits. Your history, newest to oldest, with the month's summary (visits, days and minutes) in the community's time zone. Minimum role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | No | Only this Attendance space |
page, limit | numbers | No | Pagination |
Ask like this: "How many days did I go to the coworking this month?"
update_visit
Changes
Fix a visit. Changes the arrival (check_in_at) and/or the departure (check_out_at). The departure can't be before the arrival or in the future; sending a departure on an open visit closes it. The admin and the owner fix any day; the moderator and finance, only today's visit and with times within today (yesterday returns 403). The fix goes into the activity log with who made it. Minimum role: moderator (or finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
visit_id | id | Yes | From list_visits or list_present |
check_in_at | date and time | No | ISO 8601 |
check_out_at | date and time | No | ISO 8601 |
Ask like this: "Pedro forgot to check out: he left at 6 p.m. Close his visit."
delete_visit
Asks to confirm
Remove a visit. The visit leaves the lists and the counts (an open one stops counting toward the occupancy) and the removal goes into the activity log. It doesn't delete the member. Minimum role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
visit_id | id | Yes | From list_visits |
Returns: on the first call, the summary and the confirmation code.
check_guest_in
Changes
Register a guest. The team records the arrival of someone without an account, with the member receiving them (the host, who must have access to the space). Company and phone are asked for or refused according to the kiosk settings. It's idempotent by name and host: with the visit open, it returns already_checked_in: true. If the space notifies hosts, they get an email. The guest counts toward the occupancy. Minimum role: moderator (or finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
guest_name | text | Yes | The guest's name (up to 100 characters) |
host_profile_id | id | Yes | The member receiving them (list_members) |
guest_company | text | No | The company |
guest_phone | text | No | The phone |
Ask like this: "Register the guest Pedro Alves, from Acme, who's here to see Ana."
list_attendance_kiosks
Read-only
The kiosks. The space's devices, active and revoked: name, who created it, when, the last use and the state. Never the link, which only shows when it's created. Minimum role: moderator (or finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes |
create_attendance_kiosk
Changes
Generate a kiosk link. One per iPad or location. Returns kiosk, the url and a warning: the URL shows only once and is secret, like a password. Whoever has it registers guests. The assistant asks the person to open it on the device and not share it; if it's lost, revoke it and generate another. Minimum role: moderator (owner, admin or moderator; not finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
name | text | Yes | The device name, up to 80 characters (for example, "Reception tablet") |
Ask like this: "Generate the kiosk link for the front desk iPad at the Downtown location."
revoke_attendance_kiosk
Asks to confirm
Revoke a kiosk. The link stops working right away and doesn't come back (generate another). Visits already recorded stay. Minimum role: moderator (owner, admin or moderator).
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
kiosk_id | id | Yes | From list_attendance_kiosks |
Returns: on the first call, the summary (the device's name and last use) and the confirmation code.