MCP

Référence des outils

Chaque outil exposé par le serveur MCP de PostNext, avec ses entrées, la structure de retour et un exemple prêt à copier-coller.

Authentification

Chaque requête vers https://mcp.postnext.io/api nécessite un en-tête Authorization avec un jeton Bearer. Vous avez deux façons d'en obtenir un.

OAuth (recommandé pour les clients IA)

Les clients IA exécutent Dynamic Client Registration à la première connexion, puis guident l'utilisateur via un écran de consentement OAuth. La page /mcp/connect le fait automatiquement. Votre client reçoit un jeton d'accès de 30 jours.

Clé API

Pour les scripts et la CI, générez une clé API personnelle dans l'app PostNext via Compte → Clés API. La clé commence par apikey_ et est présentée comme un jeton Bearer ordinaire.

Endpoint

Tous les appels de tools vont vers un unique endpoint JSON-RPC 2.0 en HTTPS POST.

POST https://mcp.postnext.io/api

Outils

list_scheduled_posts

Listez vos publications programmées (en file d'attente pour publication mais pas encore envoyées).

Arguments

limitnumber ·optionnel · default 20
Nombre maximal de résultats à retourner (1-100, défaut 20).
fromstring (ISO 8601) ·optionnel
Horodatage ISO ; retourne uniquement les publications programmées à partir de cette date.

Retourne

Un objet avec posts: [{id, platform, content, scheduledAt, status}]. Jusqu'à limit résultats.

Exemple

curl -X POST https://mcp.postnext.io/api \
  -H "Authorization: Bearer apikey_xxx" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","id":1,
       "params":{"name":"list_scheduled_posts",
                 "arguments":{"limit":5}}}'

list_drafts

Listez vos brouillons (pas encore programmés).

Arguments

limitnumber ·optionnel · default 20
Nombre maximal de résultats à retourner (1-100, défaut 20).

Retourne

Un objet avec drafts: [{id, platform, content, updatedAt}]. Jusqu'à limit résultats.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":2,
 "params":{"name":"list_drafts","arguments":{"limit":10}}}

list_connected_accounts

Listez les comptes sociaux connectés à votre équipe.

Arguments

Aucun argument.

Retourne

Un objet avec accounts: [{platform, handle, connected, lastSyncAt}].

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":3,
 "params":{"name":"list_connected_accounts","arguments":{}}}

get_account_healthPlan payant

Obtenez un résumé de santé sur toutes les plateformes connectées.

Arguments

platformenum ·optionnel
Plateforme sociale : twitter, instagram, linkedin, threads, ou tiktok.
windowDays7 | 30 | 90 ·optionnel · default 30
Fenêtre de consultation en jours : 7, 30 ou 90 (défaut 30).

Retourne

Un objet avec windowDays, postsScheduled, postsPublished, postsFailed, une ventilation byPlatform et topErrors[].

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":4,
 "params":{"name":"get_account_health",
           "arguments":{"windowDays":30}}}

create_post_draft

Créez un nouveau brouillon. Les brouillons ne sont pas auto-publiés.

Arguments

platformenum ·requis
Plateforme sociale : twitter, instagram, linkedin, threads, ou tiktok.
contentstring ·requis
Corps de la publication (1-2200 caractères).
mediaUrlsarray<string> ·optionnel
Jusqu'à 10 URL d'images ou de vidéos.
clientRequestIdstring ·optionnel
Clé d'idempotence optionnelle. La même clé dans les 5 minutes renvoie le résultat mis en cache.

Retourne

Un objet avec le nouveau brouillon : {id, platform, content, status: "DRAFT", createdAt}.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":5,
 "params":{"name":"create_post_draft",
           "arguments":{"platform":"twitter",
                        "content":"Hello from MCP"}}}

update_post_draft

Mettez à jour un brouillon existant. Au moins l'un des champs content ou mediaUrls doit être fourni.

Arguments

postIdstring ·requis
Identifiant de publication PostNext issu d'un appel de liste.
contentstring ·optionnel
Corps de la publication (1-2200 caractères).
mediaUrlsarray<string> ·optionnel
Jusqu'à 10 URL d'images ou de vidéos.
clientRequestIdstring ·optionnel
Clé d'idempotence optionnelle. La même clé dans les 5 minutes renvoie le résultat mis en cache.

Retourne

Un objet avec le brouillon mis à jour : {id, platform, content, mediaUrls, status, updatedAt}.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":6,
 "params":{"name":"update_post_draft",
           "arguments":{"postId":"",
                        "content":"Updated copy"}}}

