Skip to Content
🤖 API & MCPLes 9 outils

Les 9 outils MCP

Une fois ton client connecté (voir Connecter le MCP), ton agent a accès à 9 outils. Tu n’as pas besoin de les appeler toi-même : décris ce que tu veux faire en langage naturel, ton agent (Claude, n8n…) choisit le bon outil.

petitpanda_get_user

Aucun scope requis.

Vérifie que ta clé est valide et te donne un aperçu de ton compte.

  • Params : aucun
  • Retourne : { userId, plan, accountsConnected, platforms[], scopes[] }

Exemple d’usage : “Vérifie que ma connexion PetitPanda fonctionne.”

petitpanda_list_accounts

Aucun scope requis.

Liste les comptes réseaux sociaux connectés à ton compte PetitPanda. À appeler avant petitpanda_create_post si tu veux cibler un compte précis.

  • Params :
    • platform (string, optionnel) : filtre sur une plateforme (linkedin, instagram, tiktok, facebook, threads, youtube)
  • Retourne : { accounts: [{ id, platform, handle, accountName, externalId, connectedAt }] }

Exemple d’usage : “Liste mes comptes LinkedIn connectés.”

petitpanda_next_free_slot

Aucun scope requis.

Retourne le prochain créneau libre de ton calendrier de programmation récurrente pour une plateforme, jusqu’à 14 jours en avance.

  • Params :
    • platform (string, requis)
  • Retourne : { slot: { scheduledAt, slotId } }, ou { slot: null, note } si aucun créneau récurrent n’est configuré

Exemple d’usage : “Quel est mon prochain créneau libre sur TikTok ?“

petitpanda_create_upload_url

Scope requis : drafts:write.

Génère une URL d’upload temporaire pour envoyer un média (image ou vidéo) qui servira ensuite dans un post.

  • Params :
    • filename (string, requis, avec extension, ex : visuel.jpg)
  • Retourne : { uploadUrl, publicUrl, path, method: "PUT" }

Flow : ton agent envoie les octets du fichier en PUT vers uploadUrl, puis réutilise publicUrl dans mediaUrls lors de l’appel à petitpanda_create_post. Les fichiers sont stockés dans le bucket mcp-media.

Exemple d’usage : “Prépare une URL d’upload pour cette image, puis publie-la sur Instagram.”

petitpanda_create_post

Scope requis : schedules:write.

Crée un post : publication immédiate ou programmation, selon les paramètres fournis.

  • Params :
    • platform (string, requis)
    • text (string, requis)
    • accountId (string, optionnel : sinon le premier compte actif de la plateforme est utilisé)
    • mediaUrls (array, optionnel : URLs publiques de médias, par exemple depuis petitpanda_create_upload_url)
    • title (string, optionnel : à fournir pour YouTube)
    • scheduledTime (string ISO 8601, optionnel)
    • useNextFreeSlot (boolean, optionnel)
    • options (objet libre, optionnel : par exemple privacyLevel pour TikTok)
    • idempotencyKey (string, optionnel : rejoue le même appel sans republier en double)
  • Retourne : { mode: "published", draftId, platform, ... } ou { mode: "scheduled", draftId, scheduleId, scheduledAt, platform }

Comportement : si ni scheduledTime ni useNextFreeSlot ne sont fournis, le post part immédiatement. Sinon il est programmé.

Exemple d’usage : “Publie ce texte sur LinkedIn maintenant” ou “Programme ce post Instagram au prochain créneau libre.”

Une limite anti-spam s’applique par jour et par plateforme, la même que dans l’app. Voir Limites & erreurs.

petitpanda_list_schedules

Aucun scope requis.

Liste tes programmations, avec filtres.

  • Params :
    • status (string, optionnel : pending, publishing, published, failed)
    • platform (string, optionnel)
    • from / to (string ISO 8601, optionnel)
    • limit (number, optionnel, défaut 50, max 100)
  • Retourne : { schedules: [...] }, triées par date de programmation décroissante. Chaque entrée contient un extrait du texte (300 caractères max) — utilise petitpanda_get_post pour le détail complet.

Exemple d’usage : “Montre-moi mes posts en attente sur TikTok cette semaine.”

petitpanda_get_post

Aucun scope requis.

Renvoie le détail complet d’une publication (planifiée ou publiée) à partir de son scheduleId : plateforme, compte, titre, texte intégral, nombre de médias, statut, dates, URL publiée et erreur éventuelle. Appelle d’abord petitpanda_list_schedules pour obtenir le scheduleId.

  • Params :
    • scheduleId (string, requis)
  • Retourne : { id, platform, account_handle, title, text, media_count, status, scheduled_at, published_at, platform_post_url, error_msg }

Exemple d’usage : “Donne-moi le détail complet de ce post programmé.”

petitpanda_update_schedule

Scope requis : schedules:write.

Modifie une publication déjà planifiée (statut pending uniquement) : sa date/heure et/ou ses options plateforme. Appelle d’abord petitpanda_list_schedules pour obtenir le scheduleId.

  • Params :
    • scheduleId (string, requis)
    • scheduledTime (string ISO 8601, optionnel : nouvelle date/heure, doit être dans le futur)
    • options (objet libre, optionnel : réglages plateforme fusionnés avec les existants, par exemple { trialReel: true } pour Instagram ou { privacyLevel: "SELF_ONLY" } pour TikTok)
  • Au moins l’un de scheduledTime ou options doit être fourni.
  • Retourne : { updated: true, scheduleId, scheduledAt?, options?, platform }

Exemple d’usage : “Déplace ce post programmé à demain 18h.”

petitpanda_delete_schedule

Scope requis : schedules:write.

Supprime (annule) une publication planifiée. Seules les publications au statut pending peuvent être annulées. Irréversible. Appelle d’abord petitpanda_list_schedules pour obtenir le scheduleId.

  • Params :
    • scheduleId (string, requis)
  • Retourne : { deleted: true, scheduleId }

Exemple d’usage : “Annule cette publication programmée sur LinkedIn.”

Et après ?

Last updated on