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.