Zola Mcp

io.github.chrischall由 GitHub 帳號 chrischall 發布v2.2.2更新於 Nov 7, 2026

Zola wedding planning for Claude — vendors, budget, guests, seating, registry, and RSVPs

已驗證STDIO僅桌面效率與工作流商業與電商

概覽

AI 產生的概覽

將 Claude 連接到 Zola 婚禮籌備帳號,可讀取並修改廠商、預算、賓客、座位、RSVP、禮物登記與婚禮網站。

可以做什麼
  • 檢視與管理廠商、預算項目及廠商詢問
  • 列出、新增、更新與刪除賓客群組,追蹤 RSVP 與禮物
  • 檢視座位表、列出尚未安排座位的賓客並指派座位
  • 管理活動以及受邀的賓客群組
  • 瀏覽、新增、更新禮物登記項目,並與禮物追蹤紀錄核對
  • 編輯婚禮網站頁面、設定、常見問題、景點推薦、交通住宿、主題及喜帖設計專案
適用情境
適合在 Zola 上籌備婚禮、希望用自然語言提問或直接修改而不必逐頁操作的人,例如查詢 RSVP 狀態、更新預算、安排座位或編輯網站內容。
執行需求
透過 npx 或 MCPB 套件在本機執行;需要 Node.js 22 或更新版本、Zola 帳號,以及 Claude Desktop 或 Claude Code。驗證使用 ZOLA_REFRESH_TOKEN(即 usr cookie 值),或透過 ContextMint Bridge Chrome 擴充功能從已登入的 zola.com 分頁讀取該 cookie。另有選用變數控制權杖快取、帳號/登記/婚禮 ID 及寫入確認行為。
安裝前請注意
更新權杖是有效期約一年的 Zola 帳號憑證,會存放在設定中或快取到磁碟(除非關閉快取)。許多工具會寫入資料,部分會刪除或改變賓客可見內容(刪除賓客、登記項目、常見問題、交通住宿項目、活動邀請、婚禮設定),請先確認確認機制設定。README 說明程式碼由 AI 撰寫,未經人工審核。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Zola Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Zola MCP

[CI] [npm] [license]

A Model Context Protocol server that connects Claude to Zola, giving you natural-language access to your wedding vendors, budget, guest list, seating chart, events, registry, inquiries, and more.

[!WARNING] AI-developed project. This codebase was entirely built and is actively maintained by Claude Code. No human has audited the implementation. Review all code and tool permissions before use.

What you can do

Ask Claude things like:

  • "How's wedding planning going?"
  • "Find a photographer in Charlotte, NC"
  • "Update the venue cost to $25,000"
  • "Who hasn't RSVP'd yet?"
  • "Seat Pat at Table 1"
  • "Any new vendor messages?"
  • "Add my cousin Mike to the guest list"
  • "Show me the gift tracker"

Requirements

Acknowledgement of Terms

By using this MCP server, you acknowledge and agree to the following:

1. This server accesses your own Zola account. Auth happens via your own credentials. It does not — and cannot — access anyone else's wedding website, registry, or guest list.

2. Zola's Terms of Use govern your use of this server, just as they govern your direct use of zola.com. The clauses most relevant here:

[You may not use] any hardware or software intended to surreptitiously intercept or otherwise obtain any information… including but not limited to the use of any "scraping" or other data mining techniques, robots or similar data gathering and extraction tools.

And, critically, on agent-acting-as-you: "You are responsible for maintaining the confidentiality of your account and password… You accept full responsibility for all activities that occur under your account and password, even if such actions are undertaken by your Authorized Agent or other third party."

You are agreeing to those terms — read by the maintainer 2026-05-23 — every time you invoke a tool in this server. Zola's ToU is explicit: this MCP acting as your Authorized Agent counts as you.

3. Personal, non-commercial use only. This project is not affiliated with, endorsed by, sponsored by, or in partnership with Zola, Inc. It is a personal automation tool for one couple to manage their own wedding website, registry, vendor research, and guest list. Do not use it to bulk-extract Zola's vendor directory, scrape registries, or compete with Zola.

4. Stability is not guaranteed. This server may call internal Zola endpoints that change without notice. It may break.

5. You accept full responsibility for any consequences of using this server in connection with your Zola account — rate limiting, account warnings, suspension, or any enforcement action. Per Zola's ToU, anything this MCP does under your account is your action — review guest list edits, registry changes, and inquiries before confirming. If Zola objects to your use, stop using this server.

