Limites & erreurs
Le serveur MCP PetitPanda répond en JSON-RPC 2.0. Voici les erreurs que tu peux rencontrer et comment les gérer.
Erreurs d’authentification et de permissions
| Situation | Code HTTP | Cause |
|---|---|---|
| Clé absente ou invalide | 401 | Header manquant, clé mal formée, ou clé révoquée |
| Scope manquant | 403 | Ta clé n’a pas le scope requis par l’outil appelé (par exemple petitpanda_create_post sans schedules:write) |
Rappel : l’appel initialize du protocole (poignée de main) ne demande aucune clé. Seuls tools/list et tools/call sont protégés.
Limite anti-spam de publication
PetitPanda applique la même limite de publication par jour et par plateforme que celle de l’app web, pour éviter les bans côté réseaux sociaux. Si tu la dépasses via petitpanda_create_post, l’appel échoue avec un message explicite indiquant la limite atteinte pour cette plateforme.
Publication immédiate vs programmée
petitpanda_create_post publie tout de suite si tu ne passes ni scheduledTime ni useNextFreeSlot. Si la publication immédiate n’est pas disponible côté serveur pour ton environnement, l’appel retourne une erreur explicite qui t’invite à passer par scheduledTime à la place. Dans ce cas, programme plutôt que de publier en direct.
Idempotence
Pour éviter de publier deux fois le même post (retry réseau, agent qui relance un appel), passe un idempotencyKey unique à petitpanda_create_post. Un appel rejoué avec la même clé ne republie pas : PetitPanda retourne le résultat du premier appel.
{
"platform": "linkedin",
"text": "Mon post du jour",
"idempotencyKey": "post-2026-07-03-linkedin-matin"
}Génère une clé stable côté ton système (par exemple basée sur la date et la plateforme) plutôt qu’un identifiant aléatoire à chaque tentative, sinon l’idempotence ne sert à rien.
Erreurs de contenu et de ressources
| Situation | Cause typique |
|---|---|
platform non reconnu | Vérifie l’orthographe exacte (linkedin, instagram, tiktok, facebook, threads, youtube) |
accountId introuvable | Le compte n’existe pas ou n’appartient pas à ton utilisateur. Repasse par petitpanda_list_accounts |
Média inaccessible dans mediaUrls | L’URL doit être publique et accessible depuis nos serveurs. Utilise petitpanda_create_upload_url plutôt qu’un lien privé |
Bonnes pratiques
- Appelle
petitpanda_get_useren premier pour valider ta clé avant d’enchaîner sur d’autres outils. - Appelle
petitpanda_list_accountsavantpetitpanda_create_postsi tu veux cibler un compte précis plutôt que de laisser PetitPanda choisir le premier compte actif. - Utilise toujours un
idempotencyKeydès que tu automatises des publications déclenchées par un événement externe (webhook entrant, cron).
Et après ?
- Revoir les 9 outils : Les 9 outils
- Revoir l’auth et les scopes : Clé API & authentification