nyna — AI wedding planner
by nyna.ai · remote · no sign-in to list tools · v2.0.0 · published by ai.nyna
Wedding provider directory, gift ideas, and a couple's own wedding plan behind OAuth.
23 tools: 1 can delete or cancel things, 7 change things and 15 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads15Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http nyna https://nyna.ai/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "suggest_day_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "suggest_day_schedule" says "schedule": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
23 tools
Deletes or cancels 1Claude Code: deny
set_run_sheet[Sign-in required] Writes a reviewed timeline to the wedding as the day-of run sheet, replacing the one there — costs no credits and returns the number of events saved and the numb…No findings
Why it is in this group
- The name "set_run_sheet" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it [Sign-in required] Writes a reviewed timeline to the wedding as the day-of run sheet, replacing the one there — costs no credits and returns the number of events saved and the number replaced. Times are 24h HH:MM in chronological order; an out-of-order sheet is refused before anything is written.
Annotations the server declares
- title: Save a wedding-day run sheet
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Changes things 7Claude Code: ask
add_guests[Sign-in required] Appends up to 100 named guests to the guest list in one write — costs no credits and returns the names added, the names skipped as duplicates and the new total.No findings
Why it is in this group
- The name "add_guests" says "add": a word for a change.
Description, as the server wrote it [Sign-in required] Appends up to 100 named guests to the guest list in one write — costs no credits and returns the names added, the names skipped as duplicates and the new total. Existing guests are left untouched, the whole batch is validated before anything is written, and a member whose role only proposes guests gets proposals recorded for the couple instead of additions.
Annotations the server declares
- title: Add guests to the list
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
quote_cost[Free] Quotes a tool before it is called — costs no credits and returns the credits a successful call spends (0 for every tool today), the scopes it needs, the rate limits it runs …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it [Free] Quotes a tool before it is called — costs no credits and returns the credits a successful call spends (0 for every tool today), the scopes it needs, the rate limits it runs under, its annotations and whether it accepts an idempotency_key. Nothing is charged on failure for any tool, so there is nothing to refund.
Annotations the server declares
- title: Quote what a tool call costs before making it
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_checklist_item[Sign-in required] Marks one checklist item done or not done — costs no credits and returns the item with its previous and new state.No findings
Why it is in this group
- The name "set_checklist_item" says "set": a word for a change.
Description, as the server wrote it [Sign-in required] Marks one checklist item done or not done — costs no credits and returns the item with its previous and new state. The item is addressed by the `id` get_checklist returns (stable even when the list changes) or by its `index` for items without an id; an item that does not exist is refused rather than created.
Annotations the server declares
- title: Tick or untick one checklist item
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
suggest_day_schedule[Sign-in required] Generates a 10–15 event wedding-day timeline in 24h time, shaped by the connected account’s venue, ceremony type and guest count — costs no credits (rate-limited…1 finding
Why it is in this group
- The name "suggest_day_schedule" says "schedule": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "suggest_day_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "suggest_day_schedule" says "schedule": a word for a change.
Description, as the server wrote it [Sign-in required] Generates a 10–15 event wedding-day timeline in 24h time, shaped by the connected account’s venue, ceremony type and guest count — costs no credits (rate-limited to 10 generations a minute) and returns the schedule for review; set_run_sheet is the separate call that writes one to the wedding.
Annotations the server declares
- title: Suggest a wedding-day timeline
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
update_provider_profile[Partner] Updates the connected provider’s listing — description, services, price range, website, Instagram, phone — as a merge patch — costs no credits and returns the fields chan…No findings
Why it is in this group
- The name "update_provider_profile" says "update": a word for a change.
Description, as the server wrote it [Partner] Updates the connected provider’s listing — description, services, price range, website, Instagram, phone — as a merge patch — costs no credits and returns the fields changed. Omitted fields are left alone; plan, verification, featuring and status are refused by name because they are sold or earned, never self-assigned.
Annotations the server declares
- title: Update your provider listing
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_wedding[Sign-in required] Updates the wedding’s details — date, venue, budget, guest count, theme, notes — as a merge patch — costs no credits and returns the fields changed and whether t…No findings
Why it is in this group
- The name "update_wedding" says "update": a word for a change.
Description, as the server wrote it [Sign-in required] Updates the wedding’s details — date, venue, budget, guest count, theme, notes — as a merge patch — costs no credits and returns the fields changed and whether the wedding was created by this call. Omitted fields are left alone; a value that contradicts what the couple said in nyna’s chat comes back as `conflict` and is written only when sent again within 15 minutes; share-control fields are refused by name, never silently dropped.
Annotations the server declares
- title: Update the couple's wedding details
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 15Claude Code: allow
get_checklist[Sign-in required] Reads the couple’s checklist — costs no credits and returns each item with its id, title, status, due date and category, plus the totals (all, done, to do) so no…No findings
Why it is in this group
- The name "get_checklist" says "get": a word for reading.
Description, as the server wrote it [Sign-in required] Reads the couple’s checklist — costs no credits and returns each item with its id, title, status, due date and category, plus the totals (all, done, to do) so nothing has to be counted.
Annotations the server declares
- title: Read the wedding checklist
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_credit_balance[Sign-in required] Reads the connected account’s credit balance — costs no credits and returns the balance, the price of each metered action in the nyna app, and the list of MCP to…No findings
Why it is in this group
- The name "get_credit_balance" says "get": a word for reading.
Description, as the server wrote it [Sign-in required] Reads the connected account’s credit balance — costs no credits and returns the balance, the price of each metered action in the nyna app, and the list of MCP tools that spend credits (none today).
Annotations the server declares
- title: Check the account credit balance
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_day_of_timeline[Sign-in required] Reads the wedding-day plan — costs no credits and returns the run sheet, vendor coordination status, guest figures, readiness score and flags, and the days remai…No findings
Why it is in this group
- The name "get_day_of_timeline" says "get": a word for reading.
Description, as the server wrote it [Sign-in required] Reads the wedding-day plan — costs no credits and returns the run sheet, vendor coordination status, guest figures, readiness score and flags, and the days remaining; what has not been filled in is named rather than guessed at.
Annotations the server declares
- title: Read the day-of plan and readiness
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_guests[Sign-in required] Reads the guest list — costs no credits and returns each guest with RSVP status, side and table, plus head-count totals by status so nothing has to be tallied.No findings
Why it is in this group
- The name "get_guests" says "get": a word for reading.
Description, as the server wrote it [Sign-in required] Reads the guest list — costs no credits and returns each guest with RSVP status, side and table, plus head-count totals by status so nothing has to be tallied.
Annotations the server declares
- title: Read the guest list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_provider[Free] Reads the indexed record of a single provider by the id search_providers returns — costs no credits and returns the name, address and nyna page (live Google rating, reviews,…No findings
Why it is in this group
- The name "get_provider" says "get": a word for reading.
Description, as the server wrote it [Free] Reads the indexed record of a single provider by the id search_providers returns — costs no credits and returns the name, address and nyna page (live Google rating, reviews, phone and website are on that page, not stored here under Google Places terms).
Annotations the server declares
- title: Get one provider record
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_provider_inquiries[Partner] Reads the enquiries couples sent through the connected provider’s nyna listing, newest first — costs no credits and returns each enquiry (sender name, message, wedding da…No findings
Why it is in this group
- The name "get_provider_inquiries" says "get": a word for reading.
Description, as the server wrote it [Partner] Reads the enquiries couples sent through the connected provider’s nyna listing, newest first — costs no credits and returns each enquiry (sender name, message, wedding date, status) plus totals by status so the pipeline needs no counting.
Annotations the server declares
- title: Read enquiries sent to your listing
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_provider_profile[Partner] Reads the connected provider account’s own listing — costs no credits and returns an `editable` half (exactly the fields update_provider_profile accepts, under the same n…No findings
Why it is in this group
- The name "get_provider_profile" says "get": a word for reading.
Description, as the server wrote it [Partner] Reads the connected provider account’s own listing — costs no credits and returns an `editable` half (exactly the fields update_provider_profile accepts, under the same names: description, services, price range, website, Instagram, phone) and a `derived` half nyna decides (business name, category, city, plan, verification, featuring, status).
Annotations the server declares
- title: Read your provider listing
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_provider_stats[Partner] Reads the connected provider’s listing performance over a chosen window — costs no credits and returns views, enquiries and conversion for the window actually measured, n…No findings
Why it is in this group
- The name "get_provider_stats" says "get": a word for reading.
Description, as the server wrote it [Partner] Reads the connected provider’s listing performance over a chosen window — costs no credits and returns views, enquiries and conversion for the window actually measured, naming any figure nyna does not collect rather than returning a null nobody can interpret.
Annotations the server declares
- title: Read your listing’s performance
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_wedding[Sign-in required] Reads the connected account’s wedding — costs no credits and returns the date, venue, budget, guest count and theme in a `writable` half (exactly the fields upda…No findings
Why it is in this group
- The name "get_wedding" says "get": a word for reading.
Description, as the server wrote it [Sign-in required] Reads the connected account’s wedding — costs no credits and returns the date, venue, budget, guest count and theme in a `writable` half (exactly the fields update_wedding accepts, under the same names) plus a `derived` half with days remaining, guest totals and checklist progress. A member’s role decides what comes back: the budget is omitted for a role without budget:view.
Annotations the server declares
- title: Read the couple's wedding
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_cities[Free] Lists the cities with an indexed provider directory, optionally filtered by region — costs no credits and returns city slugs (the `city` value search_providers takes), count…No findings
Why it is in this group
- The name "list_cities" says "list": a word for reading.
Description, as the server wrote it [Free] Lists the cities with an indexed provider directory, optionally filtered by region — costs no credits and returns city slugs (the `city` value search_providers takes), country, region, whether nyna features the city, and its nyna page.
Annotations the server declares
- title: List the cities nyna has provider coverage for
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_gift_categories[Free] Lists the gift categories and the countries the gift catalogue is localised for — costs no credits and returns the closed sets of slugs that search_gift_ideas takes as `cate…No findings
Why it is in this group
- The name "list_gift_categories" says "list": a word for reading.
Description, as the server wrote it [Free] Lists the gift categories and the countries the gift catalogue is localised for — costs no credits and returns the closed sets of slugs that search_gift_ideas takes as `category` and `country`.
Annotations the server declares
- title: List wedding-gift idea categories and countries
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_provider_categories[Free] Lists the kinds of wedding provider nyna indexes (venues, caterers, photographers…) — costs no credits and returns the closed set of category slugs that search_providers tak…No findings
Why it is in this group
- The name "list_provider_categories" says "list": a word for reading.
Description, as the server wrote it [Free] Lists the kinds of wedding provider nyna indexes (venues, caterers, photographers…) — costs no credits and returns the closed set of category slugs that search_providers takes as `category`, each with its English and French name and its nyna page. Any `category` value outside this set is refused with the valid list.
Annotations the server declares
- title: List the kinds of wedding provider nyna indexes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
parse_guest_list[Sign-in required] Parses a pasted guest list — one per line or comma-separated, with or without emails and phones — into structured guests with detected roles — costs no credits (…No findings
Why it is in this group
- The name "parse_guest_list" says "list": a word for reading.
Description, as the server wrote it [Sign-in required] Parses a pasted guest list — one per line or comma-separated, with or without emails and phones — into structured guests with detected roles — costs no credits (rate-limited to 10 a minute) and returns them for review; add_guests is the separate call that saves the ones kept.
Annotations the server declares
- title: Turn pasted text into a structured guest list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
search_gift_ideas[Free] Searches the curated wedding-gift ideas by category, country, title and price — costs no credits and returns up to 50 ideas with price, currency, image and a store link (som…No findings
Why it is in this group
- The name "search_gift_ideas" says "search": a word for reading.
Description, as the server wrote it [Free] Searches the curated wedding-gift ideas by category, country, title and price — costs no credits and returns up to 50 ideas with price, currency, image and a store link (some links carry an affiliate tag that never changes the ordering). Slugs are the ones list_gift_categories returns; any other value is refused with the valid set.
Annotations the server declares
- title: Search wedding-gift ideas
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_providers[Free] Searches the indexed wedding providers — venues, caterers, photographers, florists and more — by category, city or name — costs no credits and returns up to 50 providers wit…No findings
Why it is in this group
- The name "search_providers" says "search": a word for reading.
Description, as the server wrote it [Free] Searches the indexed wedding providers — venues, caterers, photographers, florists and more — by category, city or name — costs no credits and returns up to 50 providers with address, Google rating, review count and nyna page, plus how old the index is. `category` and `city` are slugs from list_provider_categories and list_cities; any other value is refused with the valid set rather than quietly ignored.
Annotations the server declares
- title: Search wedding providers by category and city
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 2.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http nyna https://nyna.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__nyna__list_provider_categories",
"mcp__nyna__list_cities",
"mcp__nyna__search_providers",
"mcp__nyna__get_provider",
"mcp__nyna__list_gift_categories",
"mcp__nyna__search_gift_ideas",
"mcp__nyna__get_wedding",
"mcp__nyna__get_checklist",
"mcp__nyna__get_guests",
"mcp__nyna__get_day_of_timeline",
"mcp__nyna__get_credit_balance",
"mcp__nyna__parse_guest_list",
"mcp__nyna__get_provider_profile",
"mcp__nyna__get_provider_inquiries",
"mcp__nyna__get_provider_stats"
],
"ask": [
"mcp__nyna__update_wedding",
"mcp__nyna__set_checklist_item",
"mcp__nyna__add_guests",
"mcp__nyna__suggest_menu",
"mcp__nyna__suggest_day_schedule",
"mcp__nyna__update_provider_profile",
"mcp__nyna__quote_cost"
],
"deny": [
"mcp__nyna__set_run_sheet"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as nyna. Review it before you use it.