This section is the maintainer's good-faith summary of the terms — it is not legal advice and does not modify or supersede Zola's actual ToU.

Installation

Option A — MCPB (recommended)

Download the latest .mcpb bundle from Releases and install:

bash
claude mcp add-from-mcpb zola-mcp-x.y.z.mcpb

You'll be prompted for your ZOLA_REFRESH_TOKEN (see Getting your refresh token below).

Option B — npm

bash
npx -y zola-mcp

Add to your Claude config (.mcp.json or Claude Desktop config):

json
{  "mcpServers": {    "zola": {      "command": "npx",      "args": ["-y", "zola-mcp"],      "env": {        "ZOLA_REFRESH_TOKEN": "your-refresh-token-jwt"      }    }  }}

Option C — from source

bash
git clone https://github.com/chrischall/zola-mcp.gitcd zola-mcpnpm installnpm run build

Add to Claude Desktop config:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "zola": {      "command": "node",      "args": ["/absolute/path/to/zola-mcp/dist/bundle.js"],      "env": {        "ZOLA_REFRESH_TOKEN": "your-refresh-token-jwt"      }    }  }}

Getting your refresh token

You have two options. Both produce the same usr cookie value — a ~1-year JWT that doubles as the refresh token.

Option A — ContextMint Bridge (recommended)
  1. Install ContextMint Bridge — Chrome: download the chrome zip from the latest release, unzip it, and load it unpacked at chrome://extensions (Developer mode on). Safari is not available yet (it will ship inside the ContextMint app, which has no public download), so use Chrome for now.

    ContextMint Bridge is the fetchproxy browser extension under its new name, from the same maintainer — fetchproxy's own README (fetchproxy#extension) points to it. Its source is public at nullnet-app/contextmint-bridge: build it yourself, or check a release zip against the .sha256 file published beside it (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).

  2. Sign in at zola.com/account/login in that browser.

  3. Leave ZOLA_REFRESH_TOKEN unset in your Claude config.

On the first tool call, the MCP asks the extension for the HttpOnly usr cookie via chrome.cookies.get, then operates direct-to-API from Node — the bridge is never in the hot path.

That cookie is the ~1-year refresh token, so it is cached at $MCP_DATA_DIR/.zola-mcp/refresh-token.json (falling back to $HOME, mode 0600). Later starts read it from there and need no browser at all, which is what makes the server usable on a remote host where none exists. If the API ever rejects the cached token — you signed out, or it aged past its year — it is discarded automatically and the extension is asked again. To re-auth, just sign back in to zola.com. Set ZOLA_TOKEN_CACHE=false to keep nothing on disk and ask the browser every time.

You can opt out of this fallback with ZOLA_DISABLE_FETCHPROXY=1 (e.g. in headless / CI environments where no extension is available).

Option B — manual (DevTools)
  1. Sign in at zola.com/account/login in any browser.
  2. Open DevTools → Application → Cookies → https://www.zola.com.
  3. Copy the value of the usr cookie.
  4. Paste it into .env as ZOLA_REFRESH_TOKEN=<value> (or into your Claude config env block).

Restart Claude Desktop

Quit completely (Cmd+Q on Mac) and relaunch.

Verify

Ask Claude: "How's wedding planning going?" — it should show your wedding dashboard.

Credentials

Env varRequiredNotes
ZOLA_REFRESH_TOKENConditionalRefresh token JWT (~1 year lifetime). When unset, the MCP falls back to the ContextMint Bridge browser extension to read the usr cookie from your signed-in zola.com tab.
ZOLA_DISABLE_FETCHPROXYNoSet to 1 to opt out of the fetchproxy fallback (headless / CI). Does not disable the token cache — a headless run can still reuse a token an earlier bootstrap cached, since reading a file is not opening a browser.
ZOLA_TOKEN_CACHENoSet to false to disable the on-disk refresh-token cache and ask the browser on every start. Defaults to enabled, and is inert when ZOLA_REFRESH_TOKEN is set.
ZOLA_TOKEN_FILENoAbsolute path for the cache file. Defaults to $MCP_DATA_DIR/.zola-mcp/refresh-token.json, else $HOME/.zola-mcp/refresh-token.json.
ZOLA_ACCOUNT_IDNoAuto-resolved from API on first use
ZOLA_REGISTRY_IDNoAuto-resolved from API on first use
MCP_CONFIRM_MODENoDefault ask-user. What a confirmed write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call writes nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: those writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse.
MCP_CONFIRM_ELICITATIONNoDefault on. off never sends a confirmation prompt, so every client gets the MCP_CONFIRM_MODE path. Set it for a client that declares it can show prompts but never does (the gated call hangs — opencode 2.0.x). Any other value stays on, with a stderr warning.
MCP_CONFIRM_TTL_SECONDSNoDefault 600. How long a confirm token stays valid.
MCP_CONFIRM_SECRETNoSigning key for confirm tokens (default: random per process). Set it only if tokens must survive a server restart.

