Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,523Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:6ba0811be28995f3fa286f9c1ac5101f4fcd34b108b4e9ff104c53dd8179302e
What it is
What a remote MCP server returned when asked what it offers: 27 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Generate a curated fragrance collection from a natural-language prompt (e.g. 'office-safe designer scents under $100', 'niche oud masterpieces'). Returns 5–25 grounded picks with rationale. Requires Pro.\n\nSee also: `ai_recommend` for personalized picks · `fragrance_search` for manual filtering.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "prompt": { "description": "What kind of collection to create, e.g. 'niche oud masterpieces'", "maxLength": 200, "minLength": 1, "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "size": { "default": 10, "maximum": 25, "minimum": 5, "type": "integer" } }, "required": [ "prompt", "context" ], "type": "object" }, "name": "ai_collection", "outputSchema": null }, { "description": "Get personalized fragrance recommendations based on your taste profile. Optional natural-language prompt to guide results (e.g. 'something fresh for summer'). Requires Pro.\n\nSee also: `ai_wear_today` for what to wear right now · `user_get_cabinet` for your collection.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "limit": { "default": 12, "maximum": 50, "minimum": 1, "type": "integer" }, "prompt": { "description": "Optional natural-language guidance, e.g. 'fresh for summer office'", "maxLength": 200, "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "ai_recommend", "outputSchema": null }, { "description": "What should I wear today? Picks from your owned cabinet (CURRENT status only) based on optional prompt/weather. Returns nothing if your cabinet is empty. Requires Pro.\n\nSee also: `ai_recommend` for discovery beyond your cabinet · `user_get_cabinet` for your full collection.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "prompt": { "description": "Optional mood/occasion, e.g. 'dinner date'", "maxLength": 200, "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "weather": { "description": "Optional weather context, e.g. 'hot and humid'", "maxLength": 200, "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "ai_wear_today", "outputSchema": null }, { "description": "Get a brand profile (name, country, founded, description) and its top fragrances. Use the brand slug, e.g. 'maison-francis-kurkdjian'.\n\nSee also: `fragrance_search` with the `brand` filter to get the full paginated catalogue for this brand · `perfumer_get` if the brand has a known house perfumer.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "slug": { "description": "Brand slug, e.g. 'maison-francis-kurkdjian'", "type": "string" } }, "required": [ "slug", "context" ], "type": "object" }, "name": "brand_get", "outputSchema": null }, { "description": "Get a specific chart leaderboard by slug (e.g. 'top-rated', 'trending', 'top-rated-brand-chanel'). Returns ranked fragrances with scores and movement.\n\nSee also: `charts_list` to see all available charts · `fragrance_get` for the full profile of any fragrance on the chart.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "slug": { "description": "Chart slug, e.g. 'top-rated', 'trending', 'top-rated-brand-chanel'", "type": "string" } }, "required": [ "slug", "context" ], "type": "object" }, "name": "chart_get", "outputSchema": null }, { "description": "List all available Noteboxd chart rankings (e.g. top-rated, trending, top by brand). Returns chart names and summary stats.\n\nSee also: `chart_get` with a chart slug to see the full leaderboard · `trending` for a quick snapshot of what's hot.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "charts_list", "outputSchema": null }, { "description": "Compare two fragrances head-to-head — shared vs. distinct notes/accords/families, community and critic scores, audience, and an AI-written synthesis (shared character, differences, who each suits). Public, cached 7 days per pair.\n\nSee also: `fragrance_get` for full profiles · `fragrance_similar` for alternatives.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "fragrance_a": { "description": "First fragrance UUID", "type": "string" }, "fragrance_b": { "description": "Second fragrance UUID (must differ from fragrance_a)", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "fragrance_a", "fragrance_b", "context" ], "type": "object" }, "name": "fragrance_compare", "outputSchema": null }, { "description": "Get the full profile for a single fragrance by UUID or slug (e.g. 'tom-ford/oud-wood'). Returns notes pyramid, accords, FOTW classification, perfumer, community score, and more.\n\nSee also: `fragrance_similar` for fragrances with similar accord profiles · `fragrance_get_reviews` for community reviews · `fragrance_get_wearing_stats` for when people wear it.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "id": { "description": "Fragrance UUID", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "slug": { "description": "'brand-slug/fragrance-slug', e.g. 'tom-ford/oud-wood'", "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "fragrance_get", "outputSchema": null }, { "description": "Get paginated community reviews for a fragrance. Sort by helpfulness, recency, or score.\n\nSee also: `fragrance_get` for the fragrance's full profile · `fragrance_get_wearing_stats` for aggregate wearing data.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "cursor": { "type": "string" }, "id": { "description": "Fragrance UUID", "type": "string" }, "limit": { "default": 20, "maximum": 50, "minimum": 1, "type": "integer" }, "phase": { "description": "Filter by drydown phase", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "sort": { "default": "most_helpful", "enum": [ "most_helpful", "newest", "highest", "lowest" ], "type": "string" } }, "required": [ "id", "context" ], "type": "object" }, "name": "fragrance_get_reviews", "outputSchema": null }, { "description": "Aggregate wearing statistics for a fragrance — when people wear it, in what seasons, and mood tags. Free tier sees total check-ins only; Pro sees full breakdowns.\n\nSee also: `fragrance_get` for full profile · `fragrance_similar` for alternatives with similar profiles.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "id": { "description": "Fragrance UUID", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "id", "context" ], "type": "object" }, "name": "fragrance_get_wearing_stats", "outputSchema": null }, { "description": "Get a concise AI-generated digest summarizing a fragrance's community reviews — key themes, consensus, and standout opinions. Public, cached per fragrance.\n\nSee also: `fragrance_get_reviews` for individual reviews · `fragrance_get` for full profile.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "id": { "description": "Fragrance UUID to get the review digest for", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "id", "context" ], "type": "object" }, "name": "fragrance_review_digest", "outputSchema": null }, { "description": "Search and filter the Noteboxd fragrance encyclopedia. Requires a query or at least one filter — the full catalogue cannot be listed.\n\nTip: The `q` parameter searches fragrance names OR brand names independently. For best results with a known brand, use the `brand` slug filter instead of including the brand name in `q`.\n\nExamples:\n- \"Find woody fragrances above 8/10 from the 2010s\" → note='woody' + minScore=8 + decade='2010s'\n- \"Creed fragrances\" → brand='creed'\n- \"Bleu de Chanel\" → q='Bleu' + brand='chanel'\n\nSee also: `fragrance_get` for a single fragrance's full profile · `search` for universal cross-entity lookup (brands, notes, perfumers, collections in one call).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accord": { "description": "Accord slug filter, e.g. 'woody', 'gourmand'", "type": "string" }, "brand": { "description": "Brand slug filter, e.g. 'creed'", "type": "string" }, "concentration": { "enum": [ "EdP", "EdT", "Parfum", "EdC", "SdP", "EdF", "Cologne", "Other" ], "type": "string" }, "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "cursor": { "type": "string" }, "decade": { "enum": [ "1990s", "2000s", "2010s", "2020s" ], "type": "string" }, "gender": { "enum": [ "masculine", "feminine", "unisex" ], "type": "string" }, "limit": { "default": 24, "maximum": 50, "minimum": 1, "type": "integer" }, "minScore": { "description": "Minimum community score (0-10)", "maximum": 10, "minimum": 0, "type": "number" }, "note": { "description": "Note slug filter, e.g. 'oud', 'bergamot'", "type": "string" }, "query": { "description": "Free-text search across fragrance and brand names", "maxLength": 200, "minLength": 2, "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "sort": { "default": "score", "enum": [ "score", "reviews", "recent", "alpha" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "fragrance_search", "outputSchema": null }, { "description": "Find fragrances with similar accord profiles to a given fragrance. Returns ranked alternatives based on shared accords and character.\n\nSee also: `fragrance_get` for the source fragrance's full profile · `fragrance_search` with note/accord filters for manual exploration.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "id": { "description": "Fragrance UUID to find similar fragrances for", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "id", "context" ], "type": "object" }, "name": "fragrance_similar", "outputSchema": null }, { "description": "Get a note's profile (family, description, origin, extraction method) and top fragrances featuring it, sorted by community score. Use the note slug, e.g. 'oud', 'bergamot', 'iris'.\n\nSee also: `notes_list` to browse all notes by family/popularity · `fragrance_search` with the `note` filter to find fragrances featuring this note.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "note": { "description": "Note slug, e.g. 'oud', 'iris', 'ambroxan', 'bergamot'", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "note", "context" ], "type": "object" }, "name": "note_explore", "outputSchema": null }, { "description": "Open the Noteboxd app UI in ChatGPT. Call with no arguments to show the home screen (trending fragrances), with `query` to run a fragrance search inside the app, or with `fragrance` (slug or UUID) to show a fragrance profile. The app renders the returned result; keep the chat reply to one short line.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "fragrance": { "description": "Fragrance slug or UUID to show in the Noteboxd app.", "type": "string" }, "query": { "description": "Search query to run inside the Noteboxd app.", "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "noteboxd_open", "outputSchema": null }, { "description": "Browse fragrance notes — filter by family (e.g. 'woody', 'floral', 'citrus') and sort by popularity or name. Returns note names, families, colours, and fragrance counts.\n\nSee also: `note_explore` for a single note's full profile and top fragrances · `fragrance_search` with the `note` filter to find fragrances featuring a specific note.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "family": { "description": "Filter by note family, e.g. 'woody', 'floral', 'citrus', 'oriental'", "type": "string" }, "limit": { "default": 20, "maximum": 50, "minimum": 1, "type": "integer" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "sort": { "default": "popular", "enum": [ "popular", "alpha" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "notes_list", "outputSchema": null }, { "description": "Get a perfumer's profile (bio, country, house affiliation) and their top fragrances by community score.\n\nSee also: `fragrance_search` to find more fragrances by this perfumer · `brand_get` if you want the brand they work for.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "slug": { "description": "Perfumer slug, e.g. 'francis-kurkdjian', 'jacques-polge'", "type": "string" } }, "required": [ "slug", "context" ], "type": "object" }, "name": "perfumer_get", "outputSchema": null }, { "description": "Universal search across all Noteboxd entities — fragrances, brands, notes, perfumers, and collections — in a single call. Best for quick lookups and vague queries.\n\nExamples:\n- \"Jacques Polge\" → returns the perfumer\n- \"oud\" → returns the note, plus top oud fragrances\n- \"Bleu\" → returns Bleu de Chanel, Bleu de Dior, etc.\n\nSee also: `fragrance_search` for advanced fragrance-only filtering (by note, decade, score, concentration) · `trending` for what's popular right now.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "query": { "description": "Search query — searches across fragrances, brands, notes, perfumers, collections", "maxLength": 200, "minLength": 1, "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "query", "context" ], "type": "object" }, "name": "search", "outputSchema": null }, { "description": "What's trending on Noteboxd right now — top search queries, highest-rated fragrances, and most popular notes. No parameters needed.\n\nSee also: `charts_list` for full ranking leaderboards · `fragrance_search` to explore specific categories.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "trending", "outputSchema": null }, { "description": "Get your fragrance cabinet — fragrances you own, have tried, or finished. Requires a Pro account.\n\nSee also: `fragrance_get` for full details on any fragrance in your cabinet · `fragrance_similar` to find alternatives to your favourites · `user_get_wishlist` for fragrances you want to try.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "cursor": { "type": "string" }, "limit": { "default": 30, "maximum": 50, "minimum": 1, "type": "integer" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "sort": { "default": "recent", "enum": [ "recent", "score", "alpha" ], "type": "string" }, "status": { "default": "all", "enum": [ "CURRENT", "TRIED", "FINISHED", "all" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "user_get_cabinet", "outputSchema": null }, { "description": "Get your collections (fragrance lists). Optionally pass a collectionId to see its items. Requires a Pro account.\n\nSee also: `fragrance_get` for full details on any fragrance in a collection.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "collectionId": { "description": "If given, return items in this collection", "type": "string" }, "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "user_get_collections", "outputSchema": null }, { "description": "Get reviews you've written, or reviews you found helpful. Requires a Pro account.\n\nSee also: `fragrance_get_reviews` for community reviews on a specific fragrance.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "cursor": { "type": "string" }, "kind": { "default": "written", "enum": [ "written", "helpful" ], "type": "string" }, "limit": { "default": 20, "maximum": 50, "minimum": 1, "type": "integer" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "user_get_reviews", "outputSchema": null }, { "description": "Get your wearing check-in history over time. Requires a Pro account.\n\nSee also: `fragrance_get_wearing_stats` for aggregate community wearing data on a specific fragrance.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "cursor": { "type": "string" }, "limit": { "default": 30, "maximum": 90, "minimum": 1, "type": "integer" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "since": { "description": "ISO date lower bound", "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "user_get_wearing_history", "outputSchema": null }, { "description": "Get your fragrance wishlist. Requires a Pro account.\n\nSee also: `fragrance_get` for full details on any wishlist fragrance · `user_get_cabinet` for fragrances you already own.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "cursor": { "type": "string" }, "limit": { "default": 30, "maximum": 50, "minimum": 1, "type": "integer" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "user_get_wishlist", "outputSchema": null }, { "description": "Compare your taste with another user — compatibility score, shared and divergent notes/accords/families, and an optional AI overview. Requires Pro for the overview.\n\nSee also: `user_taste_public` for a user's top preferences · `user_taste_summary` for your own summary.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "target_user_id": { "description": "User ID to compare your taste with", "type": "string" }, "with_overview": { "default": true, "description": "Include AI-generated overview (requires Pro)", "type": "boolean" } }, "required": [ "target_user_id", "context" ], "type": "object" }, "name": "user_taste_compare", "outputSchema": null }, { "description": "Get a user's public taste profile — their top notes, accords, and families derived from their collection and reviews. No LLM call, deterministic.\n\nSee also: `user_taste_compare` for compatibility between two users.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" }, "username": { "description": "Username (handle) of the user to view", "type": "string" } }, "required": [ "username", "context" ], "type": "object" }, "name": "user_taste_public", "outputSchema": null }, { "description": "Get your AI-generated taste profile summary — a natural-language description of your fragrance preferences based on your cabinet, reviews, and likes. Requires Pro.\n\nSee also: `user_taste_public` for the deterministic breakdown · `user_taste_compare` for compatibility.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "context": { "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"", "type": "string" }, "response_format": { "default": "markdown", "enum": [ "markdown", "json" ], "type": "string" } }, "required": [ "context" ], "type": "object" }, "name": "user_taste_summary", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:6ba0811be28995f3fa286f9c1ac5101f4fcd34b108b4e9ff104c53dd8179302e | sha256sum