nyna — AI wedding planner

Wedding provider directory, gift ideas, and a couple's own wedding plan behind OAuth.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
74%
Qualität der Benennung
97%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~9,610Tokens (Tool-Definitionen)
~3.7 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (7.51% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "mcp": {
      "url": "https://nyna.ai/mcp"
    }
  }
}

Remote-Endpunkte

https://nyna.ai/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (23)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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 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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "total": {
      "type": "number"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "name_fr": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "name_fr",
          "url"
        ],
        "additionalProperties": true
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "total",
    "categories"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_cities(region, featured_only, limit)

[Free] Lists the featured cities — the ones with a nyna directory page — optionally filtered by region — costs no credits and returns city slugs, country, region and page. This is not the limit of coverage: search_providers takes any city, town or place name in the world as `city` ("Gardanne", "Bouc-Bel-Air 13320", "Istanbul"), and geocodes it once; the featured cities are simply the ones with a browsable page.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "enum": [
        "europe",
        "north-america",
        "asia",
        "oceania",
        "middle-east",
        "latin-america",
        "africa"
      ],
      "description": "europe | north-america | asia | oceania | middle-east | latin-america | africa"
    },
    "featured_only": {
      "type": "boolean",
      "description": "only the cities nyna features on the homepage"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "total": {
      "type": "number"
    },
    "returned": {
      "type": "number"
    },
    "any_city_accepted": {
      "type": "boolean"
    },
    "cities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "country",
          "region",
          "url"
        ],
        "additionalProperties": true
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "total",
    "returned",
    "any_city_accepted",
    "cities"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_providers(category, city, q, min_rating, radius_km, ...)

[Free] Searches wedding providers — venues, caterers, photographers, florists and more — around any city or place in the world, by category and free text — costs no credits and returns up to 50 providers with address, distance from the city centre, Google rating, review count and nyna page, plus how old the index is. `city` is any city, town or place name ("Aix-en-Provence", "Gardanne", "Bouc-Bel-Air 13320", "Istanbul"), resolved once and cached; only a name Google cannot place is refused. `category` is a slug from list_provider_categories; without one, the free text `q` is searched across every category. `q` matches names, specialities and cuisines ("halal", "turkish", "bastide", "château"): it is matched against indexed names, claimed listings (description, services) and the live Google search. `radius_km` (5–100, default 25) bounds the results; `sort` is relevance (claimed listings first, then nyna’s index, then live results), rating or reviews.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "venues",
        "caterers",
        "photographers",
        "florists",
        "dj-music",
        "videographers",
        "wedding-planners",
        "cake-pastry",
        "hair-makeup",
        "officiants",
        "transportation",
        "stationery",
        "jewelry",
        "decoration-rental"
      ],
      "description": "a slug from list_provider_categories; omitted = every category"
    },
    "city": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "any city, town or place name in the world, e.g. \"Gardanne\" or \"Bouc-Bel-Air 13320\"; adding the country helps for small towns"
    },
    "q": {
      "type": "string",
      "maxLength": 120,
      "description": "free text: a name, a speciality or a cuisine, e.g. \"halal\", \"turkish\", \"bastide\""
    },
    "min_rating": {
      "type": "number",
      "minimum": 0,
      "maximum": 5,
      "description": "only providers rated at or above this"
    },
    "radius_km": {
      "type": "number",
      "minimum": 5,
      "maximum": 100,
      "description": "search radius around the city centre in km, 5–100, default 25"
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "rating",
        "reviews"
      ],
      "description": "relevance (default) | rating | reviews"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "default 20"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "total": {
      "type": "number"
    },
    "returned": {
      "type": "number"
    },
    "radius_km": {
      "type": "number"
    },
    "sort": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "rating": {
            "type": [
              "number",
              "null"
            ]
          },
          "reviews": {
            "type": [
              "number",
              "null"
            ]
          },
          "distance_km": {
            "type": [
              "number",
              "null"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "address",
          "rating",
          "reviews",
          "distance_km",
          "url"
        ],
        "additionalProperties": true
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "total",
    "returned",
    "radius_km",
    "sort",
    "results"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_provider(id)

[Free] Reads one provider by the id search_providers returns — costs no credits and returns at least what the search result held: name, address, city, category, Google rating and review count (from nyna’s index, or live from Google Places when the index has none and today’s budget allows), whether the listing is claimed, and — for a claimed listing — the owner’s description, services, website and phone, plus the nyna page. Prices and availability are not held.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 3,
      "maxLength": 200,
      "description": "the provider id from search_providers"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "id": {
      "type": "string"
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "address": {
      "type": [
        "string",
        "null"
      ]
    },
    "rating": {
      "type": [
        "number",
        "null"
      ]
    },
    "reviews": {
      "type": [
        "number",
        "null"
      ]
    },
    "website": {
      "type": [
        "string",
        "null"
      ]
    },
    "phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "claimed": {
      "type": "boolean"
    },
    "url": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "id",
    "name",
    "address",
    "rating",
    "reviews",
    "website",
    "phone",
    "claimed",
    "url"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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 `category` and `country`.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name"
        ],
        "additionalProperties": true
      }
    },
    "countries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name"
        ],
        "additionalProperties": true
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "categories",
    "countries"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_gift_ideas(category, country, q, max_price, limit)

