La fonctionnalité de connecteur Model Context Protocol (MCP) de Claude vous permet de vous connecter directement à des serveurs MCP distants depuis l’API Messages sans avoir besoin d’un client MCP séparé.

Cette fonctionnalité nécessite l’en-tête bêta : "anthropic-beta": "mcp-client-2025-04-04"

Fonctionnalités clés

  • Intégration API directe : Connectez-vous aux serveurs MCP sans implémenter un client MCP
  • Support des appels d’outils : Accédez aux outils MCP via l’API Messages
  • Authentification OAuth : Support des jetons Bearer OAuth pour les serveurs authentifiés
  • Serveurs multiples : Connectez-vous à plusieurs serveurs MCP dans une seule requête

Limitations

  • Parmi l’ensemble des fonctionnalités de la spécification MCP, seuls les appels d’outils sont actuellement pris en charge.
  • Le serveur doit être exposé publiquement via HTTP. Les serveurs STDIO locaux ne peuvent pas être connectés directement.
  • Le connecteur MCP n’est actuellement pas pris en charge sur Amazon Bedrock et Google Vertex.

Utilisation du connecteur MCP dans l’API Messages

Pour vous connecter à un serveur MCP distant, incluez le paramètre mcp_servers dans votre requête à l’API Messages :

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-04-04" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1000,
    "messages": [{"role": "user", "content": "Quels outils avez-vous à disposition ?"}],
    "mcp_servers": [
      {
        "type": "url",
        "url": "https://example-server.modelcontextprotocol.io/sse",
        "name": "example-mcp",
        "authorization_token": "YOUR_TOKEN"
      }
    ]
  }'

Configuration du serveur MCP

Chaque serveur MCP dans le tableau mcp_servers prend en charge la configuration suivante :

{
  "type": "url",
  "url": "https://example-server.modelcontextprotocol.io/sse",
  "name": "example-mcp",
  "tool_configuration": {
    "enabled": true,
    "allowed_tools": ["example_tool_1", "example_tool_2"]
  },
  "authorization_token": "YOUR_TOKEN"
}

Description des champs

PropriétéTypeObligatoireDescription
typestringOuiActuellement, seul “url” est pris en charge
urlstringOuiL’URL du serveur MCP. Doit commencer par https://
namestringOuiUn identifiant unique pour ce serveur MCP. Il sera utilisé dans les blocs mcp_tool_call pour identifier le serveur et pour désambiguïser les outils pour le modèle.
tool_configurationobjectNonConfigurer l’utilisation des outils
tool_configuration.enabledbooleanNonIndique si les outils de ce serveur sont activés (par défaut : true)
tool_configuration.allowed_toolsarrayNonListe pour restreindre les outils autorisés (par défaut, tous les outils sont autorisés)
authorization_tokenstringNonJeton d’autorisation OAuth si requis par le serveur MCP. Voir Spécification MCP.

Types de contenu de réponse

Lorsque Claude utilise des outils MCP, la réponse inclura deux nouveaux types de blocs de contenu :

Bloc d’utilisation d’outil MCP

{
  "type": "mcp_tool_use",
  "id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
  "name": "echo",
  "server_name": "example-mcp",
  "input": { "param1": "value1", "param2": "value2" }
}

Bloc de résultat d’outil MCP

{
  "type": "mcp_tool_result",
  "tool_use_id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
  "is_error": false,
  "content": [
    {
      "type": "text",
      "text": "Hello"
    }
  ]
}

Serveurs MCP multiples

Vous pouvez vous connecter à plusieurs serveurs MCP en incluant plusieurs objets dans le tableau mcp_servers :

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1000,
  "messages": [
    {
      "role": "user",
      "content": "Utilisez les outils de mcp-server-1 et mcp-server-2 pour accomplir cette tâche"
    }
  ],
  "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"
    }
  ]
}

Authentification

Pour les serveurs MCP qui nécessitent une authentification OAuth, vous devrez obtenir un jeton d’accès. La version 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 de l’API sont censés gérer le flux OAuth et obtenir le jeton d’accès avant d’effectuer l’appel API, ainsi que de rafraîchir le jeton si nécessaire.

Obtention d’un jeton d’accès pour les tests

L’inspecteur MCP peut vous guider dans le processus d’obtention d’un jeton d’accès à des fins de test.

  1. Exécutez l’inspecteur avec la commande suivante. Vous devez avoir Node.js installé sur votre machine.

    npx @modelcontextprotocol/inspector
    
  2. Dans la barre latérale à gauche, pour “Transport type”, sélectionnez soit “SSE” soit “Streamable HTTP”.

  3. Entrez l’URL du serveur MCP.

  4. Dans la zone de droite, cliquez sur le bouton “Open Auth Settings” après “Need to configure authentication?”.

  5. Cliquez sur “Quick OAuth Flow” et autorisez sur l’écran OAuth.

  6. Suivez les étapes dans la section “OAuth Flow Progress” de l’inspecteur et cliquez sur “Continue” jusqu’à ce que vous atteigniez “Authentication complete”.

  7. Copiez la valeur access_token.

  8. Collez-la dans le champ authorization_token de votre configuration de serveur MCP.

Utilisation du jeton d’accès

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 sur le flux OAuth, consultez la section Autorisation dans la spécification MCP.