Connecter un agent IA avec MCP

Reliez Claude, ChatGPT, Cursor ou Gemini au serveur MCP hébergé pour consulter et gérer vos établissements, fiches et avis avec les mêmes outils.

Listings API héberge un serveur Model Context Protocol (MCP) à l’adresse https://listingsapi.com/mcp. Vous n’avez rien à installer ni à exécuter. Un assistant IA compatible avec MCP se connecte à cette URL, découvre un outil par endpoint REST ainsi que quelques outils de documentation, puis les appelle sur votre compte. Ce guide vous explique comment connecter chacun des principaux clients, puis vérifier la connexion.

1. Comprendre les outils accessibles à l’agent

Le serveur expose un peu plus de 60 outils, dont environ les deux tiers sont en lecture seule. Leurs noms suivent ceux des ressources REST : locations_search, listings_premium, reviews_respond et posts_create_social effectuent donc les mêmes opérations que les endpoints correspondants, avec les mêmes paramètres et la même structure de réponse. Trois outils de documentation, search_docs, get_doc et get_endpoint, permettent à l’assistant de consulter une page ou le contrat d’un endpoint au lieu de deviner la structure des données à envoyer.

Famille d’outilsExemplesAccès requis
Établissementslocations_all, locations_search, locations_create, locations_updateRead pour la consultation, Write pour la création et la mise à jour
Ficheslistings_premium, listings_duplicates, listings_mark_duplicateRead, Write pour le marquage des doublons
Comptes connectésconnected_accounts_list, connected_accounts_listings, connected_accounts_connect_listingRead, Write pour la connexion et l’importation
Avisreviews_list, reviews_get, reviews_respond, reviews_analyticsRead, Write pour les réponses
Publicationsposts_social_post_view, posts_create_socialRead, Write pour la publication
Analysesanalytics_google, analytics_facebook, analytics_bingRead
Comptewhoami, get_usage, get_subscription, recent_errorsRead
Documentationsearch_docs, get_doc, get_endpoint, list_endpointsAucun

Les opérations destructrices, comme la suppression d’une publication ou l’archivage d’un établissement, ne sont pas exposées sous forme d’outils. Utilisez l’API REST ou un SDK pour ces opérations, afin qu’un assistant ne puisse pas supprimer de données de sa propre initiative.

2. Choisir le mode de connexion du client

Chaque client s’authentifie de l’une des deux façons suivantes. Toutes deux aboutissent à la même clé API côté serveur ; les limites de débit et les rapports d’utilisation sont donc identiques.

MéthodeCe que vous collezConvient le mieux à
En-tête de clé APIAuthorization: API <your key> comme en-tête statiqueLes interfaces en ligne de commande et les éditeurs dont vous contrôlez le fichier de configuration
OAuth 2.0Rien. Le client ouvre un navigateur, vous vous connectez et approuvez read ou read writeLes assistants hébergés tels que Claude et ChatGPT, ou toute personne qui ne devrait pas détenir de clé brute

OAuth utilise le flux de code d’autorisation avec PKCE et l’enregistrement dynamique des clients ; un client n’a donc pas besoin d’identifiants délivrés à l’avance. Les métadonnées sont disponibles à l’adresse https://listingsapi.com/.well-known/oauth-authorization-server. Les portées sont read et write ; un client qui ne demande aucune portée obtient read. Chaque approbation crée une clé dédiée à cette connexion, que vous pouvez révoquer depuis /dashboard/keys comme toute autre clé.

3. Connecter Claude

Claude.ai et Claude Desktop. Le serveur figure dans le répertoire des connecteurs ; le plus rapide est donc d’ouvrir https://claude.ai/directory/listings-api et de cliquer sur Connect (Connecter). Claude lance le flux OAuth, vous approuvez les portées, et les outils sont disponibles dans toute conversation où vous activez le connecteur à l’aide du bouton +, puis de Connectors (Connecteurs).