[Free] Searches the wedding-gift ideas couples added to their nyna registries, 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), plus `catalogue_size`, how many ideas the catalogue holds for that country: it is a grown catalogue, not a store feed, and is thin outside France. Slugs are the ones list_gift_categories returns; any other value is refused with the valid set.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "kitchen",
        "bedroom",
        "bathroom",
        "living-room",
        "garden",
        "travel",
        "experience",
        "electronics",
        "fitness",
        "books-games",
        "cash-fund",
        "other"
      ]
    },
    "country": {
      "type": "string",
      "enum": [
        "france",
        "united-kingdom",
        "germany",
        "spain",
        "italy",
        "portugal",
        "netherlands",
        "belgium",
        "switzerland",
        "united-states",
        "canada",
        "australia",
        "japan",
        "morocco",
        "tunisia",
        "turkey"
      ],
      "description": "defaults to france"
    },
    "q": {
      "type": "string",
      "maxLength": 120,
      "description": "free text matched against the title"
    },
    "max_price": {
      "type": "number",
      "minimum": 0
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "default 20"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "total": {
      "type": "number"
    },
    "returned": {
      "type": "number"
    },
    "catalogue_size": {
      "type": "number"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": [
              "number",
              "null"
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          },
          "image": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "price",
          "currency",
          "url",
          "image"
        ],
        "additionalProperties": true
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "total",
    "returned",
    "catalogue_size",
    "results"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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 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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "exists": {
      "type": "boolean"
    },
    "writable": {
      "type": "object",
      "additionalProperties": {}
    },
    "derived": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "exists"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_wedding(coupleNames, weddingDate, venue, venueName, theme, ...)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "coupleNames": {
      "type": "string",
      "maxLength": 200
    },
    "weddingDate": {
      "type": "string",
      "maxLength": 40,
      "description": "YYYY-MM-DD (e.g. 2027-06-12), or YYYY-MM when only the month is known (e.g. 2027-06), or YYYY for a year alone. Never invent a day the couple did not give. Empty string clears the date."
    },
    "venue": {
      "type": "string",
      "maxLength": 200
    },
    "venueName": {
      "type": "string",
      "maxLength": 200
    },
    "theme": {
      "type": "string",
      "maxLength": 200
    },
    "notes": {
      "type": "string",
      "maxLength": 4000
    },
    "budget": {
      "type": "number",
      "minimum": 0
    },
    "budgetMin": {
      "type": "number",
      "minimum": 0
    },
    "budgetMax": {
      "type": "number",
      "minimum": 0
    },
    "guestCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 5000
    },
    "ceremonyType": {
      "type": "string",
      "maxLength": 80
    },
    "ceremonyLocation": {
      "type": "string",
      "maxLength": 200
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "any string of your choosing; the first result under it is returned again for 10 minutes"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "created": {
      "type": "boolean"
    },
    "fields_changed": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_checklist(status, limit)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "all",
        "done",
        "todo"
      ],
      "description": "default all"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "totals": {
      "type": "object",
      "properties": {
        "all": {
          "type": "number"
        },
        "done": {
          "type": "number"
        },
        "todo": {
          "type": "number"
        }
      },
      "required": [
        "all",
        "done",
        "todo"
      ],
      "additionalProperties": true
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "totals",
    "items"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡set_checklist_item(id, index, done, idempotency_key)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "the id from get_checklist (stable)"
    },
    "index": {
      "type": "integer",
      "minimum": 0,
      "description": "the index from get_checklist, when the item has no id"
    },
    "done": {
      "type": "boolean"
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "any string of your choosing; the first result under it is returned again for 10 minutes"
    }
  },
  "required": [
    "done"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "was": {
      "type": "boolean"
    },
    "now": {
      "type": "boolean"
    },
    "title": {}
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_guests(rsvp, limit)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "rsvp": {
      "type": "string",
      "enum": [
        "all",
        "confirmed",
        "declined",
        "maybe",
        "pending"
      ],
      "description": "default all; the same values the app itself stores"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "totals": {
      "type": "object",
      "additionalProperties": {
        "type": "number"
      }
    },
    "guests": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "totals",
    "guests"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_guests(guests, idempotency_key)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "guests": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "side": {
            "type": "string",
            "enum": [
              "bride",
              "groom",
              "both"
            ]
          },
          "rsvp": {
            "type": "string",
            "enum": [
              "confirmed",
              "declined",
              "maybe",
              "pending"
            ]
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 100,
      "description": "up to 100 guests per call"
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "any string of your choosing; the first result under it is returned again for 10 minutes"
    }
  },
  "required": [
    "guests"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "added_count": {
      "type": "number"
    },
    "proposed_count": {
      "type": "number"
    },
    "skipped_as_duplicates": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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 remaining; what has not been filled in is named rather than guessed at.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "exists": {
      "type": "boolean"
    },
    "run_sheet_items": {
      "type": "number"
    },
    "days_until": {
      "type": [
        "number",
        "null"
      ]
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "exists"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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 tools that spend credits (none today).

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "balance": {
      "type": "number"
    },
    "mcp_tools_charging_credits": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "balance",
    "mcp_tools_charging_credits"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢suggest_menu(prompt, language, dietary)

[Sign-in required] Generates a wedding menu — cocktail, starters, mains, desserts, drinks, cake and a children’s menu — sized to the connected account’s guest count, theme and budget — costs no credits (rate-limited to 10 generations a minute) and returns the menu for review; nothing is written to the wedding.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 3,
      "maxLength": 1000,
      "description": "what the couple wants, e.g. \"seasonal, vegetarian-friendly, autumn wedding\""
    },
    "language": {
      "type": "string",
      "maxLength": 30,
      "description": "language for the reply; default English"
    },
    "dietary": {
      "type": "string",
      "maxLength": 300,
      "description": "dietary needs to accommodate"
    }
  },
  "required": [
    "prompt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "menu": {},
    "saved": {
      "type": "boolean"
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢suggest_day_schedule(prompt, language)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "minLength": 3,
      "maxLength": 1000,
      "description": "the shape of the day, e.g. \"church at 15:00, reception at the château, 120 guests\""
    },
    "language": {
      "type": "string",
      "maxLength": 30,
      "description": "language for the reply; default English"
    }
  },
  "required": [
    "prompt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "events": {
      "type": "number"
    },
    "schedule": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      }
    },
    "saved": {
      "type": "boolean"
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢parse_guest_list(text, language)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 2,
      "maxLength": 6000,
      "description": "the pasted list, up to 6000 characters"
    },
    "language": {
      "type": "string",
      "maxLength": 30
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "count": {
      "type": "number"
    },
    "guests": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      }
    },
    "saved": {
      "type": "boolean"
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴set_run_sheet(events, idempotency_key)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "description": {
            "type": "string",
            "maxLength": 500
          },
          "owner": {
            "type": "string",
            "maxLength": 160
          },
          "location": {
            "type": "string",
            "maxLength": 160
          },
          "photoUrl": {
            "type": "string",
            "format": "uri",
            "maxLength": 500
          }
        },
        "required": [
          "time",
          "title"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 60
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "any string of your choosing; the first result under it is returned again for 10 minutes"
    }
  },
  "required": [
    "events"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "events": {
      "type": "number"
    },
    "replaced_events": {
      "type": "number"
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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 names: description, services, price range, website, Instagram, phone, city) and a `derived` half nyna decides (business name, category, plan, verification, featuring, status).

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "editable": {
      "type": "object",
      "additionalProperties": {}
    },
    "derived": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "editable",
    "derived"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_provider_profile(description, website, instagram, phone, city, ...)

[Partner] Updates the connected provider’s listing — description, services, price range, website, Instagram, phone, city (any city in the world, as a display name) — 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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "website": {
      "anyOf": [
        {
          "type": "string",
          "const": ""
        },
        {
          "type": "string",
          "maxLength": 300,
          "format": "uri",
          "pattern": "^https?:\\/\\/[^\\s/$.?#][^\\s]*$"
        }
      ]
    },
    "instagram": {
      "type": "string",
      "maxLength": 120
    },
    "phone": {
      "type": "string",
      "maxLength": 40
    },
    "city": {
      "type": "string",
      "maxLength": 120
    },
    "services": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "maxItems": 30
    },
    "photos": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "format": "uri",
        "pattern": "^https?:\\/\\/[^\\s/$.?#][^\\s]*$"
      },
      "maxItems": 20
    },
    "priceRange": {
      "type": "object",
      "properties": {
        "min": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000000
        },
        "max": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000000
        },
        "currency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$"
        }
      },
      "required": [
        "min",
        "max",
        "currency"
      ],
      "additionalProperties": false
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "any string of your choosing; the first result under it is returned again for 10 minutes"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "fields_changed": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_provider_inquiries(status, limit)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "all",
        "new",
        "replied",
        "closed"
      ],
      "description": "default all"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "default 25"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "totals": {
      "type": "object",
      "additionalProperties": {
        "type": "number"
      }
    },
    "inquiries": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      }
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "totals",
    "inquiries"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_provider_stats(days)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 365,
      "description": "window in days; default 30"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "views": {
      "type": [
        "number",
        "null"
      ]
    },
    "inquiries": {
      "type": "number"
    },
    "conversion_pct": {
      "type": [
        "number",
        "null"
      ]
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "views",
    "inquiries",
    "conversion_pct"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢quote_cost(tool)

[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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "a tool name from tools/list"
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "one human sentence about the result"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": true
      },
      "description": "pages the user can open"
    },
    "changed": {
      "type": "boolean",
      "description": "whether anything was written"
    },
    "charged": {
      "type": "number",
      "description": "credits actually spent; 0 today for every tool"
    },
    "tool": {
      "type": "string"
    },
    "tier": {
      "type": "string"
    },
    "credits": {
      "type": "number"
    },
    "charged_on_failure": {
      "type": "boolean",
      "const": false
    },
    "scopes_required": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "rate_limits": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "accepts_idempotency_key": {
      "type": "boolean"
    }
  },
  "required": [
    "summary",
    "links",
    "changed",
    "charged",
    "tool",
    "tier",
    "credits",
    "charged_on_failure",
    "scopes_required",
    "rate_limits",
    "accepts_idempotency_key"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet23 Tools