Aller au contenu
Cercle IA Tech · MCP Un site du réseau Cercle IA Tech

Comparatif

MCP ou function calling : deux niveaux différents

Le function calling permet au modèle de demander un appel de fonction ; MCP est le protocole qui fournit ces fonctions. Comment ils s'articulent.

Mis à jour le

Le function calling (appelé « tool use » chez Anthropic) est une capacité du modèle : il répond par une demande d'appel structurée, que votre application exécute. MCP (Model Context Protocol) est un protocole entre l'application et des serveurs : il dit comment découvrir des outils, les appeler et récupérer le résultat. L'un ne remplace pas l'autre : une application compatible MCP récupère les outils de ses serveurs, puis les présente au modèle qui les appelle par function calling. Cette page compare des approches techniques ; Cercle IA Tech est édité par IArche, qui édite ALMA, la plateforme IA pour PME.

Le function calling, côté modèle

D'après la documentation de Claude, le tool use permet au modèle d'appeler des fonctions que vous définissez. Il décide quand le faire à partir de la demande de l'utilisateur et de la description de l'outil. Le déroulé, pour un outil exécuté par votre application :

  1. Vous envoyez la requête avec une liste d'outils : chacun a un name, une description et un input_schema.
  2. Le modèle répond avec stop_reason: "tool_use" et un ou plusieurs blocs tool_use (nom de l'outil et arguments).
  3. Votre code exécute l'opération et renvoie un bloc tool_result.
  4. Le modèle utilise ce résultat pour répondre.

Tout se passe dans votre application : c'est vous qui écrivez la définition de chaque outil et le code qui l'exécute.

MCP, côté application

MCP déplace la définition et l'exécution des outils dans des serveurs séparés. La documentation décrit ce que fait l'application d'IA :

  • elle interroge tools/list sur chaque serveur connecté ;
  • elle réunit tous ces outils dans un registre unique que le modèle peut utiliser ;
  • quand le modèle demande un outil, elle route l'appel vers le bon serveur avec tools/call, puis rend le résultat au modèle.

Autrement dit, le modèle voit toujours des outils « classiques ». Ce qui change, c'est qu'il n'est plus nécessaire de les coder dans chaque application.

Comparaison

Function calling seul Avec MCP
Niveau Capacité du modèle et de son API (interface de programmation) Protocole entre application et serveurs
Où sont définis les outils Dans le code de l'application, à chaque requête Dans des serveurs, découverts à l'usage
Qui exécute Votre application Le serveur MCP (local ou distant)
Réutilisation Propre à une application Un serveur sert tous les clients compatibles
Ressources et prompts Non prévus Prévus par le protocole
Changement d'outils Redéployer l'application Le serveur peut notifier le changement

Un point de coût à ne pas oublier

La documentation de Claude indique que les définitions d'outils (noms, descriptions, schémas) passées dans le paramètre tools comptent dans les jetons d'entrée, en plus d'un court texte système ajouté automatiquement quand des outils sont fournis. Brancher beaucoup de serveurs MCP, c'est donc envoyer beaucoup de définitions au modèle. La documentation MCP signale, pour les clients qui fédèrent de nombreux serveurs, une approche de découverte progressive plutôt que tout charger d'emblée. Côté serveur, des descriptions courtes et précises et un nombre d'outils raisonnable restent la meilleure hygiène.

Les deux réunis : le connecteur MCP de l'API Claude

Anthropic propose aussi de brancher un serveur MCP distant directement dans un appel à l'API Messages, sans écrire de client MCP : le paramètre mcp_servers décrit le serveur, et un mcp_toolset dans tools choisit les outils à activer. Le modèle les appelle alors comme n'importe quel outil. Détails et limites sur la page le connecteur MCP de l'API Claude.

Que choisir

  • Quelques fonctions propres à une seule application : le function calling direct est le plus simple.
  • Des outils à partager entre plusieurs applications ou plusieurs équipes : un serveur MCP.
  • Un service que vos clients veulent brancher à leur propre assistant : un serveur MCP distant, avec OAuth (voir MCP distant et OAuth).

La question voisine, « MCP ou API classique », est traitée sur la page MCP ou API.

Questions fréquentes

MCP remplace-t-il le function calling ?

Non. Le modèle continue d'appeler des outils par le mécanisme de tool use ; MCP standardise d'où viennent ces outils et comment l'application les exécute.

Les définitions d'outils coûtent-elles des jetons ?

Oui : la documentation de Claude indique que les noms, descriptions et schémas passés dans le paramètre tools comptent dans les jetons d'entrée de chaque requête.

Sources

Pages consultées pour écrire cet article :

  1. https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview
  2. https://modelcontextprotocol.io/docs/learn/architecture
  3. https://platform.claude.com/docs/en/agents-and-tools/mcp-connector

À lire aussi