connect_channel

Générez une URL à usage unique que l'utilisateur peut ouvrir pour autoriser une nouvelle connexion de plateforme.

Arguments

platformenum ·requis
Plateforme sociale : twitter, instagram, linkedin, threads, ou tiktok.

Retourne

Un objet avec authUrl (lien à usage unique que l'utilisateur ouvre pour autoriser), expiresAt et platform.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":7,
 "params":{"name":"connect_channel",
           "arguments":{"platform":"linkedin"}}}

schedule_post

Place un brouillon (statut DRAFT) dans la file de publication BullMQ à un timestamp futur. Idempotent dans une dérive de ±60s; rejette les tentatives de re-planification à une autre heure sans annulation explicite.

Arguments

postIdstring ·requis
Identifiant de publication PostNext issu d'un appel de liste.
scheduledAtstring (ISO 8601) ·requis
Timestamp ISO 8601; ne peut pas être à plus de 5 minutes dans le passé.

Retourne

Un objet avec postId, scheduledAt (ISO), status: SCHEDULED.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":8,
 "params":{"name":"schedule_post",
           "arguments":{"postId":"",
                        "scheduledAt":"2026-05-10T09:00:00Z"}}}

cancel_scheduled_post

Annule une publication planifiée et la retire de la file. Le brouillon sous-jacent est conservé.

Arguments

postIdstring ·requis
Identifiant de publication PostNext issu d'un appel de liste.

Retourne

Un objet avec postId et status: CANCELLED.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":9,
 "params":{"name":"cancel_scheduled_post",
           "arguments":{"postId":""}}}

delete_draft

Supprime définitivement un brouillon. Refuse les publications non DRAFT (utilisez cancel_scheduled_post pour SCHEDULED).

Arguments

postIdstring ·requis
Identifiant de publication PostNext issu d'un appel de liste.

Retourne

Un objet avec postId et deleted: true.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":10,
 "params":{"name":"delete_draft",
           "arguments":{"postId":""}}}

get_post

Renvoie le PostGroup complet pour un postId avec le contenu par plateforme + statut + timestamps.

Arguments

postIdstring ·requis
Identifiant de publication PostNext issu d'un appel de liste.

Retourne

Un objet avec postId, status, scheduledAt, createdAt, updatedAt et providers (carte plateforme → contenu).

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":11,
 "params":{"name":"get_post",
           "arguments":{"postId":""}}}

search_posts

Recherche de sous-chaîne (insensible à la casse) dans le contenu des publications de l'équipe active. Filtres: status, platform, limit (1-100, défaut 20).

Arguments

querystring ·requis
Sous-chaîne à rechercher (3-200 caractères; les métacaractères regex sont échappés).
statusenum ·optionnel
Optionnel: DRAFT | SCHEDULED | PUBLISHED | FAILED | CANCELLED.
platformenum ·optionnel
Plateforme sociale : twitter, instagram, linkedin, threads, ou tiktok.
limitnumber ·optionnel · default 20
Nombre maximal de résultats à retourner (1-100, défaut 20).

Retourne

Un objet avec posts: [{postId, status, platforms, snippet, scheduledAt, updatedAt}]. Le snippet contient le contexte correspondant avec des points de suspension de chaque côté.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":12,
 "params":{"name":"search_posts",
           "arguments":{"query":"launch","limit":10}}}

list_teams

Renvoie les équipes dont l'utilisateur authentifié est propriétaire ou admin, l'équipe active étant marquée.

Arguments

Aucun argument.

Retourne

Un objet avec currentTeamId et teams: [{teamId, teamName, isCurrent}].

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":13,
 "params":{"name":"list_teams","arguments":{}}}

set_current_team

Change l'équipe active pour ce jeton Bearer. L'utilisateur doit en être membre. Persisté sur le document du jeton OAuth; la mutation in-session le rend immédiatement effectif pour les outils suivants dans la même conversation.

Arguments

teamIdstring ·requis
teamId cible depuis list_teams. L'appartenance est revalidée côté serveur.

Retourne

Un objet avec teamId, teamName, persisted (true si OAuth, false si clé API) et un note optionnel.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":14,
 "params":{"name":"set_current_team",
           "arguments":{"teamId":"team_xxxxx"}}}

get_plan_limits

Lit le niveau d'abonnement actuel de l'utilisateur et les quotas par palier (canaux, stockage, crédits IA, publication). Disponible sur tous les plans. Utile avant des outils mutateurs pour prédire si l'appel sera bloqué.

