Skip to main content
Glama

Zovo Seating Chart

Generate seating chart

generate_seating_chart

Use this when the user wants a seating chart or seating plan: a classroom seating chart for students (rows, pairs or groups of 4; keep two students apart; seat some students near the front; mixed groups; a new random seating chart each week that avoids last week's neighbours) or a wedding, party or banquet seating chart (round or long tables of N, keep couples and households together, keep two guests apart, head table, kids table). Accepts typed names or an uploaded roster or guest list (CSV/Excel). It checks each hard rule and reports any conflict, naming the rules that cannot all hold together. Returns the chart, a soft-preference score, and links to a printable PDF, place cards and Excel. Same seed gives the same chart; change seed to reshuffle. Each call saves new PDF and Excel files (which include the names) on the plugin server for 1 hour (private download links), then deletes them. Rosters are not saved. Does not seat stadiums, theaters or airplanes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYesclassroom for a teacher's seating chart of desks; event for a wedding, party, banquet or gala with tables.
rowsNoClassroom rows/pairs: number of rows from the front, e.g. 5.
seedNoShuffle number, e.g. 1 (default). The same inputs and seed give the same chart; use another number to reshuffle.
titleNoTitle printed on the chart, e.g. Period 3 - Room 114, or Lee & Park Wedding.
layoutNoClassroom desk layout: rows (single desks, default), pairs (desks in twos), or groups (pods/tables of group_size).
peopleNoThe students or guests: plain names ("Ava Martinez") or objects with flags, e.g. {"name":"Cara Diaz","needs_front_seat":true}. Leave out when a roster file is attached.
tablesNoEvents: table setup, e.g. [{"count":1,"seats":10,"type":"head","shape":"long"},{"count":12,"seats":8}].
columnsNoClassroom: desks per row (rows), desk pairs per row (pairs), or groups per row (groups), e.g. 6.
front_rowsNoClassroom: how many rows count as the front for needs_front_seat, e.g. 1 (default).
group_sizeNoClassroom groups layout: students per group, e.g. 4 (default).
keep_apartNoHard rule: people who must not sit next to each other (classroom: not beside, in front, behind or diagonal, nor in the same group; in pairs the seat across the aisle counts as beside unless aisle_breaks_adjacency is true; events: not at the same table). Each inner list is one rule, e.g. [["Ben","Eli"]].
label_ruleNoHow to use labels: mix (spread each label across groups and neighbours; the classroom default), group (seat the same label together, e.g. college friends; the event default), or ignore.
escort_sortNoEvents: sort the alphabetical escort card list by last_name (default) or first_name.
group_countNoClassroom groups layout: number of groups, e.g. 7. Default: just enough for everyone.
roster_fileNoOptional class roster or guest list as CSV, TSV or Excel .xlsx with a header row: a Name column (or First/Last), and optional Party/Household, Group/Label, Front seat, VIP, Child, RSVP, Keep apart (names) and Table columns, e.g. guests.xlsx.
table_countNoEvents shorthand: number of regular guest tables, e.g. 12. Default: just enough.
prefer_apartNoSoft preference: try to keep these people apart; scored, not forced. Each inner list is one rule, e.g. [["Uncle Joe","Aunt Sue"]].
keep_togetherNoHard rule: people who must sit next to each other (classroom) or at the same table (events). Each inner list is one rule, e.g. [["Ann Lee","Bob Lee"]].
prefer_togetherNoSoft preference: try to seat these people together; scored, not forced. Each inner list is one rule, e.g. [["Mia","Zoe"]].
seats_per_tableNoEvents shorthand: seats per regular table, e.g. 8 (default) or 10.
head_table_seatsNoEvents shorthand: add a long head table with this many seats for VIP guests, e.g. 10.
kids_table_seatsNoEvents shorthand: add a kids table with this many seats for guests marked child, e.g. 8.
previous_seat_orderNoClassroom rotation: last chart's seat_order from this tool (names by seat number, "" for empty desks). The new chart avoids last time's neighbours and desks.
aisle_breaks_adjacencyNoClassroom pairs: true if the aisle between desk pairs separates students, so the seat across the aisle does not count as beside. Default false (across the aisle counts as beside).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYes
roomYes
seedYes
softYes
chartYes
seatsYes
titleYes
layoutYes
peopleYes
statusYes
warningsYes
conflictsYes
downloadsYes
hard_rulesYes
seat_orderNo
soft_scoreYes
chart_truncatedNo
seating_problemsYes
hard_rules_brokenYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources