From serena
Serena MCP usage guide for semantic code operations, symbol manipulation, project memory, and session persistence. Use when invoking any mcp__serena__* tools, performing symbol operations (rename, find references, extract), navigating large codebases, or managing project memory/sessions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/serena:skills/serenaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Semantic code understanding with project memory and session persistence.
Semantic code understanding with project memory and session persistence.
ALWAYS activate project before any Serena operation:
mcp__serena__activate_project(project: "<path_or_name>")
mcp__serena__check_onboarding_performed()
| Use Case | Serena | Alternative |
|---|---|---|
| Symbol rename with references | ✅ | ❌ Morphllm |
| Find all references | ✅ | ❌ Grep |
| Semantic code navigation | ✅ | ❌ Native |
| Project memory/session | ✅ | ❌ None |
| Pattern-based bulk edits | ❌ | ✅ Morphllm |
| Simple text replacement | ❌ | ✅ Edit tool |
activate_project → REQUIRED FIRST - activate target projectget_current_config → check active project and available toolscheck_onboarding_performed → verify project is readyonboarding → run if onboarding not yet performedfind_symbol → locate symbols by name path patternfind_referencing_symbols → find all references to a symbolget_symbols_overview → high-level view of file symbolsrename_symbol → rename across entire codebasereplace_symbol_body → replace symbol definitioninsert_before_symbol / insert_after_symbol → add code around symbolssearch_for_pattern → regex search across codebaselist_dir → list directory contentsfind_file → find files by maskwrite_memory → persist information for future sessionsread_memory → retrieve stored informationlist_memories → show available memoriesedit_memory / delete_memory → modify or remove memoriesthink_about_collected_information → after search operationsthink_about_task_adherence → before code modificationsthink_about_whether_you_are_done → at task completionSee references/tools.md for detailed parameter documentation.
1. activate_project(project: "path/to/project")
2. check_onboarding_performed()
3. list_memories() → check existing context
4. read_memory("relevant_memory") → if applicable
1. get_symbols_overview(relative_path: "file.py", depth: 1)
2. find_symbol(name_path_pattern: "ClassName", include_body: false)
3. find_symbol(name_path_pattern: "ClassName/method", include_body: true)
4. think_about_collected_information()
1. find_symbol(name_path_pattern: "target", include_body: true)
2. think_about_task_adherence()
3. replace_symbol_body(name_path: "target", relative_path: "file.py", body: "new code")
1. write_memory("task_context", "important findings...")
2. [end session]
3. [new session]
4. activate_project(...)
5. list_memories()
6. read_memory("task_context")
| Pattern | Matches |
|---|---|
method | Any symbol named "method" |
Class/method | method inside Class |
/Class/method | Exact path from file root |
Foo/get with substring_matching: true | Foo/getValue, Foo/getData |
activate_project before operationsfind_symbol with include_body: true before modificationsthink_about_* tools at appropriate pointsnpx claudepluginhub ZhuMon/claude-code-hubs --plugin serenaGuides use of Serena's LSP tools for symbol overviews, finding definitions, tracing references, and codebase exploration where grep is imprecise.
Guides using Serena's LSP tools for codebase exploration, symbol definitions, reference tracing, call hierarchies, and precise analysis beyond grep/text search.
Navigates large codebases via an MCP server providing outlines, symbol search, references, callers, git history, blame, and diffs without reading source files.