$npx -y skills add NeoLabHQ/context-engineering-kit --skill setup-serena-mcpGuide for setup Serena MCP server for semantic code retrieval and editing capabilities
| 1 | User Input: |
| 2 | |
| 3 | ```text |
| 4 | $ARGUMENTS |
| 5 | ``` |
| 6 | |
| 7 | # Guide for setup Serena MCP server |
| 8 | |
| 9 | ## 1. Determine setup context |
| 10 | |
| 11 | Ask the user where they want to store the configuration: |
| 12 | |
| 13 | **Options:** |
| 14 | |
| 15 | 1. **Project level (shared via git)** - Configuration tracked in version control, shared with team |
| 16 | - CLAUDE.md updates go to: `./CLAUDE.md` |
| 17 | |
| 18 | 2. **Project level (personal preferences)** - Configuration stays local, not tracked in git |
| 19 | - CLAUDE.md updates go to: `./CLAUDE.local.md` |
| 20 | - Verify these files are listed in `.gitignore`, add them if not |
| 21 | |
| 22 | 3. **User level (global)** - Configuration applies to all projects for this user |
| 23 | - CLAUDE.md updates go to: `~/.claude/CLAUDE.md` |
| 24 | |
| 25 | Store the user's choice and use the appropriate paths in subsequent steps. |
| 26 | |
| 27 | ## 2. Check if Serena MCP server is already setup |
| 28 | |
| 29 | 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`). |
| 30 | |
| 31 | If no access, proceed with setup. |
| 32 | |
| 33 | ## 3. Load Serena documentation |
| 34 | |
| 35 | Read the following documentation to understand Serena's capabilities and setup process: |
| 36 | |
| 37 | - Load <https://raw.githubusercontent.com/oraios/serena/refs/heads/main/README.md> to understand what Serena is and its capabilities |
| 38 | - Load <https://oraios.github.io/serena/02-usage/020_running.html> to learn how to run Serena |
| 39 | - Load <https://oraios.github.io/serena/02-usage/030_clients.html> to learn how to configure your MCP client |
| 40 | - Load <https://oraios.github.io/serena/02-usage/040_workflow.html> to learn how to setup Serena for your project |
| 41 | |
| 42 | ## 4. Guide user through setup process |
| 43 | |
| 44 | Based on the loaded documentation: |
| 45 | |
| 46 | 1. **Check prerequisites**: Verify that `uv` is installed (required for running Serena) |
| 47 | 2. **Identify client type**: Determine which MCP client the user is using (Claude Code, Claude Desktop, Cursor, VSCode, etc.) |
| 48 | 3. **Provide setup instructions**: Guide through the configuration specific to their client if it not already configured |
| 49 | 4. **Setup project**: Guide through the project setup process if it not already setup |
| 50 | 5. **Start indexing project**: Guide through the project indexing process if it was just setup |
| 51 | 6. If MCP was just setup, ask user to restart Claude Code to load the new MCP server, write to user explisit instructions, including "exit claude code console, then run 'claude --continue' and then write "continue" to continue setup process" |
| 52 | 7. **Test connection**: Verify that Serena tools are accessible after setup |
| 53 | 1. If not yet, run initial_instructions |
| 54 | 2. Check if onboarding was performered, if not then run it. |
| 55 | 3. Then try to read any file |
| 56 | |
| 57 | After adding MCP server, but before testings connection write to user this message EXACTLY: |
| 58 | |
| 59 | ```markdown |
| 60 | You must restart Claude Code to load the new MCP server: |
| 61 | |
| 62 | 1. Exit Claude Code console (type exit or press Ctrl+C) |
| 63 | 2. Run claude --continue |
| 64 | 3. Type "continue" to resume setup |
| 65 | |
| 66 | After restart, I will: |
| 67 | - Verify Serena tools are accessible |
| 68 | - Run initial_instructions if needed |
| 69 | - Perform onboarding for this project (if not already done) |
| 70 | |
| 71 | ``` |
| 72 | |
| 73 | ## 5. Update CLAUDE.md file |
| 74 | |
| 75 | Use the path determined in step 1. Once Serena is successfully set up, update the appropriate CLAUDE.md file with the following content EXACTLY: |
| 76 | |
| 77 | ```markdown |
| 78 | ### Use Serena MCP for Semantic Code Analysis instead of regular code search and editing |
| 79 | |
| 80 | Serena MCP is available for advanced code retrieval and editing capabilities. |
| 81 | |
| 82 | **When to use Serena:** |
| 83 | - Symbol-based code navigation (find definitions, references, implementations) |
| 84 | - Precise code manipulation in structured codebases |
| 85 | - Prefer symbol-based operations over file-based grep/sed when available |
| 86 | |
| 87 | **Key tools:** |
| 88 | - `find_symbol` - Find symbol by name across the codebase |
| 89 | - `find_referencing_symbols` - Find all symbols that reference a given symbol |
| 90 | - `get_symbols_overview` - Get overview of top-level symbols in a file |
| 91 | - `read_file` - Read file content within the project directory |
| 92 | |
| 93 | **Usage notes:** |
| 94 | - Memory files can be manually reviewed/edited in `.serena/memories/` |
| 95 | |
| 96 | ``` |
| 97 | |
| 98 | Add this section, if server setup at user level (global): |
| 99 | |
| 100 | ```markdown |
| 101 | |
| 102 | **Project setup (per project):** |
| 103 | 1. Run `serena project create --index` in your project directory |
| 104 | 2. Serena auto-detects language; creates `.serena/project.yml` |
| 105 | 3. First use triggers onboarding and creates memory files in `.serena/memories/` |
| 106 | ``` |
| 107 | |
| 108 | ## 6. Project initialization (if needed) |
| 109 | |
| 110 | If this is a new project or Serena hasn't been initialized: |
| 111 | |
| 112 | 1. Guide user to run project initialization commands |
| 113 | 2. Explain project-based workflow and indexing |
| 114 | 3. Configure project-specific settings if needed |