Claude es capaz de interactuar con herramientas y funciones, permitiéndote extender las capacidades de Claude para realizar una variedad más amplia de tareas.
¡Aprende todo lo que necesitas para dominar el uso de herramientas con Claude como parte de nuestros nuevos cursos! Por favor, continúa compartiendo tus ideas y sugerencias usando este formulario.
Garantiza la conformidad del esquema con el uso estricto de herramientas
Structured Outputs proporciona validación de esquema garantizada para entradas de herramientas. Añade strict: true a tus definiciones de herramientas para asegurar que las llamadas de herramientas de Claude siempre coincidan exactamente con tu esquema—sin más desajustes de tipos o campos faltantes.
Perfecto para agentes en producción donde parámetros de herramientas inválidos causarían fallos. Aprende cuándo usar el uso estricto de herramientas →
Aquí hay un ejemplo de cómo proporcionar herramientas a Claude usando la API de Mensajes:
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 admite dos tipos de herramientas:
Herramientas de cliente: Herramientas que se ejecutan en tus sistemas, que incluyen:
Herramientas de servidor: Herramientas que se ejecutan en los servidores de Anthropic, como las herramientas de búsqueda web y obtención web. Estas herramientas deben especificarse en la solicitud de API pero no requieren implementación de tu parte.
Las herramientas definidas por Anthropic utilizan tipos versionados (por ejemplo, web_search_20250305, text_editor_20250124) para garantizar compatibilidad entre versiones de modelos.
Integra herramientas de cliente con Claude en estos pasos:
Proporciona a Claude herramientas y un mensaje del usuario
Claude decide usar una herramienta
stop_reason de tool_use, señalando la intención de Claude.Ejecuta la herramienta y devuelve resultados
user que contiene un bloque de contenido tool_resultClaude usa el resultado de la herramienta para formular una respuesta
Nota: Los pasos 3 y 4 son opcionales. Para algunos flujos de trabajo, la solicitud de uso de herramienta de Claude (paso 2) podría ser todo lo que necesites, sin enviar resultados de vuelta a Claude.
Las herramientas de servidor siguen un flujo de trabajo diferente:
Proporciona a Claude herramientas y un mensaje del usuario
Claude ejecuta la herramienta de servidor
Claude usa el resultado de la herramienta de servidor para formular una respuesta
Si estás construyendo una aplicación que utiliza el Protocolo de Contexto de Modelo (MCP), puedes usar herramientas de servidores MCP directamente con la API de Mensajes de Claude. Las definiciones de herramientas MCP utilizan un formato de esquema que es similar al formato de herramientas de Claude. Solo necesitas renombrar inputSchema a input_schema.
¿No quieres construir tu propio cliente MCP? Usa el conector MCP para conectarte directamente a servidores MCP remotos desde la API de Mensajes sin implementar un cliente.
Cuando construyes un cliente MCP y llamas a list_tools() en un servidor MCP, recibirás definiciones de herramientas con un campo inputSchema. Para usar estas herramientas con Claude, conviértelas al formato 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_toolsLuego pasa estas herramientas convertidas a 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?"}]
)Cuando Claude responde con un bloque tool_use, ejecuta la herramienta en tu servidor MCP usando call_tool() y devuelve el resultado a Claude en un bloque tool_result.
Para una guía completa sobre cómo construir clientes MCP, consulta Construir un cliente MCP.
Aquí hay algunos ejemplos de código que demuestran varios patrones y técnicas de uso de herramientas. Por brevedad, las herramientas son simples y las descripciones de herramientas son más cortas de lo ideal para garantizar el mejor rendimiento.
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.
Consulte nuestra tabla de descripción general de modelos para los precios actuales por modelo.
Cuando envía un mensaje con uso de herramientas, al igual que cualquier otra solicitud de API, la respuesta mostrará tanto los recuentos de tokens de entrada como de salida como parte de las métricas de usage reportadas.
Explore nuestro repositorio de ejemplos de código de uso de herramientas listos para implementar en nuestros libros de recetas:
Aprenda cómo integrar una herramienta calculadora simple con Claude para cálculos numéricos precisos.
Construya un bot de servicio al cliente receptivo que aproveche las herramientas del cliente para mejorar el soporte.
Vea cómo Claude y el uso de herramientas pueden extraer datos estructurados de texto no estructurado.