Si vous préférez l’ajouter par URL, accédez à Customize (Personnaliser), puis à Connectors (Connecteurs), cliquez sur +, puis sur Add custom connector (Ajouter un connecteur personnalisé), collez https://listingsapi.com/mcp et cliquez sur Add (Ajouter). Laissez Advanced settings (Paramètres avancés) vide ; le serveur enregistre automatiquement Claude comme client. Avec les offres Team et Enterprise, un propriétaire ajoute le connecteur dans Organization settings (Paramètres de l’organisation), puis Connectors (Connecteurs), et les membres cliquent ensuite sur Connect (Connecter) pour ce connecteur. Claude se connecte depuis les serveurs d’Anthropic, et non depuis votre machine, d’où l’importance de l’URL hébergée.

Claude Code. Une seule commande ajoute le serveur avec votre clé :

Claude Code
claude mcp add --transport http listingsapi https://listingsapi.com/mcp \--header "Authorization: API $LISTINGSAPI_KEY"

Supprimez l’option --header et exécutez /mcp dans Claude Code pour vous connecter via le navigateur à la place. Utilisez --scope project pour enregistrer la configuration du serveur dans un fichier .mcp.json partagé par toute l’équipe et l’inclure dans un commit ; n’y incluez pas de clé.

4. Connecter ChatGPT

ChatGPT se connecte aux serveurs MCP distants au moyen d’un connecteur personnalisé une fois Developer mode (mode développeur) activé. Cette fonctionnalité est disponible avec les forfaits Plus, Pro, Business, Enterprise et Edu, mais pas avec l’offre gratuite.

  1. Ouvrez Settings (paramètres) depuis le menu de votre profil et activez Developer mode (mode développeur). Selon la version, cette option se trouve sous Apps & Connectors (applications et connecteurs) ou Security and login (sécurité et connexion).
  2. Sur la page des connecteurs, intitulée Plugins (extensions) dans les versions actuelles, cliquez sur + ou Create (créer).
  3. Saisissez un nom, collez https://listingsapi.com/mcp comme URL du serveur et choisissez OAuth pour l’authentification. Enregistrez.
  4. ChatGPT ouvre la page de connexion. Approuvez read ou read write.
  5. Dans une nouvelle conversation, ouvrez le menu des outils, sélectionnez le connecteur et vérifiez qu’il apparaît avec ses outils. Les outils d’écriture nécessitent toujours une confirmation.

Codex CLI. L’agent de terminal d’OpenAI lit la configuration des serveurs MCP dans ~/.codex/config.toml. Codex lance automatiquement OAuth pour les serveurs HTTP et respecte les portées annoncées ; la ligne d’en-tête est donc facultative :

~/.codex/config.toml
[mcp_servers.listingsapi]url = "https://listingsapi.com/mcp"http_headers = { "Authorization" = "API <your key>" }

5. Connecter Cursor

La page du tableau de bord accessible à l’adresse /dashboard/mcp comporte un bouton Add to Cursor (ajouter à Cursor). Ce bouton ouvre un lien d’installation pour Cursor avec l’URL du serveur et votre clé déjà renseignées, ce qui permet de terminer la configuration en un clic.

Pour une configuration manuelle, ajoutez le serveur à ~/.cursor/mcp.json pour tous les projets, ou à .cursor/mcp.json dans un seul dépôt :

~/.cursor/mcp.json
{"mcpServers": {  "listingsapi": {    "url": "https://listingsapi.com/mcp",    "headers": {      "Authorization": "API <your key>"    }  }}}

Supprimez le bloc headers pour vous connecter avec OAuth à la place : Cursor affiche un bouton Connect (se connecter) sur l’entrée du serveur sous Settings (paramètres), puis MCP, et ouvre le parcours de connexion dans le navigateur. N’incluez jamais de clé dans un fichier .cursor/mcp.json au niveau du projet lors d’un commit ; utilisez le fichier global ou OAuth pour les dépôts partagés.

6. Connecter Gemini

Gemini CLI. L’agent de terminal de Google accepte la configuration des serveurs distants dans ~/.gemini/settings.json (ou .gemini/settings.json dans un projet). Utilisez httpUrl, et non url, pour qu’il sélectionne le transport Streamable HTTP :

