Claude · Schema

Tool

Definition of a tool that the model can use.

Artificial IntelligenceChatbotConversational AIGenerative AILarge Language ModelsMachine LearningNatural Language Processing

Properties

Name Type Description
name string The name of the tool. Must match the regex ^[a-zA-Z0-9_-]{1,64}$.
description string A detailed description of what the tool does, when it should be used, and what each parameter means.
input_schema object JSON Schema object defining the expected parameters for the tool.
cache_control object
type string The type of tool. Omit for custom tools. Use specific type strings for server tools like web_search_20260209, code_execution_20260120, text_editor_20250728, etc.
View JSON Schema on GitHub

JSON Schema

claude-tool-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/Tool",
  "title": "Tool",
  "type": "object",
  "description": "Definition of a tool that the model can use.",
  "required": [
    "name",
    "input_schema"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the tool. Must match the regex ^[a-zA-Z0-9_-]{1,64}$.",
      "pattern": "^[a-zA-Z0-9_-]{1,64}$",
      "example": "get_stock_price"
    },
    "description": {
      "type": "string",
      "description": "A detailed description of what the tool does, when it should be used, and what each parameter means.",
      "example": "A sample description."
    },
    "input_schema": {
      "type": "object",
      "description": "JSON Schema object defining the expected parameters for the tool.",
      "properties": {
        "type": {
          "type": "string",
          "const": "object"
        },
        "properties": {
          "type": "object",
          "additionalProperties": true
        },
        "required": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "type"
      ],
      "example": "example_value"
    },
    "cache_control": {
      "$ref": "#/components/schemas/CacheControl"
    },
    "type": {
      "type": "string",
      "description": "The type of tool. Omit for custom tools. Use specific type strings for server tools like web_search_20260209, code_execution_20260120, text_editor_20250728, etc.",
      "example": "example_value"
    }
  }
}