Intelligence Artificielle

MCP vs API REST : quand choisir quoi ?

2026-05-20 · Pierre

Depuis fin 2024, les serveurs MCP fleurissent. Anthropic a lancé le protocole, OpenAI et Google l’ont adopté, les éditeurs d’IDE ont suivi. La question revient à chaque comité technique : faut-il rebasculer toutes nos APIs REST en MCP ? Non. Les deux coexistent, et c’est tant mieux. La vraie question, ce n’est pas « qui gagne », c’est « quel protocole pour quel appelant ».

REST est un standard d’accès programmatique pensé pour des développeurs et des backends applicatifs. MCP est un canal d’exposition pensé pour des agents IA qui découvrent dynamiquement les outils à leur disposition. Les deux ne résolvent pas le même problème, ils ne ciblent pas les mêmes consommateurs, et dans la pratique un même service gagne souvent à exposer les deux. Chez Datacampus, c’est exactement ce qu’on fait.

REST

Accès programmatique standard, synchrone, stateless. Consommé par des apps web/mobile, des scripts, d’autres services. 25 ans de maturité, tout l’outillage HTTP hérité gratuitement.

Apps & backends

MCP

Canal d’exposition normalisé vers les agents IA (Claude, ChatGPT, Cursor...). Découverte dynamique des tools, schémas JSON obligatoires, sessions persistantes, sampling et prompts natifs.

Agents IA

REST en 2026 : toujours le standard par défaut

REST (Representational State Transfer) a été formalisé par Roy Fielding dans sa thèse en 2000. Ce n’est pas un protocole, c’est un style architectural basé sur HTTP : ressources identifiées par URI, manipulation via verbes HTTP (GET, POST, PUT, PATCH, DELETE), représentations JSON, stateless, cacheable. Le modèle de maturité de Richardson décrit les niveaux 0 à 3 ; la majorité des APIs du marché vivent au niveau 2 (ressources + verbes), peu atteignent le niveau 3 (HATEOAS).

REST s’est imposé parce qu’il est pragmatique. Il s’appuie sur HTTP, donc il hérite du cache navigateur, des CDN, des reverse proxies, des codes d’erreur standard, de toute l’observabilité existante. N’importe quelle app web ou mobile sait l’appeler, n’importe quelle plateforme (Kong, APIGee, AWS API Gateway) sait l’exposer, la limiter, la monitorer.

Appel REST classique
$ curl -H "Authorization: Bearer $TOKEN" \
    https://api.datacampus.fr/v1/offerings?category=vps
REST un verbe, une URI, une réponse JSON. Cacheable via ETag.

Forces typiques : cache HTTP natif, CDN friendly, outillage mature (Postman, Insomnia, OpenAPI/Swagger), observabilité triviale, authentification bien connue (OAuth2, Bearer, API key, mTLS). Côté usage : frontends web et mobiles, intégrations B2B, webhooks événementiels, APIs publiques à fort volume.

MCP : l’interface pensée pour les agents IA

Model Context Protocol est un protocole ouvert initié par Anthropic en novembre 2024. La version largement déployée en production est la spec du 18 juin 2025 (protocolVersion: "2025-06-18"), avec la révision du 25 novembre 2025 qui a consolidé l’auth OAuth2 et l’élicitation. Le transport Streamable HTTP, introduit en mars 2025, est aujourd’hui le transport recommandé pour les serveurs remote ; il remplace l’ancien SSE bidirectionnel et cohabite avec stdio pour les serveurs locaux.

Sous le capot, c’est du JSON-RPC 2.0 avec trois primitives métier : tools (fonctions appelables), resources (documents lisibles), prompts (modèles paramétrés). Chaque tool déclare un schéma JSON Schema et une description en langage naturel. Au handshake, le client fait un tools/list, le serveur répond avec le catalogue, le LLM choisit quoi appeler en fonction de la description. C’est un protocole pensé pour qu’une IA découvre et raisonne seule sur ce qu’un système sait faire.

Appel MCP (JSON-RPC 2.0)
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "list_offerings",
    "arguments": { "category": "vps" }
  }
}
MCP le LLM choisit le tool après avoir lu sa description, pas sa route.