Arguments

Aucun argument.

Retourne

Un objet avec tier, tierDisplayName, isPaid, isTrial, upgradeUrl, limits (channels/storage/aiCalls/posts chacun sous la forme {limit, current, exceeded} ou {limit, allowed}) et creditsAvailable ({total, subscriptionRemaining, purchasedBalance} ou null).

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":15,
 "params":{"name":"get_plan_limits","arguments":{}}}

get_post_metrics

Récupère les métriques d'engagement d'une publication publiée sur chaque plateforme où elle a été envoyée. Twitter et Instagram renvoient des métriques peuplées (likes, retweets/partages, commentaires/réponses, impressions); LinkedIn, Threads et TikTok renvoient seulement le statut de publication et l'URL (la collecte d'engagement est reportée à une version ultérieure). Un récapitulatif normalisé totals additionne likes/commentaires/partages/impressions des plateformes ayant fourni des données.

Arguments

postId Identifiant de publication PostNext issu d'un appel de liste.

Retourne

Un objet avec postId, status, providers: [{platform, publishedPostId, publishedUrl, publishedAt, status, metrics}] et totals: {likes, comments, shares, impressions}. metrics est un objet de compteurs numériques par plateforme, ou null lorsque la plateforme ne collecte pas encore l'engagement.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":16,
 "params":{"name":"get_post_metrics",
           "arguments":{"postId":""}}}

get_publish_status

Diagnostique une publication planifiée : état de la file, succès/erreur par plateforme, temps de traitement et jobId du worker. Renvoie isScheduled=false pour les publications qui existent en brouillon mais n'ont pas été placées dans la file, avec un hint pointant vers schedule_post.

Arguments

postId Identifiant de publication PostNext issu d'un appel de liste.

Retourne

Un objet avec postId, isScheduled, status, scheduledAt, publishedAt, platforms, processingTimeMs, jobId, topLevelError et results: [{platform, success, publishedPostId, publishedAt, error}]. Inclut hint quand isScheduled est false.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":17,
 "params":{"name":"get_publish_status",
           "arguments":{"postId":""}}}

update_brand_profile

Met à jour le profil de marque actif de l'utilisateur. Champs autorisés : bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize. Tout autre champ est abandonné silencieusement. Résout "actif" comme défaut d'équipe d'abord, puis le premier profil actif de l'utilisateur.

Arguments

brandVoice Tableau de descripteurs de ton de marque (p. ex. ["professionnel", "concis"]).

Other patchable fields: bio, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize.

Retourne

Un objet avec profileId, name, updated: [noms de champs patchés] et les valeurs actuelles de bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize après le patch.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":18,
 "params":{"name":"update_brand_profile",
           "arguments":{"brandVoice":["professional","concise"]}}}

get_best_time_to_post Paid plan

Recommande les meilleurs N créneaux (jourDeSemaine, heure) pour la prochaine publication sur une plateforme, classés par engagement par publication des 90 derniers jours. Twitter et Instagram renvoient des scores pondérés par engagement ; LinkedIn, Threads, TikTok classent uniquement par fréquence. Heures dans le fuseau IANA fourni (UTC par défaut). Plan payant requis.

Arguments

platform Plateforme sociale : twitter, instagram, linkedin, threads, ou tiktok.

timezone Nom de fuseau horaire IANA (p. ex. Europe/Paris, America/New_York). UTC par défaut.

topN Nombre de recommandations de créneaux à renvoyer (1-24, 5 par défaut).

Retourne

Un objet avec platform, timezone, sampleWindowDays, sampleSize, metricsAvailable et recommendations: [{dayOfWeek (1-7, Lun=1), dayLabel, hour (0-23), score, basedOn: {posts, avgEngagement}}]. Inclut hint pour les cas cold-start ou métriques indisponibles.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":19,
 "params":{"name":"get_best_time_to_post",
           "arguments":{"platform":"twitter","timezone":"Europe/Berlin","topN":5}}}

get_channel_analytics

Performance agrégée d'un canal connecté, ou de tous à la fois. Renvoie impressions, portée, likes, commentaires et taux d'engagement sur la période, l'écart avec la période précédente de même durée, et la série des abonnés. Sans platform, le total de toute l'équipe. Pour une publication seule, get_post_metrics ; pour planifier, get_best_time_to_post.

Arguments

platform Plateforme sociale : twitter, instagram, linkedin, threads, ou tiktok.

