Das Model Context Protocol (MCP) Connector-Feature von Claude ermöglicht es Ihnen, sich direkt über die Messages API mit Remote-MCP-Servern zu verbinden, ohne einen separaten MCP-Client zu benötigen.
Aktuelle Version: Dieses Feature erfordert den Beta-Header: "anthropic-beta": "mcp-client-2025-11-20"
Die vorherige Version (mcp-client-2025-04-04) ist veraltet. Siehe die Dokumentation zur veralteten Version unten.
This feature is not eligible for Zero Data Retention (ZDR). Data is retained according to the feature's standard retention policy.
Der MCP-Connector verwendet zwei Komponenten:
mcp_servers-Array): Definiert Server-Verbindungsdetails (URL, Authentifizierung)tools-Array): Konfiguriert, welche Tools aktiviert werden sollen und wie sie konfiguriert werdenDieses Beispiel aktiviert alle Tools von einem MCP-Server mit Standardkonfiguration:
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-opus-4-6",
"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"
}
]
}'Jeder MCP-Server im mcp_servers-Array definiert die Verbindungsdetails:
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | string | Ja | Derzeit wird nur "url" unterstützt |
url | string | Ja | Die URL des MCP-Servers. Muss mit https:// beginnen |
name | string | Ja | Ein eindeutiger Bezeichner für diesen MCP-Server. Muss von genau einem MCPToolset im tools-Array referenziert werden. |
authorization_token | string | Nein | OAuth-Autorisierungstoken, falls vom MCP-Server benötigt. Siehe MCP-Spezifikation. |
Das MCPToolset befindet sich im tools-Array und konfiguriert, welche Tools vom MCP-Server aktiviert sind und wie sie konfiguriert werden sollen.
{
"type": "mcp_toolset",
"mcp_server_name": "example-mcp",
"default_config": {
"enabled": true,
"defer_loading": false
},
"configs": {
"specific_tool_name": {
"enabled": true,
"defer_loading": true
}
}
}| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | string | Ja | Muss "mcp_toolset" sein |
mcp_server_name | string | Ja | Muss mit einem Servernamen übereinstimmen, der im mcp_servers-Array definiert ist |
default_config | object | Nein | Standardkonfiguration, die auf alle Tools in diesem Set angewendet wird. Individuelle Tool-Konfigurationen in configs überschreiben diese Standardwerte. |
configs | object | Nein | Konfigurationsüberschreibungen pro Tool. Schlüssel sind Tool-Namen, Werte sind Konfigurationsobjekte. |
cache_control | object | Nein | Cache-Breakpoint-Konfiguration für dieses Toolset |
Jedes Tool (ob in default_config oder in configs konfiguriert) unterstützt die folgenden Felder:
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
enabled | boolean | true | Ob dieses Tool aktiviert ist |
defer_loading | boolean | false | Wenn true, wird die Tool-Beschreibung dem Modell anfänglich nicht gesendet. Wird mit dem Tool Search Tool verwendet. |
Konfigurationswerte werden mit dieser Priorität zusammengeführt (höchste bis niedrigste):
configsdefault_configBeispiel:
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"default_config": {
"defer_loading": true
},
"configs": {
"search_events": {
"enabled": false
}
}
}Ergibt:
search_events: enabled: false (aus configs), defer_loading: true (aus default_config)enabled: true (Systemstandard), defer_loading: true (aus default_config)Das einfachste Muster – alle Tools von einem Server aktivieren:
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp"
}enabled: false als Standard setzen, dann bestimmte Tools explizit aktivieren:
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"default_config": {
"enabled": false
},
"configs": {
"search_events": {
"enabled": true
},
"create_event": {
"enabled": true
}
}
}Alle Tools standardmäßig aktivieren, dann unerwünschte Tools explizit deaktivieren:
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"configs": {
"delete_all_events": {
"enabled": false
},
"share_calendar_publicly": {
"enabled": false
}
}
}Allowlisting mit benutzerdefinierter Konfiguration für jedes Tool kombinieren:
{
"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
}
}
}In diesem Beispiel:
search_events ist aktiviert mit defer_loading: falselist_events ist aktiviert mit defer_loading: true (von default_config geerbt)Die API erzwingt diese Validierungsregeln:
mcp_server_name in einem MCPToolset muss mit einem im mcp_servers-Array definierten Server übereinstimmenmcp_servers definierte MCP-Server muss von genau einem MCPToolset referenziert werdenconfigs nicht auf dem MCP-Server existiert, wird eine Backend-Warnung protokolliert, aber kein Fehler zurückgegeben (MCP-Server können dynamische Tool-Verfügbarkeit haben)Wenn Claude MCP-Tools verwendet, enthält die Antwort zwei neue Inhaltsblock-Typen:
{
"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"
}
]
}Sie können sich mit mehreren MCP-Servern verbinden, indem Sie mehrere Server-Definitionen in mcp_servers und ein entsprechendes MCPToolset für jeden im tools-Array einfügen:
{
"model": "claude-opus-4-6",
"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
}
}
]
}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.
API-Nutzer sind dafür verantwortlich, den OAuth-Flow zu verwalten und das Zugriffstoken vor dem API-Aufruf zu erhalten sowie das Token bei Bedarf zu erneuern.
Der MCP-Inspector kann Sie durch den Prozess der Beschaffung eines Zugriffstokens für Testzwecke führen.
Führen Sie den Inspector mit dem folgenden Befehl aus. Sie benötigen Node.js auf Ihrem Rechner.
npx @modelcontextprotocol/inspectorWählen Sie in der linken Seitenleiste unter "Transport type" entweder "SSE" oder "Streamable HTTP".
Geben Sie die URL des MCP-Servers ein.
Klicken Sie im rechten Bereich auf die Schaltfläche "Open Auth Settings" nach "Need to configure authentication?".
Klicken Sie auf "Quick OAuth Flow" und autorisieren Sie auf dem OAuth-Bildschirm.
Folgen Sie den Schritten im Abschnitt "OAuth Flow Progress" des Inspectors und klicken Sie auf "Continue", bis Sie "Authentication complete" erreichen.
Kopieren Sie den access_token-Wert.
Fügen Sie ihn in das Feld authorization_token in Ihrer MCP-Server-Konfiguration ein.
Sobald Sie ein Zugriffstoken über den oben beschriebenen OAuth-Flow 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"
}
]
}Ausführliche Erläuterungen zum OAuth-Flow finden Sie im Autorisierungsabschnitt der MCP-Spezifikation.
Wenn Sie Ihre eigene MCP-Client-Verbindung verwalten (z. B. mit lokalen stdio-Servern, MCP-Prompts oder MCP-Ressourcen), stellt das TypeScript-SDK Hilfsfunktionen bereit, die zwischen MCP-Typen und Claude-API-Typen konvertieren. Dies eliminiert manuellen Konvertierungscode bei der Verwendung des MCP SDK zusammen mit dem Anthropic SDK.
Diese Hilfsfunktionen sind derzeit nur im TypeScript-SDK verfügbar.
Verwenden Sie den mcp_servers-API-Parameter, wenn Sie Remote-Server haben, die über URL zugänglich sind und nur Tool-Unterstützung benötigen. Wenn Sie das Agent SDK verwenden, werden MCP-Verbindungen automatisch verwaltet. Verwenden Sie die client-seitigen Hilfsfunktionen, wenn Sie lokale Server, Prompts, Ressourcen oder mehr Kontrolle über die Verbindung mit dem Basis-SDK benötigen.
Installieren Sie sowohl das Anthropic SDK als auch das MCP SDK:
npm install @anthropic-ai/sdk @modelcontextprotocol/sdkImportieren Sie die Hilfsfunktionen aus dem Beta-Namespace:
import {
mcpTools,
mcpMessages,
mcpResourceToContent,
mcpResourceToFile
} from "@anthropic-ai/sdk/helpers/beta/mcp";| Hilfsfunktion | Beschreibung |
|---|---|
mcpTools(tools, mcpClient) | Konvertiert MCP-Tools in Claude-API-Tools zur Verwendung mit client.beta.messages.toolRunner() |
mcpMessages(messages) | Konvertiert MCP-Prompt-Nachrichten in das Claude-API-Nachrichtenformat |
mcpResourceToContent(resource) | Konvertiert eine MCP-Ressource in einen Claude-API-Inhaltsblock |
mcpResourceToFile(resource) | Konvertiert eine MCP-Ressource in ein Dateiobjekt zum Hochladen |
Konvertieren Sie MCP-Tools zur Verwendung mit dem Tool Runner des SDK, der die Tool-Ausführung automatisch verwaltet:
import Anthropic from "@anthropic-ai/sdk";
import { mcpTools } from "@anthropic-ai/sdk/helpers/beta/mcp";
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const anthropic = new Anthropic();
// Mit einem MCP-Server verbinden
const transport = new StdioClientTransport({ command: "mcp-server", args: [] });
const mcpClient = new Client({ name: "my-client", version: "1.0.0" });
await mcpClient.connect(transport);
// Tools auflisten und für die Claude API konvertieren
const { tools } = await mcpClient.listTools();
const runner = await anthropic.beta.messages.toolRunner({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "What tools do you have available?" }],
tools: mcpTools(tools, mcpClient)
});Konvertieren Sie MCP-Prompt-Nachrichten in das Claude-API-Nachrichtenformat:
import { mcpMessages } from "@anthropic-ai/sdk/helpers/beta/mcp";
const { messages } = await mcpClient.getPrompt({ name: "my-prompt" });
const response = await anthropic.beta.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: mcpMessages(messages)
});Konvertieren Sie MCP-Ressourcen in Inhaltsblöcke zur Einbindung in Nachrichten oder in Dateiobjekte zum Hochladen:
import { mcpResourceToContent, mcpResourceToFile } from "@anthropic-ai/sdk/helpers/beta/mcp";
// Als Inhaltsblock in einer Nachricht
const resource = await mcpClient.readResource({ uri: "file:///path/to/doc.txt" });
await anthropic.beta.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{
role: "user",
content: [
mcpResourceToContent(resource),
{ type: "text", text: "Summarize this document" }
]
}
]
});
// Als Datei-Upload
const fileResource = await mcpClient.readResource({ uri: "file:///path/to/data.json" });
await anthropic.beta.files.upload({ file: mcpResourceToFile(fileResource) });Die Konvertierungsfunktionen werfen UnsupportedMCPValueError, wenn ein MCP-Wert von der Claude API nicht unterstützt wird. Dies kann bei nicht unterstützten Inhaltstypen, MIME-Typen oder Nicht-HTTP-Ressourcenlinks auftreten.
Der MCP-Connector ist nicht durch ZDR-Vereinbarungen abgedeckt. Daten, die mit MCP-Servern ausgetauscht werden, einschließlich Tool-Definitionen und Ausführungsergebnisse, werden gemäß der Standard-Datenspeicherungsrichtlinie von Anthropic aufbewahrt.
Informationen zur ZDR-Berechtigung für alle Features finden Sie unter API und Datenspeicherung.
Wenn Sie den veralteten mcp-client-2025-04-04-Beta-Header verwenden, folgen Sie diesem Leitfaden zur Migration auf die neue Version.
mcp-client-2025-04-04 zu mcp-client-2025-11-20tools-Array als MCPToolset-Objekte, nicht in der MCP-Server-DefinitionVorher (veraltet):
{
"model": "claude-opus-4-6",
"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"]
}
}
]
}Nachher (aktuell):
{
"model": "claude-opus-4-6",
"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
}
}
}
]
}| Altes Muster | Neues Muster |
|---|---|
Kein tool_configuration (alle Tools aktiviert) | MCPToolset ohne default_config oder configs |
tool_configuration.enabled: false | MCPToolset mit default_config.enabled: false |
tool_configuration.allowed_tools: [...] | MCPToolset mit default_config.enabled: false und bestimmten Tools, die in configs aktiviert sind |
Diese Version ist veraltet. Bitte migrieren Sie zu mcp-client-2025-11-20 mithilfe des Migrationsleitfadens oben.
Die vorherige Version des MCP-Connectors enthielt die Tool-Konfiguration direkt in der MCP-Server-Definition:
{
"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"]
}
}
]
}| Eigenschaft | Typ | Beschreibung |
|---|---|---|
tool_configuration | object | Veraltet: Verwenden Sie stattdessen MCPToolset im tools-Array |
tool_configuration.enabled | boolean | Veraltet: Verwenden Sie default_config.enabled in MCPToolset |
tool_configuration.allowed_tools | array | Veraltet: Verwenden Sie das Allowlist-Muster mit configs in MCPToolset |
Was this page helpful?