Forces spécifiques : découverte dynamique (tools/list), schémas paramètres obligatoires (pas de deviner), description sémantique lue par le LLM, streaming natif via Streamable HTTP, notifications et batching hérités de JSON-RPC, sampling (le serveur peut demander au client une inférence), prompts réutilisables côté client. Côté usage : exposer son métier à Claude, ChatGPT, Cursor, Continue, Cline, Zed, Windsurf, ou à un agent interne maison.

Cas d’usage → protocole conseillé

Plutôt qu’un match de boxe entre les deux, voici les situations qu’on rencontre en vrai et le protocole qui répond le mieux.

Cas d’usage Protocole Pourquoi
App web ou mobile qui consomme votre catalogue REST Cache HTTP, CDN, codes standards, outillage frontend mature
Intégration B2B machine-to-machine REST Contrat stable, OpenAPI universel, partenaires familiers
Webhook événementiel (Stripe, Slack, etc.) REST Push entrant HTTP, standard universel
Catalogue public à fort volume et lecture majoritaire REST Cacheable en bordure, -99 % de charge serveur
Exposer son métier à Claude ou ChatGPT MCP Découverte native, descriptions sémantiques pour le LLM
Donner contexte et actions à un assistant de code MCP Cursor, VS Code, Zed, Continue, Cline : support natif
Agent interne qui orchestre plusieurs outils métier MCP Session persistante, chain d’appels, prompts réutilisables
Service qui doit servir apps ET agents IA Les deux REST = source de vérité, MCP = façade agents par-dessus

Le pattern d’architecture qui marche

Dans les projets qu’on voit passer en 2026, un schéma s’est imposé : REST reste la source de vérité, MCP vient par-dessus comme façade pour les agents IA. Le serveur MCP ne duplique pas la logique métier, il wrappe l’API REST existante en exposant des tools orientés intention.

MCP ne remplace pas REST, MCP s’ajoute à REST quand tu veux être consommable par des agents IA. Le jour où tu retires MCP, ton API REST tourne toujours. Le jour où tu ajoutes MCP, tes clients REST ne changent pas une ligne.

Concrètement, un tool MCP find_invoices_by_client peut être 20 lignes de code qui appellent GET /v1/invoices?client_id=...&status=... en interne et reformatent la réponse pour un LLM. L’auth est partagée (OAuth2 des deux côtés), le cache REST profite indirectement au MCP, l’observabilité reste centralisée sur l’API.

Quand NE PAS faire du MCP

Toutes les APIs ne gagnent pas à avoir leur pendant MCP. Avant de coder un serveur, vérifiez qu’un agent IA aura un intérêt réel à l’appeler.

  • Applications statiques ou purement frontend : pas d’agent dans la boucle, pas besoin de MCP. Un site e-commerce, une app mobile, un dashboard interne : REST suffit.
  • Intégrations machine-to-machine classiques : un cron qui synchronise deux bases, un ETL, un job batch nocturne. Le contrat est fixe, l’appelant est scriptable, REST est fait pour ça.
  • Besoins temps réel critiques : trading, IoT, telemetry haute fréquence. L’overhead d’un appel d’agent (3 à 10 secondes de réflexion LLM) est rédhibitoire. REST, gRPC ou WebSocket restent les bons choix.
  • APIs publiques massivement consommées par des devs : Stripe, Twilio, GitHub. Ils exposent du REST parce que leurs utilisateurs codent des intégrations, pas des agents. Un MCP peut compléter, il ne remplace pas.
  • Contrats réglementaires stricts : banques, santé, juridique. Le déterminisme REST (même requête, même réponse) est auditable ; un agent qui interprète et choisit, beaucoup moins.

Latence typique REST

50 ms

une requête, une réponse, l’utilisateur lit.

Latence perceptible via agent

3–10 s

inférence avant et après l’appel, multipliée par le nombre de tools enchainés.

Serveurs MCP recensés

9 400+

Registre officiel modelcontextprotocol.io, croissance +18 %/mois. Côté clients : Claude, ChatGPT, Cursor, VS Code, Zed, Continue, Cline, Windsurf, n8n.

Comment on fait chez Datacampus

