Altessa Wedding Planner MCP
An MCP server that enables AI assistants to generate wedding reception layouts, seating charts, day-of timelines, and budget splits based on user inputs like guest count and room dimensions.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.altessa.studio/mcpWhat you can do with it
- Generate reception floor plans with specific table shapes and amenities
- Create seating charts that keep groups together and separate others
- Build wedding day timelines from ceremony start times
- Split wedding budgets across vendors and categories
Source and maintenance
Protocol and capabilities
- Server
- altessa 1.0.1
- MCP protocol
- 2025-06-18
- Tools
- 4 advertised
- Resources
- 1 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
plan_reception_layout — Reception layout planner
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.
{
"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."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tables_needed",
"seats_needed",
"tables_that_fit",
"seats_available",
"square_feet_needed",
"fits",
"slack_square_feet",
"suggested_room_ft",
"room_ft",
"zones",
"tables",
"notes"
],
"properties": {
"fits": {
"type": [
"boolean",
"null"
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"zones": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"width_ft",
"length_ft",
"x_ft",
"y_ft"
],
"properties": {
"name": {
"type": "string"
},
"x_ft": {
"type": "number"
},
"y_ft": {
"type": "number"
},
"width_ft": {
"type": "number"
},
"length_ft": {
"type": "number"
}
},
"additionalProperties": false
},
"description": "Corner positions in feet from the entrance corner; x along the length, y across the width."
},
"tables": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"shape",
"x_ft",
"y_ft",
"seats"
],
"properties": {
"id": {
"type": "string"
},
"x_ft": {
"type": "number"
},
"y_ft": {
"type": "number"
},
"seats": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"shape": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "Table center positions in feet, same axes as zones."
},
"room_ft": {
"type": "object",
"required": [
"length",
"width"
],
"properties": {
"width": {
"type": "number"
},
"length": {
"type": "number"
}
},
"description": "The room the positions are drawn in, in feet.",
"additionalProperties": false
},
"share_url": {
"type": "string",
"description": "View-only link to this plan."
},
"truncated": {
"type": "boolean",
"description": "True when table positions were dropped to stay under 50 KB."
},
"seats_needed": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "One seat per guest."
},
"tables_needed": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"seats_available": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"tables_that_fit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Tables placed in the room; fewer than tables_needed when the room is too small."
},
"slack_square_feet": {
"type": [
"number",
"null"
]
},
"suggested_room_ft": {
"anyOf": [
{
"type": "object",
"required": [
"length",
"width"
],
"properties": {
"width": {
"type": "number"
},
"length": {
"type": "number"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"square_feet_needed": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Reception layout planner",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}generate_seating_chart — Seating chart generator
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.
{
"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"
}
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tables",
"unseated",
"warnings"
],
"properties": {
"tables": {
"type": "array",
"items": {
"type": "object",
"required": [
"number",
"label",
"seats",
"guests"
],
"properties": {
"label": {
"type": "string"
},
"seats": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"guests": {
"type": "array",
"items": {
"type": "string"
}
},
"number": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}
},
"unseated": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"reason"
],
"properties": {
"name": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"share_url": {
"type": "string",
"description": "View-only link to this chart."
},
"truncated": {
"type": "boolean",
"description": "True when names or tables were cut to stay under 50 KB."
}
},
"additionalProperties": false
}{
"title": "Seating chart generator",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}build_wedding_timeline — Wedding day timeline builder
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.
{
"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
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"events",
"sunset_time",
"warnings"
],
"properties": {
"events": {
"type": "array",
"items": {
"type": "object",
"required": [
"time",
"duration_minutes",
"title",
"who",
"notes"
],
"properties": {
"who": {
"type": "string"
},
"time": {
"type": "string"
},
"notes": {
"type": "string"
},
"title": {
"type": "string"
},
"duration_minutes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"share_url": {
"type": "string",
"description": "View-only link to this timeline."
},
"sunset_time": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}{
"title": "Wedding day timeline builder",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}estimate_wedding_budget — Wedding budget breakdown
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.
{
"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
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"total_budget_usd",
"guest_count",
"per_guest_usd",
"categories",
"contingency_usd",
"assumptions"
],
"properties": {
"share_url": {
"type": "string",
"description": "View-only link to this budget."
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"percent",
"amount_usd",
"note"
],
"properties": {
"name": {
"type": "string"
},
"note": {
"type": "string"
},
"percent": {
"type": "number"
},
"amount_usd": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
}
},
"guest_count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"per_guest_usd": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"contingency_usd": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"total_budget_usd": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}{
"title": "Wedding budget breakdown",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
Reception layout
A drawing of the reception floor plan from plan_reception_layout.
ui://altessa/layout-v1.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 2032 ms
- 95th percentile latency
- 2032 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 2032 ms · metadata changed · 4 tool(s), 1 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http altessa-wedding-planner-mcp https://mcp.altessa.studio/mcpCodex
codex mcp add altessa-wedding-planner-mcp --url https://mcp.altessa.studio/mcpCursor
{
"mcpServers": {
"altessa-wedding-planner-mcp": {
"url": "https://mcp.altessa.studio/mcp"
}
}
}Cline
{
"mcpServers": {
"altessa-wedding-planner-mcp": {
"type": "streamableHttp",
"url": "https://mcp.altessa.studio/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"altessa-wedding-planner-mcp": {
"type": "http",
"url": "https://mcp.altessa.studio/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http altessa-wedding-planner-mcp https://mcp.altessa.studio/mcpClaude Desktop
{
"mcpServers": {
"altessa-wedding-planner-mcp": {
"url": "https://mcp.altessa.studio/mcp"
}
}
}Windsurf
{
"mcpServers": {
"altessa-wedding-planner-mcp": {
"serverUrl": "https://mcp.altessa.studio/mcp"
}
}
}Let your agent find its tools
Find servers like Altessa Wedding Planner MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Altessa Wedding Planner MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.