Available tools

77 tools across 12 areas. The Permission column says what stands between a call and a change:

  • Auto — read-only; runs without asking.
  • Host prompt — a write. Clients that prompt before non-read-only tools (Claude Code, Claude Desktop) ask you first; the server itself does not, so on a client with no prompt (claude.ai) it runs on the first call.
  • Server gate — a write that cannot be undone or that changes what guests see, so the server confirms it itself on every client.

The server-gated writes are remove_guest, update_event, update_wedding_settings, remove_faq, remove_home_section, remove_poi, remove_travel_item, remove_registry_item, set_event_guests and remove_event_invitation (set_event_guests only when it uninvites anyone). Each first shows a preview naming the household, event, item or page content and exactly what changes (for a slug change, the old and new website URL; a registry item on a private or passcode-gated registry, or outside the default collection, is shown by id because only the public page names it), then proceeds only once you approve — see MCP_CONFIRM_MODE above.

Vendors

ToolWhat it doesPermission
list_vendorsList all booked vendorsAuto
search_vendorsSearch vendors by name/categoryAuto
add_vendorBook a new vendorHost prompt
update_vendorUpdate vendor detailsHost prompt
remove_vendorUnbook a vendorHost prompt

Budget

ToolWhat it doesPermission
get_budgetBudget summary with all itemsAuto
update_budget_itemUpdate cost or noteHost prompt

Guests

ToolWhat it doesPermission
list_guestsList all guest groups with stats — names, tier and RSVP state by default; view: "full" adds addresses, emails and phonesAuto
add_guestAdd a guest groupHost prompt
update_guest_addressUpdate mailing addressHost prompt
remove_guestRemove a guest group (with its RSVPs and seats)Server gate

Seating

ToolWhat it doesPermission
list_seating_chartsList seating chartsAuto
get_seating_chartChart with tables/seats/occupantsAuto
list_unseated_guestsGuests not yet seatedAuto
assign_seatAssign guest to a seatHost prompt

Inquiries

ToolWhat it doesPermission
list_inquiriesAll vendor inquiries with statusAuto
get_inquiry_conversationFull conversation messagesAuto
mark_inquiry_readMark as readHost prompt

Events & RSVPs

ToolWhat it doesPermission
list_eventsAll events with RSVP countsAuto
track_rsvpsRSVP tracking per eventAuto
get_gift_trackerGifts received, thank-you statusAuto
get_registryRegistry items with per-item purchase state (requested_qty, purchased_qty, marked_fulfilled, availability, inconsistent); paged via limit/offsetAuto
update_eventUpdate event detailsServer gate
set_event_guestsSet which guest groups are invited to an event (bulk)Server gate
invite_guest_to_eventInvite a single guest or guest group to an event (additive — does not affect other events)Host prompt
remove_event_invitationRemove an event invitation for a single guest or guest groupServer gate

Registry & Gifts

