Guide for setup Serena MCP server for semantic code retrieval and editing capabilities
User Input:
$ARGUMENTS
Ask the user where they want to store the configuration:
Options:
Project level (shared via git) - Configuration tracked in version control, shared with team
./CLAUDE.mdProject level (personal preferences) - Configuration stays local, not tracked in git
./CLAUDE.local.md.gitignore, add them if notUser level (global) - Configuration applies to all projects for this user
~/.claude/CLAUDE.mdStore the user's choice and use the appropriate paths in subsequent steps.
Check whether you have access to Serena MCP server by attempting to use one of its tools (e.g., find_symbol or get_symbols_overview).
If no access, proceed with setup.
Read the following documentation to understand Serena's capabilities and setup process:
Based on the loaded documentation:
uv is installed (required for running Serena)After adding MCP server, but before testings connection write to user this message EXACTLY:
You must restart Claude Code to load the new MCP server:
1. Exit Claude Code console (type exit or press Ctrl+C)
2. Run claude --continue
3. Type "continue" to resume setup
After restart, I will:
- Verify Serena tools are accessible
- Run initial_instructions if needed
- Perform onboarding for this project (if not already done)
Use the path determined in step 1. Once Serena is successfully set up, update the appropriate CLAUDE.md file with the following content EXACTLY:
### Use Serena MCP for Semantic Code Analysis instead of regular code search and editing
Serena MCP is available for advanced code retrieval and editing capabilities.
**When to use Serena:**
- Symbol-based code navigation (find definitions, references, implementations)
- Precise code manipulation in structured codebases
- Prefer symbol-based operations over file-based grep/sed when available
**Key tools:**
- `find_symbol` - Find symbol by name across the codebase
- `find_referencing_symbols` - Find all symbols that reference a given symbol
- `get_symbols_overview` - Get overview of top-level symbols in a file
- `read_file` - Read file content within the project directory
**Usage notes:**
- Memory files can be manually reviewed/edited in `.serena/memories/`
Add this section, if server setup at user level (global):
**Project setup (per project):**
1. Run `serena project create --index` in your project directory
2. Serena auto-detects language; creates `.serena/project.yml`
3. First use triggers onboarding and creates memory files in `.serena/memories/`
If this is a new project or Serena hasn't been initialized: