Skip to main content
Glama

GPSEM MCP

Serveur MCP de GPSEM : il donne à un assistant IA (Claude, ChatGPT, Cursor, Windsurf…) l'accès à votre compte GPSEM.

  • Pages, catégories, archives (CPT) : lister, lire la fiche complète d'une page (SEO, indexation, scores, historique, problèmes de crawl), créer, modifier.

  • Historique des modifications : lire et ajouter des événements (site, page, catégorie, archive), dont chaque lien interne avec sa page source et sa date, pour mesurer l’effet de chaque changement sur le crawl, l’indexation et le trafic.

  • Indexation : état des tests d'indexation du site (bilan, file d'attente, erreurs, lancements), test immédiat de pages précises ou par lot, demandes d'indexation à Google (API Indexing, quota de 200 par jour et par clé) et leur historique.

  • Search Console, GA4, Bing Webmaster, Merchant Center, YouTube : interrogés en direct avec les connexions déjà faites dans GPSEM, sans rien reconnecter. Search Console et GA4 acceptent des requêtes libres (dimensions, métriques, filtres, périodes).

  • Audit SEO : sections collectées à la demande ; 14 types de rapports préréglés (express, résultats, visibilité, trafic, concurrence, indexation, contenus, maillage, performance, historique, cadrage, technique, complet, Knowledge Graph), en aperçu, PDF et PowerPoint ; scores, plan d’action priorisé avec gain estimé, suivi des actions.

  • Rapports mis en page : rapports prêts à l'emploi (mensuel, direction, hebdomadaire, visibilité Google, audience, indexation, technique, contenus, e-commerce, IA, bilan annuel) calculés pour la période voulue, avec comparaison ; chiffres lisibles par l'assistant, composition d'un rapport sur mesure à partir d'une centaine de modules, et lien public (aperçu + PDF, sans connexion, période figée, révocable) à insérer dans un e-mail.

  • Outils GPSEM : 57 tableaux et croisements (opportunités, concurrence Semrush, saisonnalité, motifs des non indexées, activité de Google, liens internes datés…) des écrans et de la boîte à outils, groupés par thème (indexation, contenus et pruning, mots-clés et Search Console, maillage, netlinking, analytics et conversions, planning éditorial).

  • Tableaux croisés e-commerce : une cinquantaine de tableaux par fiche produit qui croisent catalogue, Search Console, Google Analytics 4, Merchant Center, crawl et tests d'indexation (position × ventes, ruptures qui coûtent, requêtes d'achat, fiches jumelles, liens internes × demande, qualité du flux, prix du marché, saisonnalité…). Modules ecommerce_* de listReportModules, lus avec getReportData (modules=…, et settings pour choisir la vue et le nombre de lignes) ; chaque ligne porte l'adresse de la page.

  • Recherche de différences : pour quelques adresses (du site ou d'un concurrent), ce que la Wayback Machine en a gardé sur plusieurs périodes est lu et comparé — contenu refait, balise titre et meta description réécrites, fichiers CSS et JS, CMS, thème et outils installés ou retirés — avec la date des gros changements, cherchée en coupant la période en deux, et sa place par rapport aux mises à jour Google (pendant un déploiement, avant ou après, avec l'écart en jours). Les mises à jour Google seules : listGoogleUpdates.

  • Screaming Frog : lancer un crawl, problèmes par catégorie, plan d'action, rapport par problème (avec la documentation Google), problèmes d'une page, correction automatique des liens vers des 404, des redirections 301 et des boucles de redirection (une à la fois par site, avec son état).

  • Audit Opquast : créer un audit, parcourir les 240 règles par catégorie, y répondre (conforme / non conforme) avec un commentaire argumenté à partir du crawl et des pages, marquer les catégories hors périmètre, rédiger la synthèse de chaque catégorie.

  • Analyses : suggestions de maillage interne, NavRank / ClickRank, mots-clés et analyse sémantique, cartographie sémantique du site.

  • Veille et tendances : sujets en hausse pour le site, analyse d’une page externe (concurrent, actualité) pour savoir si elle a du sens pour le site, ajout en idée ou rédaction, topics surveillés et leurs insights.

  • Rédaction : idées de contenu, rédaction automatique depuis une expression, une ou plusieurs URL (réécriture d'une page concurrente), un mot-clé.

  • Éditeurs de contenu : l'assistant sait dans quel éditeur est chaque page (éditeur classique, blocs Gutenberg, Elementor sur WordPress, Creative Elements sur PrestaShop) et écrit dans le bon format : il conserve les blocs d'une page Gutenberg, lit et modifie la structure et les widgets d'une page Elementor, connaît les widgets disponibles sur le site et leurs réglages, et peut régler l'éditeur par défaut du site ou d'un type de contenu.

  • Synchronisation CMS : envoyer une page vers le CMS du site, réimporter une page, synchroniser tout le site.

  • Backlinks (MyBack.link) : crédit, coût des options, ancres déjà utilisées, historique des commandes, commande de backlinks vers vos pages. L'achat via le MCP est désactivé par défaut : il s'active dans GPSEM, paramètres MyBack.link de l'entreprise, avec un plafond mensuel et un nombre maximal d'articles par commande.

  • Compte : ajout de site (dans la limite de l'abonnement), coordonnées de l'entreprise, paramètres du site, mentions légales.

Les outils sont générés au démarrage depuis la spécification OpenAPI de l'API GPSEM : toute nouvelle route de l'API devient un outil, sans mise à jour du paquet.

Installation

Il faut Node.js 18 ou plus et un token API GPSEM : dans GPSEM, menu utilisateur → API & MCP, ou fiche entreprise → onglet API GPSEM → Créer un token. Le token n'est affiché qu'une fois.

Claude Code

claude mcp add gpsem -e GPSEM_API_TOKEN=gpsem_votre_token -- npx -y github:puples/gpsem-mcp

Claude Desktop, Cursor, Windsurf et autres clients MCP

Dans le fichier de configuration MCP du client (claude_desktop_config.json, .cursor/mcp.json…) :

{
  "mcpServers": {
    "gpsem": {
      "command": "npx",
      "args": ["-y", "github:puples/gpsem-mcp"],
      "env": { "GPSEM_API_TOKEN": "gpsem_votre_token" }
    }
  }
}

Variables d'environnement

Variable

Rôle

GPSEM_API_TOKEN

obligatoire

Token gpsem_… de l'entreprise

GPSEM_SITE_ID

facultatif

Site par défaut (ID encodé) : plus besoin de préciser siteId

GPSEM_API_URL

facultatif

Défaut https://app.gpsem.io/api/v1/external

GPSEM_MAX_CHARS

facultatif

Taille maximale d'une réponse transmise à l'assistant (défaut 60 000 caractères)

GPSEM_EXPORT_DIR

facultatif

Dossier où l'assistant peut enregistrer les réponses complètes en fichier (voir Export en fichier). Absent : pas d'export en fichier

GPSEM_EXPORT_MAX_PAGES

facultatif

Nombre maximal de pages enchaînées par toutes_les_pages (défaut 200)

Le token reste sur votre poste : le serveur MCP appelle directement l'API GPSEM, sans intermédiaire.

Related MCP server: georanker-seo-mcp

Exemples de demandes

  • « Quels sont les 10 chantiers SEO prioritaires de mon site, avec leur gain estimé ? »

  • « Liste les pages qui ont beaucoup d'impressions mais un click rank faible et propose de nouvelles balises title. »

  • « Corrige la meta description des pages sans meta, envoie-les sur WordPress et note-le dans l'historique. »

  • « Quelles pages sont hors sujet d'après la cartographie sémantique ? »

  • « Rédige un article à partir de cette page concurrente : https://… »

  • « Sur la page Elementor /services, remplace le texte du deuxième bloc et ajoute un bouton vers /contact, sans toucher à la mise en page. »

  • « Les mentions légales de mon site sont-elles complètes ? Complète l'hébergeur et le directeur de la publication. »

  • « Crée un nouveau site pour https://exemple.fr si mon abonnement le permet. »

  • « Lance un crawl Screaming Frog, puis fais l'audit Opquast du site à partir du crawl, avec un commentaire pour chaque règle. »

  • « Mon trafic baisse depuis mi-décembre : est-ce une mise à jour Google ou un changement du site ? »

  • « Le site a-t-il été piraté ? Regarde ce qui a changé sur l'accueil et les pages qui ont perdu du trafic depuis un an. »

  • « J'ai réécrit le title de /services il y a 10 jours : Google est-il repassé, et y a-t-il déjà un effet ? »

  • « Teste l'indexation des 5 articles publiés cette semaine et demande l'indexation de ceux qui ne le sont pas (je valide avant). »

  • « Quelles pages mériteraient des backlinks ce mois-ci ? Prépare une commande MyBack.link de 3 articles, je valide avant. »

Catalogue des rapports

À la connexion, le serveur envoie à l'assistant la liste de tous les rapports disponibles, dans ses consignes : chaque section / question de l'audit complet (par chapitre), Screaming Frog, NavRank / ClickRank, Opquast, sources de données, analyses, avec l'outil et les arguments à utiliser. Avec GPSEM_SITE_ID, la liste est celle du site : rapports indisponibles signalés (source non connectée, pas de crawl…) et problèmes Screaming Frog relevés au dernier crawl.

Le catalogue complet est aussi exposé :

  • en outils : listReports (général) et listReportsForSite ;

  • en ressources MCP : gpsem://rapports et gpsem://sites/{siteId}/rapports.

Export en fichier

Pour exporter une grosse liste (pages, mots-clés, tableau d'un outil GPSEM…), l'assistant n'a pas à la lire tranche par tranche dans la conversation : avec GPSEM_EXPORT_DIR, le serveur écrit lui-même la réponse dans un fichier de ce dossier.

"env": { "GPSEM_API_TOKEN": "gpsem_votre_token", "GPSEM_EXPORT_DIR": "C:\\Users\\moi\\exports-gpsem" }

Chaque outil de lecture reçoit alors deux arguments de plus :

Argument

Rôle

enregistrer_sous

texte

Nom de fichier relatif au dossier d'export, ex. pages-site.json ou 2026-10/mots-cles.csv (les sous-dossiers sont créés). Extensions admises : .json, .jsonl, .csv. Un chemin absolu ou contenant .. est refusé

toutes_les_pages

vrai / faux (défaut faux)

Si la réponse est paginée (limit / page, ou offset), enchaîne les pages jusqu'au bout et réunit tout dans le même fichier, dans la limite de GPSEM_EXPORT_MAX_PAGES

La réponse complète est écrite dans le fichier, sans la troncature de GPSEM_MAX_CHARS. L'assistant ne reçoit qu'un accusé : chemin du fichier, taille, nombre de lignes, meta.total, noms des colonnes et les 3 premières lignes en aperçu.

  • .json : la réponse telle que reçue ; avec toutes_les_pages, { meta, data: [...] } avec toutes les lignes.

  • .jsonl : une ligne par élément de la liste.

  • .csv : une ligne par élément, colonnes = toutes les clés de premier niveau, valeurs imbriquées en JSON, séparateur ;, UTF-8 avec BOM (s'ouvre directement dans Excel).

.jsonl et .csv demandent une réponse en liste ; une réponse qui n'en est pas une s'enregistre en .json. Si une erreur survient en cours de pagination, les pages déjà lues restent dans le fichier et l'accusé dit où reprendre. Un fichier du même nom est remplacé. Les outils qui modifient des données n'ont pas ces arguments, et le token n'est jamais écrit dans un fichier.

Bonnes pratiques intégrées

  • Données par étapes : les grosses réponses sont résumées ou paginées (sections d'audit : data_index puis data= / bloc= ; cartographie : cluster=, q=, page_id= ; listes : limit, page). Au-delà de GPSEM_MAX_CHARS, la réponse est tronquée avec une indication pour affiner la demande.

  • Historique : l'assistant lit getHistoriqueCodes et choisit le code le plus précis, ou le code générique de la cible (100-09-001 site, 300-09-001 page, 310-09-001 catégorie, 320-09-001 archive). Les événements ajoutés par le MCP portent la source mcp.

  • Éditeurs de contenu : avant de modifier un contenu, l'assistant lit l'éditeur de la page (getPage, champ editor). Page en blocs : les délimiteurs de blocs sont conservés. Page Elementor : il modifie la structure (elementor_data) en gardant identifiants et réglages de style ; un contenu qui ne correspond plus à la structure est refusé plutôt que d'écraser la mise en page. Les widgets et leurs réglages viennent de getContentEditors.

  • Cas d'usage guidés : les consignes du serveur décrivent comment enchaîner les outils pour quatre demandes types — audit après un problème (dater la baisse dans Search Console, la rapprocher des mises à jour Google, chercher les changements du site dans l'historique et les archives du web, inspecter thème, outils et scripts en cas de changement ou de piratage), audit pour améliorer le site, recherche de gains de positions, suivi d'un site ou d'une URL (attendre le passage de Google, visible dans l'historique, avant de juger l'effet d'une modification).

  • Actions à effet réel (publication CMS, rédaction automatique, création de site, génération d'audit, modification du compte) : signalées aux clients MCP comme non en lecture seule ; l'assistant est invité à demander confirmation.

Vérifier l'installation

npx -y github:puples/gpsem-mcp --list-tools

Affiche la liste des outils (ne nécessite pas de token).

Documentation de l'API : app.gpsem.io/api/v1/external/docs.

Licence

MIT

Available Tools

51 tools
addSiteHistoriqueAjouter un événement à l'historiqueA

Ajouter un événement à l'historique — Pour signaler une modification faite hors de GPSEM (refonte, robots.txt, campagne de liens, contenu retravaillé…). Familles autorisées : 100, 300, 310, 320. — (POST /sites/{siteId}/historique)

Inputs: code (required), siteId (required), url, date, +7 more.

createAuditReportGénérer l'audit completA

Générer l'audit complet — Crée un rapport avec toutes les sections disponibles ; la collecte prend quelques minutes (statut pending puis ready). — (POST /sites/{siteId}/audit/rapports)

Inputs: siteId (required).

createContentCréer un contenu (rédaction automatique)A

Créer un contenu (rédaction automatique) — Une source parmi expression, url (réécriture d'une page, par exemple d'un concurrent), urls (plusieurs pages fusionnées) ou keyword_id. draft=true crée l'idée sans lancer la rédaction. — (POST /sites/{siteId}/contenus)

Inputs: siteId (required), url, urls, draft, +6 more.

createPageCréer une pageA

Créer une page — Crée une page dans GPSEM (brouillon par défaut) ; push_to_cms=true l'envoie aussitôt au CMS. Inscrit dans l'historique. — (POST /sites/{siteId}/pages)

Inputs: title (required), siteId (required), h1, cpt, +15 more.

createSiteCréer un siteA

Créer un site — Crée un site si l'abonnement actif le permet (quota non atteint, voir subscription.can_add_site dans GET /me) ; 402 sinon. Renvoie keycms, la clé à saisir dans le plugin CMS pour connecter le site. — (POST /entreprises/{entrepriseId}/sites)

Inputs: url (required), name (required), entrepriseId (required), nom, +7 more.

getAuditReportLire un rapport d'auditB
Read-onlyIdempotent

Lire un rapport d'audit — Scores (global, chapitres), synthèse, plan d'action priorisé avec état de suivi, sections (sans données brutes sauf detail=full). — (GET /sites/{siteId}/audit/rapports/{id})

Inputs: id (required), siteId (required), detail, collect, +1 more.

getAuditSectionCollecter une section d'auditA
Read-onlyIdempotent

Collecter une section d'audit — Calcule la section maintenant sur les données à jour : résumé, indicateurs, constats, actions priorisées (1 = urgente) et données détaillées. — (GET /sites/{siteId}/audit/sections/{cle})

Inputs: cle (required), siteId (required), bloc, data, +3 more.

getCompanyInfoCoordonnées de l'entrepriseA
Read-onlyIdempotent

Coordonnées de l'entreprise — Nom, type (1 entreprise, 2 particulier), adresse, pays (ISO 2 lettres), n° de TVA, téléphone, e-mail, site web. — (GET /entreprises/{entrepriseId}/informations)

Inputs: entrepriseId (required).

getContentIdeaLire une idée de contenuA
Read-onlyIdempotent

Lire une idée de contenu — Statut et page produite. — (GET /sites/{siteId}/contenus/{id})

Inputs: id (required), siteId (required).

getEntrepriseDétail entrepriseA
Read-onlyIdempotent

Détail entreprise — L'ID doit correspondre à l'entreprise du token. — (GET /entreprises/{entrepriseId})

Inputs: entrepriseId (required).

getHistoriqueCodesCatalogue des codes d'historiqueA
Read-onlyIdempotent

Catalogue des codes d'historique — À lire avant d'écrire dans l'historique : choisir le code le plus précis (ex. 300-06-003 liens internes ajoutés, 300-06-006 données structurées, 300-07-004 contenu actualisé). Sans code adapté, prendre le code générique de la cible (generic_codes : 100-09-001 site, 300-09-001 page, 310-09-001 catégorie, 320-09-001 archive) et décrire la modification. — (GET /historique/codes)

Inputs: no named parameters.

getKeywordMot-clé et analyse sémantiqueB
Read-onlyIdempotent

Mot-clé et analyse sémantique — Entités, termes saillants, recherches associées, questions posées, articles de la SERP, stratégie et guide rédactionnel. — (GET /sites/{siteId}/keywords/{id})

Inputs: id (required), siteId (required).

getLegalNoticeMentions légales du siteA
Read-onlyIdempotent

Mentions légales du site — Éditeur (raison sociale, forme juridique, capital, SIRET, RCS, NAF, TVA, adresse), directeur de la publication, hébergeur, support, crédits, RGPD (DPO, finalités, bases légales, durées, destinataires, transferts hors UE), CGV, médiation. — (GET /sites/{siteId}/mentions-legales)

Inputs: siteId (required).

getMeVérifier le tokenA
Read-onlyIdempotent

Vérifier le token — Retourne l'entreprise liée au token, l'abonnement et le quota de sites. — (GET /me)

Inputs: no named parameters.

getMybacklinkStatusÉtat MyBack.link du siteA
Read-onlyIdempotent

État MyBack.link du site — Achat via l'API autorisé ou non, plafond mensuel, dépense du mois et reste, nombre maximal d'articles par commande, crédit, coût des options, thématiques du site, ancres déjà utilisées. À lire avant toute commande. — (GET /sites/{siteId}/backlinks/mybacklink)

Inputs: siteId (required).

getNavrankReportRapport NavRank / ClickRankC
Read-onlyIdempotent

Rapport NavRank / ClickRank — Priorité des pages, recommandations, scores ML, anomalies et dérive de trafic calculés sur les stats hebdomadaires (clics, visites, engagement). — (GET /sites/{siteId}/navrank/{rapport})

Inputs: siteId (required), rapport (required), start_date.

getPageFiche complète d'une pageA
Read-onlyIdempotent

Fiche complète d'une page — Champs SEO, catégories, mot-clé, indexation, scores des 4 dernières semaines (click rank, visitor rank, qualité, risque), 20 derniers événements de l'historique, problèmes Screaming Frog. pageId = « url » avec ?url= pour chercher par URL. — (GET /sites/{siteId}/pages/{pageId})

Inputs: pageId (required), siteId (required), url, content.

getScreamingFrogDashboardTableau de bord Screaming FrogB
Read-onlyIdempotent

Tableau de bord Screaming Frog — Crawl, qualité du crawl, problèmes par catégorie avec priorité et score, 12 actions prioritaires, pages les plus touchées. — (GET /sites/{siteId}/screaming-frog)

Inputs: siteId (required), crawl.

getScreamingFrogIssueRapport d'un problèmeA
Read-onlyIdempotent

Rapport d'un problème — Explication, correction, évolution entre crawls, URL ou liens concernés (50 par page), URL résolues. — (GET /sites/{siteId}/screaming-frog/problemes/{code})

Inputs: code (required), siteId (required), q, tri, +5 more.

getScreamingFrogPageProblèmes d'une pageB
Read-onlyIdempotent

Problèmes d'une page — Problèmes propres à la page, liens vers des URL en erreur ou redirigées, pages qui la lient si elle est en erreur. — (GET /sites/{siteId}/screaming-frog/page)

Inputs: url (required), siteId (required), crawl.

getSemanticMapCartographie sémantique du siteA
Read-onlyIdempotent

Cartographie sémantique du site — Radius : par défaut un résumé (clusters, 50 pages les plus hors sujet). Détail par étapes avec cluster, q, page_id, sort, order, limit, page ; full=1 pour tout ; refresh=1 relance le calcul. — (GET /sites/{siteId}/cartographie-semantique)

Inputs: siteId (required), q, full, page, +6 more.

getSiteDétail d'un siteB
Read-onlyIdempotent

Détail d'un site — (GET /sites/{siteId})

Inputs: siteId (required).

getSiteHistoriqueHistorique d'un siteA
Read-onlyIdempotent

Historique d'un site — Événements du plus récent au plus ancien. Les crawls Google (700-01-003) sont exclus sauf filtre explicite sur ce code. — (GET /sites/{siteId}/historique)

Inputs: siteId (required), to, code, from, +7 more.

getSiteSettingsParamètres du siteB
Read-onlyIdempotent

Paramètres du site — Description, secteur, positionnement, objectif (1 ventes, 2 trafic, 3 services), type (1 vitrine, 2 e-commerce, 3 actualité), liens internes par page, longueur minimale, tests d'indexation, CMS. — (GET /sites/{siteId}/parametres)

Inputs: siteId (required).

getSiteStatsStatistiques home du siteA
Read-onlyIdempotent

Statistiques home du site — Pages publiées, planifiées, taux d'indexation (aligné sur le dashboard GPSEM). — (GET /sites/{siteId}/stats)

Inputs: siteId (required).

getTaskÉtat d'un traitementA
Read-onlyIdempotent

État d'un traitement — Avancement d'un traitement lancé par l'API (finished = true quand terminé). — (GET /sites/{siteId}/taches/{id})

Inputs: id (required), siteId (required).

listArchivesLister les archives (CPT)A
Read-onlyIdempotent

Lister les archives (CPT) — Types de contenu / archives du site : slug, exclusion de l'import, pages publiées. L'ID sert de cpt_id dans l'historique. — (GET /sites/{siteId}/archives)

Inputs: siteId (required).

listAuditActionsPlan d'action du dernier auditA
Read-onlyIdempotent

Plan d'action du dernier audit — Actions du dernier rapport collecté, triées par priorité puis gain estimé, avec leur clé stable et leur état de suivi. — (GET /sites/{siteId}/audit/actions)

Inputs: siteId (required), status, priority.

listAuditReportsLister les rapports d'auditA
Read-onlyIdempotent

Lister les rapports d'audit — Rapports du site, du plus récent au plus ancien, avec liens vers l'aperçu et le PDF. — (GET /sites/{siteId}/audit/rapports)

Inputs: siteId (required).

listAuditSectionsCatalogue des sections d'auditB
Read-onlyIdempotent

Catalogue des sections d'audit — Clés des sections disponibles (maillage_interne, scores_pages, indexation_google, sf_crawl_indexation…), chapitre et questions couvertes. — (GET /audit/sections)

Inputs: no named parameters.

listBacklinkOrdersHistorique des commandes de backlinksA
Read-onlyIdempotent

Historique des commandes de backlinks — Commandes MyBack.link du site, de la plus récente à la plus ancienne. — (GET /sites/{siteId}/backlinks/commandes)

Inputs: siteId (required), limit, offset, search.

listCategoriesLister les catégoriesA
Read-onlyIdempotent

Lister les catégories — Catégories (taxonomies) avec leur nombre de pages. — (GET /sites/{siteId}/categories)

Inputs: siteId (required).

listContentIdeasLister les idées de contenuB
Read-onlyIdempotent

Lister les idées de contenu — Idées avec leur statut (to_write, writing, refused) et la page produite. — (GET /sites/{siteId}/contenus)

Inputs: siteId (required), q, page, limit, +2 more.

listKeywordsLister les mots-clésA
Read-onlyIdempotent

Lister les mots-clés — Mots-clés suivis, par volume décroissant. — (GET /sites/{siteId}/keywords)

Inputs: siteId (required), q, page, limit.

listLinkSuggestionsSuggestions de maillage interneA
Read-onlyIdempotent

Suggestions de maillage interne — Liens à ajouter proposés par GPSEM, page par page. Analyse globale : section d'audit maillage_interne. — (GET /sites/{siteId}/maillage/suggestions)

Inputs: siteId (required), page, limit, page_id.

listNavrankReportsCatalogue des rapports NavRank / ClickRankB
Read-onlyIdempotent

Catalogue des rapports NavRank / ClickRank — Rapports Navboost disponibles. — (GET /navrank/rapports)

Inputs: no named parameters.

listPagesLister les pagesB
Read-onlyIdempotent

Lister les pages — Pages du site avec leurs principaux champs SEO et indicateurs (clics, impressions, indexation, liens internes). — (GET /sites/{siteId}/pages)

Inputs: siteId (required), q, cpt, page, +7 more.

listScreamingFrogActionsPlan d'action Screaming FrogB
Read-onlyIdempotent

Plan d'action Screaming Frog — Actions correctives priorisées (gabarit, contenu, URL très liées). — (GET /sites/{siteId}/screaming-frog/actions)

Inputs: siteId (required), crawl, priorite, categorie.

listScreamingFrogCrawlsLister les crawlsA
Read-onlyIdempotent

Lister les crawls — Crawls importés du site. — (GET /sites/{siteId}/screaming-frog/crawls)

Inputs: siteId (required).

listSitesLister les sitesA
Read-onlyIdempotent

Lister les sites — Retourne tous les sites de l'entreprise avec ID encodé et URL. — (GET /entreprises/{entrepriseId}/sites)

Inputs: entrepriseId (required).

pullPageFromCmsRéimporter une page depuis le CMSB

Réimporter une page depuis le CMS — Écrase la version GPSEM par celle du CMS (titre, contenu, balises, statut, catégories) ; inscrit 300-05-002. — (POST /sites/{siteId}/pages/{pageId}/importer-cms)

Inputs: pageId (required), siteId (required).

pushPageToCmsEnvoyer une page au CMSA

Envoyer une page au CMS — Crée ou met à jour l'article dans le CMS (WordPress, plugin GPSEM) ; inscrit 300-05-001 dans l'historique. — (POST /sites/{siteId}/pages/{pageId}/envoyer-cms)

Inputs: pageId (required), siteId (required).

runKeywordSemanticAnalysisLancer l'analyse sémantique d'un mot-cléA

Lancer l'analyse sémantique d'un mot-clé — Traitement de quelques minutes : suivre task_id avec getTask, puis lire getKeyword. — (POST /sites/{siteId}/keywords/{id}/analyse-semantique)

Inputs: id (required), siteId (required).

syncSiteSynchroniser tout le siteA

Synchroniser tout le site — En tâche de fond : import = importer tous les contenus du CMS dans GPSEM ; push = envoyer au CMS toutes les pages suivies. — (POST /sites/{siteId}/synchronisation)

Inputs: action (required), siteId (required).

updateAuditActionMettre à jour l'état d'une actionA
Idempotent

Mettre à jour l'état d'une action — État d'une action du plan (clé de GET …/audit/actions). « fait » inscrit l'action dans l'historique du site (100-09-002). — (PATCH /sites/{siteId}/audit/actions/{cle})

Inputs: cle (required), siteId (required), status (required), owner, +2 more.

updateCompanyInfoModifier les coordonnées de l'entrepriseA
Idempotent

Modifier les coordonnées de l'entreprise — Champs de getCompanyInfo, tous facultatifs. — (PATCH /entreprises/{entrepriseId})

Inputs: body (required), entrepriseId (required).

updateLegalNoticeModifier les mentions légalesA
Idempotent

Modifier les mentions légales — Champs de getLegalNotice, tous facultatifs. — (PATCH /sites/{siteId}/mentions-legales)

Inputs: body (required), siteId (required).

updatePageModifier une pageA
Idempotent

Modifier une page — Modification partielle ; chaque changement est inscrit dans l'historique (statut, titre, contenu, balise title 300-02-004, meta description 300-02-005, H1 300-02-006, slug 300-02-007, catégories, mot-clé, importance). push_to_cms=true envoie ensuite la page au CMS. — (PATCH /sites/{siteId}/pages/{pageId})

Inputs: pageId (required), siteId (required), h1, cpt, +16 more.

updateSiteSettingsModifier les paramètres du siteA
Idempotent

Modifier les paramètres du site — Champs de getSiteSettings, tous facultatifs. — (PATCH /sites/{siteId}/parametres)

Inputs: body (required), siteId (required).

writeContentIdeaLancer la rédaction d'une idéeA

Lancer la rédaction d'une idée — Lance ou relance la rédaction automatique d'une idée existante. — (POST /sites/{siteId}/contenus/{id}/rediger)

Inputs: id (required), siteId (required), format.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 51 tools

    Disambiguation3/5

    Most tools are grouped by resource and action, but several overlap: getEntreprise and getCompanyInfo both return company data, and listScreamingFrogActions/listAuditActions both expose prioritized corrective actions. Semantic-analysis tools (getKeyword, runKeywordSemanticAnalysis, getSemanticMap) also have fuzzy boundaries, though the descriptions usually clarify the target.

    Naming Consistency3/5

    The dominant pattern is verb + resource (get/list/create/update), and all names are camelCase. However, the set mixes French and English nouns (getEntreprise vs getCompanyInfo), reverses compounds (getSiteHistorique vs getHistoriqueCodes), and uses irregular names like getMe and getMybacklinkStatus, so the convention is only partially consistent.

    Tool Count1/5

    With 51 tools, the server is at the extreme end of the scale and exceeds the 50-tool threshold. Although the underlying GPSEM API is broad, exposing every endpoint as an MCP tool makes selection harder and likely overwhelms an agent.

    Completeness3/5

    Core workflows are well covered: sites, pages, audits, Screaming Frog, backlinks, keywords, and content ideas all have read and many have write operations. However, there are notable lifecycle gaps—no deletion endpoints for sites/pages/content, no keyword list management, and no way to update content-idea status besides launching writing.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • -
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to perform comprehensive SEO and GEO measurements, including site audits, keyword research, ranking tracking, and brand visibility analysis across search engines and generative AI platforms.
      -
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI assistants to search Google SERPs, track rankings across locations, run Lighthouse SEO audits, find broken internal links, analyze backlinks, and get keyword volume data through a hosted service.
      15
      16 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to access self-hosted SEO data and workflows, including keyword research, rank tracking, competitor insights, backlinks, site audits, and AI visibility.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables an AI assistant to plan, write and publish SEO content for a connected website: research keywords, read Search Console rankings, manage a content calendar, edit and score articles against competitors, publish to a CMS, and review backlinks, with credit-spending and destructive actions confirmed first.
      MIT