Connecter Shager à Claude Code : une commande, puis des brouillons pour 50 comptes depuis votre terminal

Ajoutez le serveur MCP de Shager à Claude Code avec claude mcp add et un en-tête bearer, choisissez le scope, vérifiez, puis créez un brouillon multicompte.

Pour connecter Shager à Claude Code, lancez claude mcp add --transport http shager https://app.shager.ai/api/mcp --header "Authorization: Bearer shgr_live_...", puis vérifiez avec /mcp dans une session. Cette commande enregistre le serveur MCP distant de Shager en HTTP streamable, et Claude Code peut aussitôt lister vos espaces de travail, vos comptes connectés et vos publications. Comptez environ deux minutes une fois la clé API en main.

Ce guide couvre l'obtention de la clé, le choix du bon niveau de configuration, la manière de garder le secret hors de git, et la première vraie tâche à lancer.

De quoi avez-vous besoin avant de commencer ?

De deux choses : Claude Code installé, et une clé API Shager qui commence par shgr_live_.

Il y a deux façons d'obtenir la clé. Si vous avez déjà un compte Shager, une personne de votre équipe la crée sur https://app.shager.ai/dashboard/agents et choisit les scopes (read, write et, éventuellement, publish). Si vous n'avez pas encore de compte, l'agent peut s'inscrire lui-même en un seul appel HTTP et récupérer une clé de sandbox. Ce parcours est détaillé dans l'auto-inscription des agents et la revendication, et la version courte se trouve sur /auth.md.

Un mot sur les scopes avant de coller quoi que ce soit. La première semaine, donnez à Claude Code uniquement read et write. Il pourra créer des espaces de travail, importer des médias et préparer des brouillons, mais ni programmer ni publier. Vous ajouterez publish plus tard, quand les brouillons qu'il produit vous inspireront confiance.

Une commande Claude Code qui ajoute le serveur MCP de Shager avec une clé API dans l'en-tête Authorization.
Une commande, puis /mcp pour vérifier la connexion.

Comment ajouter le serveur avec claude mcp add ?

La documentation MCP de Claude Code donne la syntaxe exacte pour un serveur HTTP distant avec un jeton bearer : --transport http, un nom, l'URL et --header. Pour Shager, cela donne :

claude mcp add --transport http shager https://app.shager.ai/api/mcp \
  --header "Authorization: Bearer shgr_live_your_key_here"

La documentation précise que claude mcp add enregistre la configuration sans vérifier l'identifiant. Une faute de frappe dans la clé ne provoquera pas d'erreur à ce stade : l'échec viendra plus tard, au moment où le client se connecte.

Quel scope choisir ?

L'option --scope détermine où la configuration est enregistrée. D'après la même page de documentation :

Scope Emplacement À utiliser quand
local (par défaut) Votre configuration utilisateur, pour ce projet uniquement Vous testez Shager dans un seul dépôt
project .mcp.json dans le dépôt, partagé avec l'équipe Toute l'équipe lance ses tâches de contenu depuis ce dépôt
user Votre configuration utilisateur, tous projets confondus Vous voulez Shager partout où vous ouvrez Claude Code

Pour une agence, user est généralement le bon choix : la diffusion n'est pas liée à une base de code en particulier.

claude mcp add --transport http shager --scope user https://app.shager.ai/api/mcp \
  --header "Authorization: Bearer shgr_live_your_key_here"

Comment partager la configuration sans committer la clé ?

Si vous voulez un scope project pour que vos collègues récupèrent le serveur automatiquement, n'écrivez pas la clé en dur dans .mcp.json. Claude Code prend en charge l'expansion des variables d'environnement dans url et headers pour les serveurs HTTP, avec ${VAR} ou ${VAR:-default}. Committez plutôt ceci :

{
  "mcpServers": {
    "shager": {
      "type": "http",
      "url": "https://app.shager.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer ${SHAGER_API_KEY}"
      }
    }
  }
}

Chacun exporte ensuite sa propre clé dans le profil de son shell :

export SHAGER_API_KEY="shgr_live_your_key_here"

Deux détails de la documentation comptent ici. Si la variable n'est pas définie, Claude Code charge quand même la configuration et envoie le texte littéral ${SHAGER_API_KEY}, avec un avertissement dans claude mcp list. Et certains noms d'identifiants réservés, comme ANTHROPIC_API_KEY, sont volontairement remplacés par une valeur vide dans les en-têtes distants : utilisez donc toujours votre propre nom de variable. SHAGER_API_KEY convient très bien.

Une clé par personne rend aussi utile le journal d'audit sur https://app.shager.ai/dashboard/agents. Chaque appel d'agent y est enregistré avec la clé qui l'a émis : vous savez quelle session a créé quel brouillon.

Comment vérifier que tout fonctionne ?

Depuis le shell :

claude mcp list
claude mcp get shager

Dans une session, tapez /mcp. Un serveur en bonne santé apparaît comme connecté. Selon la documentation, un serveur aux identifiants invalides apparaît en échec, et le détail indique le code HTTP. Pour Shager, un 401 signifie que l'en-tête est absent ou mal formé. Le serveur attend exactement Authorization: Bearer shgr_..., avec le mot Bearer et une seule espace.

Demandez ensuite à Claude quelque chose de léger, en lecture seule :

Call whoami on shager, then list my workspaces with their channel counts.

whoami renvoie l'organisation et les scopes de la clé. Si vous voyez read et write mais pas publish, la configuration fonctionne exactement comme prévu.

