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.
npx claudepluginhub ZhuMon/claude-code-hubs --plugin serenaThis skill uses the workspace's default tool permissions.
Semantic code understanding with project memory and session persistence.
Provides IDE-like semantic symbol operations for large codebases: find/rename/refactor symbols, cross-file reference tracking, project memory, multi-language navigation.
Guides 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.
Share bugs, ideas, or general feedback.
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 points