channelName Quel compte connecté, quand la plateforme en a plusieurs.

period Période à analyser : 7d, 30d, 90d ou all (30d par défaut).

Retourne

Un objet avec scope, period, totals, vsPrevious, coverage, dataThrough et followers, qui porte trackingSince, current, change et la série.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":34,
 "params":{"name":"get_channel_analytics",
           "arguments":{"platform":"linkedin","period":"30d"}}}

search_tools

Recherche le catalogue d'outils MCP par texte libre, catégorie ou intention. Renvoie catégories, requiresScope, descriptions d'une ligne et les tags de cas d'usage qui correspondent. Disponible sur tous les plans (surface de découverte).

Arguments

All optional. Call with no arguments to list every available tool.

query Recherche libre dans les noms, descriptions et tags d'usage des outils.

category Filtre sur une catégorie : posts, accounts, analytics, brand, teams, discovery, other.

Retourne

Un objet avec totalTools, matchCount, categories: [string[]] et tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}]. Inclut hint quand pas de correspondance ou pas de filtre.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":20,
 "params":{"name":"search_tools",
           "arguments":{"query":"why did my post fail"}}}

get_plan

Formule et dates de facturation : palier, date de renouvellement, fin de la période d'essai et résiliation prévue en fin de période. Pour les quotas et la consommation, appelez plutôt get_plan_limits.

Arguments

Aucun argument.

Retourne

Un objet avec tier, tierDisplayName, isPaid, isTrial, gated, subscriptionStatus, renewsAt, trialEndsAt, cancelAtPeriodEnd, currency et upgradeUrl.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":21,
 "params":{"name":"get_plan",
           "arguments":{}}}

upload_asset

Envoi d'une image ou d'une vidéo dans la médiathèque directement en base64. Fiable uniquement pour de très petits fichiers, environ 8 Ko ou moins : au-delà, le contenu est tronqué sans avertissement dans les arguments de l'outil et le fichier enregistré est corrompu. Pour tout le reste, utilisez request_asset_upload.

Arguments

filename Nom du fichier avec son extension, jusqu'à 255 caractères.

contentType Type MIME du fichier, parmi la liste autorisée d'images et de vidéos.

base64 Les octets du fichier, encodés en base64. Gardez-le très petit et lisez d'abord l'avertissement ci-dessus.

Retourne

Un objet avec assetId, url, sizeBytes et mimeType. Transmettez url à create_post_draft dans mediaUrls.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":22,
 "params":{"name":"upload_asset",
           "arguments":{"filename":"logo.png","contentType":"image/png","base64":"iVBORw0KGgo..."}}}

request_asset_upload

La méthode d'envoi recommandée, pour les images et les vidéos de toute taille. Deux étapes : appelez cet outil pour obtenir une URL présignée et une commande curl prête à l'emploi, puis envoyez le fichier en PUT vers cette URL. La réponse au PUT contient l'URL finale du média.

Arguments

filename Nom du fichier avec son extension, jusqu'à 255 caractères.

contentType Type MIME du fichier, parmi la liste autorisée d'images et de vidéos.

sizeBytes Taille exacte du fichier en octets, utilisée pour signer l'envoi.

Retourne

Un objet avec uploadId, uploadUrl, uploadToken, expiresInSeconds et instructions contenant la commande PUT exacte.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":23,
 "params":{"name":"request_asset_upload",
           "arguments":{"filename":"clip.mp4","contentType":"video/mp4","sizeBytes":4194304}}}

get_latest_blog_post

Indique si l'équipe a un blog WordPress connecté, avec un extrait de l'article le plus récent. En lecture seule et sans coût en crédits. À appeler avant create_blog_plan ou test_blog_connection pour voir ce qui est déjà en place.

Arguments

Aucun argument.

Retourne

Un objet avec blogConnected, un résumé de l'intégration sans identifiants, et latestPost avec son titre, son extrait, son statut et son URL publiée.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":24,
 "params":{"name":"get_latest_blog_post",
           "arguments":{}}}

list_blog_plans

Liste les plans de blog de l'équipe, du plus récent au plus ancien, avec leur statut, le nombre de sujets par statut, les crédits réservés et un lien vers le tableau de bord. En lecture seule et sans coût en crédits.

Arguments

limit Nombre maximal de plans renvoyés (1-50, 20 par défaut).

status Filtrer par statut : generating, active, paused, completed, cancelled ou failed.

Retourne