~/.gemini/settings.json
{"mcpServers": {  "listingsapi": {    "httpUrl": "https://listingsapi.com/mcp",    "headers": {      "Authorization": "API <your key>"    },    "timeout": 30000  }}}

Pour OAuth, remplacez le bloc headers par "oauth": { "enabled": true }, lancez la CLI et exécutez /mcp auth listingsapi. Exécutez /mcp à tout moment pour afficher le serveur, son état de connexion et les outils qu’il a découverts.

Application Gemini. L’application Gemini grand public ne propose aucun paramètre de connecteur personnalisé. Les serveurs MCP personnalisés sont accessibles aux administrateurs d’équipe de l’édition Business de Gemini Enterprise : connectez-vous à business.gemini.google, ouvrez Settings & help (paramètres et aide), puis Manage team (gérer l’équipe) et Connected apps (applications connectées), et cliquez sur Add MCP Server (ajouter un serveur MCP). Collez https://listingsapi.com/mcp comme URL. Le formulaire demande les informations OAuth : l’URL d’autorisation est https://listingsapi.com/oauth/authorize, l’URL de jeton est https://listingsapi.com/oauth/token et les portées sont read write. Il demande également un identifiant client et un secret client. Ce serveur crée des clients PKCE publics sans secret ; enregistrez-en donc un avec l’URL de redirection affichée dans le formulaire et laissez le champ du secret vide si le formulaire le permet :

Register an OAuth client
curl -s https://listingsapi.com/oauth/register \-H "Content-Type: application/json" \-d '{  "client_name": "Gemini Business",  "redirect_uris": ["<redirect URL shown in the Gemini form>"],  "grant_types": ["authorization_code", "refresh_token"],  "token_endpoint_auth_method": "none"}'

La réponse contient client_id. Si votre formulaire Gemini exige un secret, utilisez la procédure Gemini CLI ci-dessus ou développez plutôt avec la Gemini API.

Développer avec la Gemini API. Le SDK de la Gemini API accepte une session client MCP comme outil, ce qui permet à un script de fournir les mêmes outils à un modèle Gemini :

gemini_agent.py
import asyncio, osfrom google import genaifrom mcp import ClientSessionfrom mcp.client.streamable_http import streamablehttp_client HEADERS = {"Authorization": "API " + os.environ["LISTINGSAPI_KEY"]} async def main():  gemini = genai.Client()  async with streamablehttp_client("https://listingsapi.com/mcp", headers=HEADERS) as (r, w, _):      async with ClientSession(r, w) as session:          await session.initialize()          reply = await gemini.aio.models.generate_content(              model="gemini-2.5-pro",              contents="Which of my locations have a Google listing that is not live yet?",              config=genai.types.GenerateContentConfig(tools=[session]),          )          print(reply.text) asyncio.run(main())

7. Vérifier la connexion

Avant de faire confiance à l’assistant, vérifiez que le serveur vous répond directement. La découverte des outils ne nécessite aucune clé ; cet appel réussit donc avec tout client pouvant accéder à l’URL :

List the tools
curl -s https://listingsapi.com/mcp \-H "Content-Type: application/json" \-H "Accept: application/json, text/event-stream" \-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | head -c 400

Ensuite, dans l’assistant, formulez une demande qui nécessite d’accéder à votre compte :

Utilisez les outils listingsapi pour m’indiquer à quel compte je suis connecté, combien d’établissements il contient et quelle est mon utilisation de l’API ce mois-ci.

Une connexion correcte fournit une réponse issue de whoami, locations_all et get_usage avec l’identifiant réel de votre compte et les décomptes réels. Une clé incorrecte ou expirée entraîne une erreur Unauthenticated lors du premier appel d’outil, et non lors de la découverte.

Quelques premières instructions pour l’agent utiles une fois la connexion opérationnelle :

  • "Listez mes établissements dont les fiches présentent des erreurs et résumez chaque erreur."
  • "Affichez les avis reçus au cours des 7 derniers jours qui n’ont pas de réponse et rédigez une réponse pour chacun. Ne les envoyez pas encore."
  • "Comparez les données d’analyse de la fiche Google de l’établissement 1800289 sur les deux derniers mois."
  • "Lisez le contrat de l’endpoint create-location, puis ajoutez cet établissement : ..."

