> ## Documentation Index
> Fetch the complete documentation index at: https://cisco-ea52c096.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools

> All tools Claude Code can use on your behalf

Tools are capabilities Claude uses automatically to complete your tasks. When you ask Claude to read a file, run a command, or search the web, it selects and invokes the appropriate tool behind the scenes. You do not call tools directly — Claude decides which tool to use and when.

Some tools require your explicit approval the first time they are used, while others run automatically. You can configure permission behavior per tool using `/permissions` or by setting rules in your project's settings file.

## File system

| Tool | What it does | Permission |
| - | - | - |
| `FileReadTool` | Reads text files, images (PNG, JPEG, GIF, WebP), PDFs, and Jupyter notebooks from your local file system. Supports reading specific line ranges or PDF page ranges for large files | Automatic for allowed paths; prompts for new paths |
| `FileWriteTool` | Creates or overwrites a file at the specified path | Prompts for approval |
| `FileEditTool` | Makes targeted edits to an existing file using string replacement, without rewriting the whole file | Prompts for approval |
| `GlobTool` | Finds files by name pattern (e.g., `**/*.ts`) within a directory. Returns matching paths sorted by modification time | Automatic |
| `GrepTool` | Searches file contents using regular expressions, powered by ripgrep. Returns file paths and line numbers for matches | Automatic |
| `NotebookEditTool` | Edits cells inside a Jupyter notebook (`.ipynb`) file | Prompts for approval |

## Shell and execution

| Tool | What it does | Permission |
| - | - | - |
| `BashTool` | Executes shell commands. Supports foreground and background execution, optional timeouts, and sandboxing. Long-running commands can be auto-backgrounded | Prompts for approval; pre-approved commands run automatically |
| `PowerShellTool` | Executes PowerShell commands on Windows | Prompts for approval |
| `REPLTool` | Runs code interactively in a persistent REPL session | Prompts for approval |

## Web

| Tool | What it does | Permission |
| - | - | - |
| `WebFetchTool` | Fetches and extracts content from a URL. Converts the page to Markdown and applies a prompt to filter or summarize the result. Does not work on authenticated or private URLs | Prompts once per domain; pre-approved domains run automatically |
| `WebSearchTool` | Searches the web and returns a list of results with titles, URLs, and snippets | Prompts for approval |

## Agents and orchestration

| Tool | What it does | Permission |
| - | - | - |
| `AgentTool` | Spawns a sub-agent with its own context and tool set to work on a task in parallel or in isolation | Automatic |
| `SkillTool` | Executes a named skill — a reusable prompt workflow stored in your skills directory | Automatic |
| `MCPTool` | Invokes a tool exposed by an MCP (Model Context Protocol) server you have configured | Inherits the MCP server's permission settings |
| `SendMessageTool` | Sends a message to another agent in a multi-agent team | Automatic |
| `TeamCreateTool` | Creates a team of coordinated agents to work on parallel tasks | Automatic |
| `TeamDeleteTool` | Tears down an agent team when the work is complete | Automatic |

## Task management

| Tool | What it does | Permission |
| - | - | - |
| `TodoWriteTool` | Creates and updates a structured task list for the current session. Claude uses this to track progress on multi-step tasks and show you what it is working on | Automatic |
| `TaskCreateTool` | Creates a persistent background task | Automatic |
| `TaskUpdateTool` | Updates the status or output of a background task | Automatic |
| `TaskGetTool` | Retrieves the current state of a specific task | Automatic |
| `TaskListTool` | Lists all active and completed tasks | Automatic |
| `TaskStopTool` | Stops a running background task | Automatic |
| `TaskOutputTool` | Reads the output of a background task | Automatic |
| `ScheduleCronTool` | Schedules a command to run on a cron schedule | Prompts for approval |
| `SleepTool` | Pauses execution for a specified duration, used in proactive/monitor mode | Automatic |

## Planning and control

| Tool | What it does | Permission |
| - | - | - |
| `EnterPlanModeTool` | Switches Claude into plan mode, where it outlines steps before taking any action | Automatic |
| `ExitPlanModeTool` | Exits plan mode and resumes normal execution | Automatic |
| `EnterWorktreeTool` | Switches Claude's working context to a git worktree for isolated branch work | Automatic |
| `ExitWorktreeTool` | Returns Claude's working context from a worktree back to the main workspace | Automatic |

## IDE and language services

| Tool | What it does | Permission |
| - | - | - |
| `LSPTool` | Queries the Language Server Protocol for diagnostics, go-to-definition, hover info, and code actions in your editor | Automatic |
| `ListMcpResourcesTool` | Lists resources exposed by a connected MCP server | Automatic |
| `ReadMcpResourceTool` | Reads the content of a specific MCP server resource | Automatic |

## Utility

| Tool | What it does | Permission |
| - | - | - |
| `AskUserQuestionTool` | Pauses Claude's work and asks you a clarifying question when it needs more information to proceed | Automatic |
| `SyntheticOutputTool` | Generates structured output in a specified format, used internally to produce consistent results | Automatic |
| `ToolSearchTool` | Discovers available tools at runtime, used when the full tool list is deferred to keep the context window small | Automatic |

<Info>
  The `BashTool` and `FileWriteTool` / `FileEditTool` will prompt you for approval before running unless you have pre-approved them with a permission rule. Read-only tools like `FileReadTool`, `GlobTool`, and `GrepTool` generally run automatically within allowed paths.
</Info>

<Warning>
  `BashTool` can run any shell command Claude constructs. Review the proposed command in the permission prompt before approving, especially for commands that delete files, modify system configuration, or access the network.
</Warning>

<Tip>
  Use `/permissions` to create allow or deny rules for specific tools and path patterns so Claude can work without interrupting you for every file write or shell command.
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.