Loading...
    • Developer Guide
    • API Reference
    • MCP
    • Resources
    • Release Notes
    Search...
    ⌘K
    First steps
    Intro to ClaudeQuickstart
    Models & pricing
    Models overviewChoosing a modelWhat's new in Claude 4.6Migration guideModel deprecationsPricing
    Build with Claude
    Features overviewUsing the Messages APIHandling stop reasonsPrompting best practices
    Model capabilities
    Extended thinkingAdaptive thinkingEffortFast mode (beta: research preview)Structured outputsCitationsStreaming MessagesBatch processingPDF supportSearch resultsMultilingual supportEmbeddingsVision
    Tools
    OverviewHow tool use worksTutorial: Build a tool-using agentDefine toolsHandle tool callsParallel tool useTool Runner (SDK)Strict tool useTool use with prompt cachingServer toolsTroubleshootingTool referenceWeb search toolWeb fetch toolCode execution toolMemory toolBash toolComputer use toolText editor tool
    Tool infrastructure
    Manage tool contextTool combinationsTool searchProgrammatic tool callingFine-grained tool streaming
    Context management
    Context windowsCompactionContext editingPrompt cachingToken counting
    Files & assets
    Files API
    Agent Skills
    OverviewQuickstartBest practicesSkills for enterpriseClaude API skillUsing Skills with the API
    Agent SDK
    OverviewQuickstartHow the agent loop works
    MCP in the API
    MCP connectorRemote MCP servers
    Claude on 3rd-party platforms
    Amazon BedrockMicrosoft FoundryVertex AI
    Prompt engineering
    OverviewConsole prompting tools
    Test & evaluate
    Define success and build evaluationsUsing the Evaluation ToolReducing latency
    Strengthen guardrails
    Reduce hallucinationsIncrease output consistencyMitigate jailbreaksStreaming refusalsReduce prompt leak
    Administration and monitoring
    Admin API overviewData residencyWorkspacesUsage and Cost APIClaude Code Analytics APIAPI and data retention
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Tools

    Tool reference

    Directory of Anthropic-provided tools and reference for optional tool definition properties.

    This page is a reference for the tools Anthropic provides and the optional properties you can set on any tool definition. For a conceptual introduction to tool use, see Tool use with Claude. For guidance on implementing tool use in your application, see Define tools.

    Anthropic-provided tools

    Anthropic provides two kinds of tools: server tools that execute on Anthropic's infrastructure, and client tools where Anthropic defines the schema but your application handles execution. Both kinds appear in your request's tools array alongside any user-defined tools.

    TooltypeExecutionStatus
    Web search toolweb_search_20260209
    web_search_20250305
    ServerGA
    Web fetch toolweb_fetch_20260209
    web_fetch_20250910
    ServerGA
    Code execution toolcode_execution_20260120
    code_execution_20250825
    ServerGA
    Tool search tooltool_search_tool_regex_20251119
    tool_search_tool_bm25_20251119
    ServerGA
    MCP connectormcp_toolsetServerBeta: mcp-client-2025-11-20
    Memory toolmemory_20250818ClientGA
    Bash toolbash_20250124ClientGA
    Text editor tooltext_editor_20250728
    text_editor_20250124
    ClientGA
    Computer use toolcomputer_20251124
    computer_20250124
    ClientBeta: computer-use-2025-11-24
    computer-use-2025-01-24

    For model compatibility, see each tool's page. Supported models vary by tool and by tool version.

    The tool search type values also accept undated aliases: tool_search_tool_regex and tool_search_tool_bm25. These resolve to the latest dated version.

    Tool versioning

    Most Anthropic-provided tools carry a _YYYYMMDD suffix in the type string. A new version is released when the tool's behavior, schema, or model support changes. Older versions remain available so that existing integrations continue to work.

    When a tool has multiple active versions, the relationship between them varies:

    • Capability-keyed: web_search_20260209 and web_fetch_20260209 add dynamic content filtering over their predecessors. code_execution_20260120 adds programmatic tool calling from within the sandbox. In each case, both the new and old versions are current; which one you use depends on whether you need the new capability.
    • Model-keyed: text_editor_20250728 is for Claude 4 models and text_editor_20250124 is for earlier models. The version you use depends on the model you target.
    • Variant, not version: tool_search_tool_regex_20251119 and tool_search_tool_bm25_20251119 are two search algorithms released together. Neither supersedes the other.
    • Legacy: code_execution_20250522 supports only Python. code_execution_20250825 adds Bash and file operations.

    The mcp_toolset type is not date-versioned; versioning is carried in the anthropic-beta header instead.

    Tool definition properties

    Every tool in the tools array, including user-defined tools, accepts optional properties that control how the tool is loaded, who can call it, and how its inputs are validated. These properties compose: you can set defer_loading and cache_control and strict on the same tool.

    PropertyPurposeAvailable onDetailed guide
    cache_controlSet a prompt-cache breakpoint at this tool definitionAll toolsPrompt caching
    strictGuarantee schema validation on tool names and inputsAll tools except mcp_toolsetStrict tool use
    defer_loadingExclude the tool from the initial system prompt; load it on demand when tool search returns a tool_reference for itAll tools (for mcp_toolset, see tool configuration)Tool search tool
    allowed_callersRestrict which callers can call the toolAll tools except mcp_toolsetProgrammatic tool calling
    input_examplesProvide example input objects to help Claude understand how to call the toolUser-defined and Anthropic-schema client tools. Not available on server tools.Define tools
    eager_input_streamingEnable fine-grained input streaming (true) or keep standard buffered streaming (false) for this toolUser-defined tools onlyFine-grained tool streaming

    allowed_callers values

    allowed_callers is an array that accepts any combination of:

    ValueMeaning
    "direct"The model can call this tool directly in a tool_use block. This is the default if allowed_callers is omitted.
    "code_execution_20260120"Code running inside a code_execution_20260120 sandbox can call this tool.

    Omitting "direct" from the array (for example, "allowed_callers": ["code_execution_20260120"]) means the tool is callable only from within code execution. The response's tool_use block includes a caller field that identifies which caller called the tool. See Programmatic tool calling for the full treatment, including the caller response shape and error behavior.

    defer_loading and prompt caching

    Tools with defer_loading: true are stripped from the rendered tools section before the cache key is computed. They don't appear in the system-prompt prefix at all. When tool search discovers a deferred tool and returns a tool_reference for it, the tool's full definition is expanded inline at that point in the conversation body, not in the prefix.

    This means defer_loading: true preserves your prompt cache. You can add deferred tools to a request without invalidating an existing cache entry, and the cache remains valid across the turn where the tool is discovered and the turn where it's called.

    For how to combine defer_loading with cache_control breakpoints, see the Tool search tool prompt caching guidance.

    Was this page helpful?

    • Anthropic-provided tools
    • Tool versioning
    • Tool definition properties
    • allowed_callers values
    • defer_loading and prompt caching