NGZ Ads / Serveur MCP (IA)

Serveur MCP — connecter une IA à vos annonces

En plus de l'API REST, NGZ Ads expose un serveur MCP (Model Context Protocol) : le standard ouvert qui permet à un assistant IA comme Claude ou ChatGPT d'utiliser directement des outils externes, sans intégration sur mesure.

Concrètement, cela permet à un utilisateur de demander en langage naturel — « trouve-moi des annonces de vélo à moins de 200 € » — et à l'assistant d'aller chercher la vraie réponse dans les données de NGZ Ads, en temps réel.


Ce que le serveur MCP expose

Le serveur (mcp-server/http.php) partage exactement la même logique et les mêmes identifiants que l'API REST. Il expose six outils :

OutilCe qu'il faitArgument requis
ngzads_statusVérifie que l'API répond
ngzads_search_adsRecherche des annonces (mot-clé, catégorie, prix, ville, tri...)
ngzads_get_adDétail complet d'une annonceid
ngzads_list_categoriesArborescence des catégories
ngzads_list_pagesListe des pages statiques publiées
ngzads_get_pageContenu d'une page statiqueslug

Deux façons de s'y connecter

En local (stdio)

mcp-server/ngzads-mcp-server.php tourne comme un simple processus PHP, spawné localement par un client MCP (par exemple un IDE ou un outil de développement). Il lit ses identifiants dans des variables d'environnement :

NGZADS_API_BASE=https://votre-site.com/api/v1 \
NGZADS_APP_ID=app_xxx \
NGZADS_APP_SECRET=sk_xxx \
php mcp-server/ngzads-mcp-server.php

À distance (HTTP — pour Claude, ChatGPT...)

mcp-server/http.php expose le même ensemble d'outils sur une URL HTTPS unique — c'est ce qu'il faut renseigner comme connecteur dans un assistant IA hébergé :

https://votre-site.com/mcp-server/http.php

Aucune variable d'environnement ici : les identifiants voyagent avec chaque requête, exactement comme pour l'API REST (en-têtes X-App-Id / X-App-Secret, ou Authorization: Bearer app_id.secret).

Le serveur doit être joignable en HTTPS depuis l'Internet public pour ce mode — un assistant IA hébergé (Claude, ChatGPT) ne peut pas atteindre un localhost.


Obtenir vos identifiants

Les identifiants sont les mêmes que pour l'API REST — pas besoin d'en créer de nouveaux si vous en avez déjà :

  1. Admin → API Apps → créez une application dédiée (par exemple « Claude » ou « ChatGPT », pour suivre son usage séparément dans les logs).
  2. Copiez immédiatement l'App ID et l'App Secret affichés — le secret ne sera plus jamais visible en clair.

Connecter Claude

  1. Dans Claude, ouvrez Customize → Connectors (Pro/Max), ou Organization settings → Connectors si vous êtes propriétaire d'un espace Team/Enterprise.
  2. Cliquez Add custom connector (connecteur personnalisé).
  3. Renseignez l'URL du serveur : https://votre-site.com/mcp-server/http.php.
  4. Dans les options avancées, ajoutez un en-tête de requête :
Authorization: Bearer app_xxx.sk_xxx
  1. Enregistrez. Claude découvre automatiquement les six outils ci-dessus.
  2. Testez en demandant par exemple : « Utilise NGZ Ads pour chercher des annonces de vélo à moins de 200 €. »

Connecter ChatGPT

  1. Dans ChatGPT, ouvrez Réglages → Connecteurs (Connectors).
  2. Cliquez Avancé (Advanced), puis activez le Mode développeur (Developer mode).
  3. Un bouton Ajouter un connecteur personnalisé apparaît dans le panneau des connecteurs — cliquez dessus (un avertissement de sécurité sur l'exécution de code tiers s'affiche, à accepter en connaissance de cause).
  4. Renseignez l'URL du serveur : https://votre-site.com/mcp-server/http.php.
  5. Pour l'authentification, ChatGPT propose OAuth ou coller un jeton : utilisez cette seconde option avec app_xxx.sk_xxx.
  6. Cliquez Créer, puis Scanner les outils (Scan Tools) pour vérifier que la connexion fonctionne.
  7. Testez avec une question similaire à celle utilisée pour Claude.

ChatGPT ne se connecte qu'à des serveurs MCP distants (HTTPS) — un serveur local nécessiterait un tunnel (type mcp-remote) pour être joignable.

Les intitulés exacts des menus évoluent régulièrement côté Claude et ChatGPT ; le principe reste le même : une URL de serveur MCP + un moyen d'authentification (ici, un jeton Bearer).


Exemple de conversation

Utilisateur : Trouve-moi des annonces d'appareils photo à moins de 150 € sur NGZ Ads. Assistant : (appelle l'outil ngzads_search_ads avec {"q": "appareil photo", "max_price": 150}) J'ai trouvé 3 annonces : ...

L'assistant interroge directement vos vraies données — pas d'approximation, pas d'invention.


Sécurité

  • Le jeton (app_id.secret) transite uniquement en HTTPS et ne doit être collé que dans l'interface officielle de l'assistant IA — jamais partagé ailleurs.
  • Si un jeton est compromis, régénérez l'App Secret depuis Admin → API Apps — l'ancien secret est immédiatement invalidé.
  • Chaque appel MCP est journalisé comme n'importe quel appel API, consultable dans Admin → API Logs.

Vérifier manuellement (curl)

Pour tester le serveur MCP sans passer par un assistant IA :

curl -X POST "https://votre-site.com/mcp-server/http.php" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer app_xxx.sk_xxx" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Une collection Postman complète (API REST + serveur MCP) est également disponible auprès de l'administrateur du site pour des tests approfondis.