EmDash dispose d’un serveur Model Context Protocol (MCP) intégré qui permet aux assistants IA de travailler directement avec le contenu de votre site. Vous pouvez demander à Claude, ChatGPT ou d’autres outils de rédiger des articles, mettre à jour des pages, gérer les médias, rechercher dans votre contenu, et plus — le tout par conversation naturelle.
Le serveur MCP de votre site
Le serveur MCP est activé par défaut. EmDash monte /_emdash/api/mcp sauf si vous le désactivez. L’endpoint accepte les tokens bearer OAuth ou d’accès personnel ; une session admin dans le navigateur seule n’authentifie pas une requête MCP. OAuth permet à la personne connectant le client de choisir les scopes avant qu’EmDash n’émette le token.
Pour le désactiver, définissez mcp: false dans votre configuration Astro :
emdash({
mcp: false,
});
Connecter un client IA
L’URL du serveur MCP de votre site est :
https://example.com/_emdash/api/mcp
Remplacez example.com par votre domaine. Pour le développement local, utilisez http://localhost:4321/_emdash/api/mcp.
Claude
Ajoutez l’URL comme connecteur personnalisé distant. Claude ouvre le flux OAuth d’EmDash pour que vous puissiez vous connecter et choisir les permissions. Anthropic modifie les écrans de connecteurs indépendamment d’EmDash, suivez donc ses instructions actuelles de connecteurs personnalisés pour les contrôles exacts et les exigences de plan.
ChatGPT
Le mode développeur de ChatGPT peut connecter un serveur MCP distant et supporte les outils authentifiés par OAuth. L’éligibilité et les écrans de paramètres peuvent changer, suivez donc le guide officiel du mode développeur ChatGPT et utilisez l’URL MCP de votre site lors de la création de l’application. Vérifiez chaque appel d’écriture avant de l’approuver.
Codex
Ajoutez le serveur distant depuis la CLI Codex, puis lancez la connexion OAuth :
codex mcp add emdash-site --url https://example.com/_emdash/api/mcp
codex mcp login emdash-siteL’application de bureau ChatGPT, la CLI Codex et l’extension IDE partagent la configuration MCP pour le même hôte Codex. Consultez la documentation officielle MCP de Codex pour les fichiers de configuration, OAuth et les transports supportés.
Travailler avec le contenu du site
Une fois connecté, vous pouvez demander à l’assistant IA d’effectuer n’importe laquelle de ces opérations en langage naturel. Vous n’avez pas besoin de connaître les noms des outils — décrivez simplement ce que vous voulez.
Contenu
- Parcourir le contenu — “Montre-moi les 10 derniers articles de blog” ou “Trouve toutes les pages en brouillon”
- Lire le contenu — “Récupère l’article appelé ‘hello-world’ et résume-le”
- Créer du contenu — “Écris un nouvel article de blog sur nos soldes d’été” ou “Crée un brouillon de page pour la section À propos”
- Modifier le contenu — “Mets à jour la page de tarifs pour mentionner le nouveau plan” ou “Corrige la faute dans l’article FAQ”
- Publier et planifier — “Publie l’article des soldes d’été”, “Planifie l’annonce pour le 1er juin à 9h” ou “Annule la planification de l’article de lancement”
- Comparer les versions — “Montre-moi ce qui a changé sur la page d’accueil depuis sa dernière publication”
- Gérer les brouillons — “Abandonne les modifications du brouillon de la page À propos” ou “Duplique le template de newsletter”
- Traductions — “Quelles traductions existent pour l’article de bienvenue ?” ou “Crée un brouillon en français lié à cet article en anglais” (quand l’i18n est activé)
Signatures
- Parcourir les signatures — “Liste les contributeurs invités dont le nom contient ‘Lee’”
- Créditer le contenu — “Ajoute Priya Shah comme signature principale sur cet article”
- Gérer les signatures — “Crée une signature invitée pour Sam Rivera” ou “Mets à jour la bio de ce contributeur”
- Traduire les signatures — “Montre les variantes locales de cette signature”
La création, mise à jour, suppression et traduction des signatures nécessite le rôle Éditeur. Les outils d’écriture de contenu acceptent les IDs de signatures existantes quand l’appelant a la permission de créer ou modifier ce contenu.
Médias
- Parcourir les médias — “Liste toutes les images uploadées” ou “Montre-moi les PDFs dans la bibliothèque de médias”
- Vérifier les détails — “Récupère les détails de cet élément média”
- Uploader des fichiers — “Uploade cette image base64 comme
banner.png” ou “Importe l’image de cette URL publique” - Enregistrer des objets de stockage existants — “Enregistre
media/2026/banner.pngcomme élément média” - Mettre à jour les métadonnées — “Définis le texte alt de l’image hero à ‘Coucher de soleil en montagne’”
- Supprimer des fichiers — “Supprime l’ancienne image de bannière”
media_upload accepte des bytes encodés en base64 ou une URL HTTP(S) publique. Il stocke le fichier, enregistre l’élément média et retourne l’ID et l’URL. media_create n’enregistre que les métadonnées d’un fichier déjà dans le stockage. Les imports par URL rejettent les cibles de réseau privé et re-vérifient les redirections ; les deux chemins appliquent les limites de type MIME et de taille d’upload du site.
Les contributeurs peuvent utiliser media_upload. Enregistrer un objet de stockage existant avec media_create nécessite le rôle Auteur ou supérieur.
Recherche
- Trouver du contenu — “Cherche des articles mentionnant ‘accessibilité’” ou “Trouve tout sur TypeScript dans toutes les collections”
Taxonomies
- Parcourir — “Liste toutes les catégories” ou “Montre-moi les tags”
- Créer des termes — “Ajoute un tag ‘tutoriels’” ou “Crée une sous-catégorie ‘Frontend’ sous ‘Ingénierie’”
- Renommer des termes — “Renomme la catégorie ‘frontend’ en ‘Web Frontend’”
- Déplacer des termes — “Déplace le tag ‘tutoriels’ sous la catégorie ‘guides’” ou “Détache ‘react’ de son parent”
- Supprimer des termes — “Supprime le tag ‘archive’ inutilisé”
Menus
- Voir les menus — “Montre-moi le menu de navigation principal” ou “Qu’y a-t-il dans le menu du pied de page ?”
- Créer des menus — “Crée un nouveau menu ‘sidebar’”
- Modifier les menus — “Renomme le menu ‘main’ en ‘Navigation principale’”
- Définir les éléments — “Remplace les éléments du menu principal par Accueil, Blog, À propos et Contact”
- Supprimer les menus — “Supprime le menu ‘mobile’ inutilisé”
Paramètres du site
- Inspecter — “Quel est le titre actuel du site ?” ou “Montre-moi les liens sociaux”
- Mettre à jour l’identité — “Définis le titre du site à ‘Acme Blog’ et le slogan à ‘Histoires de l’équipe’”
- Définir logo / favicon — “Utilise cette image comme logo du site” (après l’avoir uploadée avec
media_upload) - Valeurs SEO par défaut — “Définis l’image OG par défaut sur la nouvelle bannière” ou “Mets à jour le séparateur de titre en barre verticale”
- Liens sociaux — “Ajoute nos liens GitHub et YouTube aux paramètres sociaux”
Schéma (Admin uniquement)
- Inspecter — “Quelles collections existent ?” ou “Montre-moi les champs de la collection posts”
- Créer des collections — “Crée une nouvelle collection ‘testimonials’ avec des champs nom et citation”
- Modifier le schéma — “Ajoute un champ booléen ‘featured’ aux posts”
Révisions
- Voir l’historique — “Montre l’historique des révisions de cet article”
- Restaurer — “Restaure l’article à sa version précédente”
Permissions
Quand un client MCP ouvre la page de consentement OAuth, chaque permission demandée est sélectionnée par défaut. Décochez toute permission dont le client n’a pas besoin avant d’approuver l’accès. Le token résultant est limité aux permissions que vous gardez sélectionnées et aux permissions autorisées par votre rôle EmDash, donc accorder moins de permissions n’augmente jamais ce que le client peut faire.
| Rôle | Ce que l’IA peut faire |
|---|---|
| Admin | Tout, y compris les changements de schéma et la mise à jour des paramètres du site |
| Éditeur | Gérer tout le contenu, les médias, les signatures, les taxonomies et les menus. Voir le schéma et lire les paramètres. |
| Auteur | Créer du contenu ; modifier et publier le contenu possédé ; uploader des médias et gérer les médias possédés. |
| Contributeur | Créer du contenu en brouillon et uploader des médias, sans publier. |
EmDash rejette un appel d’outil quand soit le scope du token soit le rôle de l’utilisateur est insuffisant. Un client peut expliquer cette erreur, mais EmDash reste l’autorité qui l’applique.
Conseils
- Soyez spécifique sur les collections. Dites “crée un article de blog” plutôt que “crée un article” si vous avez plusieurs collections.
- Demandez d’abord le schéma. Si vous n’êtes pas sûr des champs d’une collection, demandez “Quels champs a la collection posts ?” avant de créer ou modifier du contenu.
- Vérifiez avant de publier. Demandez à l’IA de créer du contenu en brouillon, vérifiez-le dans le panneau admin, puis demandez à l’IA de le publier — ou publiez-le vous-même.
- Utilisez la comparaison pour vérifier. Avant de publier, demandez “Compare les versions live et brouillon de cet article” pour voir exactement ce qui va changer.
- Les champs de texte enrichi utilisent Portable Text. L’IA peut écrire du contenu pour les champs de texte enrichi, mais le formatage complexe se fait mieux dans l’éditeur admin.
Pour les développeurs
L’endpoint du serveur MCP, les méthodes d’authentification, la découverte OAuth, les paramètres d’outils et la gestion des erreurs sont documentés dans la Référence du serveur MCP.