Un objet avec plans et total. Chaque plan porte son id, son statut, son nombre de sujets et le lien vers le tableau de bord.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":25,
 "params":{"name":"list_blog_plans",
           "arguments":{"status":"active","limit":10}}}

create_blog_plan Paid plan

Crée un plan de contenu de blog pour un profil de marque. Les sujets sont générés de façon asynchrone : le plan revient immédiatement au statut generating, interrogez list_blog_plans pour suivre l'avancement. Avec les formules Business et Teams, les articles sont en plus générés et publiés sur un blog WordPress connecté.

Arguments

startDate Premier jour couvert par le plan, au format YYYY-MM-DD.

planDays Nombre de jours couverts par le plan (1-30, 7 par défaut).

brandProfileId Profil de marque à planifier. Par défaut, le profil actif de l'équipe.

integrationId Quel blog connecté utiliser, quand l'équipe en a plusieurs.

autoPublish Publier automatiquement les articles générés sur le blog connecté (Business et Teams).

Retourne

Un objet avec planId, status, startDate, planDays, brandProfileId, integrationId, topicCount et dashboardUrl.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":26,
 "params":{"name":"create_blog_plan",
           "arguments":{"startDate":"2026-10-01","planDays":14,"autoPublish":true}}}

test_blog_connection Paid plan

Vérifie que le blog WordPress connecté répond et que son jeton est toujours valide, et enregistre le résultat sur l'intégration. Renvoie la version du plugin et ce qu'il sait faire.

Arguments

integrationId Quel blog connecté utiliser, quand l'équipe en a plusieurs.

Retourne

Un objet avec success, message, version, capabilities, integrationId et le status mis à jour.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":27,
 "params":{"name":"test_blog_connection",
           "arguments":{}}}

list_mini_sites

Liste les pages de bio de l'équipe sélectionnée, avec leur URL publique, leur état de publication et l'avancement de la configuration. Commencez par là : tous les autres outils de page de bio prennent le siteId renvoyé ici, et peuvent s'en passer quand l'équipe n'a qu'une seule page.

Arguments

Aucun argument.

Retourne

Un objet avec sites, chacun portant id, slug, name, published, url, views et l'avancement de la configuration.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":28,
 "params":{"name":"list_mini_sites",
           "arguments":{}}}

get_mini_site

Lit une page de bio en entier : en-tête de profil, icônes sociales, tous les blocs de contenu, métadonnées SEO, thème et réglages d'épinglage automatique. Les textes longs sont réduits à un aperçu de 300 caractères, et aucun identifiant n'est jamais renvoyé.

Arguments

siteId Sur quelle page de bio agir. À omettre quand l'équipe n'en a qu'une.

Retourne

Un objet avec id, slug, published, url, header, socials, meta, theme, autoPin, campaign et le tableau blocks.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":29,
 "params":{"name":"get_mini_site",
           "arguments":{}}}

get_mini_site_analytics

Les performances d'une page de bio : vues, clics, meilleurs liens, source, appareil et pays des visiteurs, lectures par les robots d'IA, et quelles publications ont amené des clics. Tous les chiffres sauf les lignes d'attribution sont des compteurs depuis le début, et non sur la période : précisez-le en présentant les résultats.

Arguments

siteId Sur quelle page de bio agir. À omettre quand l'équipe n'en a qu'une.

attributionDays Fenêtre en jours pour l'attribution publication vers clic (1-90, 30 par défaut).

Retourne

Un objet avec viewsAllTime, clicksAllTime, topLinks, bySource, byDevice, byCountry, ai, attribution et attributionWindowDays.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":30,
 "params":{"name":"get_mini_site_analytics",
           "arguments":{"attributionDays":30}}}

add_mini_site_block

Ajoute un bloc à une page de bio : link, featured, product, event, presave, épisode de podcast, booking, horaires, header, text, image ou gallery. Les champs obligatoires changent selon le type. La page publique est modifiée immédiatement.

Arguments

siteId Sur quelle page de bio agir. À omettre quand l'équipe n'en a qu'une.

type Type de bloc à ajouter, par exemple link, product, event, hours ou gallery.

... Plus les champs propres à ce type de bloc, par exemple url, title, price ou startDate.

Retourne

Un objet avec le block enregistré, le nouveau blockCount et alreadyExisted si ce même bloc était déjà présent.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":31,
 "params":{"name":"add_mini_site_block",
           "arguments":{"type":"link","url":"https://example.com","title":"New single"}}}

update_mini_site_block

