<!-- This file is auto-generated by docs/autogen_docs.py. Do not edit it manually. -->

# Tools

Find the full list of Serena's tools below.

Note that in most configurations, only a subset of these tools will be enabled simultaneously.
Tools marked as *optional* are disabled by default.

Tools marked as [BETA] were recently introduced and may not be fully robust yet.

## Symbol Tools
* `find_declaration`: Finds the declaration/definition of a symbol
* `find_implementations`: Finds symbols that implement the given symbol using the language server backend.
* `find_referencing_symbols`: Finds symbols that reference the given symbol using the language server backend
* `find_symbol`: Performs a global (or local) search using the language server backend.
* `get_diagnostics_for_file`: Gets diagnostics for a file, optionally restricted to a line range, grouped by file, severity, and containing symbol.
* `get_diagnostics_for_symbol` *(optional)*: Gets diagnostics for a symbol and, optionally, for symbols that reference it.
* `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
* `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
* `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
* `rename_symbol`: Renames a symbol throughout the codebase using language server refactoring capabilities.
For JB, we use a separate tool.
* `replace_symbol_body`: Replaces the full definition of a symbol using the language server backend.
* `restart_language_server` *(optional)*: Restarts the language server(s).
* `safe_delete_symbol`:

## JetBrains Tools
* `jet_brains_debug` *(optional)* [BETA]: Provides debugging functionality (run configs, breakpoints, stepping, inspection, and evaluation)
via a persistent debug REPL connected to the JetBrains IDE.
* `jet_brains_find_declaration` *(optional)*: Finds the declaration of a symbol using the JetBrains backend
* `jet_brains_find_implementations` *(optional)*: Finds the implementations of a symbol using the JetBrains backend
* `jet_brains_find_referencing_symbols` *(optional)*: Finds symbols that reference the given symbol using the JetBrains backend
* `jet_brains_find_symbol` *(optional)*: Performs a global (or local) search for symbols using the JetBrains backend
* `jet_brains_get_symbols_overview` *(optional)*: Retrieves an overview of the top-level symbols within a specified file using the JetBrains backend
* `jet_brains_inline_symbol` *(optional)* [BETA]: Inlines a symbol using the JetBrains backend, replacing all call sites with the symbol's body
* `jet_brains_list_inspections` *(optional)*: Lists available JetBrains IDE inspections, optionally filtered by language or group.
* `jet_brains_move` *(optional)* [BETA]: Moves a symbol, file or directory to a new location using the JetBrains backend, updating all references
* `jet_brains_rename` *(optional)*: Renames a symbol, file or directory throughout the codebase using the JetBrains backend.
* `jet_brains_run_inspections` *(optional)*: Runs JetBrains IDE inspections on a file and returns the results.
* `jet_brains_safe_delete` *(optional)* [BETA]: Safely deletes a symbol using the JetBrains backend, checking for remaining usages first
* `jet_brains_type_hierarchy` *(optional)*: Retrieves the type hierarchy (supertypes and/or subtypes) of a symbol using the JetBrains backend

## Command Tools
* `execute_shell_command`: Executes a shell command.

## Config Tools
* `activate_project`: Activates a project based on the project name or path.
* `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
* `open_dashboard` *(optional)*: Opens the Serena web dashboard in the default web browser.
The dashboard provides logs, session information, and tool usage statistics.
* `remove_project` *(optional)*: Removes a project from the Serena configuration.

## File Tools
* `create_text_file`: Creates/overwrites a file in the project directory.
* `delete_lines` *(optional)*: Deletes a range of lines within a file.
* `find_file`: Finds files in the given relative paths
* `insert_at_line` *(optional)*: Inserts content at a given line in a file.
* `list_dir`: Lists files and directories in the given directory (optionally with recursion).
* `read_file`: Reads a file within the project directory.
* `replace_content`: Replaces content in a file (optionally using regular expressions).
* `replace_in_files`: Replaces occurrences of a pattern across multiple files, with dry-run preview and per-occurrence selection.
* `replace_lines` *(optional)*: Replaces a range of lines within a file with new content.
* `search_for_pattern`:

## Memory Tools
* `delete_memory`: Delete a memory file.
* `edit_memory`: Replaces content matching a regular expression in a memory.
* `list_memories`: Lists available memories.
* `read_memory`: Reads the content of a memory file.
* `rename_memory`: Renames or moves a memory, updating references that are marked with the `mem:` prefix.
* `write_memory`: Write some information (utf-8-encoded) about this project that can be useful for future tasks to a memory in md format.
The memory name should be meaningful.

## Query Project Tools
* `list_queryable_projects` *(optional)*: Tool for listing all projects that can be queried by the QueryProjectTool.
* `query_project` *(optional)*: Tool for querying external project information (i.e. information from projects other than the current one),
by executing a read-only tool.

## Workflow Tools
* `initial_instructions`: Provides instructions Serena usage (i.e. the 'Serena Instructions Manual')
for clients that do not read the initial instructions when the MCP server is connected.
* `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
* `serena_info` *(optional)*: Provides information about an advanced topic on demand, facilitating context-efficiency.
