# Create a Tool

Launch stage: Beta

`POST /api/2.1/{parent=supervisor-agents/*}/tools`

Creates a Tool under a Supervisor Agent. Specify one of "genie_space", "knowledge_assistant", "uc_function", "uc_connection", "app", "volume", "dashboard", "table", "vector_search_index", "catalog", "schema", "supervisor_agent", "databricks_web_search", "skill" in the request body. The legacy values "lakeview_dashboard", "uc_table", and "web_search" are also accepted and remain equivalent to "dashboard", "table", and "databricks_web_search" respectively. The "databricks_web_search" tool_type maps to the `web_search` spec field.

API scopes: supervisor-agents

## Path parameters

- `parent` (string, required)
  Parent resource where this tool will be created.
   Format: supervisor-agents/{supervisor_agent_id}

## Query parameters

- `tool_id` (string, ^[\w.-]+$, required)
  The ID to use for the tool, which will become the final component of
   the tool's resource name.
  Constraints: `[ 4 .. 63 ] characters`

## Request body

- `name` (string, optional, ID, Immutable)
  Full resource name:
   supervisor-agents/{supervisor_agent_id}/tools/{tool_id}
- `tool_type` (string, required)
  Tool type. Must be one of: "genie_space", "knowledge_assistant", "uc_function", "uc_connection", "uc_mcp", "app", "volume", "dashboard", "serving_endpoint", "table", "vector_search_index", "catalog", "schema", "supervisor_agent", "databricks_web_search", "skill". The legacy values "lakeview_dashboard", "uc_table", and "web_search" are also accepted and remain equivalent to "dashboard", "table", and "databricks_web_search" respectively. The "databricks_web_search" tool_type maps to the `web_search` spec field.
- `genie_space` (object, optional)
  - `id` (string, required, Deprecated)
    Deprecated: use space_id instead. Still REQUIRED for backward compatibility
     until a future API version removes it.
- `knowledge_assistant` (object, optional)
  - `serving_endpoint_name` (string, optional, Deprecated)
    Deprecated: use knowledge_assistant_id instead.
  - `knowledge_assistant_id` (string, required)
    The ID of the knowledge assistant.
- `uc_function` (object, optional)
  - `name` (string, required)
    Full uc function name
- `app` (object, optional)
  - `name` (string, required)
    App name
- `volume` (object, optional)
  - `name` (string, required)
    Full uc volume name
- `uc_connection` (object, optional)
  - `name` (string, required)
- `description` (string, optional)
  Description of what this tool does (user-facing).

## Returns

Returns the Tool object.

## Response

```json
{
  "name": "string",
  "id": "string",
  "tool_type": "string",
  "genie_space": {
    "id": "string"
  },
  "knowledge_assistant": {
    "serving_endpoint_name": "string",
    "knowledge_assistant_id": "string"
  },
  "uc_function": {
    "name": "string"
  },
  "app": {
    "name": "string"
  },
  "volume": {
    "name": "string"
  },
  "uc_connection": {
    "name": "string"
  },
  "description": "string",
  "tool_id": "string"
}
```