Modifie un bloc existant : le titre ou l'URL d'un lien, le prix d'un produit, la date d'un événement, les horaires ou l'ordre d'affichage. Seuls les champs transmis changent, et le type de bloc ne peut pas être modifié. La réponse renvoie le bloc tel qu'il a été enregistré, ce qui rend visible toute valeur refusée.

Arguments

siteId Sur quelle page de bio agir. À omettre quand l'équipe n'en a qu'une.

blockId Id du bloc, tel que renvoyé par get_mini_site.

... Plus les champs propres à ce type de bloc, par exemple url, title, price ou startDate.

Retourne

Un objet avec le block tel qu'enregistré, la liste des champs mis à jour et ceux qui ont été ignorés.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":32,
 "params":{"name":"update_mini_site_block",
           "arguments":{"blockId":"blk_7f3a","title":"Updated title"}}}

remove_mini_site_block

Supprime un bloc d'une page de bio à partir de son blockId, par exemple une date de tournée passée ou un lien produit retiré. Appelez d'abord get_mini_site pour trouver l'id. La page publique est modifiée immédiatement.

Arguments

siteId Sur quelle page de bio agir. À omettre quand l'équipe n'en a qu'une.

blockId Id du bloc, tel que renvoyé par get_mini_site.

Retourne

Un objet avec removed, le blockId et le nombre de blocs restants.

Exemple

{"jsonrpc":"2.0","method":"tools/call","id":33,
 "params":{"name":"remove_mini_site_block",
           "arguments":{"blockId":"blk_7f3a"}}}

Ressources MCP

Les ressources sont du contexte en lecture seule que le client peut récupérer via la méthode MCP resources/read. Claude les charge au début de chaque conversation pour avoir le contexte compte/équipe/marque sans qu'il faille le réexpliquer à chaque fois.

postnext://account/summary

E-mail et identifiant du compte (pour que Claude confirme avec quel compte il opère), forfait, crédits IA utilisés / limite, nombre de brouillons, nombre de planifiés, canaux connectés. Comptages plafonnés à 100 chacun pour un chargement rapide.

postnext://channels/connected

Même forme que le résultat de list_connected_accounts; exposé en tant que ressource pour que Claude le charge une fois au début de la conversation (pas d'aller-retour d'appel d'outil).

postnext://brand-profiles/active

Le profil de marque actif de l'utilisateur (par défaut de l'équipe, avec repli sur le premier profil propre). Renvoie uniquement les champs pertinents pour le LLM : bio, expertiseAreas, personalityTraits, brandVoice, mainThemes, audienceSize, preferredHashtags.

postnext://teams/current

Métadonnées de l'équipe actuelle (teamId, teamName) plus totalTeamsAvailable. À combiner avec list_teams + set_current_team pour changer.

Workflows nommés

Raccourcis slash qui orchestrent plusieurs outils. Choisissez-en un et laissez votre assistant IA dérouler une tâche en plusieurs étapes, avec confirmation avant toute modification.

/weekly-plan

Lit le profil de marque, les canaux connectés et la file, puis propose 5-10 brouillons répartis du lundi au vendredi.

/draft-thread

Rédige un fil de 5-10 publications pour Twitter ou Threads à partir d'un sujet ou d'une URL que vous fournissez, dans le ton de votre marque.

/audit-queue

Parcourt les 7 prochains jours de publications planifiées et signale doublons, surcharge de plateforme et créneaux vides.

/channel-sweep

Compare les canaux connectés à la liste des plateformes prises en charge et suggère lesquels connecter ou rafraîchir.

Endpoints de découverte et OAuth

Métadonnées conformes aux standards pour qu'un client MCP puisse s'auto-configurer.

  • GET /.well-known/oauth-protected-resource/api — RFC 9728
  • GET /.well-known/oauth-authorization-server — RFC 8414
  • GET /oauth/.well-known/openid-configuration — OIDC
  • POST /oauth/reg — Dynamic Client Registration (RFC 7591)
  • GET /oauth/auth — Authorize (PKCE-S256 required)
  • POST /oauth/token — Token exchange

Open source

Des recettes prêtes à copier et une référence orientée développeurs vivent dans notre dépôt de docs public. Sous licence MIT ; pull requests bienvenues. github.com/postnextio/postnext-mcp

Pilote tes canaux sociaux depuis n'importe quel assistant IA

Planifie, rédige, programme et audite des publications sur 7 plateformes en discutant avec Claude, ChatGPT ou Cursor. Une connexion sécurisée, toutes les fonctionnalités PostNext.

×