MCP-Server

Capucine

fr.scorelook/capucine
Commerce & Retail Design & Kreativ Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Provides sourced personal styling guidance, weather-aware outfit recommendations, apparel shopping criteria, and links to verified shopping opportunities.

annuler_action
J'annule une demande preparee
J'annule une demande preparee non confirmee.
Eingabeschema
{'type': 'object', 'title': 'annuler_actionArguments', 'required': ['action_id'], 'properties': {'action_id': {'type': 'integer', 'title': 'Action Id'}}}
ask_capucine
Je diagnostique le style
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'ask_capucineArguments', 'required': ['question'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 4, 'maximum': 12, 'minimum': 1, 'description': 'Number of items, 1-12.'}, 'question': {'type': 'string', 'title': 'Question'}, 'detail_level': {'enum': ['brief', 'full'], 'type': 'string', 'title': 'Detail Level', 'default': 'brief'}, 'include_products': {'type': 'boolean', 'title': 'Include Products', 'default': False}, 'include_conversion': {'type': 'boolean', 'title': 'Include Conversion', 'default': False}}}
Ausgabeschema
{'type': 'object', 'title': 'AskCapucineOut', 'required': ['success'], 'properties': {'avoid': {'type': 'array', 'items': {}, 'title': 'Avoid'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'action': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Action', 'default': None}, 'capsule': {'type': 'array', 'items': {}, 'title': 'Capsule'}, 'success': {'type': 'boolean', 'title': 'Success'}, 'diagnosis': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Diagnosis', 'default': None}, 'rule_match': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rule Match', 'default': None}, 'out_of_scope': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Out Of Scope', 'default': None}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}, 'recommendation': {'anyOf': [{'type': 'string'}, {'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Recommendation', 'default': None}}, 'additionalProperties': True}
cite_sources
Je cite mes sources
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'cite_sourcesArguments', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 4, 'maximum': 12, 'minimum': 1, 'description': 'Number of items, 1-12.'}, 'topic': {'type': 'string', 'title': 'Topic', 'default': ''}}}
Ausgabeschema
{'type': 'object', 'title': 'CiteSourcesOut', 'required': ['success'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'topic': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Topic', 'default': None}, 'sources': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Sources'}, 'success': {'type': 'boolean', 'title': 'Success'}, 'out_of_scope': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Out Of Scope', 'default': None}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}, 'matched_terms': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Matched Terms'}}, 'additionalProperties': True}
classify_circumstance
Je classe la circonstance
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'classify_circumstanceArguments', 'required': ['question'], 'properties': {'at': {'type': 'string', 'title': 'At', 'default': ''}, 'piece': {'type': 'string', 'title': 'Piece', 'default': ''}, 'occasion': {'type': 'string', 'title': 'Occasion', 'default': ''}, 'question': {'type': 'string', 'title': 'Question'}, 'transport': {'type': 'string', 'title': 'Transport', 'default': ''}}}
Ausgabeschema
{'type': 'object', 'title': 'CircumstanceOut', 'required': ['success'], 'properties': {'page': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Page', 'default': None}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'extracted': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Extracted', 'default': None}, 'next_tool': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Next Tool', 'default': None}, 'circumstance': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Circumstance', 'default': None}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}, 'indoor_minutes': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Indoor Minutes', 'default': None}, 'needs_location': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Needs Location', 'default': None}, 'outdoor_minutes': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Outdoor Minutes', 'default': None}}, 'additionalProperties': True}
confirmer_action
Je confirme une demande preparee
J'execute une demande preparee APRES confirmation explicite du visiteur (enregistre la demande et previent l'equipe).
Eingabeschema
{'type': 'object', 'title': 'confirmer_actionArguments', 'required': ['action_id'], 'properties': {'action_id': {'type': 'integer', 'title': 'Action Id'}}}
fetch
Je lis une source
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'fetchArguments', 'required': ['id'], 'properties': {'id': {'type': 'string', 'title': 'Id', 'minLength': 3, 'description': 'Identifiant renvoyé par search, ex. article:chemisier-satin-femme-look-chic.'}}}
Ausgabeschema
{'type': 'object', 'title': 'FetchOut', 'required': ['success'], 'properties': {'id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Id', 'default': None}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}}, 'additionalProperties': True}
get_piece_hub
Je sors le dossier pièce
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'get_piece_hubArguments', 'required': ['piece'], 'properties': {'piece': {'type': 'string', 'title': 'Piece', 'minLength': 1, 'description': 'Slug ou langage naturel (chemisier, blouse, jupe cuir → jupe-cuir).'}, 'include_products': {'type': 'boolean', 'title': 'Include Products', 'default': True}}}
Ausgabeschema
{'type': 'object', 'title': 'PieceHubOut', 'required': ['success'], 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url', 'default': None}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'piece': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Piece', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'definition': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Definition', 'default': None}}, 'additionalProperties': True}
get_weather_context
Je lis le bulletin
Faits météo seulement. Ville/CP OU lat+lon. question= peut porter la ville. Pas de repli silencieux sur Paris.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'title': 'get_weather_contextArguments', 'properties': {'at': {'type': 'string', 'title': 'At', 'default': '', 'description': 'ISO 8601 or natural French time. Unreadable values return invalid_datetime.'}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Latitude', 'default': None, 'description': 'Latitude, -90 to 90. Requires longitude.'}, 'location': {'type': 'string', 'title': 'Location', 'default': ''}, 'occasion': {'type': 'string', 'title': 'Occasion', 'default': ''}, 'question': {'type': 'string', 'title': 'Question', 'default': ''}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Longitude', 'default': None, 'description': 'Longitude, -180 to 180. Requires latitude.'}, 'outdoor_minutes': {'type': 'integer', 'title': 'Outdoor Minutes', 'default': 20, 'maximum': 180, 'minimum': 0, 'description': 'Minutes outside, 0 to 180.'}}}
Ausgabeschema
{'type': 'object', '$defs': {'LocationSuggestionOut': {'type': 'object', 'title': 'LocationSuggestionOut', 'properties': {'name': {'type': 'string', 'title': 'Name', 'default': ''}, 'label': {'type': 'string', 'title': 'Label', 'default': ''}, 'admin1': {'type': 'string', 'title': 'Admin1', 'default': ''}, 'admin2': {'type': 'string', 'title': 'Admin2', 'default': ''}, 'country': {'type': 'string', 'title': 'Country', 'default': ''}}, 'additionalProperties': True}}, 'title': 'WeatherContextOut', 'required': ['success'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'limits': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Limits', 'default': None}, 'source': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Source', 'default': None}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'privacy': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Privacy', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'weather': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Weather', 'default': None}, 'location': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Location', 'default': None}, 'timezone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Timezone', 'default': None}, 'suggestions': {'type': 'array', 'items': {'$ref': '#/$defs/LocationSuggestionOut'}, 'title': 'Suggestions'}}, 'additionalProperties': True}
list_piece_hubs
Je liste les hubs pièces
Je liste mes dossiers pièces (/pieces/*) : chemisier, jupe cuir, pantalon cuir, maille, soirée… Pour citer un hub précis.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'list_piece_hubsArguments', 'properties': {}}
Ausgabeschema
{'type': 'object', 'title': 'PieceHubListOut', 'required': ['success'], 'properties': {'hubs': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Hubs'}, 'count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Count', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}}, 'additionalProperties': True}
llms_guide
Mon guide LLM
Carte ScoreLook pour les assistants : pages, hubs (dont chemisier), éditorial, règles de citation.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'llms_guideArguments', 'properties': {}}
Ausgabeschema
{'type': 'object', 'title': 'LlmsGuideOut', 'required': ['success'], 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url', 'default': None}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'incident_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Incident Id', 'default': None}, 'llms_txt_chars': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Llms Txt Chars', 'default': None}}, 'additionalProperties': True}
manifest
Manifeste Capucine / ScoreLook
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'manifestArguments', 'properties': {'detail_level': {'enum': ['brief', 'full'], 'type': 'string', 'title': 'Detail Level', 'default': 'brief'}}}
Ausgabeschema
{'type': 'object', 'title': 'ManifestOut', 'required': ['success'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'tools': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Tools'}, 'safety': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Safety', 'default': None}, 'clients': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Clients', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version', 'default': None}, 'key_pages': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Key Pages'}, 'read_only': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Read Only', 'default': None}, 'payment_open': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Payment Open', 'default': None}, 'server_build': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Server Build', 'default': None}, 'origin_policy': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Origin Policy', 'default': None}}, 'additionalProperties': True}
proposer_demande_rappel
Je prepare une demande de rappel style
Je prepare une demande de rappel (ecriture consentie). email ET consent=true obligatoires. Retourne un action_id a confirmer par l'utilisateur (valable 10 minutes). Aucun enregistrement sans confirmation.
Eingabeschema
{'type': 'object', 'title': 'proposer_demande_rappelArguments', 'required': ['email'], 'properties': {'email': {'type': 'string', 'title': 'Email'}, 'prenom': {'type': 'string', 'title': 'Prenom', 'default': ''}, 'consent': {'type': 'boolean', 'title': 'Consent', 'default': False}, 'message': {'type': 'string', 'title': 'Message', 'default': ''}}}
public_status
Statut public commercial
Statut commercial public seulement. Je n'invente jamais un paiement ouvert. Aucun chemin opérateur.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'public_statusArguments', 'properties': {}}
Ausgabeschema
{'type': 'object', 'title': 'PublicStatusOut', 'required': ['success'], 'properties': {'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version', 'default': None}, 'checked_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Checked At', 'default': None}, 'payment_open': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Payment Open', 'default': None}, 'public_blockers': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Public Blockers'}}, 'additionalProperties': True}
recommend_look
Je compose le look
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'recommend_lookArguments', 'required': ['piece'], 'properties': {'color': {'type': 'string', 'title': 'Color', 'default': ''}, 'piece': {'type': 'string', 'title': 'Piece', 'minLength': 1, 'description': 'Pièce, matière ou intention — chemisier, jupe cuir, satin…'}, 'season': {'type': 'string', 'title': 'Season', 'default': ''}, 'audacity': {'type': 'string', 'title': 'Audacity', 'default': ''}, 'material': {'type': 'string', 'title': 'Material', 'default': ''}, 'occasion': {'type': 'string', 'title': 'Occasion', 'default': ''}, 'detail_level': {'enum': ['brief', 'full'], 'type': 'string', 'title': 'Detail Level', 'default': 'brief'}, 'include_conversion': {'type': 'boolean', 'title': 'Include Conversion', 'default': False}}}
Ausgabeschema
{'type': 'object', 'title': 'RecommendLookOut', 'required': ['success'], 'properties': {'avoid': {'type': 'array', 'items': {}, 'title': 'Avoid'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'action': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Action', 'default': None}, 'capsule': {'type': 'array', 'items': {}, 'title': 'Capsule'}, 'success': {'type': 'boolean', 'title': 'Success'}, 'rule_match': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rule Match', 'default': None}, 'out_of_scope': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Out Of Scope', 'default': None}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}, 'recommendation': {'anyOf': [{'type': 'string'}, {'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Recommendation', 'default': None}}, 'additionalProperties': True}
recommend_weather_look
Je croise circonstance et météo
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'title': 'recommend_weather_lookArguments', 'properties': {'at': {'type': 'string', 'title': 'At', 'default': '', 'description': 'ISO 8601 or natural French time.'}, 'piece': {'type': 'string', 'title': 'Piece', 'default': ''}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Latitude', 'default': None, 'description': 'Latitude, -90 to 90. Requires longitude.'}, 'location': {'type': 'string', 'title': 'Location', 'default': ''}, 'occasion': {'type': 'string', 'title': 'Occasion', 'default': ''}, 'question': {'type': 'string', 'title': 'Question', 'default': ''}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Longitude', 'default': None, 'description': 'Longitude, -180 to 180. Requires latitude.'}, 'transport': {'type': 'string', 'title': 'Transport', 'default': ''}, 'outdoor_minutes': {'type': 'integer', 'title': 'Outdoor Minutes', 'default': 20, 'maximum': 180, 'minimum': 0, 'description': 'Minutes outside, 0 to 180.'}}}
Ausgabeschema
{'type': 'object', '$defs': {'LocationSuggestionOut': {'type': 'object', 'title': 'LocationSuggestionOut', 'properties': {'name': {'type': 'string', 'title': 'Name', 'default': ''}, 'label': {'type': 'string', 'title': 'Label', 'default': ''}, 'admin1': {'type': 'string', 'title': 'Admin1', 'default': ''}, 'admin2': {'type': 'string', 'title': 'Admin2', 'default': ''}, 'country': {'type': 'string', 'title': 'Country', 'default': ''}}, 'additionalProperties': True}}, 'title': 'WeatherLookOut', 'required': ['success'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image', 'default': None}, 'action': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Action', 'default': None}, 'limits': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Limits', 'default': None}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Reason', 'default': None}, 'source': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Source', 'default': None}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'privacy': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Privacy', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'weather': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Weather', 'default': None}, 'location': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Location', 'default': None}, 'timezone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Timezone', 'default': None}, 'suggestions': {'type': 'array', 'items': {'$ref': '#/$defs/LocationSuggestionOut'}, 'title': 'Suggestions'}, 'circumstance': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Circumstance', 'default': None}, 'location_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Location Label', 'default': None}, 'recommendation': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Recommendation', 'default': None}}, 'additionalProperties': True}
search
Je cherche dans ScoreLook
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'searchArguments', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 4, 'maximum': 12, 'minimum': 1, 'description': 'Number of items, 1-12.'}, 'query': {'type': 'string', 'title': 'Query', 'minLength': 1, 'description': 'Sujet de stylisme à chercher.'}, 'content_type': {'enum': ['all', 'article', 'look', 'piece_hub'], 'type': 'string', 'title': 'Content Type', 'default': 'all'}, 'detail_level': {'enum': ['brief', 'full'], 'type': 'string', 'title': 'Detail Level', 'default': 'brief'}}}
Ausgabeschema
{'type': 'object', '$defs': {'SearchHitOut': {'type': 'object', 'title': 'SearchHitOut', 'properties': {'id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Id', 'default': None}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url', 'default': None}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Type', 'default': None}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'match_score': {'anyOf': [{'type': 'number'}, {'type': 'integer'}, {'type': 'null'}], 'title': 'Match Score', 'default': None}}, 'additionalProperties': True}}, 'title': 'SearchOut', 'required': ['success'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'results': {'type': 'array', 'items': {'$ref': '#/$defs/SearchHitOut'}, 'title': 'Results'}, 'success': {'type': 'boolean', 'title': 'Success'}, 'out_of_scope': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Out Of Scope', 'default': None}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}, 'matched_terms': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Matched Terms'}}, 'additionalProperties': True}
shopping_criteria
Mes critères d'achat
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é.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'shopping_criteriaArguments', 'properties': {'color': {'type': 'string', 'title': 'Color', 'default': ''}, 'piece': {'type': 'string', 'title': 'Piece', 'default': ''}, 'query': {'type': 'string', 'title': 'Query', 'default': ''}, 'season': {'type': 'string', 'title': 'Season', 'default': ''}, 'material': {'type': 'string', 'title': 'Material', 'default': ''}, 'occasion': {'type': 'string', 'title': 'Occasion', 'default': ''}}}
Ausgabeschema
{'type': 'object', 'title': 'ShoppingCriteriaOut', 'required': ['success'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}}, 'additionalProperties': True}
shopping_search
Je cherche des pistes marchandes
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'title': 'shopping_searchArguments', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 4, 'maximum': 12, 'minimum': 1, 'description': 'Number of items, 1-12.'}, 'query': {'type': 'string', 'title': 'Query', 'minLength': 1, 'description': "Intention d'achat ou pièce."}, 'include_products': {'type': 'boolean', 'title': 'Include Products', 'default': True}}}
Ausgabeschema
{'type': 'object', '$defs': {'ProductLeadOut': {'type': 'object', 'title': 'ProductLeadOut', 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url', 'default': None}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'integer'}, {'type': 'string'}, {'type': 'null'}], 'title': 'Price', 'default': None}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'currency': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Currency', 'default': None}, 'merchant': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Merchant', 'default': None}, 'affiliate': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Affiliate', 'default': None}, 'image_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image Url', 'default': None}, 'checked_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Checked At', 'default': None}, 'disclosure': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Disclosure', 'default': None}, 'price_type': {'anyOf': [{'enum': ['current', 'sale', 'observed'], 'type': 'string'}, {'type': 'null'}], 'title': 'Price Type', 'default': None}, 'link_health': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Link Health', 'default': None}, 'match_score': {'anyOf': [{'type': 'number'}, {'type': 'integer'}, {'type': 'null'}], 'title': 'Match Score', 'default': None}, 'browser_only': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Browser Only', 'default': None}, 'match_reasons': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Match Reasons'}, 'availability_status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Availability Status', 'default': None}, 'availability_checked_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Availability Checked At', 'default': None}}, 'additionalProperties': True}}, 'title': 'ShoppingSearchOut', 'required': ['success'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'products': {'type': 'array', 'items': {'$ref': '#/$defs/ProductLeadOut'}, 'title': 'Products'}, 'disclaimer': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Disclaimer', 'default': None}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}, 'product_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Product Count', 'default': None}}, 'additionalProperties': True}
shop_the_look
Je shoppe une pièce signature
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'title': 'shop_the_lookArguments', 'required': ['piece'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 4, 'maximum': 12, 'minimum': 1, 'description': 'Number of items, 1-12.'}, 'piece': {'type': 'string', 'title': 'Piece', 'minLength': 1, 'description': 'Slug ou langage naturel : chemisier, jupe-cuir, blouse…'}, 'include_products': {'type': 'boolean', 'title': 'Include Products', 'default': True}}}
Ausgabeschema
{'type': 'object', '$defs': {'ProductLeadOut': {'type': 'object', 'title': 'ProductLeadOut', 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url', 'default': None}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'integer'}, {'type': 'string'}, {'type': 'null'}], 'title': 'Price', 'default': None}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'currency': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Currency', 'default': None}, 'merchant': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Merchant', 'default': None}, 'affiliate': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Affiliate', 'default': None}, 'image_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image Url', 'default': None}, 'checked_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Checked At', 'default': None}, 'disclosure': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Disclosure', 'default': None}, 'price_type': {'anyOf': [{'enum': ['current', 'sale', 'observed'], 'type': 'string'}, {'type': 'null'}], 'title': 'Price Type', 'default': None}, 'link_health': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Link Health', 'default': None}, 'match_score': {'anyOf': [{'type': 'number'}, {'type': 'integer'}, {'type': 'null'}], 'title': 'Match Score', 'default': None}, 'browser_only': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Browser Only', 'default': None}, 'match_reasons': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Match Reasons'}, 'availability_status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Availability Status', 'default': None}, 'availability_checked_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Availability Checked At', 'default': None}}, 'additionalProperties': True}}, 'title': 'ShopTheLookOut', 'required': ['success'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'piece': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Piece', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'products': {'type': 'array', 'items': {'$ref': '#/$defs/ProductLeadOut'}, 'title': 'Products'}, 'disclaimer': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Disclaimer', 'default': None}, 'citation_urls': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Citation Urls'}, 'product_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Product Count', 'default': None}}, 'additionalProperties': True}
statut_actions
Compteurs des ecritures preparees
Je renvoie les compteurs des ecritures preparees (aucune donnee personnelle).
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'title': 'statut_actionsArguments', 'properties': {}}
weather_looks
Mes looks météo matin/midi/soir
Looks matin, midi, soir selon la météo locale. Ville/CP OU latitude+longitude. Je ne suppose jamais Paris.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'title': 'weather_looksArguments', 'properties': {'city': {'type': 'string', 'title': 'City', 'default': ''}, 'days': {'type': 'integer', 'title': 'Days', 'default': 5, 'maximum': 7, 'minimum': 1, 'description': 'Forecast days, 1 to 7.'}, 'latitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Latitude', 'default': None, 'description': 'Latitude, -90 to 90. Requires longitude.'}, 'longitude': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Longitude', 'default': None, 'description': 'Longitude, -180 to 180. Requires latitude.'}}}
Ausgabeschema
{'type': 'object', '$defs': {'LocationSuggestionOut': {'type': 'object', 'title': 'LocationSuggestionOut', 'properties': {'name': {'type': 'string', 'title': 'Name', 'default': ''}, 'label': {'type': 'string', 'title': 'Label', 'default': ''}, 'admin1': {'type': 'string', 'title': 'Admin1', 'default': ''}, 'admin2': {'type': 'string', 'title': 'Admin2', 'default': ''}, 'country': {'type': 'string', 'title': 'Country', 'default': ''}}, 'additionalProperties': True}}, 'title': 'WeatherLooksOut', 'required': ['success'], 'properties': {'days': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Days'}, 'page': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Page', 'default': None}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'place': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'string'}, {'type': 'null'}], 'title': 'Place', 'default': None}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'success': {'type': 'boolean', 'title': 'Success'}, 'timezone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Timezone', 'default': None}, 'fetched_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Fetched At', 'default': None}, 'suggestions': {'type': 'array', 'items': {'$ref': '#/$defs/LocationSuggestionOut'}, 'title': 'Suggestions'}, 'weather_source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Weather Source', 'default': None}}, 'description': 'Plan matin/midi/soir or a structured location error. Never a silent Paris fallback.', 'additionalProperties': True}
Hinzugefügt
statut_actions
30. September 2026 02:41
Hinzugefügt
annuler_action
30. September 2026 02:41
Hinzugefügt
confirmer_action
30. September 2026 02:41
Hinzugefügt
proposer_demande_rappel
30. September 2026 02:41
Hinzugefügt
llms_guide
22. September 2026 02:40
Hinzugefügt
recommend_weather_look
22. September 2026 02:40
Hinzugefügt
get_weather_context
22. September 2026 02:40
Hinzugefügt
weather_looks
22. September 2026 02:40
Hinzugefügt
classify_circumstance
22. September 2026 02:40
Hinzugefügt
public_status
22. September 2026 02:40
Hinzugefügt
cite_sources
22. September 2026 02:40
Hinzugefügt
list_piece_hubs
22. September 2026 02:40
Hinzugefügt
ask_capucine
22. September 2026 02:40
Hinzugefügt
get_piece_hub
22. September 2026 02:40
Hinzugefügt
shop_the_look
22. September 2026 02:40
Hinzugefügt
shopping_search
22. September 2026 02:40
Hinzugefügt
shopping_criteria
22. September 2026 02:40
Hinzugefügt
recommend_look
22. September 2026 02:40
Hinzugefügt
fetch
22. September 2026 02:40
Hinzugefügt
search
22. September 2026 02:40
Hinzugefügt
manifest
22. September 2026 02:40