Outils externes et SDK supportés
Mis à jour le 29 juillet 2026
Trois portes d’entrée vers le même mécanisme
xAI expose le MCP distant à travers trois interfaces. Elles ne s’adressent pas au même développeur : l’une vise le projet neuf, l’autre le projet migré, la troisième un contexte d’usage particulier. Le comportement du MCP est rigoureusement identique dans les trois cas, seule la syntaxe de configuration et l’outillage périphérique changent. Votre choix se fait donc sur votre stack existant, pas sur les capacités du protocole.
Le SDK xAI natif
C’est la méthode recommandée par xAI. Elle fournit un helper mcp() qui condense la configuration en un appel de fonction.
from xai_sdk import Client
from xai_sdk.tools import mcp
client = Client(api_key=os.getenv("XAI_API_KEY"))
chat = client.chat.create(
model="grok-4.20-0309-reasoning",
tools=[
mcp(server_url="https://mcp.deepwiki.com/mcp")
],
include=["verbose_streaming"],
)
Le helper mcp() accepte tous les paramètres de configuration MCP — URL, label, description, outils autorisés, authentification — et se charge de les formater correctement pour l’API. C’est la syntaxe la plus concise, et surtout celle où vous risquez le moins de vous tromper, puisque les noms de clés et leur imbrication sont pris en charge pour vous. Choisissez cette voie pour un projet neuf sans contrainte de compatibilité, pour tout prototypage rapide, et dès que vous exploitez des fonctionnalités propres à xAI comme le verbose streaming visible ci-dessus.
L’API Responses, compatible OpenAI
Cette interface accepte exactement le format de l’API OpenAI. Elle existe pour une raison précise : ne pas obliger une équipe qui a déjà écrit son application dans ce format à tout réécrire pour essayer Grok. Le changement se limite à la clé API et à l’URL de base.
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("XAI_API_KEY"),
base_url="https://api.x.ai/v1",
)
response = client.responses.create(
model="grok-4.20-0309-reasoning",
input=[{"role": "user", "content": "Explique le projet React"}],
tools=[{
"type": "mcp",
"server_url": "https://mcp.deepwiki.com/mcp",
"server_label": "deepwiki",
}],
)
Ici, le serveur MCP se déclare comme un élément du tableau tools, avec le type "mcp" et les paramètres en clé-valeur dans le même objet. Aucun helper : vous écrivez le dictionnaire à la main, ce qui laisse davantage de place à une faute de frappe sur un nom de clé.
Cette compatibilité a un prix, et il vaut mieux le connaître avant de bâtir dessus. Deux paramètres disponibles dans le SDK natif ne le sont pas ici : require_approval, qui permet d’exiger une validation humaine avant l’exécution d’un outil MCP, et connector_id, qui gère les connecteurs OpenAI. Si votre agent touche à des opérations sensibles et que vous comptiez sur une validation manuelle, cette limitation est bloquante et doit vous ramener vers le SDK xAI natif. L’API Responses reste en revanche le bon choix pour une migration depuis OpenAI sans réécriture, pour un projet multi-fournisseurs où vous alternez entre Grok et d’autres modèles, et pour une équipe déjà rodée à ce format.
L’API Voice Agent
La troisième interface est conçue pour les agents vocaux. Le scénario typique est celui d’un assistant téléphonique qui, au milieu d’une conversation, doit consulter une base de connaissances, vérifier un statut de commande ou interroger un système externe — sans que l’appelant subisse un silence inexplicable.
La configuration MCP y suit le même format que dans les autres SDK, avec les mêmes paramètres server_url, server_label et les autres. La différence tient à ce qui se passe après l’appel d’outil : le résultat est intégré au flux de synthèse vocale plutôt que rendu sous forme de texte. Cela oriente la manière dont vous rédigez vos descriptions d’outils et dont vous cadrez leurs réponses, puisque l’utilisateur ne verra jamais un tableau ni une liste — il ne fera que les entendre.
Ce qui ne change pas d’une interface à l’autre
Quel que soit le SDK, la séquence est la même. Grok découvre les outils exposés par le serveur MCP, sélectionne celui qui correspond à la requête, formule l’appel avec les paramètres corrects, puis intègre le résultat dans sa réponse. Aucune des trois interfaces ne rend le modèle plus ou moins habile à choisir un outil.
Ce qui diffère se situe donc ailleurs : la concision de la syntaxe, les fonctionnalités périphériques disponibles — streaming verbose côté SDK xAI, compatibilité de format côté API Responses, synthèse vocale côté Voice Agent — et les deux paramètres absents du format OpenAI. Décidez sur ces critères, et vous ne vous tromperez pas.
Points clés à retenir
- Le SDK xAI natif avec
mcp()est la méthode la plus simple et la plus complète - L’API Responses (format OpenAI) facilite la migration mais ne supporte pas
require_approvalniconnector_id - L’API Voice Agent connecte des agents vocaux à des outils MCP
- Le comportement MCP est identique dans les trois cas, seule la syntaxe change
- Choisissez en fonction de votre stack existant et de vos besoins spécifiques