io.github.chrischall/zola-mcp
NPM · ZOLA-MCP · SCANNED SEP 20
Zola wedding planning for Claude — vendors, budget, guests, seating, registry, and RSVPs
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 0 of 9 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to chrischall/zola-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability79
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 5613 tokens (~72/item across 77 items; 77 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage87
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 61% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 77 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the io.github.chrischall/zola-mcp server?
io.github.chrischall/zola-mcp runs locally as an npm package, launched with npx -y zola-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · zola-mcp
claude mcp add chrischall-zola-mcp -- npx -y zola-mcp
{
"mcpServers": {
"chrischall-zola-mcp": {
"command": "npx",
"args": [
"-y",
"zola-mcp"
]
}
}
} {
"servers": {
"chrischall-zola-mcp": {
"command": "npx",
"args": [
"-y",
"zola-mcp"
]
}
}
} codex mcp add chrischall-zola-mcp -- npx -y zola-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chrischall-zola-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"zola-mcp"
],
"enabled": true
}
}
} openclaw mcp add chrischall-zola-mcp --command npx --arg -y --arg zola-mcp
mcp_servers:
chrischall-zola-mcp:
command: "npx"
args: ["-y", "zola-mcp"] {
"McpServers": {
"chrischall-zola-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"zola-mcp"
]
}
}
} assistant mcp add chrischall-zola-mcp -t stdio -c npx -a -y zola-mcp
{
"mcpServers": {
"chrischall-zola-mcp": {
"command": "npx",
"args": [
"-y",
"zola-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- Package version: 2.0.0 → 2.1.0 functional
- 19 Sept 26 +1
- Stability: 0.87 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- Dependency health: 0.87 → 1.00 ▲ functional
- Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
- Package version: 1.12.4 → 2.0.0 functional
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 +12
- Malware scan: unverified → pass ▲ security
- Stability: pass → 0.80 functional
- 15 Sept 26 0
- Malware scan: unverified → pass ▲ security
- Stability: 0.97 → pass security
- Package version: 1.12.3 → 1.12.4 functional
- 14 Sept 26 −14
- Stability: 0.93 → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
- Package version: 1.12.2 → 1.12.3 functional
- 12 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- 11 Sept 26 0
- Package version: 1.7.3 → 1.12.2 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/zola-mcp@2.1.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | chrischall/zola-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/chrischall/zola-mcp/.github/workflows/release-please.yml@refs/heads/main |
| Rekor log index | 2893923290 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:e44568300f788091a6c8cb95be982df481724d497dff897d75d69f3746281d53d869f422c561529fdedbccc4c655dbe71caecaa491d4324156fc2cb07 |
Background: How many MCP packages publish verified provenance →
Dependencies 9 packages
| Packages resolved | 9 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_faq ~62
Add a new FAQ (question + answer) to the website FAQ page
| Name | Type | Req | Description |
|---|---|---|---|
| answer | string | yes | The FAQ answer |
| display_order | number | – | Position in the FAQ list (defaults to 0) |
| question | string | yes | The FAQ question |
No output schema declared.
No examples provided.
add_guest ~109
Add a new guest group (household) to the guest list
| Name | Type | Req | Description |
|---|---|---|---|
| affiliation | string | – | Affiliation (default: PRIMARY_FRIEND) |
| string | – | Guest email address | |
| first_name | string | yes | Primary guest first name |
| last_name | string | yes | Primary guest last name |
| phone | string | – | Guest phone number |
| plus_one_first_name | string | – | Plus-one first name |
| plus_one_last_name | string | – | Plus-one last name |
No output schema declared.
No examples provided.
add_home_section ~61
Add a story section to the home page (title + subtitle + description block)
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | – |
| display_order | number | – | – |
| hidden | boolean | – | – |
| subtitle | string | yes | – |
| title | string | yes | – |
No output schema declared.
No examples provided.
add_poi ~151
Add a point-of-interest to the Things-to-Do page (restaurant, attraction, etc.)
| Name | Type | Req | Description |
|---|---|---|---|
| address1 | string | – | – |
| address2 | string | – | – |
| city | string | – | – |
| contact_phone | string | – | – |
| country_code | string | – | Default: US |
| description | string | – | – |
| display_order | number | – | – |
| google_place_id | string | – | – |
| latitude | string | – | Decimal degrees as string |
| longitude | string | – | Decimal degrees as string |
| postal_code | string | – | – |
| state_province | string | – | – |
| title | string | yes | Name of the place |
| url | string | – | – |
No output schema declared.
No examples provided.
add_registry_item ~121
Add a product (by SKU) to the registry. If collection_id is omitted, the default collection is looked up automatically.
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | – | Collection to add into; defaults to the registry's default collection |
| enable_group_gifting | boolean | – | Allow multiple guests to chip in. Default false |
| most_wanted | boolean | – | Mark as a most-wanted gift. Default false |
| quantity | number | – | Default 1 |
| sku_id | string | yes | Product SKU ID (e.g., from search_registry_products) |
No output schema declared.
No examples provided.
add_travel_item ~226
Add a travel item (hotel, flight, train, car, bus) to the Travel page
| Name | Type | Req | Description |
|---|---|---|---|
| address1 | string | – | – |
| address2 | string | – | – |
| city | string | – | – |
| code | string | – | Booking code or group rate code |
| contact_number | string | – | – |
| country_code | string | – | Default: US |
| display_order | number | – | – |
| email_address | string | – | – |
| google_place_id | string | – | – |
| latitude | string | – | Decimal degrees as string |
| longitude | string | – | Decimal degrees as string |
| name | string | yes | Name of the hotel/airline/etc. |
| note | string | – | Free-text notes (e.g., booking code instructions) |
| postal_code | string | – | – |
| source | string | – | How the address was sourced |
| state_province | string | – | – |
| timezone | string | – | e.g. America/New_York |
| type | string | yes | Travel item type |
| url | string | – | Booking link |
No output schema declared.
No examples provided.
add_vendor ~155
Book a new vendor
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City |
| string | – | Vendor email | |
| event_date | string | – | Event date ISO 8601 |
| name | string | yes | Vendor business name |
| phone | string | – | Vendor phone |
| price_cents | number | – | Total price in cents |
| reference_vendor_id | number | – | Reference vendor ID from search_vendors |
| state_province | string | yes | State abbreviation (e.g. NC) |
| vendor_type | string | yes | Vendor type (VENUE, PHOTOGRAPHER, FLORIST, MUSICIAN_DJ, PLANNER, VIDEOGRAPHER, HAIR_MAKEUP, CAKES_DESSERTS) |
No output schema declared.
No examples provided.
assign_seat ~86
Assign a guest to a specific seat in a seating chart
| Name | Type | Req | Description |
|---|---|---|---|
| guest_uuid | string | yes | Guest UUID from list_unseated_guests |
| seat_uuid | string | yes | Seat UUID from get_seating_chart |
| seating_chart_uuid | string | yes | Seating chart UUID from list_seating_charts |
| table_uuid | string | yes | Table UUID from get_seating_chart |
No output schema declared.
No examples provided.
create_card_project ~83
Create a new invitation project from a design suite and a lead variation (specific size/paper).
| Name | Type | Req | Description |
|---|---|---|---|
| lead_variation_uuid | string | yes | Lead variation UUID (specific size/paper/color from the suite) |
| quantity | number | – | Quantity to order. Default: 150. |
| suite_uuid | string | yes | Suite UUID from search_card_catalog or get_card_suite |
No output schema declared.
No examples provided.
get_budget ~28
Get the wedding budget summary including total budgeted, actual cost, paid, and all budget items
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_card_project ~56
Get full details for one invitation project including all customizations (invitation, envelope, RSVP card, details card), paper/color options, and per-customization pages.
| Name | Type | Req | Description |
|---|---|---|---|
| project_uuid | string | yes | Project UUID from list_card_projects |
No output schema declared.
No examples provided.
get_card_project_guests ~45
List the guest groups assigned to an invitation project, including per-group font-size overrides for printed addressing.
| Name | Type | Req | Description |
|---|---|---|---|
| project_uuid | string | yes | Project UUID from list_card_projects |
No output schema declared.
No examples provided.
get_card_suite ~65
Get details for an invitation design "suite" (the family of matching invitation + RSVP + details cards), including paper types, sizes, and price range.
| Name | Type | Req | Description |
|---|---|---|---|
| suite_uuid | string | yes | Suite UUID (e.g. from search_card_catalog or list_favorite_card_suites) |
No output schema declared.
No examples provided.
get_current_theme ~27
Get the currently-selected website theme: key, name, swatch color, layout type
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_gift_tracker ~25
View gift tracking: total gifts received, values, thank-you note status
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_inquiry_conversation ~37
Get full conversation for a vendor inquiry including messages and inquiry details
| Name | Type | Req | Description |
|---|---|---|---|
| uuid | string | yes | Inquiry UUID from list_inquiries |
No output schema declared.
No examples provided.
get_registry ~71
View the couple's registry items with derived purchase state per item (requested_qty, purchased_qty, marked_fulfilled, availability, inconsistent). Paged via limit/offset.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max items to return. Default 100 |
| offset | number | – | Item offset. Default 0 |
No output schema declared.
No examples provided.
get_rsvp_page ~29
Get the RSVP page settings on the wedding website (title, intro copy, visibility, customization).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_seating_chart ~40
Get full seating chart with all tables, seats, and current occupants
| Name | Type | Req | Description |
|---|---|---|---|
| uuid | string | yes | Seating chart UUID from list_seating_charts |
No output schema declared.
No examples provided.
get_storefront ~46
Get full details for a vendor storefront (pricing, reviews, photos, about, FAQs)
| Name | Type | Req | Description |
|---|---|---|---|
| uuid | string | yes | Storefront UUID from search_storefronts or list_favorites |
No output schema declared.
No examples provided.
get_website_customizations ~25
Get current website colors, font settings, and available font/color options
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_wedding_dashboard ~25
Get the wedding planning dashboard overview (invites, paper, planning progress)
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_wedding_settings ~36
Get top-level wedding settings: title, URL slug, partner names, date, city, hashtag, guest count, search visibility
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
invite_guest_to_event ~113
Invite a single guest or guest group to an event (additive — does not affect other events). Pass exactly one of guest_group_id (invites all guests in the group) or guest_id (invites just that guest). Idempotent.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | number | yes | Event entity ID from list_events (event_entity_id) |
| guest_group_id | number | – | Guest group ID — invites every guest in the group |
| guest_id | number | – | Single guest ID — invites just that guest |
No output schema declared.
No examples provided.
list_card_projects ~82
List your invitation / save-the-date / shower-invite "card" projects (paper or digital). Returns project UUID, name, customizations, suite, and quantity.
| Name | Type | Req | Description |
|---|---|---|---|
| include_completed | boolean | – | Include orders that have already been placed. Default: false (drafts only). |
| limit | number | – | Max projects to return. Default: 30. |
No output schema declared.
No examples provided.
list_events ~27
List all wedding events (ceremony, reception, rehearsal dinner, etc.) with RSVP counts
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_faqs ~18
List all FAQs on the wedding website
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_favorite_card_suites ~23
List invitation design suites you have favorited (hearted).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_favorites ~17
List all favorited/saved vendors
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_guests ~23
List all guest groups with stats (total, invited, missing addresses)
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_home_sections ~19
List the story sections on the website home page
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_inquiries ~23
List all vendor inquiries with status, vendor name, and unread flag
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_pages ~29
List all wedding-website pages with their IDs, types, display order, visibility, and theme info
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_pois ~22
List points-of-interest on the "Things to Do" page
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_seating_charts ~22
List all seating charts with their UUID and event name
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_travel_items ~23
List hotels, flights, and transportation on the website Travel page
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_unseated_guests ~24
List all guests who have not yet been assigned a seat
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_vendors ~16
List all booked vendors with details
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
mark_inquiry_read ~31
Mark a vendor inquiry conversation as read
| Name | Type | Req | Description |
|---|---|---|---|
| uuid | string | yes | Inquiry UUID from list_inquiries |
No output schema declared.
No examples provided.
preview_card_template ~158
Render an invitation template preview with text substituted in. Use to see how a design would look with your couple's names and wedding date. Returns the template structure including page layouts.
| Name | Type | Req | Description |
|---|---|---|---|
| first_name | string | – | Substitute for {{first_name}} placeholders |
| last_name | string | – | Substitute for {{last_name}} |
| partner_first_name | string | – | Substitute for {{partner_first_name}} |
| partner_last_name | string | – | Substitute for {{partner_last_name}} |
| variation_uuids | array | yes | One or more variation UUIDs to preview (e.g. a specific size+paper of an invitation) |
| wedding_date | string | – | Substitute for {{wedding_date}}, YYYY-MM-DD. Defaults to the wedding date on file. |
No output schema declared.
No examples provided.
preview_qrcode ~115
Generate a QR-code PNG for an invitation. Returns the image so it can be inspected. Use set_card_project_qrcode to actually place it on a card.
| Name | Type | Req | Description |
|---|---|---|---|
| dimension | string | – | SMALL | MEDIUM (default) | LARGE |
| enabled | boolean | – | Whether the QR code is enabled. Default: true. |
| url | string | yes | URL the QR code will resolve to |
| url_type | string | – | CUSTOM (default) | WEDDING_WEBSITE | WEDDING_WEBSITE_RSVP |
No output schema declared.
No examples provided.
reconcile_registry ~80
Reconcile the registry against the gift tracker. Returns DUPLICATE_RISK (flagged fulfilled but purchased count is 0 — still buyable), UNATTRIBUTED (purchased with no order behind it, so giver and value are lost), ORPHAN_ORDER (an order with no matching registry item) and a MATCHED count. Read-only.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
remove_event_invitation ~116
Remove an event invitation for a single guest or guest group. Pass exactly one of guest_group_id (removes for all guests in the group) or guest_id (removes for just that guest). Other events’ invitations are preserved. Idempotent.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | number | yes | Event entity ID from list_events (event_entity_id) |
| guest_group_id | number | – | Guest group ID — removes for every guest in the group |
| guest_id | number | – | Single guest ID — removes for just that guest |
No output schema declared.
No examples provided.
remove_faq ~33
Remove an FAQ from the website
| Name | Type | Req | Description |
|---|---|---|---|
| faq_entity_id | number | yes | FAQ entity ID from list_faqs |
No output schema declared.
No examples provided.
remove_guest ~33
Remove a guest group from the guest list
| Name | Type | Req | Description |
|---|---|---|---|
| guest_group_id | number | yes | Guest group ID from list_guests |
No output schema declared.
No examples provided.
remove_home_section ~27
Remove a story section from the home page
| Name | Type | Req | Description |
|---|---|---|---|
| homepage_entity_id | number | yes | – |
No output schema declared.
No examples provided.
remove_poi ~31
Remove a point-of-interest from the Things-to-Do page
| Name | Type | Req | Description |
|---|---|---|---|
| poi_entity_id | number | yes | – |
No output schema declared.
No examples provided.
remove_registry_item ~25
Remove an item from the registry
| Name | Type | Req | Description |
|---|---|---|---|
| collection_item_id | string | yes | – |
No output schema declared.
No examples provided.
remove_travel_item ~28
Remove a travel item from the Travel page
| Name | Type | Req | Description |
|---|---|---|---|
| travel_entity_id | number | yes | – |
No output schema declared.
No examples provided.
remove_vendor ~26
Unbook a vendor
| Name | Type | Req | Description |
|---|---|---|---|
| uuid | string | yes | Vendor UUID from list_vendors |
No output schema declared.
No examples provided.
What is the io.github.chrischall/zola-mcp server?
io.github.chrischall/zola-mcp is listed in the public MCP registry as io.github.chrischall/zola-mcp. Zola wedding planning for Claude, vendors, budget, guests, seating, registry, and RSVPs. This page covers its npm package (zola-mcp).
Is the io.github.chrischall/zola-mcp server safe to use?
io.github.chrischall/zola-mcp scores 94 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.chrischall/zola-mcp server expose?
io.github.chrischall/zola-mcp exposes 77 tools: list_vendors, search_vendors, add_vendor, update_vendor, remove_vendor, and 72 more. Their descriptions and schemas cost roughly 5,613 tokens of context every time the server is loaded.
Is the io.github.chrischall/zola-mcp server still maintained?
io.github.chrischall/zola-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.chrischall/zola-mcp server under?
io.github.chrischall/zola-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.