Capucine
Capucine, styliste IA ScoreLook : looks sourcés, météo, hubs pièces, critères shopping.
Should I use this
Quality & Safety
Findings (13)
- LOWin search
- LOWin shopping_criteria
- LOWin shopping_search
- LOWin shop_the_look
- LOWin get_piece_hub
- LOWin ask_capucine
- LOWin cite_sources
- LOWin classify_circumstance
- LOWin weather_looks
- LOWin get_weather_context
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"capucine": {
"url": "https://scorelook.fr/mcp"
}
}
}Remote endpoints
https://scorelook.fr/mcpstreamable-httpWhat it can do
Tool inventory
Tools (17)
🟢manifest(detail_level)
Je présente ma surface publique : outils, limites de sécurité, pages à citer. Read-only. Le paiement public n'est pas ouvert tant que public_status ne le dit pas.
Input Schema
{
"type": "object",
"properties": {
"detail_level": {
"default": "brief",
"enum": [
"brief",
"full"
],
"title": "Detail Level",
"type": "string"
}
},
"title": "manifestArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Version"
},
"server_build": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Server Build"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"read_only": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Read Only"
},
"payment_open": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Payment Open"
},
"tools": {
"items": {
"type": "string"
},
"title": "Tools",
"type": "array"
},
"key_pages": {
"items": {
"type": "string"
},
"title": "Key Pages",
"type": "array"
},
"safety": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Safety"
},
"clients": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Clients"
},
"origin_policy": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Origin Policy"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "ManifestOut"
}🟢search(query, limit, content_type, detail_level)
Je cherche dans mes hubs, articles et looks. Appelle-moi avant de répondre pour citer de vraies pages ScoreLook. Préfère content_type=article ou piece_hub.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "Sujet de stylisme à chercher.",
"minLength": 1,
"title": "Query",
"type": "string"
},
"limit": {
"default": 4,
"description": "Number of items, 1-12.",
"maximum": 12,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"content_type": {
"default": "all",
"enum": [
"all",
"article",
"look",
"piece_hub"
],
"title": "Content Type",
"type": "string"
},
"detail_level": {
"default": "brief",
"enum": [
"brief",
"full"
],
"title": "Detail Level",
"type": "string"
}
},
"required": [
"query"
],
"title": "searchArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"out_of_scope": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Out Of Scope"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"results": {
"items": {
"$ref": "#/$defs/SearchHitOut"
},
"title": "Results",
"type": "array"
},
"matched_terms": {
"items": {
"type": "string"
},
"title": "Matched Terms",
"type": "array"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
}
},
"required": [
"success"
],
"$defs": {
"SearchHitOut": {
"additionalProperties": true,
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Type"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"match_score": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Match Score"
}
},
"title": "SearchHitOut",
"type": "object"
}
},
"additionalProperties": true,
"title": "SearchOut"
}🟢fetch(id)
Je lis un article ou un look public par l'id renvoyé par search. Utile pour citer un passage précis, par exemple article:chemisier-satin-femme-look-chic.
Input Schema
{
"type": "object",
"properties": {
"id": {
"description": "Identifiant renvoyé par search, ex. article:chemisier-satin-femme-look-chic.",
"minLength": 3,
"title": "Id",
"type": "string"
}
},
"required": [
"id"
],
"title": "fetchArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "FetchOut"
}🟢recommend_look(piece, color, occasion, audacity, season, ...)
Je compose une silhouette complète : look nommé, capsule (pièce, ancre, chaussures, sac, un bijou), à surveiller. Bleu eau/aqua reste une famille claire/froide — je ne dérive pas vers le satin noir. Si la teinte n'est pas au catalogue : limits[] + look éditorial.
Input Schema
{
"type": "object",
"properties": {
"piece": {
"description": "Pièce, matière ou intention — chemisier, jupe cuir, satin…",
"minLength": 1,
"title": "Piece",
"type": "string"
},
"color": {
"default": "",
"title": "Color",
"type": "string"
},
"occasion": {
"default": "",
"title": "Occasion",
"type": "string"
},
"audacity": {
"default": "",
"title": "Audacity",
"type": "string"
},
"season": {
"default": "",
"title": "Season",
"type": "string"
},
"material": {
"default": "",
"title": "Material",
"type": "string"
},
"detail_level": {
"default": "brief",
"enum": [
"brief",
"full"
],
"title": "Detail Level",
"type": "string"
},
"include_conversion": {
"default": false,
"title": "Include Conversion",
"type": "boolean"
}
},
"required": [
"piece"
],
"title": "recommend_lookArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"out_of_scope": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Out Of Scope"
},
"rule_match": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rule Match"
},
"recommendation": {
"anyOf": [
{
"type": "string"
},
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Recommendation"
},
"capsule": {
"items": {},
"title": "Capsule",
"type": "array"
},
"avoid": {
"items": {},
"title": "Avoid",
"type": "array"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
},
"action": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Action"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "RecommendLookOut"
}🟢shopping_criteria(query, piece, color, occasion, season, ...)
Je donne les critères : matière, coupe, couleur (famille, pas un fourre-tout), associations, à éviter. Critères d'abord — jamais une copie exacte ni un SKU inventé.
Input Schema
{
"type": "object",
"properties": {
"query": {
"default": "",
"title": "Query",
"type": "string"
},
"piece": {
"default": "",
"title": "Piece",
"type": "string"
},
"color": {
"default": "",
"title": "Color",
"type": "string"
},
"occasion": {
"default": "",
"title": "Occasion",
"type": "string"
},
"season": {
"default": "",
"title": "Season",
"type": "string"
},
"material": {
"default": "",
"title": "Material",
"type": "string"
}
},
"title": "shopping_criteriaArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "ShoppingCriteriaOut"
}🟢shopping_search(query, limit, include_products)
Je cherche des pistes proches de l'intention. Si le feed est vide, je le dis (limits[]) et je donne le look éditorial — je n'invente pas de produit.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "Intention d'achat ou pièce.",
"minLength": 1,
"title": "Query",
"type": "string"
},
"limit": {
"default": 4,
"description": "Number of items, 1-12.",
"maximum": 12,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"include_products": {
"default": true,
"title": "Include Products",
"type": "boolean"
}
},
"required": [
"query"
],
"title": "shopping_searchArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"products": {
"items": {
"$ref": "#/$defs/ProductLeadOut"
},
"title": "Products",
"type": "array"
},
"product_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Product Count"
},
"disclaimer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Disclaimer"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
}
},
"required": [
"success"
],
"$defs": {
"ProductLeadOut": {
"additionalProperties": true,
"properties": {
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"merchant": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Merchant"
},
"price": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Currency"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"image_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Url"
},
"checked_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Checked At"
},
"availability_status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Availability Status"
},
"availability_checked_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Availability Checked At"
},
"price_type": {
"anyOf": [
{
"enum": [
"current",
"sale",
"observed"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Type"
},
"match_score": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Match Score"
},
"match_reasons": {
"items": {
"type": "string"
},
"title": "Match Reasons",
"type": "array"
},
"link_health": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Link Health"
},
"browser_only": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Browser Only"
},
"affiliate": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Affiliate"
},
"disclosure": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Disclosure"
}
},
"title": "ProductLeadOut",
"type": "object"
}
},
"additionalProperties": true,
"title": "ShoppingSearchOut"
}🟢shop_the_look(piece, limit, include_products)
Je relie une pièce signature à son look Capucine et, s'il y en a, à des pistes marchandes déjà vérifiées. Hub chemisier = article satin + capsule, même si le feed est vide.
Input Schema
{
"type": "object",
"properties": {
"piece": {
"description": "Slug ou langage naturel : chemisier, jupe-cuir, blouse…",
"minLength": 1,
"title": "Piece",
"type": "string"
},
"limit": {
"default": 4,
"description": "Number of items, 1-12.",
"maximum": 12,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"include_products": {
"default": true,
"title": "Include Products",
"type": "boolean"
}
},
"required": [
"piece"
],
"title": "shop_the_lookArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"piece": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Piece"
},
"products": {
"items": {
"$ref": "#/$defs/ProductLeadOut"
},
"title": "Products",
"type": "array"
},
"product_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Product Count"
},
"disclaimer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Disclaimer"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
}
},
"required": [
"success"
],
"$defs": {
"ProductLeadOut": {
"additionalProperties": true,
"properties": {
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"merchant": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Merchant"
},
"price": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Currency"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"image_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Url"
},
"checked_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Checked At"
},
"availability_status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Availability Status"
},
"availability_checked_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Availability Checked At"
},
"price_type": {
"anyOf": [
{
"enum": [
"current",
"sale",
"observed"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Type"
},
"match_score": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Match Score"
},
"match_reasons": {
"items": {
"type": "string"
},
"title": "Match Reasons",
"type": "array"
},
"link_health": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Link Health"
},
"browser_only": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Browser Only"
},
"affiliate": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Affiliate"
},
"disclosure": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Disclosure"
}
},
"title": "ProductLeadOut",
"type": "object"
}
},
"additionalProperties": true,
"title": "ShopTheLookOut"
}🟢get_piece_hub(piece, include_products)
Je sors le dossier complet d'une pièce signature : définition, capsules, FAQ, articles. Chemisier / blouse / chemise → hub chemisier. Si le shopping est vide, le look et les sources restent.
Input Schema
{
"type": "object",
"properties": {
"piece": {
"description": "Slug ou langage naturel (chemisier, blouse, jupe cuir → jupe-cuir).",
"minLength": 1,
"title": "Piece",
"type": "string"
},
"include_products": {
"default": true,
"title": "Include Products",
"type": "boolean"
}
},
"required": [
"piece"
],
"title": "get_piece_hubArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"piece": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Piece"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"definition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Definition"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "PieceHubOut"
}🟢ask_capucine(question, detail_level, include_products, include_conversion, limit)
Je diagnostique une question de style : look nommé, capsule (pièce, ancre, chaussures, sac, un bijou), à surveiller, sources. Les détails personnels restent sur le serveur via un jeton opaque.
Input Schema
{
"type": "object",
"properties": {
"question": {
"title": "Question",
"type": "string"
},
"detail_level": {
"default": "brief",
"enum": [
"brief",
"full"
],
"title": "Detail Level",
"type": "string"
},
"include_products": {
"default": false,
"title": "Include Products",
"type": "boolean"
},
"include_conversion": {
"default": false,
"title": "Include Conversion",
"type": "boolean"
},
"limit": {
"default": 4,
"description": "Number of items, 1-12.",
"maximum": 12,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"required": [
"question"
],
"title": "ask_capucineArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"out_of_scope": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Out Of Scope"
},
"diagnosis": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Diagnosis"
},
"recommendation": {
"anyOf": [
{
"type": "string"
},
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Recommendation"
},
"capsule": {
"items": {},
"title": "Capsule",
"type": "array"
},
"avoid": {
"items": {},
"title": "Avoid",
"type": "array"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
},
"action": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Action"
},
"rule_match": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rule Match"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "AskCapucineOut"
}🟢list_piece_hubs
Je liste mes dossiers pièces (/pieces/*) : chemisier, jupe cuir, pantalon cuir, maille, soirée… Pour citer un hub précis.
Input Schema
{
"type": "object",
"properties": {},
"title": "list_piece_hubsArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"hubs": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Hubs",
"type": "array"
},
"count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Count"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "PieceHubListOut"
}🟢cite_sources(topic, limit)
Je choisis les URLs ScoreLook à citer. Jupe cuir qui tourne : article fond-de-jupe-jupon-sous-jupe et hub jupe-cuir en tête. Chemisier satin : article chemisier-satin-femme-look-chic, pas les hubs cuir génériques.
Input Schema
{
"type": "object",
"properties": {
"topic": {
"default": "",
"title": "Topic",
"type": "string"
},
"limit": {
"default": 4,
"description": "Number of items, 1-12.",
"maximum": 12,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"title": "cite_sourcesArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"out_of_scope": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Out Of Scope"
},
"topic": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Topic"
},
"sources": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Sources",
"type": "array"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
},
"matched_terms": {
"items": {
"type": "string"
},
"title": "Matched Terms",
"type": "array"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "CiteSourcesOut"
}🟢public_status
Statut commercial public seulement. Je n'invente jamais un paiement ouvert. Aucun chemin opérateur.
Input Schema
{
"type": "object",
"properties": {},
"title": "public_statusArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"payment_open": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Payment Open"
},
"public_blockers": {
"items": {
"type": "string"
},
"title": "Public Blockers",
"type": "array"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Version"
},
"checked_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Checked At"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "PublicStatusOut"
}🟢classify_circumstance(question, occasion, transport, piece, at)
Je classe une demande (dîner, bureau, mariage, week-end…) : créneau, marche, pièce, ville. Pas encore de météo. Enchaîne avec recommend_weather_look.
Input Schema
{
"type": "object",
"properties": {
"question": {
"title": "Question",
"type": "string"
},
"occasion": {
"default": "",
"title": "Occasion",
"type": "string"
},
"transport": {
"default": "",
"title": "Transport",
"type": "string"
},
"piece": {
"default": "",
"title": "Piece",
"type": "string"
},
"at": {
"default": "",
"title": "At",
"type": "string"
}
},
"required": [
"question"
],
"title": "classify_circumstanceArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"circumstance": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Circumstance"
},
"extracted": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Extracted"
},
"outdoor_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Outdoor Minutes"
},
"indoor_minutes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Indoor Minutes"
},
"needs_location": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Needs Location"
},
"next_tool": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Next Tool"
},
"page": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Page"
},
"citation_urls": {
"items": {
"type": "string"
},
"title": "Citation Urls",
"type": "array"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "CircumstanceOut"
}🟢weather_looks(city, latitude, longitude, days)
Looks matin, midi, soir selon la météo locale. Ville/CP OU latitude+longitude. Je ne suppose jamais Paris.
Input Schema
{
"type": "object",
"properties": {
"city": {
"default": "",
"title": "City",
"type": "string"
},
"latitude": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Latitude, -90 to 90. Requires longitude.",
"title": "Latitude"
},
"longitude": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Longitude, -180 to 180. Requires latitude.",
"title": "Longitude"
},
"days": {
"default": 5,
"description": "Forecast days, 1 to 7.",
"maximum": 7,
"minimum": 1,
"title": "Days",
"type": "integer"
}
},
"title": "weather_looksArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"suggestions": {
"items": {
"$ref": "#/$defs/LocationSuggestionOut"
},
"title": "Suggestions",
"type": "array"
},
"place": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Place"
},
"timezone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Timezone"
},
"weather_source": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Weather Source"
},
"fetched_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Fetched At"
},
"days": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Days",
"type": "array"
},
"page": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Page"
}
},
"required": [
"success"
],
"$defs": {
"LocationSuggestionOut": {
"additionalProperties": true,
"properties": {
"name": {
"default": "",
"title": "Name",
"type": "string"
},
"admin1": {
"default": "",
"title": "Admin1",
"type": "string"
},
"admin2": {
"default": "",
"title": "Admin2",
"type": "string"
},
"country": {
"default": "",
"title": "Country",
"type": "string"
},
"label": {
"default": "",
"title": "Label",
"type": "string"
}
},
"title": "LocationSuggestionOut",
"type": "object"
}
},
"additionalProperties": true,
"description": "Plan matin/midi/soir or a structured location error. Never a silent Paris fallback.",
"title": "WeatherLooksOut"
}🟢get_weather_context(location, latitude, longitude, at, outdoor_minutes, ...)
Faits météo seulement. Ville/CP OU lat+lon. question= peut porter la ville. Pas de repli silencieux sur Paris.
Input Schema
{
"type": "object",
"properties": {
"location": {
"default": "",
"title": "Location",
"type": "string"
},
"latitude": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Latitude, -90 to 90. Requires longitude.",
"title": "Latitude"
},
"longitude": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Longitude, -180 to 180. Requires latitude.",
"title": "Longitude"
},
"at": {
"default": "",
"description": "ISO 8601 or natural French time. Unreadable values return invalid_datetime.",
"title": "At",
"type": "string"
},
"outdoor_minutes": {
"default": 20,
"description": "Minutes outside, 0 to 180.",
"maximum": 180,
"minimum": 0,
"title": "Outdoor Minutes",
"type": "integer"
},
"occasion": {
"default": "",
"title": "Occasion",
"type": "string"
},
"question": {
"default": "",
"title": "Question",
"type": "string"
}
},
"title": "get_weather_contextArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"suggestions": {
"items": {
"$ref": "#/$defs/LocationSuggestionOut"
},
"title": "Suggestions",
"type": "array"
},
"location": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Location"
},
"weather": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Weather"
},
"timezone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Timezone"
},
"source": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Source"
},
"limits": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Limits"
},
"privacy": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Privacy"
}
},
"required": [
"success"
],
"$defs": {
"LocationSuggestionOut": {
"additionalProperties": true,
"properties": {
"name": {
"default": "",
"title": "Name",
"type": "string"
},
"admin1": {
"default": "",
"title": "Admin1",
"type": "string"
},
"admin2": {
"default": "",
"title": "Admin2",
"type": "string"
},
"country": {
"default": "",
"title": "Country",
"type": "string"
},
"label": {
"default": "",
"title": "Label",
"type": "string"
}
},
"title": "LocationSuggestionOut",
"type": "object"
}
},
"additionalProperties": true,
"title": "WeatherContextOut"
}🟢recommend_weather_look(location, latitude, longitude, at, occasion, ...)
Je croise la circonstance et le bulletin, ou je dis si la pièce tient. Passe question=. Jamais Paris par défaut. La ville n'est pas stockée.
Input Schema
{
"type": "object",
"properties": {
"location": {
"default": "",
"title": "Location",
"type": "string"
},
"latitude": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Latitude, -90 to 90. Requires longitude.",
"title": "Latitude"
},
"longitude": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Longitude, -180 to 180. Requires latitude.",
"title": "Longitude"
},
"at": {
"default": "",
"description": "ISO 8601 or natural French time.",
"title": "At",
"type": "string"
},
"occasion": {
"default": "",
"title": "Occasion",
"type": "string"
},
"outdoor_minutes": {
"default": 20,
"description": "Minutes outside, 0 to 180.",
"maximum": 180,
"minimum": 0,
"title": "Outdoor Minutes",
"type": "integer"
},
"transport": {
"default": "",
"title": "Transport",
"type": "string"
},
"piece": {
"default": "",
"title": "Piece",
"type": "string"
},
"question": {
"default": "",
"title": "Question",
"type": "string"
}
},
"title": "recommend_weather_lookArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"suggestions": {
"items": {
"$ref": "#/$defs/LocationSuggestionOut"
},
"title": "Suggestions",
"type": "array"
},
"location_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Location Label"
},
"location": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Location"
},
"timezone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Timezone"
},
"circumstance": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Circumstance"
},
"weather": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Weather"
},
"recommendation": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Recommendation"
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Reason"
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Image"
},
"action": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Action"
},
"source": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Source"
},
"limits": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Limits"
},
"privacy": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Privacy"
}
},
"required": [
"success"
],
"$defs": {
"LocationSuggestionOut": {
"additionalProperties": true,
"properties": {
"name": {
"default": "",
"title": "Name",
"type": "string"
},
"admin1": {
"default": "",
"title": "Admin1",
"type": "string"
},
"admin2": {
"default": "",
"title": "Admin2",
"type": "string"
},
"country": {
"default": "",
"title": "Country",
"type": "string"
},
"label": {
"default": "",
"title": "Label",
"type": "string"
}
},
"title": "LocationSuggestionOut",
"type": "object"
}
},
"additionalProperties": true,
"title": "WeatherLookOut"
}🟢llms_guide
Carte ScoreLook pour les assistants : pages, hubs (dont chemisier), éditorial, règles de citation.
Input Schema
{
"type": "object",
"properties": {},
"title": "llms_guideArguments"
}Output Schema
{
"type": "object",
"properties": {
"success": {
"title": "Success",
"type": "boolean"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"incident_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Incident Id"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"llms_txt_chars": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Llms Txt Chars"
}
},
"required": [
"success"
],
"additionalProperties": true,
"title": "LlmsGuideOut"
}Community
Evidence