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.

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