SecretBox
Description
SecretBox helps users discover unique dining, hotel and spa experiences across France and Europe. Ask for restaurant experiences, romantic hotel stays or wellness moments in a specific destination. SecretBox provides curated experience suggestions and lets users explore them on the official SecretBox website.
Capabilities
Publisher Intelligence
Insights and recommendations for app publishers. See how your app performs and how to improve discoverability.
Server Status elasticsearch-catalog-server v1.0.0
https://mcp.api-and-you.com/mcp Last checked: 1d ago
Technical Details
Tools(2)
Showing 2 of 2 tools
| Tool | Description | Flags | Test | Last Tested | |
|---|---|---|---|---|---|
get_item | Use this when the user asks for more details, precise information, or wants to know more about a specific item already shown in previous search results. WHEN TO CALL: whenever the user refers to a specific result from the previous search — e.g. "tell me more about the first one", "I want details on that hotel", "what's included in this experience?", "more info on [establishment name]". Extract the `id` field from the matching result in the previous search response and pass it as `global_id`. DO NOT call this tool for a new search — use search_catalog instead. Response format: CRITICAL — Always write a full text response after the widget. The widget alone is never a complete answer. Your response must contain: 1. **Establishment name** as a bold heading. 2. **City / Region** on the next line. If a chef is available: "Paris / Île-de-France — Chef Alain Ducasse". 3. 2 lines of warm, conversational description written IN THE USER'S LANGUAGE based on the establishment data. The raw data is in French — you MUST translate and rephrase it in the user's language, never copy it as-is. Write as if personally recommending to a friend. NEVER mention the product name, product type, price or any product-related information — focus exclusively on the establishment itself. 4. If present: **[Gastronomic guides label] :** [gastronomic_distinctions joined by " | "] 5. If present: **[Hotel rating label] :** [hotel_rating] [cles_michelin + " at the Michelin Guide" (translated)] 6. If present: **[Affiliations label] :** [affiliations] 7. **[Discover this experience label] :** [product_url as a clickable Markdown link] IMPORTANT — Labels AND values MUST be written in the user's language, never in French unless the user writes in French. Use the same label and value translations as defined in search_catalog. Steps 1, 2, 3 and 7 are MANDATORY. Steps 4, 5, 6 only when data is available. | — | Not tested | — | |
search_catalog | Advanced search in the catalog with filters and multi-language support. Supports structured filters: - productType: "box" - city: Filter by city name - region: Filter by region - department: Filter by French department (e.g. "Jura", "Gironde", "Var") - shop_id: Filter by specific shop - priceMax: Maximum price in euros - deliveryMode: "mail", "email", or "onsite" - geo: Proximity search around a location. When the user says "aux alentours de", "près de", "autour de" a city, use this filter with the city's GPS coordinates and a radius (default "50km"). Example: "aux alentours de Lyon" → geo: {lat: 45.764, lon: 4.8357, radius: "50km"}. Do NOT combine geo with city filter. Supports locales: fr_FR, en_US, es_ES, etc. IMPORTANT — Language: Always detect the language of the user's message and respond in that same language. If the user writes in English, respond in English. If in Italian, respond in Italian. However, the "query" parameter must ALWAYS be translated to French before calling the tool, because the catalog data is indexed in French. Example: user says "luxury hotel spa" → query="hôtel spa luxe". Set the locale parameter accordingly (e.g. en_US for English, it_IT for Italian, de_DE for German, es_ES for Spanish). Response format: CRITICAL — You MUST ALWAYS write a FULL text response after the widget, regardless of how short or simple the user's query is. The widget alone is NEVER a complete answer. Even if the cards seem self-explanatory, you MUST write the intro AND one block per establishment as described below. Omitting the text response is a failure. Use rich Markdown formatting throughout: bold headings, line breaks, and relevant emojis (🍽️ 🏨 ⭐ 🌿 🎁 📍 👨🍳 …) to make the text visually engaging and pleasant to read. Your response after the widget must contain two parts: **Part 1 — Intro (mandatory)** Write one warm, personalized sentence. Address the user by first name if you know it. Always count and name **expériences** (experiences), never establishments, hotels, or restaurants. Mention both: the total number of matching experiences (field: total) and the number presented in the cards (field: results.length). Describe the experiences in context of the search (e.g. "dans un hôtel étoilé", "dans un restaurant gastronomique", "à Paris"…). Example tone: "Marie, j'ai trouvé 24 expériences dans un hôtel étoilé — voici une première sélection de 4 d'entre eux." **Part 2 — One block per establishment (mandatory, for every single result)** CRITICAL — For EACH item in results, without exception, you MUST write a block with ALL of the following in this exact order: 1. **Establishment name** as a bold heading with a relevant emoji (e.g. 🍽️ for restaurant, 🏨 for hotel, 🍷 for wine estate…). 2. 📍 **City / Region** — and if a chef is available: 👨🍳 **Chef [name]** on the same line. 3. 2 lines of warm, conversational description written by you IN THE USER'S LANGUAGE based on establishment_description, chef, location and distinctions. The raw data is in French — you MUST translate and rephrase it in the user's language, never copy it as-is. Write as if personally recommending to a friend. NEVER mention the product name, product type, price or any product-related information — focus exclusively on the establishment itself. 4. If present: ⭐ **[Gastronomic guides label] :** [gastronomic_distinctions joined by " | "] 5. If present: 🏨 **[Hotel rating label] :** [hotel_rating] [cles_michelin + " at the Michelin Guide" (translated)] 6. If present: 🤝 **[Affiliations label] :** [affiliations] 7. 🎁 **[Discover this experience label] :** [product_url as a clickable Markdown link] IMPORTANT — Labels AND values MUST be written in the user's language, never in French unless the user writes in French. Label translations (steps 4–7): - FR: Guides gastronomiques | Classement hôtel | Affiliations | Découvrir cette expérience - EN: Gastronomic guides | Hotel rating | Affiliations | Discover this experience - ES: Guías gastronómicas | Clasificación hotel | Afiliaciones | Descubrir esta experiencia - DE: Gastronomieführer | Hotelklassifizierung | Mitgliedschaften | Dieses Erlebnis entdecken - IT: Guide gastronomiche | Classificazione hotel | Affiliazioni | Scopri questa esperienza - NL: Gastronomische gidsen | Hotelclassificatie | Lidmaatschappen | Ontdek deze ervaring - PT: Guias gastronômicas | Classificação do hotel | Filiações | Descubra esta experiência Value translations — the raw data is always in French; translate it: - "X étoile(s) au Guide Michelin" → EN: "X Michelin star(s)" | ES: "X estrella(s) Michelin" | DE: "X Michelin-Stern(e)" | IT: "X stella/e Michelin" | NL: "X Michelin-ster(ren)" | PT: "X estrela(s) Michelin" - "Sélection Guide Michelin" → EN: "Michelin Guide Selection" | ES: "Selección Guía Michelin" | DE: "Michelin Guide Auswahl" | IT: "Selezione Guida Michelin" | NL: "Michelin Gids Selectie" | PT: "Seleção Guia Michelin" - "Bib Gourmand Guide Michelin" → translate only "Guide Michelin" part; "Bib Gourmand" stays as is - "Étoile Verte au Guide Michelin" → EN: "Michelin Green Star" | ES: "Estrella Verde Michelin" | DE: "Grüner Michelin-Stern" | IT: "Stella Verde Michelin" | NL: "Groene Michelin-ster" | PT: "Estrela Verde Michelin" - "X toques – Y/20 au Gault & Millau" → EN: "X toques – Y/20 at Gault & Millau" | translate only "au" ("at" / "en" / "beim" / "al" / "bij" / "no") - "X étoiles" (hotel rating) → EN: "X stars" | ES: "X estrellas" | DE: "X Sterne" | IT: "X stelle" | NL: "X sterren" | PT: "X estrelas" - "X Clés au Guide Michelin" → EN: "X Michelin Key(s)" | ES: "X Llave(s) Michelin" | DE: "X Michelin-Schlüssel" | IT: "X Chiave/i Michelin" | NL: "X Michelin-sleutel(s)" | PT: "X Chave(s) Michelin" Steps 1, 2, 3 and 7 are MANDATORY for every establishment. Steps 4, 5, 6 are displayed only when data is available. Never skip an establishment. Never omit any mandatory step. Use a horizontal rule (---) between each establishment block for clear visual separation. After the last block, add one short conversational closing sentence with a follow-up question. Examples: - Search "spa" in Paris: query="spa", filters={city:"Paris"} - Experiences under 50€: query="expérience", filters={priceMax:50} - Experiences with email delivery: query="expérience", filters={deliveryMode:"email"} | — | Not tested | — |
Discoverability Score
Fair
55 of 100 — how easily AI agents find your app
- Description quality20/20
- Example prompts0/20
- Keyword coverage0/15
- Tool metadata16/20
- Visual assets5/20
- Endpoint health10/10
- Data freshness15/15
How to Improve
Add at least 2 example prompts. Prompt examples strongly improve app matching and click-through intent.
Increase keyword coverage (discovery + trigger) to improve retrieval for long-tail queries.
Provide a stable HTTPS logo URL (avoid connectors://) so cards render consistently across clients.
Add at least 2 screenshots that show real workflows to increase confidence and conversion.
Technical Details
- Status
- ENABLED
- Type
- AI-Powered App
- Auth
- Open Access
- Listed on
- ChatGPT
- Added
- March 11, 2026
- Last synced
- 3d ago
- Last checked
- 1d ago
- Version
- 1.0.0
- Distribution
- Ecosystem Directory