Claude est capable d'interagir avec des outils et des fonctions, ce qui vous permet d'étendre les capacités de Claude pour effectuer une plus grande variété de tâches.
Apprenez tout ce que vous devez maîtriser sur l'utilisation d'outils avec Claude dans le cadre de nos nouveaux cours ! Veuillez continuer à partager vos idées et suggestions en utilisant ce formulaire.
Garantir la conformité du schéma avec l'utilisation stricte d'outils
Structured Outputs fournit une validation de schéma garantie pour les entrées d'outils. Ajoutez strict: true à vos définitions d'outils pour vous assurer que les appels d'outils de Claude correspondent toujours exactement à votre schéma—plus de décalages de type ou de champs manquants.
Parfait pour les agents de production où des paramètres d'outils invalides causeraient des défaillances. Découvrez quand utiliser l'utilisation stricte d'outils →
Voici un exemple de la façon de fournir des outils à Claude en utilisant 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 prend en charge deux types d'outils :
Outils clients : Outils qui s'exécutent sur vos systèmes, qui incluent :
Outils serveur : Outils qui s'exécutent sur les serveurs d'Anthropic, comme les outils recherche web et récupération web. Ces outils doivent être spécifiés dans la demande API mais ne nécessitent pas d'implémentation de votre part.
Les outils définis par Anthropic utilisent des types versionnés (par exemple, web_search_20250305, text_editor_20250124) pour assurer la compatibilité entre les versions de modèles.
Intégrez les outils clients avec Claude en suivant ces étapes :
Fournir à Claude les outils et une invite utilisateur
Claude décide d'utiliser un outil
stop_reason de tool_use, signalant l'intention de Claude.Exécuter l'outil et retourner les résultats
user contenant un bloc de contenu tool_resultClaude utilise le résultat de l'outil pour formuler une réponse
Remarque : Les étapes 3 et 4 sont facultatives. Pour certains flux de travail, la demande d'utilisation d'outil de Claude (étape 2) pourrait être tout ce dont vous avez besoin, sans renvoyer les résultats à Claude.
Les outils serveur suivent un flux de travail différent :
Fournir à Claude les outils et une invite utilisateur
Claude exécute l'outil serveur
Claude utilise le résultat de l'outil serveur pour formuler une réponse
Si vous construisez une application qui utilise le Model Context Protocol (MCP), vous pouvez utiliser les outils des serveurs MCP directement avec l'API Messages de Claude. Les définitions d'outils MCP utilisent un format de schéma similaire au format d'outil de Claude. Vous devez simplement renommer inputSchema en input_schema.
Vous ne voulez pas construire votre propre client MCP ? Utilisez le connecteur MCP pour vous connecter directement aux serveurs MCP distants à partir de l'API Messages sans implémenter un client.
Lorsque vous construisez un client MCP et appelez list_tools() sur un serveur MCP, vous recevrez des définitions d'outils avec un champ inputSchema. Pour utiliser ces outils avec Claude, convertissez-les au format de Claude :
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_toolsEnsuite, transmettez ces outils convertis à Claude :
import 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?"}]
)Lorsque Claude répond avec un bloc tool_use, exécutez l'outil sur votre serveur MCP en utilisant call_tool() et retournez le résultat à Claude dans un bloc tool_result.
Pour un guide complet sur la construction de clients MCP, consultez Construire un client MCP.
Voici quelques exemples de code démontrant divers modèles et techniques d'utilisation d'outils. Par souci de concision, les outils sont simples et les descriptions d'outils sont plus courtes que l'idéal pour assurer les meilleures performances.
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 | 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 |
These token counts are added to your normal input and output tokens to calculate the total cost of a request.
Consultez notre tableau de comparaison des modèles pour les prix actuels par modèle.
Lorsque vous envoyez une invite d'utilisation d'outils, tout comme toute autre demande d'API, la réponse affichera à la fois les décomptes de jetons d'entrée et de sortie dans le cadre des métriques usage signalées.
Explorez notre référentiel d'exemples de code d'utilisation d'outils prêts à mettre en œuvre dans nos livres de recettes :
Découvrez comment intégrer un outil calculatrice simple avec Claude pour des calculs numériques précis.
Créez un bot de service client réactif qui exploite les outils clients pour améliorer le support.
Découvrez comment Claude et l'utilisation d'outils peuvent extraire des données structurées à partir de texte non structuré.