Claude é capaz de interagir com ferramentas e funções, permitindo que você estenda os recursos do Claude para realizar uma variedade maior de tarefas.
Aprenda tudo o que você precisa para dominar o uso de ferramentas com Claude como parte de nossos novos cursos! Por favor, continue compartilhando suas ideias e sugestões usando este formulário.
Garanta conformidade de esquema com uso rigoroso de ferramentas
Structured Outputs fornece validação de esquema garantida para entradas de ferramentas. Adicione strict: true às suas definições de ferramentas para garantir que as chamadas de ferramentas do Claude sempre correspondam exatamente ao seu esquema — sem mais incompatibilidades de tipo ou campos ausentes.
Perfeito para agentes de produção onde parâmetros de ferramentas inválidos causariam falhas. Saiba quando usar uso rigoroso de ferramentas →
Aqui está um exemplo de como fornecer ferramentas ao Claude usando a 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 suporta dois tipos de ferramentas:
Ferramentas do cliente: Ferramentas que são executadas em seus sistemas, que incluem:
Ferramentas do servidor: Ferramentas que são executadas nos servidores da Anthropic, como as ferramentas de busca na web e busca na web. Essas ferramentas devem ser especificadas na solicitação da API, mas não requerem implementação da sua parte.
As ferramentas definidas pela Anthropic usam tipos versionados (por exemplo, web_search_20250305, text_editor_20250124) para garantir compatibilidade entre versões de modelos.
Integre ferramentas do cliente com Claude nestas etapas:
Nota: As etapas 3 e 4 são opcionais. Para alguns fluxos de trabalho, a solicitação de uso de ferramenta do Claude (etapa 2) pode ser tudo o que você precisa, sem enviar resultados de volta ao Claude.
As ferramentas do servidor seguem um fluxo de trabalho diferente:
Forneça ao Claude ferramentas e um prompt do usuário
Claude executa a ferramenta do servidor
Claude usa o resultado da ferramenta do servidor para formular uma resposta
Se você está construindo um aplicativo que usa o Model Context Protocol (MCP), você pode usar ferramentas de servidores MCP diretamente com a API Messages do Claude. As definições de ferramentas MCP usam um formato de esquema semelhante ao formato de ferramenta do Claude. Você apenas precisa renomear inputSchema para input_schema.
Não quer construir seu próprio cliente MCP? Use o conector MCP para conectar diretamente a servidores MCP remotos a partir da API Messages sem implementar um cliente.
Quando você constrói um cliente MCP e chama list_tools() em um servidor MCP, você receberá definições de ferramentas com um campo inputSchema. Para usar essas ferramentas com Claude, converta-as para o formato do Claude:
Em seguida, passe essas ferramentas convertidas para Claude:
Quando Claude responde com um bloco tool_use, execute a ferramenta em seu servidor MCP usando call_tool() e retorne o resultado ao Claude em um bloco tool_result.
Para um guia completo sobre como construir clientes MCP, consulte Construir um cliente MCP.
Aqui estão alguns exemplos de código demonstrando vários padrões e técnicas de uso de ferramentas. Por brevidade, as ferramentas são simples e as descrições das ferramentas são mais curtas do que seria ideal para garantir o melhor desempenho.
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.
Consulte nossa tabela de visão geral de modelos para os preços atuais por modelo.
Quando você envia um prompt de uso de ferramenta, assim como qualquer outra solicitação de API, a resposta produzirá contagens de tokens de entrada e saída como parte das métricas de usage relatadas.
Explore nosso repositório de exemplos de código de uso de ferramenta prontos para implementar em nossos cookbooks:
Forneça ao Claude ferramentas e um prompt do usuário
Claude decide usar uma ferramenta
stop_reason de tool_use, sinalizando a intenção do Claude.Execute a ferramenta e retorne os resultados
user contendo um bloco de conteúdo tool_resultClaude usa o resultado da ferramenta para formular uma resposta
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 |
Crie um bot de atendimento ao cliente responsivo que aproveita ferramentas do cliente para aprimorar o suporte.