Configuration complète d'un serveur MCP
Assembler tous les paramètres
Vous avez maintenant vu chaque paramètre de configuration MCP individuellement. Cette leçon rassemble tout dans des exemples complets et concrets, avec les deux SDK principaux.
Récapitulatif des paramètres
Avant de passer aux exemples, voici le tableau complet des paramètres et leur rôle :
| Paramètre | Requis | Rôle |
|---|---|---|
| server_url | Oui | URL HTTPS du serveur MCP |
| server_label | Oui | Préfixe des appels d'outils |
| server_description | Non | Guide Grok dans le choix du serveur |
| allowed_tool_names | Non | Restreint les outils accessibles |
| authorization | Non | Token d'authentification |
| headers | Non | En-têtes HTTP supplémentaires |
Configuration minimale
La configuration la plus simple ne nécessite que l’URL et le label :
# SDK xAI
tools = [mcp(server_url="https://mcp.deepwiki.com/mcp", server_label="deepwiki")]
# API Responses (OpenAI)
tools = [{
"type": "mcp",
"server_url": "https://mcp.deepwiki.com/mcp",
"server_label": "deepwiki"
}]
Cette configuration convient pour les serveurs MCP publics sans authentification, comme DeepWiki. Grok a accès à tous les outils du serveur.
Configuration en lecture seule
Pour un serveur interne où vous souhaitez limiter les opérations :
# SDK xAI
tools = [
mcp(
server_url="https://api.monentreprise.com/mcp",
server_label="crm",
server_description="CRM interne. Consultation de contacts et d'entreprises uniquement.",
authorization=f"Bearer {os.getenv('CRM_TOKEN')}",
allowed_tool_names=["search_contacts", "get_contact", "list_companies"]
)
]
# API Responses (OpenAI)
tools = [{
"type": "mcp",
"server_url": "https://api.monentreprise.com/mcp",
"server_label": "crm",
"server_description": "CRM interne. Consultation de contacts et d'entreprises uniquement.",
"authorization": f"Bearer {os.getenv('CRM_TOKEN')}",
"allowed_tool_names": ["search_contacts", "get_contact", "list_companies"]
}]
Configuration complète avec tous les paramètres
Voici un exemple qui utilise chaque paramètre :
import os
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-reasoning",
tools=[
mcp(
server_url="https://tools.monentreprise.com/v1/mcp",
server_label="outils-internes",
server_description="Plateforme d'outils internes : gestion documentaire, tickets support, base de connaissances. Accès en lecture seule.",
authorization=f"Bearer {os.getenv('TOOLS_MCP_TOKEN')}",
headers={
"X-Organization-Id": os.getenv("ORG_ID"),
"X-Environment": "production",
"X-Request-Source": "grok-agent"
},
allowed_tool_names=[
"search_documents",
"get_document",
"search_tickets",
"get_ticket",
"search_knowledge_base"
]
)
],
include=["verbose_streaming"],
)
Checklist de configuration
Avant de déployer en production, vérifiez :
- L’URL est bien en HTTPS avec un certificat valide
- Le label est court, descriptif et unique
- La description correspond aux outils réellement exposés
- Les outils autorisés sont restreints au minimum nécessaire
- Le token est stocké en variable d’environnement
- Les headers supplémentaires sont corrects pour votre serveur
Points clés à retenir
- La configuration minimale ne nécessite que
server_urletserver_label - Ajoutez
server_descriptionpour guider Grok, surtout en multi-serveur - Restreignez avec
allowed_tool_namespour la sécurité et la performance - Utilisez
authorizationetheaderspour l’authentification - Les deux SDK (xAI natif et OpenAI Responses) acceptent les mêmes paramètres avec une syntaxe différente