Tools

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

  • cmd_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_lines (optional): Replaces a range of lines within a file with new content.

    • search_for_pattern: Performs a search for a pattern in the project.

  • memory_tools

    • delete_memory: Delete a memory file. Should only happen if a user asks for it explicitly, for example by saying that the information retrieved from a memory file is no longer correct or no longer relevant for the project.

    • edit_memory: Replaces content matching a regular expression in a memory.

    • list_memories: List available memories. Any memory can be read using the read_memory tool.

    • read_memory: Read the content of a memory file. This tool should only be used if the information is relevant to the current task. You can infer whether the information is relevant from the memory file name. You should not read the same memory file multiple times in the same conversation.

    • rename_memory: Renames or moves a memory. Moving between project and global scope is supported (e.g., renaming “global/foo” to “bar” moves it from global to project scope).

    • 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

    • check_onboarding_performed: Checks whether project onboarding was already performed.

    • 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.