Claude è in grado di interagire con strumenti e funzioni, consentendoti di estendere le capacità di Claude per eseguire una varietà più ampia di attività.
Garantisci la conformità dello schema con l'utilizzo rigoroso di strumenti
Structured Outputs fornisce una validazione dello schema garantita per gli input degli strumenti. Aggiungi strict: true alle tue definizioni di strumenti per assicurarti che le chiamate di strumenti di Claude corrispondano sempre esattamente al tuo schema, senza ulteriori mancate corrispondenze di tipo o campi mancanti.
Perfetto per agenti di produzione dove parametri di strumenti non validi causerebbero errori. Scopri quando utilizzare l'utilizzo rigoroso di strumenti →
Ecco un esempio di come fornire strumenti a Claude utilizzando 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" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"tools": [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather like in San Francisco?"
}
]
}'Claude supporta due tipi di strumenti:
Strumenti client: Strumenti che si eseguono sui tuoi sistemi, che includono:
Strumenti server: Strumenti che si eseguono sui server di Anthropic, come gli strumenti web search e web fetch. Questi strumenti devono essere specificati nella richiesta API ma non richiedono implementazione da parte tua.
Gli strumenti definiti da Anthropic utilizzano tipi con versione (ad es. web_search_20250305, text_editor_20250124) per garantire la compatibilità tra le versioni del modello.
Integra gli strumenti client con Claude in questi passaggi:
Nota: i passaggi 3 e 4 sono facoltativi. Per alcuni flussi di lavoro, la richiesta di utilizzo dello strumento di Claude (passaggio 2) potrebbe essere tutto ciò di cui hai bisogno, senza inviare i risultati di nuovo a Claude.
Gli strumenti server seguono un flusso di lavoro diverso:
Fornisci a Claude gli strumenti e un prompt dell'utente
Claude esegue lo strumento server
Claude utilizza il risultato dello strumento server per formulare una risposta
Se stai costruendo un'applicazione che utilizza il Model Context Protocol (MCP), puoi utilizzare gli strumenti dai server MCP direttamente con l'API Messages di Claude. Le definizioni degli strumenti MCP utilizzano un formato di schema simile al formato degli strumenti di Claude. Devi solo rinominare inputSchema in input_schema.
Non vuoi costruire il tuo client MCP? Utilizza il connettore MCP per connetterti direttamente ai server MCP remoti dall'API Messages senza implementare un client.
Quando costruisci un client MCP e chiami list_tools() su un server MCP, riceverai definizioni di strumenti con un campo inputSchema. Per utilizzare questi strumenti con Claude, convertili al formato di Claude:
Quindi passa questi strumenti convertiti a Claude:
Quando Claude risponde con un blocco tool_use, esegui lo strumento sul tuo server MCP utilizzando call_tool() e restituisci il risultato a Claude in un blocco tool_result.
Per una guida completa alla costruzione di client MCP, vedi Build an MCP client.
Ecco alcuni esempi di codice che dimostrano vari modelli e tecniche di utilizzo degli strumenti. Per brevità, gli strumenti sono semplici e le descrizioni degli strumenti sono più brevi di quanto sarebbe ideale per garantire le migliori prestazioni.
Tool use requests are priced based on:
tools parameter)Client-side tools are priced the same as any other Claude API request, while server-side tools may incur additional charges based on their specific usage.
The additional tokens from tool use come from:
tools parameter in API requests (tool names, descriptions, and schemas)tool_use content blocks in API requests and responsestool_result content blocks in API requestsWhen you use tools, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools are provided, then a tool choice of none uses 0 additional system prompt tokens.
| Model | Tool choice | Tool use system prompt token count |
|---|---|---|
| Claude Opus 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Opus 4.1 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Opus 4 | auto, noneany, tool |
These token counts are added to your normal input and output tokens to calculate the total cost of a request.
Consulta la nostra tabella di confronto dei modelli per i prezzi attuali per modello.
Quando invii un prompt con tool use, proprio come qualsiasi altra richiesta API, la risposta restituirà sia i conteggi dei token di input che di output come parte delle metriche usage segnalate.
Esplora il nostro repository di esempi di codice tool use pronti per l'implementazione nei nostri cookbook:
Fornisci a Claude gli strumenti e un prompt dell'utente
Claude decide di utilizzare uno strumento
stop_reason di tool_use, segnalando l'intenzione di Claude.Esegui lo strumento e restituisci i risultati
user contenente un blocco di contenuto tool_resultClaude utilizza il risultato dello strumento per formulare una risposta
from mcp import ClientSession
async def get_claude_tools(mcp_session: ClientSession):
"""Convert MCP tools to Claude's tool format."""
mcp_tools = await mcp_session.list_tools()
claude_tools = []
for tool in mcp_tools.tools:
claude_tools.append({
"name": tool.name,
"description": tool.description or "",
"input_schema": tool.inputSchema # Rename inputSchema to input_schema
})
return claude_toolsimport anthropic
client = anthropic.Anthropic()
claude_tools = await get_claude_tools(mcp_session)
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=claude_tools,
messages=[{"role": "user", "content": "What tools do you have available?"}]
)| 346 tokens 313 tokens |
| Claude Sonnet 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 4 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 3.7 (deprecated) | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 3.5 | auto, noneany, tool | 264 tokens 340 tokens |
| Claude Opus 3 (deprecated) | auto, noneany, tool | 530 tokens 281 tokens |
| Claude Sonnet 3 | auto, noneany, tool | 159 tokens 235 tokens |
| Claude Haiku 3 | auto, noneany, tool | 264 tokens 340 tokens |
Crea un bot di servizio clienti reattivo che sfrutta gli strumenti client per migliorare il supporto.