Schéma : un agent IA (Claude, Codex ou Cursor) se connecte à Shager via le serveur MCP ou l'API REST, et Shager diffuse sur Facebook, Instagram, YouTube, X, LinkedIn et TikTok.
Shager gère les connexions, les vérifications, l'étalement des envois et la mesure des clics. Facebook et Instagram attendent la validation de Meta ; d'ici là, seuls des comptes de test peuvent se connecter. Sur TikTok, les publications sont publiées en privé (« moi uniquement ») jusqu'à ce que TikTok valide l'application.

Quelle doit être la première vraie tâche ?

Ne commencez pas par « publie quelque chose ». Commencez par un brouillon qui sollicite les fonctions de Shager qui comptent à grande échelle. Un bon premier prompt :

In the workspace "Northside Dental", list the channels and the account groups.
Upload this video as media: https://example.com/clips/whitening-30s.mp4
(width 1080, height 1920, duration_ms 30000).
Then create a DRAFT post (no schedule_at) to the group "All locations" as a REEL,
with a caption per channel that mentions the city in that account's name,
first_comment "Book a slot: " plus the cta_url,
cta_url https://northsidedental.example/book, campaign "whitening-oct".
Show me the per-channel captions before you call create_post.

En coulisses, Claude enchaîne list_channels, list_groups, upload_media_from_url et create_post. Trois champs de cet appel font l'essentiel du travail.

  1. per_channel donne à chaque compte sa propre légende au lieu de cinquante publications identiques. Les réseaux comme les audiences repèrent les doublons, c'est pourquoi nous le recommandons dans éviter les blocages pour spam à grande échelle.
  2. cta_url génère un lien court et un tag UTM distincts par compte, avec utm_content qui identifie le compte. Les clics remontent compte par compte via get_analytics.
  3. Indiquer la largeur, la hauteur et duration_ms à l'import permet à Shager de valider le Reel selon les règles de chaque réseau avant toute mise en file d'attente.

Comme aucun schedule_at n'a été passé, le résultat est un brouillon. Vous le relisez dans l'application Shager, ou vous demandez à Claude un get_post.

Comment encadrer ce que Claude Code a le droit de faire ?

Claude Code demande l'autorisation avant d'appeler des outils MCP, sauf si vous les avez autorisés. Les outils MCP sont nommés mcp__<server>__<tool> : pour Shager, vous verrez donc mcp__shager__create_post, mcp__shager__list_posts, etc. Une liste d'autorisations raisonnable pour démarrer approuve les outils de lecture et laisse tout ce qui écrit soumis à confirmation. Associez cela à une clé sans publish et vous disposez de deux freins indépendants : le client vous demande votre accord, et le serveur refuse de programmer quoi qu'il arrive.

Quand vous serez prêt à programmer, créez une nouvelle clé avec publish, remplacez la variable d'environnement et gardez l'ancienne clé read/write pour les sessions exploratoires. L'API REST et le serveur MCP de Shager appliquent les mêmes scopes : la règle tient, quel que soit le chemin emprunté par un script.

Check-list de dépannage

Symptôme Cause probable Solution
/mcp affiche un échec, 401 Bearer manquant dans l'en-tête ou clé mal saisie Ajoutez à nouveau le serveur, ou vérifiez que la variable d'environnement est exportée dans le shell qui a lancé Claude
Les outils apparaissent mais create_post avec schedule_at renvoie 403 La clé n'a pas publish, ou la sandbox n'est pas revendiquée Comportement attendu. Créez un brouillon, ou demandez à un humain d'ajouter le scope
429 rate_limited Plus de 120 requêtes par minute sur une même clé Regroupez le travail : un seul create_post couvre de nombreux comptes
422 rejected Une règle du réseau n'est pas respectée, par exemple un Reel trop long Lisez le message : il indique le compte et la règle

FAQ

Faut-il installer autre chose que Claude Code ?

Non. Shager fonctionne comme un serveur MCP distant : pas de processus local, de conteneur Docker ni de paquet npm à installer. Claude Code communique directement avec https://app.shager.ai/api/mcp en HTTP streamable.

Claude Code peut-il publier sans que je valide chaque publication ?

Seulement si la clé qu'il utilise possède le scope publish et que le compte a été revendiqué par un humain. Sans ce scope, les appels de programmation et de publication renvoient 403, quoi que tente l'agent. Beaucoup d'équipes activent aussi la validation client par espace de travail, ce qui ajoute une relecture humaine avant toute programmation.

Shager prend-il en charge la connexion OAuth pour Claude Code ?

Oui. Le serveur MCP de Shager prend en charge la connexion OAuth pour tout client MCP compatible. Ajoutez le serveur sans l'option --header, lancez /mcp et choisissez de vous authentifier, puis connectez-vous à Shager et validez dans le navigateur. L'en-tête avec la clé API présenté plus haut fonctionne toujours, et c'est le meilleur choix pour les scripts et les machines où personne ne peut se connecter.

Et ensuite ?

Une fois que Claude Code voit vos espaces de travail, l'étape logique consiste à rendre la routine reproductible plutôt que de retaper vos prompts. Le guide créer un skill Claude pour Shager transforme le flux de brouillon ci-dessus en une commande /shager que toute votre équipe peut lancer, et la page agents recense chaque outil et chaque endpoint si vous voulez d'abord la carte complète.

Essayez sur vos propres comptes.

Gratuit pendant le lancement, sans carte. Connectez, écrivez une fois, et Shager publie et mesure.