Die Model Context Protocol (MCP) Connector-Funktion von Claude ermöglicht es Ihnen, sich direkt über die Messages API mit entfernten MCP-Servern zu verbinden, ohne einen separaten MCP-Client zu benötigen.

Diese Funktion erfordert den Beta-Header: "anthropic-beta": "mcp-client-2025-04-04"

Hauptfunktionen

  • Direkte API-Integration: Verbindung zu MCP-Servern ohne Implementierung eines MCP-Clients
  • Tool-Calling-Unterstützung: Zugriff auf MCP-Tools über die Messages API
  • OAuth-Authentifizierung: Unterstützung für OAuth Bearer-Token für authentifizierte Server
  • Mehrere Server: Verbindung zu mehreren MCP-Servern in einer einzigen Anfrage

Einschränkungen

  • Vom Funktionsumfang der MCP-Spezifikation werden derzeit nur Tool-Aufrufe unterstützt.
  • Der Server muss öffentlich über HTTP zugänglich sein (unterstützt sowohl Streamable HTTP- als auch SSE-Transporte). Lokale STDIO-Server können nicht direkt verbunden werden.
  • Der MCP-Connector wird derzeit nicht auf Amazon Bedrock und Google Vertex unterstützt.

Verwendung des MCP-Connectors in der Messages API

Um sich mit einem entfernten MCP-Server zu verbinden, fügen Sie den Parameter mcp_servers in Ihre Messages API-Anfrage ein:

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": "Welche Tools stehen dir zur Verfügung?"}],
    "mcp_servers": [
      {
        "type": "url",
        "url": "https://example-server.modelcontextprotocol.io/sse",
        "name": "example-mcp",
        "authorization_token": "YOUR_TOKEN"
      }
    ]
  }'

MCP-Server-Konfiguration

Jeder MCP-Server im mcp_servers-Array unterstützt die folgende Konfiguration:

{
  "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"
}

Feldbeschreibungen

EigenschaftTypErforderlichBeschreibung
typestringJaDerzeit wird nur “url” unterstützt
urlstringJaDie URL des MCP-Servers. Muss mit https:// beginnen
namestringJaEin eindeutiger Bezeichner für diesen MCP-Server. Er wird in mcp_tool_call-Blöcken verwendet, um den Server zu identifizieren und Tools für das Modell zu disambiguieren.
tool_configurationobjectNeinTool-Verwendung konfigurieren
tool_configuration.enabledbooleanNeinOb Tools von diesem Server aktiviert werden sollen (Standard: true)
tool_configuration.allowed_toolsarrayNeinListe zur Einschränkung der zu erlaubenden Tools (standardmäßig sind alle Tools erlaubt)
authorization_tokenstringNeinOAuth-Autorisierungstoken, falls vom MCP-Server erforderlich. Siehe MCP-Spezifikation.

Antwort-Inhaltstypen

Wenn Claude MCP-Tools verwendet, enthält die Antwort zwei neue Inhaltsblocktypen:

MCP Tool Use Block

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

MCP Tool Result Block

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

Mehrere MCP-Server

Sie können sich mit mehreren MCP-Servern verbinden, indem Sie mehrere Objekte in das mcp_servers-Array einschließen:

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1000,
  "messages": [
    {
      "role": "user",
      "content": "Verwende Tools von sowohl mcp-server-1 als auch mcp-server-2, um diese Aufgabe zu erfüllen"
    }
  ],
  "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"
    }
  ]
}

Authentifizierung

Für MCP-Server, die OAuth-Authentifizierung erfordern, müssen Sie ein Zugriffstoken erhalten. Die MCP-Connector-Beta unterstützt die Übergabe eines authorization_token-Parameters in der MCP-Server-Definition. Von API-Verbrauchern wird erwartet, dass sie den OAuth-Flow handhaben und das Zugriffstoken vor dem API-Aufruf erhalten sowie das Token bei Bedarf aktualisieren.

Erhalten eines Zugriffstokens zum Testen

Der MCP-Inspector kann Sie durch den Prozess der Erlangung eines Zugriffstokens zu Testzwecken führen.

  1. Führen Sie den Inspector mit dem folgenden Befehl aus. Sie benötigen Node.js auf Ihrem Computer.

    npx @modelcontextprotocol/inspector
    
  2. Wählen Sie in der Seitenleiste links für “Transport type” entweder “SSE” oder “Streamable HTTP”.

  3. Geben Sie die URL des MCP-Servers ein.

  4. Klicken Sie im rechten Bereich auf die Schaltfläche “Open Auth Settings” nach “Need to configure authentication?”.

  5. Klicken Sie auf “Quick OAuth Flow” und autorisieren Sie sich auf dem OAuth-Bildschirm.

  6. Folgen Sie den Schritten im Abschnitt “OAuth Flow Progress” des Inspectors und klicken Sie auf “Continue”, bis Sie “Authentication complete” erreichen.

  7. Kopieren Sie den access_token-Wert.

  8. Fügen Sie ihn in das authorization_token-Feld in Ihrer MCP-Server-Konfiguration ein.

Verwendung des Zugriffstokens

Sobald Sie ein Zugriffstoken mit einem der oben genannten OAuth-Flows erhalten haben, können Sie es in Ihrer MCP-Server-Konfiguration verwenden:

{
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://example-server.modelcontextprotocol.io/sse",
      "name": "authenticated-server",
      "authorization_token": "YOUR_ACCESS_TOKEN_HERE"
    }
  ]
}

Für detaillierte Erklärungen des OAuth-Flows verweisen Sie auf den Autorisierungsabschnitt in der MCP-Spezifikation.