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 分