> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Référence des outils MCP pour les réseaux sociaux

> Tous les outils exposés par le serveur MCP de Social media studio, par catégorie : publications, brouillons, médias, boîte de réception, statistiques, légendes IA, webhooks et plus.

Le serveur MCP de Social media studio expose **205 outils**, regroupés ci-dessous par domaine. Chaque outil listé
ci-dessous est enregistré sur le point de terminaison MCP standard (`https://api.so-me.studio/mcp`) et peut être appelé
par tout agent authentifié avec son `X-API-Key`.

> [!NOTE]
>
> Les 205 outils sont disponibles sur l'unique point de terminaison MCP public — il n'y a **aucune surface MCP
> d'administration séparée**. Des outils comme `create_tenant`, `delete_tenant` et `list_tenants` sont des outils
> d'espace de travail ordinaires, limités à l'utilisateur authentifié.
>
> Les contrôleurs `admin/mcp-tool-costs` et `api-access/mcp` sont des routes de tableau de bord protégées par JWT,
> utilisées pour consulter/modifier les **coûts en crédits** par outil et les **journaux d'utilisation** — ils n'exposent pas d'outils
> MCP supplémentaires.

> [!NOTE]
>
> Chaque appel d'outil consomme des crédits de votre forfait et compte dans votre limite de débit par minute. Consultez
> les coûts à l'exécution avec [`list_mcp_tools`](#introspection-mcp-2-outils) et votre solde restant avec
> [`get_mcp_usage`](#introspection-mcp-2-outils). Niveaux de crédits : `1` lecture/liste/consultation, `2` écriture/modification/suppression,
> `3` statistiques, `5` texte IA, `8` image IA, `10` actions IA composées.

## Énumérations communes

Ces valeurs d'énumération sont réutilisées par de nombreux outils.

> **socialMedia (SOCIAL\_MEDIA\_ENUM)**
>
> `TWITTER`, `INSTAGRAM`, `LINKEDIN`, `LINKEDIN_PAGE`, `FACEBOOK`, `TIKTOK`, `YOUTUBE`,
> `THREADS`, `WHATSAPP`, `DRIBBBLE`, `PINTEREST`

> **platform (PLATFORM\_ENUM)**
>
> `TWITTER`, `INSTAGRAM`, `LINKEDIN`, `FACEBOOK`, `TIKTOK`, `YOUTUBE`, `THREADS`, `DRIBBBLE`,
> `PINTEREST`, `WHATSAPP`, `LINKEDIN_PAGE`

> **status (STATUS\_ENUM)**
>
> `POSTED`, `SCHEDULED`, `PENDING`, `FAILED`, `PENDING_APPROVAL`, `REJECTED`

> **postType (POST\_TYPE\_ENUM)**
>
> `TEXT`, `IMAGE`, `MULTIPLE_IMAGES`, `VIDEO`, `CAROUSEL`, `REEL`, `STORY`

> [!NOTE]
>
> Les valeurs de pagination par défaut sont cohérentes pour tous les outils de liste : `page` vaut `1` par défaut, `limit` vaut `20`
> (max `100`), sauf si un outil documente un autre schéma (par ex. pagination par curseur ou par décalage).

## Publications (11 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_posts` | Lister les publications programmées/publiées de votre espace de travail | `page?`, `limit?`, `status?`, `socialMedia?` |
| `get_post` | Obtenir une publication par ID | `id` |
| `create_post` | Créer une nouvelle publication | `text`, `socialMedia`, `postType?`, `scheduledAt?`, `accountId?` |
| `update_post` | Modifier une publication existante | `id`, `text?`, `scheduledAt?`, `metaData?`, `postType?` |
| `schedule_post` | Programmer une publication existante pour une publication ultérieure | `id`, `scheduledAt` |
| `unschedule_post` | Retirer une publication de la programmation (retour à l'état en attente) | `id` |
| `delete_post` | Supprimer une publication | `id` |
| `retry_post` | Relancer une publication en échec (FAILED → PENDING) | `id` |
| `resubmit_post` | Soumettre à nouveau une publication rejetée pour approbation | `id` |
| `bulk_delete_posts` | Supprimer plusieurs publications à la fois | `ids` (tableau) |
| `get_calendar_posts` | Obtenir les publications d'une période (vue calendrier) | `startDate`, `endDate` |

## Workflow de publication

Les outils d'écriture acceptent trois champs facultatifs en plus de `text`, `fileIds` et `scheduledAt` : `threadParts`, `firstComment` et `tiktok`. Les descriptions des outils indiquent ce que fait chaque champ ; cette section présente l'ordre d'opérations recommandé pour un agent qui publie au nom d'un utilisateur.

**1. Vérifier d'abord les médias**

Lorsque le média a été généré, modifié ou choisi par l'agent, appelez `validate_post_media` avec les
`targets` prévues avant `create_post` ou `schedule_post`. Il renvoie, pour chaque destination, la
largeur, la hauteur, la durée, le codec et la fréquence d'images mesurés, les limites configurées, et une chaîne `fix`
pour chaque écart. Appliquez la correction et validez à nouveau lorsque l'agent a produit le fichier ; affichez
le rapport et laissez l'utilisateur décider lorsque c'est lui qui l'a fourni. N'envoyez que des valeurs mesurées — chaque
propriété omise ressort en `needs_review` plutôt qu'en réussite. `get_media_rules` renvoie le tableau
complet par plateforme, ce qui est le moyen le plus économique de générer d'emblée des médias à la bonne taille.

**2. Confirmer les téléversements**

`presign_media_upload` réserve des fichiers de la bibliothèque et renvoie des URL PUT. Chaque PUT doit envoyer un
en-tête `Content-Type` égal au `mimetype` déclaré, sinon le stockage répond 403. Le téléversement n'est
terminé qu'une fois les octets stockés : appelez `get_media_file` avec `verifyUpload: true` avant de
joindre le fichier à une publication.

**3. TikTok : demander au créateur, ne jamais deviner**

TikTok rejette toute publication sans niveau de confidentialité, et seul le créateur peut le choisir. Appelez
`get_tiktok_creator_info` pour le compte cible, ne proposez à l'utilisateur que les valeurs renvoyées dans
`privacy_level_options` (un compte privé ne peut pas choisir `PUBLIC_TO_EVERYONE`), suggérez
`PUBLIC_TO_EVERYONE` pour un compte public, demandez si les commentaires sont autorisés, puis envoyez
`{ privacyLevel, allowComments, allowDuet, allowStitch }` dans l'objet `tiktok`. Une publication sans
`tiktok.privacyLevel` est rejetée avec `TIKTOK_PRIVACY_LEVEL_REQUIRED` ; un niveau que le créateur ne peut pas
utiliser renvoie `TIKTOK_PRIVACY_LEVEL_NOT_ALLOWED`. Un avertissement `TIKTOK_SETTING_FORCED` signifie que le créateur
a désactivé les commentaires, le duo ou le stitch pour tout le compte — répétez-le à l'utilisateur.

**4. Fils et premiers commentaires**

`threadParts` construit une chaîne de plusieurs publications sur X, Threads, Bluesky et Mastodon uniquement : `text` est
la tête et `threadParts[0]` est la première réponse. La publication au-delà de la tête se fait au mieux ; signalez
`metaData.threadPartWarning` s'il est défini et ne republiez jamais la tête. `firstComment` publie un
commentaire sous la publication (sous la dernière partie d'une chaîne) sur Facebook, Instagram, X, LinkedIn,
LinkedIn Page, Threads, YouTube, TikTok, Bluesky et Mastodon (TikTok nécessite que l'accès aux commentaires du compte soit
activé dans Comptes). Vérifiez `capabilities.firstComment` dans `list_accounts` avant de
le promettre — une cible non prise en charge publie quand même et renvoie un avertissement `FIRST_COMMENT_UNSUPPORTED`.
Lisez `firstCommentStatus` sur la publication avant d'annoncer que le commentaire est en ligne.

## Commentaires de publication (5 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_post_comments` | Lister les commentaires d'une publication | `postId`, `page?`, `limit?` |
| `add_post_comment` | Ajouter un commentaire à une publication | `postId`, `content` |
| `update_post_comment` | Modifier un commentaire de publication existant | `commentId`, `content` |
| `delete_post_comment` | Supprimer un commentaire de publication | `commentId` |
| `mark_comments_as_read` | Marquer tous les commentaires d'une publication comme lus | `postId` |

## Brouillons (6 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_drafts` | Lister les brouillons de votre espace de travail | `page?`, `limit?` |
| `get_draft` | Obtenir un brouillon par ID | `id` |
| `create_draft` | Créer un nouveau brouillon | `text?`, `title?`, `socialMedia?`, `postType?`, `description?`, `accountId?` |
| `update_draft` | Modifier un brouillon existant | `id`, `text?`, `title?`, `socialMedia?`, `postType?`, `description?`, `accountId?` |
| `delete_draft` | Supprimer un brouillon | `id` |
| `convert_draft` | Convertir un brouillon en publication programmée (le brouillon doit avoir `text`, `socialMedia`, `postType`) | `id`, `scheduledAt?` |

## Comptes (3 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_accounts` | Lister les comptes de réseaux sociaux connectés | *(aucun)* |
| `get_account` | Obtenir les détails d'un compte social connecté | `id` |
| `disconnect_account` | Déconnecter (supprimer) un compte social connecté | `id` |

## Médias (13 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_media` | Lister les fichiers médias de votre bibliothèque | `page?`, `limit?`, `folderId?` |
| `search_media` | Rechercher des fichiers médias par nom | `query` |
| `get_media_file` | Obtenir un fichier média par ID | `id` |
| `delete_media` | Supprimer un fichier média de la bibliothèque | `id` |
| `bulk_delete_media` | Supprimer plusieurs fichiers médias à la fois | `fileIds` (tableau) |
| `list_media_folders` | Lister les dossiers de médias de la bibliothèque | `page?`, `limit?` |
| `create_media_folder` | Créer un nouveau dossier de médias | `name`, `parentId?` |
| `delete_media_folder` | Supprimer un dossier de médias et son contenu | `id` |
| `move_media_file` | Déplacer un fichier média vers un autre dossier (ou à la racine) | `id`, `folderId?` |
| `move_media_folder` | Déplacer un dossier vers un autre parent (ou à la racine) | `id`, `parentId?` |
| `rename_media_file` | Renommer un fichier média | `id`, `name` |
| `rename_media_folder` | Renommer un dossier de médias | `id`, `name` |
| `presign_media_upload` | Générer des URL PUT S3 présignées pour téléverser des médias dans la bibliothèque | `files` (tableau de `{filename, mimetype, size?}`), `folderId?` |

## Boîte de réception (18 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_conversations` | Lister les conversations de la boîte de réception sur toutes les plateformes connectées | *(aucun)* |
| `get_messages` | Obtenir les messages d'un fil de conversation | `threadId` |
| `reply_to_conversation` | Publier une réponse dans un fil de conversation | `threadId`, `message` |
| `update_conversation` | Mettre à jour le statut d'une conversation (`threadStatus` : `OPEN`/`CLOSED`/`ARCHIVED`) | `threadId`, `threadStatus?`, `isSeen?` |
| `delete_conversation` | Supprimer un fil de conversation | `threadId` |
| `list_saved_replies` | Lister les modèles de réponses enregistrées | `page?`, `limit?` |
| `get_saved_reply` | Obtenir un modèle de réponse enregistrée par ID | `id` |
| `create_saved_reply` | Créer un nouveau modèle de réponse enregistrée | `text` |
| `update_saved_reply` | Modifier une réponse enregistrée existante | `id`, `text` |
| `delete_saved_reply` | Supprimer une réponse enregistrée | `id` |
| `subscribe_inbox` | Activer la synchronisation de la boîte de réception pour un compte social connecté | `accountId` |
| `unsubscribe_inbox` | Désactiver la synchronisation de la boîte de réception pour un compte social connecté | `accountId` |
| `edit_inbox_message` | Modifier un commentaire/message dans la boîte de réception sociale (Facebook/Instagram) | `threadId`, `messageId`, `commentId`, `message`, `pageId`, `attachment?` |
| `delete_inbox_message` | Supprimer un commentaire/message dans la boîte de réception sociale (Facebook/Instagram) | `threadId`, `messageId`, `commentId`, `pageId` |
| `hide_inbox_message` | Masquer ou afficher à nouveau un commentaire dans la boîte de réception sociale (Facebook/Instagram) | `threadId`, `messageId`, `commentId`, `pageId`, `hidden?` |
| `preview_bulk_reply` | Prévisualiser les destinataires d'une réponse groupée avant l'envoi | `threadIds` (tableau) |
| `create_bulk_reply` | Envoyer une même réponse (avec personnalisation `{{name}}` facultative) à de nombreuses conversations de messages privés | `threadIds` (tableau), `message`, `attachments?` (tableau) |
| `get_bulk_reply_batch` | Obtenir le statut et les résultats d'un lot de réponses groupées | `batchId` |

## Approbations (4 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_approvals` | Lister les publications en attente d'approbation | *(aucun)* |
| `approve_post` | Approuver une publication en attente d'approbation | `postId`, `comment?` |
| `reject_post` | Rejeter une publication en attente d'approbation | `postId`, `comment` (motif obligatoire) |
| `update_review_comment` | Modifier le commentaire de relecture/rejet d'une publication dans le workflow d'approbation | `postId`, `comment` |

## Équipes (6 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_team_members` | Lister tous les membres de l'équipe de votre espace de travail | *(aucun)* |
| `invite_team_member` | Inviter quelqu'un dans l'espace de travail (`role` : `owner`/`member`, `member` par défaut ; `postApproval` : `requires_approval`/`auto_approve`, `requires_approval` par défaut, ignoré pour les propriétaires) | `email`, `role?`, `postApproval?` |
| `remove_team_member` | Retirer un membre de l'espace de travail | `memberId` |
| `update_member_role` | Modifier le rôle d'un membre de l'équipe (`role` : `owner`/`member`). Un espace de travail peut avoir plusieurs propriétaires ; le dernier propriétaire ne peut pas être rétrogradé. `postApproval` (`requires_approval`/`auto_approve`) est ignoré pour les propriétaires, qui publient toujours sans relecture | `memberId`, `role`, `postApproval?` |
| `list_team_invitations` | Lister les invitations d'équipe en attente | `page?`, `limit?` |
| `cancel_team_invitation` | Annuler une invitation d'équipe en attente | `invitationId` |

## Biolinks (19 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_biolinks` | Lister toutes les pages biolink | *(aucun)* |
| `get_biolink` | Obtenir les détails d'une page biolink | `id` |
| `create_biolink` | Créer une nouvelle page biolink | `slug?`, `displayName?`, `bio?` |
| `update_biolink` | Modifier une page biolink existante | `id`, `displayName?`, `bio?`, `slug?` |
| `delete_biolink` | Supprimer une page biolink | `id` |
| `publish_biolink` | Basculer l'état de publication d'un biolink | `id` |
| `change_biolink_theme` | Passer un biolink à un thème prédéfini | `id`, `theme` |
| `set_biolink_custom_theme` | Appliquer des couleurs de thème personnalisées à un biolink | `id`, `backgroundColor?`, `textColor?`, `buttonColor?`, `buttonTextColor?` |
| `list_biolink_buttons` | Lister les boutons d'une page biolink | `biolinkId`, `page?`, `limit?` |
| `create_biolink_button` | Ajouter un bouton à une page biolink | `biolinkId`, `type`, `text`, `url?`, `email?`, `phone?`, `icon?`, `isActive?` |
| `update_biolink_button` | Modifier un bouton d'une page biolink | `biolinkId`, `buttonId`, `text?`, `url?`, `email?`, `phone?`, `icon?`, `isActive?` |
| `delete_biolink_button` | Supprimer un bouton d'une page biolink | `biolinkId`, `buttonId` |
| `reorder_biolink_buttons` | Réordonner les boutons d'une page biolink | `biolinkId`, `buttonIds` (tableau) |
| `list_biolink_posts` | Lister les publications de galerie d'un biolink | `biolinkId` |
| `create_biolink_post` | Ajouter une publication de galerie à un biolink | `biolinkId`, `imageUrl?`, `caption?`, `linkUrl?`, `isVisible?` |
| `update_biolink_post` | Modifier une publication de galerie d'un biolink | `biolinkId`, `postId`, `imageUrl?`, `caption?`, `linkUrl?`, `isVisible?` |
| `delete_biolink_post` | Supprimer une publication de galerie d'un biolink | `biolinkId`, `postId` |
| `reorder_biolink_posts` | Réordonner les publications de galerie d'un biolink | `biolinkId`, `itemIds` (tableau) |
| `get_biolink_analytics` | Obtenir les statistiques d'une page biolink (vues, clics) | `biolinkId` |

## Contenu IA (10 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `generate_caption` | Générer une légende IA pour une plateforme de réseau social | `platform`, `topic`, `tone?` |
| `generate_content` | Générer ou réécrire du texte IA de tout type (publication, légende, hashtag, titre, bio, fil, e-mail, etc.) | `text`, `type?`, `command?` (`generate`/`rewrite`/`insert`), `tone?`, `platform?`, `customInstruction?` |
| `generate_image` | Générer une image IA à partir d'un prompt | `prompt`, `style?`, `aspectRatio?`, `negativePrompt?`, `provider?`, `numImages?` |
| `generate_and_schedule` | Générer du contenu IA, créer une publication et la programmer — le tout en un seul appel | `platform`, `socialMedia`, `topic`, `scheduledAt`, `tone?`, `accountId?` |
| `get_ai_history` | Obtenir l'historique des prompts de génération IA | `page?`, `limit?` |
| `get_ai_credits` | Obtenir les soldes et limites de crédits IA (texte, image, vidéo UGC) du forfait actuel | *(aucun)* |
| `list_ai_image_providers` | Lister les fournisseurs de génération d'images IA autorisés par le forfait actuel | *(aucun)* |
| `list_generated_images` | Lister les images générées par IA avec pagination | `page?`, `limit?` |
| `get_generated_image` | Obtenir les détails d'une image générée par IA par ID | `id` |
| `delete_generated_image` | Supprimer une image générée par IA par ID | `id` |

## Vidéo IA / UGC (9 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `generate_video` | Générer une vidéo UGC IA | `hookText` (500 caractères max), `avatarId`, `soundId?`, `productDemoUrl?` |
| `list_videos` | Lister les vidéos UGC générées | `page?`, `limit?` |
| `get_video` | Obtenir une vidéo générée par ID (inclut le statut de génération) | `id` |
| `delete_video` | Supprimer une vidéo générée | `id` |
| `list_avatars` | Lister les avatars UGC disponibles pour la génération de vidéos | `page?`, `limit?` |
| `list_sounds` | Lister les sons/musiques disponibles pour la génération de vidéos | `page?`, `limit?`, `genre?` |
| `get_sound_genres` | Lister les genres de sons d'ambiance disponibles pour les vidéos UGC | *(aucun)* |
| `generate_hook_suggestions` | Générer des suggestions d'accroches/scripts IA pour les vidéos UGC | `topic`, `platform?`, `count?` (5 par défaut) |
| `list_ai_video_providers` | Lister les fournisseurs de vidéos UGC IA autorisés par le forfait actuel | *(aucun)* |

## Statistiques (26 outils)

### Multi-plateformes et par publication

| Outil | Description | Paramètres |
| - | - | - |
| `get_analytics_summary` | Vue d'ensemble des statistiques de l'espace de travail — nombre de publications par statut et par plateforme | *(aucun)* |
| `get_platform_analytics` | Statistiques détaillées d'un compte social connecté donné | `accountId`, `days?` |
| `get_post_analytics` | Statistiques d'une publication donnée | `postId`, `days?` |

### Statistiques par plateforme

| Outil | Description | Paramètres |
| - | - | - |
| `get_facebook_analytics` | Statistiques Facebook au niveau de la page | `accountId`, `days?` |
| `get_facebook_posts_analytics` | Statistiques de page Facebook par publication | `accountId`, `days?` |
| `get_facebook_videos_analytics` | Statistiques de page Facebook par vidéo | `accountId`, `days?` |
| `get_instagram_analytics` | Statistiques Instagram au niveau du compte | `accountId`, `days?` |
| `get_instagram_media_analytics` | Statistiques des médias Instagram par publication | `accountId`, `days?` |
| `get_instagram_stories_analytics` | Statistiques des stories Instagram | `accountId`, `days?` |
| `get_linkedin_analytics` | Statistiques LinkedIn au niveau de la page | `accountId`, `days?` |
| `get_linkedin_posts_analytics` | Statistiques de page LinkedIn par publication | `accountId`, `days?` |
| `get_youtube_analytics` | Statistiques YouTube au niveau de la chaîne | `accountId`, `days?` |
| `get_youtube_videos_analytics` | Statistiques de chaîne YouTube par vidéo | `accountId`, `days?` |
| `get_twitter_analytics` | Statistiques Twitter/X au niveau du compte | `accountId`, `days?` |
| `get_twitter_content_analytics` | Statistiques Twitter/X au niveau du contenu | `accountId`, `days?` |
| `get_whatsapp_analytics` | Statistiques du compte WhatsApp Business | `accountId`, `days?` |
| `get_tiktok_analytics` | Statistiques du compte TikTok | `accountId`, `days?` |
| `get_bluesky_analytics` | Statistiques du compte Bluesky | `accountId`, `days?` |
| `get_mastodon_analytics` | Statistiques du compte Mastodon | `accountId`, `days?` |
| `get_reddit_account_analytics` | Statistiques Reddit au niveau du compte | `accountId`, `days?` |
| `get_reddit_submissions_analytics` | Statistiques des soumissions (publications) Reddit | `accountId`, `days?` |
| `get_pinterest_analytics` | Statistiques du compte Pinterest | `accountId`, `days?` |
| `get_pinterest_pins_analytics` | Statistiques Pinterest par épingle | `accountId`, `days?` |
| `get_pinterest_top_pins_analytics` | Épingles Pinterest les plus performantes (`sortBy` : `IMPRESSION`/`ENGAGEMENT`/`OUTBOUND_CLICK`/`PIN_CLICK`/`SAVE`) | `accountId`, `days?`, `sortBy?` |
| `get_pinterest_top_video_pins_analytics` | Épingles vidéo Pinterest les plus performantes | `accountId`, `days?`, `sortBy?` |
| `get_gmb_analytics` | Statistiques d'un établissement Google Business Profile (GMB) | `accountId`, `locationId?`, `days?` |

> [!NOTE]
>
> `days` vaut `7` par défaut (période d'analyse) pour chaque outil de statistiques.

## Meilleur moment pour publier (3 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `get_best_time_recommendations` | Lister les recommandations de meilleur moment pour publier pour tous les comptes connectés de l'espace de travail | *(aucun)* |
| `get_best_time_recommendation` | Obtenir la recommandation de meilleur moment (carte de chaleur + meilleurs créneaux) pour un compte | `socialAccountId` |
| `recompute_best_time_recommendation` | Recalculer la recommandation de meilleur moment d'un compte à partir de l'historique d'engagement récent | `socialAccountId` |

## Notifications (5 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_notifications` | Lister les notifications dans l'application de l'utilisateur authentifié (pagination par curseur) | `category?`, `isRead?`, `limit?`, `cursor?` |
| `get_unread_notification_count` | Obtenir le nombre de notifications non lues, éventuellement par catégorie | `category?` |
| `mark_notification_read` | Marquer une notification comme lue | `id` |
| `mark_all_notifications_read` | Marquer toutes les notifications (éventuellement d'une catégorie) comme lues | `category?` |
| `archive_notification` | Archiver (ignorer) une notification | `id` |

## Connaissances / RAG (6 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_knowledge` | Lister les documents de connaissances utilisés par l'assistant IA (RAG) | `search?`, `tags?` (tableau), `activeOnly?`, `sortBy?`, `sortOrder?` (`ASC`/`DESC`), `limit?`, `offset?` |
| `get_knowledge` | Obtenir un document de connaissances avec le texte extrait et les métadonnées | `id` |
| `create_knowledge` | Créer un document de connaissances à partir d'un fichier téléversé ou d'une note saisie (`sourceType` : `pdf`/`image`/`text_file`/`note`) | `sourceType`, `title`, `fileId?`, `body?`, `tags?`, `isActive?` |
| `update_knowledge` | Modifier les métadonnées ou le corps de la note d'un document de connaissances | `id`, `title?`, `tags?`, `isActive?`, `body?` |
| `reprocess_knowledge` | Relancer l'extraction d'un document de connaissances PDF/image/texte en échec | `id` |
| `delete_knowledge` | Supprimer un document de connaissances | `id` |

> [!NOTE]
>
> Pour `create_knowledge`, `fileId` est obligatoire pour les types de source `pdf`/`image`/`text_file`, et
> `body` est obligatoire pour `note`.

## Canva (4 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `get_canva_status` | Vérifier si Canva est connecté pour l'utilisateur authentifié | *(aucun)* |
| `list_canva_designs` | Lister les designs Canva de l'utilisateur (paginé, avec recherche) | `query?`, `continuation?` |
| `export_canva_design` | Exporter un design Canva en image (asynchrone ; renvoie un ID de tâche d'export) | `designId` |
| `get_canva_export_status` | Interroger le statut d'une tâche d'export de design Canva | `exportId` |

## Modèles (3 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_templates` | Lister les modèles de contenu disponibles par catégorie (`meme`, `quote_card`, `before_after`, `reaction`, `announcement`, `testimonial`) | `category?`, `page?`, `limit?` |
| `get_template` | Obtenir un modèle de contenu par ID | `id` |
| `render_template` | Générer un modèle avec les valeurs de champs fournies | `id`, `fields` (objet) |

## Aide et support (5 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `create_ticket` | Créer un ticket de support (`priority` : `LOW`/`MEDIUM`/`HIGH`, `MEDIUM` par défaut) | `subject`, `message`, `priority?` |
| `list_tickets` | Lister vos tickets de support | `page?`, `limit?` |
| `get_ticket` | Obtenir un ticket de support avec ses détails | `id` |
| `send_ticket_message` | Envoyer un message dans un ticket de support | `ticketId`, `message` |
| `list_ticket_messages` | Lister tous les messages d'un ticket de support | `ticketId` |

## WhatsApp (6 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_whatsapp_templates` | Lister les modèles de messages WhatsApp Business | `accountId` |
| `get_whatsapp_template` | Obtenir un modèle de message WhatsApp par nom | `accountId`, `templateName` |
| `create_whatsapp_template` | Créer (soumettre à l'approbation de Meta) un modèle de message WhatsApp (`category` : `MARKETING`/`UTILITY`/`AUTHENTICATION`) | `accountId`, `name`, `language`, `category`, `components` (tableau) |
| `delete_whatsapp_template` | Supprimer un modèle de message WhatsApp | `accountId`, `templateName` |
| `send_whatsapp_template` | Envoyer un message modèle WhatsApp à un destinataire (téléphone au format E.164) | `accountId`, `to`, `templateName`, `languageCode`, `components?` |
| `upload_whatsapp_template_media` | Téléverser le média d'en-tête (image/vidéo/document) d'un modèle | `accountId`, `fileType`, `fileUrl?`, `fileBase64?` |

## Aides à l'intégration (9 outils)

Résolvez les cibles propres à chaque plateforme (tableaux, canaux, subreddits, établissements) avant de publier.

| Outil | Description | Paramètres |
| - | - | - |
| `list_pinterest_boards` | Lister les tableaux Pinterest d'un compte (sélectionnez un tableau avant de publier) | `accountId` |
| `create_pinterest_board` | Créer un nouveau tableau Pinterest (`privacy` par ex. `PUBLIC`/`SECRET`) | `accountId`, `name`, `description?`, `privacy?` |
| `list_reddit_subreddits` | Lister les subreddits dont le compte Reddit connecté est membre | `accountId` |
| `list_reddit_flairs` | Lister les flairs de publication disponibles pour un subreddit | `accountId`, `subreddit` |
| `list_gmb_locations` | Lister les établissements Google Business Profile (GMB) d'un compte | `accountId` |
| `list_discord_channels` | Lister les canaux Discord disponibles pour un compte en mode bot | `accountId` |
| `list_slack_channels` | Lister les canaux Slack d'un espace de travail connecté | `accountId` |
| `list_telegram_chats` | Lister les conversations/groupes Telegram disponibles pour un compte | `accountId` |
| `get_tiktok_creator_info` | Obtenir les informations de créateur/compte TikTok (valider les capacités de publication) | `accountId` |

## Webhooks (10 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_webhook_subscriptions` | Lister tous les abonnements webhook de votre espace de travail | *(aucun)* |
| `get_webhook_subscription` | Obtenir un abonnement webhook par ID | `id` |
| `create_webhook_subscription` | Créer un nouvel abonnement webhook | `url`, `categories` (tableau), `description?` |
| `update_webhook_subscription` | Modifier un abonnement webhook existant | `id`, `url?`, `categories?`, `description?`, `isActive?`, `regenerateSecret?` |
| `delete_webhook_subscription` | Supprimer un abonnement webhook | `id` |
| `test_webhook_subscription` | Envoyer un ping de test à un abonnement webhook | `id` |
| `list_webhook_deliveries` | Lister les journaux de livraison des webhooks (filtrable) | `page?`, `limit?`, `subscriptionId?`, `event?`, `status?`, `category?` |
| `get_webhook_delivery` | Obtenir un journal de livraison webhook avec la charge utile complète et le statut | `id` |
| `retry_webhook_delivery` | Relancer une livraison webhook en échec | `id` |
| `list_webhook_events` | Lister tous les types d'événements webhook disponibles par catégorie | *(aucun)* |

> [!NOTE]
>
> Les `categories` de webhook acceptent : `post`, `inbox`, `account`, `subscription`, `ai`, `team`, `support`.
> Le filtre `status` des livraisons accepte : `pending`, `success`, `retrying`, `failed`.

## Forfaits, facturation et utilisation (6 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `get_billing` | Obtenir les informations d'abonnement et de facturation | *(aucun)* |
| `get_usage` | Obtenir le détail de l'utilisation pour la période de facturation en cours | *(aucun)* |
| `get_plans` | Obtenir le catalogue des forfaits avec tarifs et visibilité | *(aucun)* |
| `get_plan_features` | Obtenir la matrice des fonctionnalités à partir de son identifiant interne : `solo` (Lite), `team` (Standard), `scale` (Advanced) ou `lifetime` (Lifetime). `hobby` est un ancien forfait retiré | `planName` |
| `get_subscription` | Obtenir le statut d'abonnement, le forfait et les limites de l'espace de travail | *(aucun)* |
| `list_invoices` | Lister les factures de l'abonnement actuel | *(aucun)* |

## Parrainage (2 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `get_referral_code` | Obtenir le code de parrainage de l'utilisateur authentifié | *(aucun)* |
| `get_referral_stats` | Obtenir le code de parrainage, le nombre de parrainages, les crédits gagnés et l'URL de partage | *(aucun)* |

## Clés d'API (3 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_api_keys` | Lister les clés d'API actives de l'espace de travail actuel | *(aucun)* |
| `create_api_key` | Créer une nouvelle clé d'API ; la clé complète n'est renvoyée qu'une seule fois | `name`, `expiresAt?` |
| `revoke_api_key` | Révoquer une clé d'API | `id` |

## Tenants / Espaces de travail (4 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `list_tenants` | Lister les espaces de travail/tenants auxquels appartient l'utilisateur authentifié | `page?`, `limit?` |
| `create_tenant` | Créer un nouvel espace de travail/tenant dont l'utilisateur authentifié est propriétaire | `name`, `description?` |
| `delete_tenant` | Supprimer un espace de travail/tenant | `id` |
| `leave_tenant` | Quitter un espace de travail/tenant dont l'utilisateur est membre | `tenantId?` (par défaut l'espace actuel) |

## Profil et préférences (5 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `get_profile` | Obtenir votre profil utilisateur | *(aucun)* |
| `update_profile` | Modifier le profil de l'utilisateur authentifié | `name?`, `password?`, `email?` |
| `get_user_preferences` | Obtenir les préférences de l'utilisateur authentifié (notifications, fuseau horaire, interface) | *(aucun)* |
| `update_user_preferences` | Modifier (fusionner) les préférences de l'utilisateur authentifié | `preferences` (objet) |
| `get_current_tenant` | Obtenir les détails de l'espace de travail (tenant) actuellement actif | *(aucun)* |

## Organisation (2 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `get_organization` | Obtenir les détails de l'espace de travail/organisation | *(aucun)* |
| `update_organization` | Modifier l'espace de travail / l'organisation actuel(le) | `name?`, `description?`, `color?` (hex), `timezone?` (IANA) |

## Introspection MCP (2 outils)

| Outil | Description | Paramètres |
| - | - | - |
| `get_mcp_usage` | Obtenir l'utilisation des crédits MCP de cet espace de travail, les limites et le détail par outil pour la période en cours | *(aucun)* |
| `list_mcp_tools` | Lister tous les outils MCP disponibles et leur coût en crédits | *(aucun)* |

## Exemples d'utilisation

```json Créer et programmer une publication theme={null}
{
  "name": "create_post",
  "arguments": {
    "text": "Shipping our biggest update yet 🚀 Read the changelog → so-me.studio/changelog",
    "socialMedia": "LINKEDIN_PAGE",
    "postType": "TEXT",
    "scheduledAt": "2026-06-20T14:00:00.000Z",
    "accountId": "acct_01HZ..."
  }
}
```

```json IA : générer, créer et programmer en un seul appel theme={null}
{
  "name": "generate_and_schedule",
  "arguments": {
    "platform": "INSTAGRAM",
    "socialMedia": "INSTAGRAM",
    "topic": "5 tips for consistent posting as a solo founder",
    "tone": "engaging",
    "scheduledAt": "2026-06-21T16:30:00.000Z"
  }
}
```

```json Générer une image IA (4 variantes) theme={null}
{
  "name": "generate_image",
  "arguments": {
    "prompt": "minimalist product launch banner, soft gradient background",
    "style": "illustration",
    "aspectRatio": "16:9",
    "provider": "flux_fal",
    "numImages": 4
  }
}
```

```json Récupérer des analyses Instagram détaillées theme={null}
{
  "name": "get_instagram_media_analytics",
  "arguments": {
    "accountId": "acct_01HZ...",
    "days": 30
  }
}
```

```json Répondre en masse à de nombreux DM avec personnalisation theme={null}
{
  "name": "create_bulk_reply",
  "arguments": {
    "threadIds": ["thr_1", "thr_2", "thr_3"],
    "message": "Hey {{firstName}}, thanks for reaching out! Here's the link you asked for."
  }
}
```

```json Meilleur moment pour publier sur un compte theme={null}
{
  "name": "get_best_time_recommendation",
  "arguments": {
    "socialAccountId": "acct_01HZ..."
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.