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

Cette fonctionnalité nécessite l’en-tête beta : "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 d’appel d’outils : Accédez aux outils MCP via l’API Messages
  • Authentification OAuth : Support pour les jetons Bearer OAuth pour les serveurs authentifiés
  • Serveurs multiples : Connectez-vous à plusieurs serveurs MCP dans une seule requête

Limitations

  • De l’ensemble des fonctionnalités de la spécification MCP, seuls les appels d’outils sont actuellement supportés.
  • Le serveur doit être exposé publiquement via HTTP (supporte les transports HTTP Streamable et SSE). Les serveurs STDIO locaux ne peuvent pas être connectés directement.
  • Le connecteur MCP n’est actuellement pas supporté 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 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 disponibles ?"}],
    "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 supporte 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"
}

Descriptions des champs

PropriétéTypeRequisDescription
typestringOuiActuellement seul “url” est supporté
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.enabledbooleanNonActiver ou non les outils de ce serveur (par défaut : true)
tool_configuration.allowed_toolsarrayNonListe pour restreindre les outils à autoriser (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

Quand Claude utilise les 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": "Bonjour"
    }
  ]
}

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 beta du connecteur MCP supporte 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 de faire l’appel API, ainsi que rafraîchir le jeton selon les besoins.

Obtenir un jeton d’accès pour les tests

L’inspecteur MCP peut vous guider à travers 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 “Type de transport”, sélectionnez soit “SSE” soit “HTTP Streamable”.

  3. Entrez l’URL du serveur MCP.

  4. Dans la zone de droite, cliquez sur le bouton “Ouvrir les paramètres d’authentification” après “Besoin de configurer l’authentification ?”.

  5. Cliquez sur “Flux OAuth rapide” et autorisez sur l’écran OAuth.

  6. Suivez les étapes dans la section “Progression du flux OAuth” de l’inspecteur et cliquez sur “Continuer” jusqu’à atteindre “Authentification terminée”.

  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 du flux OAuth, référez-vous à la section Autorisation dans la spécification MCP.