Reception layouts to scale, seating charts, wedding day timelines, and budgets. No login needed.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when someone wants a minute-by-minute wedding day schedule: getting ready, first look, ceremony, cocktail hour, reception, send-off. Needs the ceremony start time; everything else has defaults. Do not use for the months-long planning checklist or vendor payment schedules.
Ceremony start, 24-hour HH:MM.
City and state, for sunset.
YYYY-MM-DD, for sunset.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Use this when someone wants a minute-by-minute wedding day schedule: getting ready, first look, ceremony, cocktail hour, reception, send-off. Needs the ceremony start time; everything else has defaults. Do not use for the months-long planning checklist or vendor payment schedules.
| Argument | Type | Description |
|---|---|---|
| location | string | City and state, for sunset. |
| send_off | string | |
| first_look | boolean | |
| same_venue | boolean | |
| wedding_date | string | YYYY-MM-DD, for sunset. |
| ceremony_time* | string | Ceremony start, 24-hour HH:MM. |
| travel_minutes | integer | |
| reception_hours | number | |
| ceremony_minutes | integer | |
| photo_priorities | array | |
| cocktail_hour_minutes | integer | |
| hair_and_makeup_people | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ceremony_time"
],
"properties": {
"location": {
"type": "string",
"maxLength": 120,
"description": "City and state, for sunset."
},
"send_off": {
"enum": [
"none",
"sparklers",
"bubbles",
"car"
],
"type": "string",
"default": "none"
},
"first_look": {
"type": "boolean",
"default": true
},
"same_venue": {
"type": "boolean",
"default": true
},
"wedding_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "YYYY-MM-DD, for sunset."
},
"ceremony_time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"description": "Ceremony start, 24-hour HH:MM."
},
"travel_minutes": {
"type": "integer",
"default": 0,
"maximum": 120,
"minimum": 0
},
"reception_hours": {
"type": "number",
"default": 4.5,
"maximum": 6,
"minimum": 3
},
"ceremony_minutes": {
"type": "integer",
"default": 30,
"maximum": 90,
"minimum": 15
},
"photo_priorities": {
"type": "array",
"items": {
"enum": [
"couple",
"family",
"wedding_party",
"sunset",
"detail"
],
"type": "string"
},
"default": [
"couple",
"family",
"wedding_party",
"sunset",
"detail"
]
},
"cocktail_hour_minutes": {
"type": "integer",
"default": 60,
"maximum": 90,
"minimum": 45
},
"hair_and_makeup_people": {
"type": "integer",
"default": 4,
"maximum": 12,
"minimum": 1
}
}
}Use this when someone gives a total wedding budget, a guest count, or both and wants a category-by-category split (venue, catering, photo and video, flowers, music, attire, stationery, and so on) with per-guest math and a contingency line. Do not use for tracking actual spending or vendor payments.
| Argument | Type | Description |
|---|---|---|
| style | string | |
| region | string | |
| priorities | array | |
| guest_count | integer | |
| total_budget_usd | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"style": {
"enum": [
"classic",
"modern",
"rustic",
"destination"
],
"type": "string",
"default": "classic"
},
"region": {
"enum": [
"northeast",
"southeast",
"midwest",
"southwest",
"west",
"mountain",
"national"
],
"type": "string",
"default": "national"
},
"priorities": {
"type": "array",
"items": {
"enum": [
"venue",
"food",
"photo_video",
"flowers",
"music",
"attire",
"stationery",
"planner"
],
"type": "string"
},
"maxItems": 3
},
"guest_count": {
"type": "integer",
"maximum": 600,
"minimum": 10
},
"total_budget_usd": {
"type": "integer",
"maximum": 500000,
"minimum": 2000
}
}
}Use this when someone has a list of wedding guests and wants them assigned to tables, keeping families, friend groups, or couples together and keeping specific people apart. Accepts names with optional group labels and keep-apart pairs. Returns table assignments and a shareable chart. Do not use for floor plans without names (use plan_reception_layout) or for RSVP tracking.
| Argument | Type | Description |
|---|---|---|
| guests* | array | |
| keep_apart | array | Pairs of names to seat at different tables. |
| table_count | integer | |
| fill_strategy | string | |
| keep_together | array | |
| seats_per_table | integer | |
| head_table_names | array |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"guests"
],
"properties": {
"guests": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"group": {
"type": "string",
"description": "Household or group, seated together where possible."
},
"plus_one": {
"type": "boolean",
"default": false
}
}
},
"maxItems": 600,
"minItems": 2
},
"keep_apart": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 2,
"minItems": 2
},
"description": "Pairs of names to seat at different tables."
},
"table_count": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"fill_strategy": {
"enum": [
"balanced",
"fill_tables"
],
"type": "string",
"default": "balanced"
},
"keep_together": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"seats_per_table": {
"type": "integer",
"default": 8,
"maximum": 14,
"minimum": 4
},
"head_table_names": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Use this when someone wants to plan a wedding reception floor plan, figure out how many tables fit in a room, or check whether a venue space can hold their guest count with a dance floor, bar, buffet, DJ or band, and head table. Needs guest count; room dimensions in feet are optional (if missing, returns the space required instead of a fit check). Do not use for ceremony seating, seating assignments by name (use generate_seating_chart), or venue search.
| Argument | Type | Description |
|---|---|---|
| bars | integer | |
| cake_table | boolean | |
| head_table | string | |
| dance_floor | boolean | |
| guest_count* | integer | Total guests, including the couple. |
| table_shape | string | |
| food_service | string | |
| entertainment | string | |
| room_width_ft | number | Room width in feet. |
| room_length_ft |
| number |
| Room length in feet. |
| seats_per_table | integer | Defaults by shape: round_60 8, round_72 10, rectangle_8ft 10, mixed 8. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"guest_count"
],
"properties": {
"bars": {
"type": "integer",
"default": 1,
"maximum": 3,
"minimum": 0
},
"cake_table": {
"type": "boolean",
"default": true
},
"head_table": {
"enum": [
"none",
"sweetheart",
"head_table_8",
"head_table_12"
],
"type": "string",
"default": "sweetheart"
},
"dance_floor": {
"type": "boolean",
"default": true
},
"guest_count": {
"type": "integer",
"maximum": 600,
"minimum": 10,
"description": "Total guests, including the couple."
},
"table_shape": {
"enum": [
"round_60",
"round_72",
"rectangle_8ft",
"mixed"
],
"type": "string",
"default": "round_60"
},
"food_service": {
"enum": [
"plated",
"buffet",
"stations"
],
"type": "string",
"default": "plated"
},
"entertainment": {
"enum": [
"none",
"dj",
"band"
],
"type": "string",
"default": "dj"
},
"room_width_ft": {
"type": "number",
"maximum": 300,
"minimum": 10,
"description": "Room width in feet."
},
"room_length_ft": {
"type": "number",
"maximum": 300,
"minimum": 10,
"description": "Room length in feet."
},
"seats_per_table": {
"type": "integer",
"maximum": 12,
"minimum": 6,
"description": "Defaults by shape: round_60 8, round_72 10, rectangle_8ft 10, mixed 8."
}
}
}