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.

  • symbol_tools

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

    • replace_symbol_body: Replaces the full definition of a symbol using the language server backend.

    • restart_language_server (optional): Restarts the language server, may be necessary when edits not through Serena happen.

  • jetbrains_tools

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

    • switch_modes (optional): Activates modes by providing a list of their names

  • 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 on how to use the Serena toolbox. Should only be used in settings where the system prompt is not read automatically by the client.

      NOTE: Some MCP clients (including Claude Desktop) do not read the system prompt automatically!

    • onboarding: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).

    • prepare_for_new_conversation: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).

    • summarize_changes (optional): Provides instructions for summarizing the changes made to the codebase.

    • think_about_collected_information (optional): Thinking tool for pondering the completeness of collected information.

    • think_about_task_adherence (optional): Thinking tool for determining whether the agent is still on track with the current task.

    • think_about_whether_you_are_done (optional): Thinking tool for determining whether the task is truly completed.