ToolWhat it doesPermission
search_registry_productsBrowse Zola products in a category, scoped to your registryAuto
add_registry_itemAdd a product (by SKU) to the registryHost prompt
update_registry_itemUpdate an existing registry item — all fields must be supplied (it's a full replace)Host prompt
remove_registry_itemRemove an item from the registry that guests shop fromServer gate
reconcile_registryJoins the registry against the gift tracker: DUPLICATE_RISK (flagged fulfilled but nothing purchased — still buyable), UNATTRIBUTED (purchased with no order, so giver and value are lost), ORPHAN_ORDER, MATCHEDAuto

Wedding website — pages & settings

ToolWhat it doesPermission
list_pagesList all wedding-website pages with their IDs, types, display order, visibility, and theme infoAuto
set_page_hiddenShow or hide a page on the wedding website (e.g., hide the RSVP page until invites go out)Host prompt
reorder_pagesReorder pages in the website navigationHost prompt
update_pageUpdate page-level metadata (title, intro copy, nav title, visibility, layout customization)Host prompt
get_wedding_settingsGet top-level wedding settings: title, URL slug, partner names, date, city, hashtag, guest count, search visibilityAuto
update_wedding_settingsUpdate top-level wedding settingsServer gate

Wedding website — content (FAQs, home, things to do, travel)

ToolWhat it doesPermission
list_faqsList all FAQs on the wedding websiteAuto
add_faqAdd a new FAQ (question + answer) to the website FAQ pageHost prompt
update_faqUpdate an existing FAQ — all three fields (question, answer, display_order) must be suppliedHost prompt
remove_faqRemove an FAQ from the public websiteServer gate
list_home_sectionsList the story sections on the website home pageAuto
add_home_sectionAdd a story section to the home page (title + subtitle + description block)Host prompt
update_home_sectionUpdate a home page story section — all fields must be suppliedHost prompt
remove_home_sectionRemove a story section from the public home pageServer gate
list_poisList points-of-interest on the "Things to Do" pageAuto
add_poiAdd a point-of-interest to the Things-to-Do page (restaurant, attraction, etc.)Host prompt
update_poiUpdate a point-of-interestHost prompt
remove_poiRemove a point-of-interest from the public Things-to-Do pageServer gate
list_travel_itemsList hotels, flights, and transportation on the website Travel pageAuto
add_travel_itemAdd a travel item (hotel, flight, train, car, bus) to the Travel pageHost prompt
update_travel_itemUpdate a travel itemHost prompt
remove_travel_itemRemove a travel item from the public Travel pageServer gate

Wedding website — theme

ToolWhat it doesPermission
get_current_themeGet the currently-selected website theme: key, name, swatch color, layout typeAuto
get_website_customizationsGet current website colors, font settings, and available font/color optionsAuto
search_themesBrowse the catalog of available wedding-website themesAuto
update_current_themeSwitch the wedding website to a different theme templateHost prompt
update_website_customizationUpdate website colors and fontsHost prompt

Invitations & save-the-dates

ToolWhat it doesPermission
list_card_projectsList your invitation / save-the-date / shower-invite "card" projects (paper or digital)Auto
get_card_projectGet full details for one invitation project including all customizations (invitation, envelope, RSVP card, details card), paper/color options, and per-customization pagesAuto
validate_card_projectValidate an invitation project — reports any text-fit, image, or guest-addressing errors per customizationAuto
get_card_project_guestsList the guest groups assigned to an invitation project, including per-group font-size overrides for printed addressingAuto
get_card_suiteGet details for an invitation design "suite" (the family of matching invitation + RSVP + details cards), including paper types, sizes, and price rangeAuto
search_card_catalogSearch the invitation design catalogAuto
list_favorite_card_suitesList invitation design suites you have favorited (hearted)Auto
get_rsvp_pageGet the RSVP page settings on the wedding website (title, intro copy, visibility, customization)Auto
create_card_projectCreate a new invitation project from a design suite and a lead variation (specific size/paper)Host prompt
swap_card_project_variationSwap one or more customizations on a project to different variations (paper type, color or size)Host prompt
set_card_project_guestsEnable / disable guest groups for an invitation project and optionally override font sizes for printed names and addressesHost prompt
preview_card_templateRender an invitation template preview with text substituted inAuto
preview_qrcodeGenerate a QR-code PNG for an invitationAuto
set_card_project_qrcodePlace (or update) a QR code on a specific page of an invitation projectHost prompt

Discovery & health

ToolWhat it doesPermission
zola_healthcheckVerify the credential and Zola reachability; says which hop failedAuto
get_wedding_dashboardPlanning dashboard overviewAuto
search_storefrontsSearch marketplace by category/locationAuto
get_storefrontFull vendor storefront detailsAuto
list_favoritesFavorited vendorsAuto

Upgrading

next release

preview_qrcode now hands the image back through the shared delivery ladder. A normal QR preview is unchanged: one image content block, PNG. What changed are the edge cases:

  • An image type is always a bare media type (image/png, never image/png;charset=UTF-8), which a host's image renderer would reject.
  • A non-image type that Zola might return comes back as an embedded resource block locally (it was mislabelled as an image block), and as a download link on a hosted install.
  • An image over 10 MiB is never inlined. On a hosted install it comes back as one text block of JSON, { via: "link", fileName, mimeType, sizeBytes, url, expiresAt, note }, where url is a signed link that expires at expiresAt. With no blob store the tool fails with a too_large error.

Troubleshooting

"Zola auth: set ZOLA_REFRESH_TOKEN, or install the ContextMint Bridge extension…" — either set ZOLA_REFRESH_TOKEN in your config or install the ContextMint Bridge extension and sign into zola.com.

"Zola session refresh failed" — your refresh token has expired (~1 year) or been revoked. Either capture a new usr cookie (DevTools) or sign back into zola.com with the ContextMint Bridge extension installed.

403 from mobile API — the x-zola-session-id header may be missing. Update to the latest version.

Tools not appearing in Claude — go to Claude Desktop → Settings → Developer to see connected servers. Make sure you fully quit and relaunched after editing the config.

Security

  • The refresh token lives only in your local .env or config file (when set) or in the user's browser cookie store (fetchproxy path)
  • It is passed as an environment variable and never logged
  • The server authenticates with Zola's mobile API using the same flow as the iOS app
  • Account and registry IDs are auto-resolved from the API (no manual configuration needed)

Development

bash
npm test        # run the test suite (vitest)npm run build   # compile TypeScript → dist/

Project structure

src/  client.ts               Zola mobile API client (auth, token refresh, context)  index.ts                MCP server entry point  tools/    index.ts              TOOL_REGISTRARS — every tool module the server registers    vendors.ts            list, search, add, update, remove vendors    budget.ts             get budget, update budget items    guests.ts             list, add, update, remove guests    seating.ts            seating charts, seat assignment    inquiries.ts          vendor inquiry conversations    events.ts             events, RSVPs, gift tracker, registry    event-invitations.ts  which guests are invited to which events    registry-items.ts     registry item add / update / remove    reconcile-registry.ts registry vs gift-tracker reconciliation    website.ts            website pages and wedding settings    website-content.ts    FAQs, home sections, things to do, travel    website-theme.ts      website theme and customizations    invitations.ts        invitation / save-the-date card projects    discover.ts           dashboard, storefront search, favorites    healthcheck.ts        zola_healthchecktests/                    one *.test.ts per module, plus manifest/docs/annotation sync tests

Auth flow

All tools use the Zola mobile API (mobile-api.zola.com) with Bearer JWT auth:

  1. POST /v3/sessions/refresh with refresh token JWT → returns 30-min session token
  2. All API calls use Authorization: Bearer <session_token> + x-zola-session-id header
  3. On 401, auto-refreshes and retries once
  4. Session tokens are cached for their lifetime (30 min)

Building the MCPB bundle

The .mcpb bundle is built automatically by the Release workflow when a version tag is pushed. To build locally:

bash
npm run buildnpx @anthropic-ai/mcpb pack

This produces zola-mcp.mcpb using the configuration in manifest.json. The bundle includes the compiled dist/bundle.js and user config prompts for ZOLA_REFRESH_TOKEN.

Releasing

Releases are automated via GitHub Actions:

  1. Run the Cut & Bump workflow (manual trigger) — tags the current version and bumps patch
  2. The tag push triggers the Release workflow which:
    • Runs CI (build + test)
    • Packages .skill and .mcpb bundles
    • Publishes to npm
    • Creates a GitHub Release with the bundles

License

MIT

來源:README.md,提交 f089e06

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

17
  1. v2.2.2最新Nov 7, 2026
  2. v2.2.1Nov 5, 2026
  3. v2.2.0Nov 4, 2026
  4. v2.1.12Nov 3, 2026
  5. v2.1.11Oct 16, 2026
  6. v2.1.10Oct 10, 2026
  7. v2.1.9Oct 7, 2026
  8. v2.1.8Oct 5, 2026
  9. v2.1.7Oct 3, 2026
  10. v2.1.5Sep 28, 2026
  11. v2.1.4Sep 25, 2026
  12. v2.1.3Sep 23, 2026
  13. v2.1.2Sep 23, 2026
  14. v2.1.1Sep 21, 2026
  15. v2.1.0Sep 20, 2026
  16. v2.0.0Sep 19, 2026
  17. v1.12.4Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分