Install
openclaw skills install @chrischall/zola-mcpThis skill should be used when the user asks about Zola wedding planning data. Triggers on phrases like "check Zola", "Zola vendors", "wedding budget", "Zola guests", "RSVP status", "seating chart", "vendor inquiries", "wedding registry", "gift tracker", or any request involving wedding vendors, guest list, budget, seating, events, registry, or inquiry management on Zola.
openclaw skills install @chrischall/zola-mcpMCP server for Zola — 30 tools for managing your entire wedding via the Zola mobile API.
Add to .mcp.json in your project or ~/.claude/mcp.json:
{
"mcpServers": {
"zola": {
"command": "npx",
"args": ["-y", "zola-mcp"],
"env": {
"ZOLA_REFRESH_TOKEN": "your-refresh-token-jwt"
}
}
}
}
git clone https://github.com/chrischall/zola-mcp
cd zola-mcp
npm install && npm run build
Two options:
Option A — fetchproxy extension (recommended). Install the fetchproxy 0.3.0 extension, sign into zola.com once, and leave ZOLA_REFRESH_TOKEN unset. The MCP reads the HttpOnly usr cookie on demand and goes direct-to-API from Node thereafter.
Option B — manual DevTools copy. After signing in at zola.com, open DevTools → Application → Cookies, copy the usr value, and paste it into your config as ZOLA_REFRESH_TOKEN. Token lasts ~1 year.
| Env var | Required | Notes |
|---|---|---|
ZOLA_REFRESH_TOKEN | Conditional | Mobile API JWT refresh token (~1 year lifetime). Unset = fetchproxy fallback |
ZOLA_DISABLE_FETCHPROXY | No | Set to 1 to opt out of the fetchproxy fallback (headless / CI) |
ZOLA_ACCOUNT_ID | No | Auto-resolved from API; optional override |
ZOLA_REGISTRY_ID | No | Auto-resolved from API; optional override |
| Tool | Description |
|---|---|
list_vendors | List all booked vendors with details |
search_vendors | Search for vendors by name within a category |
add_vendor | Book a new vendor |
update_vendor | Update a booked vendor's details |
remove_vendor | Unbook a vendor |
| Tool | Description |
|---|---|
get_budget | Get wedding budget summary with all items |
update_budget_item | Update a budget item's cost or note |
| Tool | Description |
|---|---|
list_guests | List all guest groups with stats |
add_guest | Add a new guest group (household) |
update_guest_address | Update a guest group's mailing address |
remove_guest | Remove a guest group |
| Tool | Description |
|---|---|
list_seating_charts | List all seating charts |
get_seating_chart | Get chart with tables, seats, and occupants |
list_unseated_guests | List guests not yet assigned a seat |
assign_seat | Assign a guest to a specific seat |
| Tool | Description |
|---|---|
list_inquiries | List all vendor inquiries with status |
get_inquiry_conversation | Get full conversation for an inquiry |
mark_inquiry_read | Mark an inquiry conversation as read |
| Tool | Description |
|---|---|
list_events | List all wedding events with RSVP counts |
track_rsvps | Get RSVP tracking per event |
update_event | Update event details (time, venue, dress code) |
set_event_guests | Bulk set which guest groups are invited to an event |
invite_guest_to_event | Invite one guest or group to an event |
remove_event_invitation | Remove an event invitation for a guest or group |
| Tool | Description |
|---|---|
get_registry | View the wedding registry with categories |
get_gift_tracker | View gifts received, values, thank-you status |
| Tool | Description |
|---|---|
get_wedding_dashboard | Get wedding planning dashboard overview |
search_storefronts | Search vendor marketplace by category/location |
get_storefront | Get full vendor storefront details |
list_favorites | List all favorited/saved vendors |
get_wedding_dashboardtrack_rsvpssearch_storefronts with taxonomy_node_id: 2, city: Charlotte, state: NClist_unseated_guests → get_seating_chart → assign_seatlist_inquiries (filter unread) → get_inquiry_conversationget_budget → update_budget_itemadd_guestlist_events + list_guests → set_event_guestsmobile-api.zola.com) with Bearer JWT authusr cookie from DevTools to renew