Ajouter les compétences listingsAPI pour les agents

Les compétences sont des instructions qu’un agent charge lorsqu’une tâche correspond, afin de suivre un processus éprouvé plutôt que d’en élaborer un. Elles fonctionnent avec le serveur MCP : le serveur effectue les appels, et la compétence détermine lesquels effectuer et dans quel ordre. Cinq compétences listingsAPI sont publiées sur skills.sh à partir du dépôt public listingsapi-mcp :

CompétenceFonction
listingsapi-integrationAjoute la Listings API à votre application : authentification, première lecture, établissements, connexions aux plateformes de publication et état de synchronisation, avec du code REST ou SDK.
listingsapi-listing-auditVérifie l’état de synchronisation, les liens actifs et les doublons potentiels des établissements et de leurs fiches, puis propose des corrections. En lecture seule jusqu’à ce que vous approuviez une correction.
listingsapi-review-managementCrée une file d’avis à traiter, donne la priorité aux avis sans réponse, rédige des réponses et publie uniquement celles que vous approuvez.
listingsapi-multi-location-postingPrépare et publie des annonces, des événements et des offres sur Google Business Profile et Facebook pour les établissements que vous sélectionnez, puis vérifie chaque résultat.
listingsapi-performance-reportingCrée des rapports en lecture seule sur les performances et les avis de vos établissements.

Installez les cinq compétences dans votre projet avec la CLI Skills :

All skills
npx skills add listings-api/listingsapi-mcp

Ou installez une compétence en indiquant son nom, puis choisissez l’agent avec -a :

One skill, for Claude Code
npx skills add listings-api/listingsapi-mcp --skill listingsapi-integration -a claude-code

Utilisez -a cursor ou -a codex pour ces agents, et ajoutez -g pour installer la compétence pour tous les projets plutôt que pour le projet actuel.

Trouver listingsAPI dans les annuaires d’outils d’IA

Le même serveur figure dans ces annuaires, aux côtés de la compétence listingsAPI pour les agents. Effectuez l’installation depuis l’annuaire que votre client utilise déjà. Chaque entrée de serveur MCP pointe vers https://listingsapi.com/mcp.

AnnuaireÉléments répertoriés
Annuaire des connecteurs ClaudeLe serveur MCP en tant que connecteur Claude. Cliquez sur Connect (se connecter) et connectez-vous.
Registre officiel MCPLe serveur MCP, enregistré sous le nom com.listingsapi/mcp.
Cursor DirectoryLe serveur MCP en tant que plugin Cursor.
GlamaLe serveur MCP.
SmitheryLe serveur MCP.
MCP.soLe serveur MCP.
mcpservers.orgLe serveur MCP.
ClawHub (OpenClaw)La compétence listingsAPI pour les agents.
skills.shLa compétence listingsAPI pour les agents.

Dépannage

SymptômeCauseSolution
401 lors du premier appel d’outilClé mal saisie ou révoquée, ou en-tête ne contenant pas le mot exact API suivi d’une espaceRecréez la clé dans /dashboard/keys et collez-la sous la forme API <key>
SY90016 lors d’une écritureClé de lecture ou portée readReconnectez-vous avec une clé d’écriture ou approuvez write
429 avec Retry-AfterL’agent effectue des appels à une fréquence supérieure à celle autorisée par votre forfaitDemandez-lui de travailler par lots plus petits ; consultez Limites de débit
Le client indique qu’il ne peut pas joindre le serveurLe client ne prend en charge que stdio ou SSEUtilisez un client qui prend en charge Streamable HTTP, ou la passerelle mcp-remote présentée sur /dashboard/mcp
Un outil mentionné dans la documentation est absentLes outils destructifs ne sont pas exposésUtilisez REST ou un SDK pour l’archivage et la suppression

Étapes suivantes