On héberge notre propre catalogue d’offres sur trois canaux, chacun dimensionné pour son appelant.

  • HTML : les pages /serveurs-vps, /hebergement-cloud, /ia pour les humains. SEO, mise en page, lecture linéaire, présentation commerciale.
  • API REST : consommée par notre configurateur de devis, par notre back-office, par les scripts de génération de sitemap. Cachée en bordure, rapide, standard, versionnée en URI.
  • Serveur MCP : https://datacampus.fr/mcp expose 5 tools (list_offerings, get_offering_details, recommend_offering, estimate_configuration, get_company_info) à Claude, ChatGPT et tout agent compatible. Découverte via /.well-known/mcp.json, transport Streamable HTTP, CORS géré en .htaccess.
Le même catalogue, deux canaux
$ # Canal REST (notre configurateur, nos scripts)
$ curl https://datacampus.fr/api/offerings?category=vps

$ # Canal MCP (Claude, ChatGPT, Cursor)
$ curl -X POST https://datacampus.fr/mcp \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_offerings","arguments":{"category":"vps"}}}'
Datacampus même source de vérité, deux interfaces, deux publics.

Chaque canal sert sa cible. Le HTML convertit les humains. Le REST alimente notre propre outillage. Le MCP permet à un agent IA de recommander nos VPS quand un utilisateur demande à ChatGPT « trouve-moi un hébergeur souverain en France avec immersion cooling pour mon site Symfony ». Même domaine métier, trois interfaces pensées pour leurs appelants respectifs. Si on avait tout fait en REST, le LLM aurait dû deviner quels endpoints appeler. Si on avait tout fait en MCP, notre configurateur front aurait eu besoin d’un client JSON-RPC inutile.

Pièges à éviter quand on ajoute MCP à une API existante

Wrapper brutalement un Swagger en MCP

La tentation : prendre un OpenAPI, générer automatiquement un tool MCP par endpoint, déployer, c’est plié. Sauf que ça donne un serveur avec 80 tools aux noms cryptiques (getUserById, postInvoiceCreate), aux descriptions générées à partir de commentaires Javadoc, et des paramètres optionnels sans contexte. Le LLM s’y perd et appelle mal, quand il appelle.

Un bon serveur MCP expose entre 5 et 20 tools orientés intention : find_invoices_by_client plutôt que getInvoicesQuery. C’est un travail de conception, pas une génération auto.

Sous-estimer l’importance des descriptions

Une description de tool, c’est un prompt. Si vous écrivez « Récupère la liste », le LLM ne saura pas quelle liste. Si vous écrivez « Liste les factures d’un client donné, filtrables par date et par statut (payée, impayée, en retard). À utiliser pour répondre aux questions sur l’état financier d’un client ou sur un recouvrement », le LLM sait exactement quand l’appeler. Testez avec l’agent cible, pas dans votre tête.

Négliger l’auth et l’isolation multi-tenant

Un serveur MCP expose des actions métier à un agent qui agit pour un utilisateur. Question : comment l’agent prouve l’identité de l’utilisateur au serveur ? La spec MCP 2025-06-18 a intégré un flow OAuth2 natif ; la révision de novembre 2025 l’a consolidé. Utilisez-le. Ne bricolez pas une API key partagée entre tous les utilisateurs, vous perdez l’audit et la ségrégation.

Ce qu’il faut retenir

MCP ne remplace pas REST : il s’ajoute à REST quand vous voulez que des agents IA consomment vos outils. Si vous construisez une app web, une app mobile, une intégration entre deux SaaS, un webhook : REST reste le bon choix, 25 ans de maturité derrière lui. Si vous voulez que Claude, ChatGPT ou un agent interne interroge et agisse sur vos systèmes : exposez un serveur MCP, en façade de votre REST, avec 5 à 20 tools bien décrits et orientés intention.

Chez Datacampus, on héberge les deux : vos APIs REST sur nos VPS ou notre cloud, vos serveurs MCP sur la même infra, avec des serveurs d'inférence souverains si vous voulez du LLM local en plus. Pour en discuter, le formulaire est ici, ou notre serveur MCP est sur /mcp si vous préférez que votre agent nous appelle directement.

Pour aller plus loin : qu’est-ce que MCP, les bases, notre implémentation sur datacampus.fr, et faire tourner un LLM souverain sur vos propres serveurs.

Vous avez un projet d'hébergement ?

Configurez-le en 2 minutes et recevez votre devis personnalisé sous 48 h. Sans engagement.

Configurer mon hébergement → Nous appeler

Articles sur le même sujet

← Retour au blog