La fonctionnalité de connecteur Model Context Protocol (MCP) de Claude vous permet de vous connecter à des serveurs MCP distants directement à partir de l'API Messages sans client MCP séparé.
Version actuelle : Cette fonctionnalité nécessite l'en-tête bêta : "anthropic-beta": "mcp-client-2025-11-20"
La version précédente (mcp-client-2025-04-04) est dépréciée. Consultez la documentation de la version dépréciée ci-dessous.
Le connecteur MCP utilise deux composants :
mcp_servers) : Définit les détails de connexion au serveur (URL, authentification)tools) : Configure les outils à activer et comment les configurerCet exemple active tous les outils d'un serveur MCP avec la configuration par défaut :
Chaque serveur MCP dans le tableau mcp_servers définit les détails de connexion :
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}| Propriété | Type | Requis | Description |
|---|---|---|---|
type | string | Oui | Actuellement, seul "url" est pris en charge |
url | string | Oui | L'URL du serveur MCP. Doit commencer par https:// |
name | string | Oui | Un identifiant unique pour ce serveur MCP. Doit être référencé par exactement un MCPToolset dans le tableau tools. |
authorization_token | string | Non | Jeton d'autorisation OAuth si requis par le serveur MCP. Consultez la spécification MCP. |
L'MCPToolset se trouve dans le tableau tools et configure les outils du serveur MCP qui sont activés et comment ils doivent être configurés.
{
"type": "mcp_toolset",
"mcp_server_name": "example-mcp",
"default_config": {
"enabled": true,
"defer_loading": false
},
"configs": {
"specific_tool_name": {
"enabled": true,
"defer_loading": true
}
}
}| Propriété | Type | Requis | Description |
|---|---|---|---|
type | string | Oui | Doit être "mcp_toolset" |
mcp_server_name | string | Oui | Doit correspondre à un nom de serveur défini dans le tableau mcp_servers |
default_config | object | Non | Configuration par défaut appliquée à tous les outils de cet ensemble. Les configurations d'outils individuels dans configs remplaceront ces valeurs par défaut. |
configs | object | Non | Remplacements de configuration par outil. Les clés sont les noms d'outils, les valeurs sont des objets de configuration. |
Chaque outil (qu'il soit configuré dans default_config ou dans configs) prend en charge les champs suivants :
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
enabled | boolean | true | Si cet outil est activé |
defer_loading | boolean | false | Si true, la description de l'outil n'est pas envoyée au modèle initialement. Utilisé avec Tool Search Tool. |
Les valeurs de configuration fusionnent avec cette priorité (la plus élevée à la plus basse) :
configsdefault_config au niveau de l'ensembleExemple :
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"default_config": {
"defer_loading": true
},
"configs": {
"search_events": {
"enabled": false
}
}
}Résultat :
search_events : enabled: false (de configs), defer_loading: true (de default_config)enabled: true (valeur par défaut du système), defer_loading: true (de default_config)Le modèle le plus simple - activez tous les outils d'un serveur :
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
}Définissez enabled: false comme valeur par défaut, puis activez explicitement des outils spécifiques :
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"default_config": {
"enabled": false
},
"configs": {
"search_events": {
"enabled": true
},
"create_event": {
"enabled": true
}
}
}Activez tous les outils par défaut, puis désactivez explicitement les outils indésirables :
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"configs": {
"delete_all_events": {
"enabled": false
},
"share_calendar_publicly": {
"enabled": false
}
}
}Combinez la liste blanche avec une configuration personnalisée pour chaque outil :
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"default_config": {
"enabled": false,
"defer_loading": true
},
"configs": {
"search_events": {
"enabled": true,
"defer_loading": false
},
"list_events": {
"enabled": true
}
}
}Dans cet exemple :
search_events est activé avec defer_loading: falselist_events est activé avec defer_loading: true (hérité de default_config)L'API applique ces règles de validation :
mcp_server_name dans un MCPToolset doit correspondre à un serveur défini dans le tableau mcp_serversmcp_servers doit être référencé par exactement un MCPToolsetconfigs n'existe pas sur le serveur MCP, un avertissement backend est enregistré mais aucune erreur n'est retournée (les serveurs MCP peuvent avoir une disponibilité d'outils dynamique)Lorsque Claude utilise des outils MCP, la réponse inclura deux nouveaux types de blocs de contenu :
{
"type": "mcp_tool_use",
"id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
"name": "echo",
"server_name": "example-mcp",
"input": { "param1": "value1", "param2": "value2" }
}{
"type": "mcp_tool_result",
"tool_use_id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
"is_error": false,
"content": [
{
"type": "text",
"text": "Hello"
}
]
}Vous pouvez vous connecter à plusieurs serveurs MCP en incluant plusieurs définitions de serveur dans mcp_servers et un MCPToolset correspondant pour chacun dans le tableau tools :
{
"model": "claude-sonnet-4-5",
"max_tokens": 1000,
"messages": [
{
"role": "user",
"content": "Use tools from both mcp-server-1 and mcp-server-2 to complete this task"
}
],
"mcp_servers": [
{
"type": "url",
"url": "https://mcp.example1.com/sse",
"name": "mcp-server-1",
"authorization_token": "TOKEN1"
},
{
"type": "url",
"url": "https://mcp.example2.com/sse",
"name": "mcp-server-2",
"authorization_token": "TOKEN2"
}
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "mcp-server-1"
},
{
"type": "mcp_toolset",
"mcp_server_name": "mcp-server-2",
"default_config": {
"defer_loading": true
}
}
]
}Pour les serveurs MCP qui nécessitent une authentification OAuth, vous devrez obtenir un jeton d'accès. Le bêta du connecteur MCP prend en charge le passage d'un paramètre authorization_token dans la définition du serveur MCP.
Les consommateurs d'API sont censés gérer le flux OAuth et obtenir le jeton d'accès avant d'effectuer l'appel API, ainsi que d'actualiser le jeton selon les besoins.
L'inspecteur MCP peut vous guider tout au long du processus d'obtention d'un jeton d'accès à des fins de test.
Exécutez l'inspecteur avec la commande suivante. Vous devez avoir Node.js installé sur votre machine.
npx @modelcontextprotocol/inspectorDans la barre latérale de gauche, pour "Type de transport", sélectionnez soit "SSE" soit "Streamable HTTP".
Entrez l'URL du serveur MCP.
Dans la zone de droite, cliquez sur le bouton "Open Auth Settings" après "Need to configure authentication?".
Cliquez sur "Quick OAuth Flow" et autorisez sur l'écran OAuth.
Suivez les étapes de la section "OAuth Flow Progress" de l'inspecteur et cliquez sur "Continue" jusqu'à atteindre "Authentication complete".
Copiez la valeur access_token.
Une fois que vous avez obtenu un jeton d'accès en utilisant l'un des flux OAuth ci-dessus, vous pouvez l'utiliser dans votre configuration de serveur MCP :
{
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "authenticated-server",
"authorization_token": "YOUR_ACCESS_TOKEN_HERE"
}
]
}Pour des explications détaillées du flux OAuth, consultez la section Autorisation dans la spécification MCP.
Si vous utilisez l'en-tête bêta dépréciée mcp-client-2025-04-04, suivez ce guide pour migrer vers la nouvelle version.
mcp-client-2025-04-04 à mcp-client-2025-11-20tools en tant qu'objets MCPToolset, et non dans la définition du serveur MCPAvant (dépréciée) :
{
"model": "claude-sonnet-4-5",
"max_tokens": 1000,
"messages": [...],
"mcp_servers": [
{
"type": "url",
"url": "https://mcp.example.com/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN",
"tool_configuration": {
"enabled": true,
"allowed_tools": ["tool1", "tool2"]
}
}
]
}Après (actuelle) :
{
"model": "claude-sonnet-4-5",
"max_tokens": 1000,
"messages": [...],
"mcp_servers": [
{
"type": "url",
"url": "https://mcp.example.com/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "example-mcp",
"default_config": {
"enabled": false
},
"configs": {
"tool1": {
"enabled": true
},
"tool2": {
"enabled": true
}
}
}
]
}| Ancien modèle | Nouveau modèle |
|---|---|
Pas de tool_configuration (tous les outils activés) | MCPToolset sans default_config ou configs |
tool_configuration.enabled: false | MCPToolset avec default_config.enabled: false |
tool_configuration.allowed_tools: [...] | MCPToolset avec default_config.enabled: false et outils spécifiques activés dans configs |
Cette version est dépréciée. Veuillez migrer vers mcp-client-2025-11-20 en utilisant le guide de migration ci-dessus.
La version précédente du connecteur MCP incluait la configuration des outils directement dans la définition du serveur MCP :
{
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN",
"tool_configuration": {
"enabled": true,
"allowed_tools": ["example_tool_1", "example_tool_2"]
}
}
]
}| Propriété | Type | Description |
|---|---|---|
tool_configuration | object | Dépréciée : Utilisez MCPToolset dans le tableau tools à la place |
tool_configuration.enabled | boolean | Dépréciée : Utilisez default_config.enabled dans MCPToolset |
tool_configuration.allowed_tools | array | Dépréciée : Utilisez le modèle de liste blanche avec configs dans MCPToolset |
curl https://api.anthropic.com/v1/messages \
-H "Content-Type: application/json" \
-H "X-API-Key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-11-20" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "What tools do you have available?"}],
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "example-mcp"
}
]
}'cache_control |
| object |
| Non |
| Configuration du point d'arrêt du cache pour cet ensemble d'outils |
Collez-la dans le champ authorization_token de votre configuration de serveur MCP.