Il connettore Model Context Protocol (MCP) di Claude ti consente di connetterti a server MCP remoti direttamente dall'API Messages senza un client MCP separato.
Versione attuale: Questa funzione richiede l'intestazione beta: "anthropic-beta": "mcp-client-2025-11-20"
La versione precedente (mcp-client-2025-04-04) è deprecata. Consulta la documentazione della versione deprecata di seguito.
Il connettore MCP utilizza due componenti:
mcp_servers): Definisce i dettagli della connessione al server (URL, autenticazione)tools): Configura quali strumenti abilitare e come configurarliQuesto esempio abilita tutti gli strumenti da un server MCP con configurazione predefinita:
Ogni server MCP nell'array mcp_servers definisce i dettagli della connessione:
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "example-mcp",
"authorization_token": "YOUR_TOKEN"
}| Proprietà | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
type | string | Sì | Attualmente è supportato solo "url" |
url | string | Sì | L'URL del server MCP. Deve iniziare con https:// |
name | string | Sì | Un identificatore univoco per questo server MCP. Deve essere referenziato da esattamente un MCPToolset nell'array tools. |
authorization_token | string | No | Token di autorizzazione OAuth se richiesto dal server MCP. Consulta la specifica MCP. |
MCPToolset si trova nell'array tools e configura quali strumenti dal server MCP sono abilitati e come devono essere configurati.
{
"type": "mcp_toolset",
"mcp_server_name": "example-mcp",
"default_config": {
"enabled": true,
"defer_loading": false
},
"configs": {
"specific_tool_name": {
"enabled": true,
"defer_loading": true
}
}
}| Proprietà | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
type | string | Sì | Deve essere "mcp_toolset" |
mcp_server_name | string | Sì | Deve corrispondere a un nome di server definito nell'array mcp_servers |
default_config | object | No | Configurazione predefinita applicata a tutti gli strumenti in questo set. Le configurazioni di singoli strumenti in configs sostituiranno questi valori predefiniti. |
configs | object | No | Sostituzioni di configurazione per singolo strumento. Le chiavi sono nomi di strumenti, i valori sono oggetti di configurazione. |
Ogni strumento (sia configurato in default_config che in configs) supporta i seguenti campi:
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
enabled | boolean | true | Se questo strumento è abilitato |
defer_loading | boolean | false | Se true, la descrizione dello strumento non viene inviata al modello inizialmente. Utilizzato con Tool Search Tool. |
I valori di configurazione si uniscono con questa precedenza (da più alta a più bassa):
configsdefault_config a livello di setEsempio:
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"default_config": {
"defer_loading": true
},
"configs": {
"search_events": {
"enabled": false
}
}
}Risultati in:
search_events: enabled: false (da configs), defer_loading: true (da default_config)enabled: true (valore predefinito del sistema), defer_loading: true (da default_config)Il modello più semplice - abilita tutti gli strumenti da un server:
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
}Imposta enabled: false come predefinito, quindi abilita esplicitamente strumenti specifici:
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"default_config": {
"enabled": false
},
"configs": {
"search_events": {
"enabled": true
},
"create_event": {
"enabled": true
}
}
}Abilita tutti gli strumenti per impostazione predefinita, quindi disabilita esplicitamente gli strumenti indesiderati:
{
"type": "mcp_toolset",
"mcp_server_name": "google-calendar-mcp",
"configs": {
"delete_all_events": {
"enabled": false
},
"share_calendar_publicly": {
"enabled": false
}
}
}Combina allowlisting con configurazione personalizzata per ogni strumento:
{
"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 questo esempio:
search_events è abilitato con defer_loading: falselist_events è abilitato con defer_loading: true (ereditato da default_config)L'API applica queste regole di convalida:
mcp_server_name in un MCPToolset deve corrispondere a un server definito nell'array mcp_serversmcp_servers deve essere referenziato da esattamente un MCPToolsetconfigs non esiste sul server MCP, viene registrato un avviso di backend ma non viene restituito alcun errore (i server MCP possono avere disponibilità di strumenti dinamica)Quando Claude utilizza strumenti MCP, la risposta includerà due nuovi tipi di blocco di contenuto:
{
"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"
}
]
}Puoi connetterti a più server MCP includendo più definizioni di server in mcp_servers e un MCPToolset corrispondente per ciascuno nell'array 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
}
}
]
}Per i server MCP che richiedono l'autenticazione OAuth, dovrai ottenere un token di accesso. Il beta del connettore MCP supporta il passaggio di un parametro authorization_token nella definizione del server MCP.
I consumatori di API devono gestire il flusso OAuth e ottenere il token di accesso prima di effettuare la chiamata API, nonché aggiornare il token secondo necessità.
L'ispettore MCP può guidarti attraverso il processo di ottenimento di un token di accesso a scopo di test.
Esegui l'ispettore con il seguente comando. Hai bisogno di Node.js installato sulla tua macchina.
npx @modelcontextprotocol/inspectorNella barra laterale a sinistra, per "Tipo di trasporto", seleziona "SSE" o "Streamable HTTP".
Inserisci l'URL del server MCP.
Nell'area a destra, fai clic sul pulsante "Open Auth Settings" dopo "Need to configure authentication?".
Fai clic su "Quick OAuth Flow" e autorizza nella schermata OAuth.
Segui i passaggi nella sezione "OAuth Flow Progress" dell'ispettore e fai clic su "Continue" finché non raggiungi "Authentication complete".
Copia il valore di access_token.
Una volta ottenuto un token di accesso utilizzando uno dei flussi OAuth sopra, puoi utilizzarlo nella configurazione del tuo server MCP:
{
"mcp_servers": [
{
"type": "url",
"url": "https://example-server.modelcontextprotocol.io/sse",
"name": "authenticated-server",
"authorization_token": "YOUR_ACCESS_TOKEN_HERE"
}
]
}Per spiegazioni dettagliate del flusso OAuth, consulta la sezione Autorizzazione nella specifica MCP.
Se stai utilizzando l'intestazione beta deprecata mcp-client-2025-04-04, segui questa guida per migrare alla nuova versione.
mcp-client-2025-04-04 a mcp-client-2025-11-20tools come oggetti MCPToolset, non nella definizione del server MCPPrima (deprecato):
{
"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"]
}
}
]
}Dopo (attuale):
{
"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
}
}
}
]
}| Modello precedente | Nuovo modello |
|---|---|
Nessun tool_configuration (tutti gli strumenti abilitati) | MCPToolset senza default_config o configs |
tool_configuration.enabled: false | MCPToolset con default_config.enabled: false |
tool_configuration.allowed_tools: [...] | MCPToolset con default_config.enabled: false e strumenti specifici abilitati in configs |
Questa versione è deprecata. Esegui la migrazione a mcp-client-2025-11-20 utilizzando la guida alla migrazione sopra.
La versione precedente del connettore MCP includeva la configurazione dello strumento direttamente nella definizione del server 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"]
}
}
]
}| Proprietà | Tipo | Descrizione |
|---|---|---|
tool_configuration | object | Deprecato: Utilizza MCPToolset nell'array tools |
tool_configuration.enabled | boolean | Deprecato: Utilizza default_config.enabled in MCPToolset |
tool_configuration.allowed_tools | array | Deprecato: Utilizza il modello allowlist con configs in 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 | No | Configurazione del punto di interruzione della cache per questo set di strumenti |
Incollalo nel campo authorization_token nella configurazione del tuo server MCP.