Serena MCP (oraios/serena v1.1.1) registered as Permanent #11 — LSP semantic code intelligence
Decision
Added Serena MCP server to the Permanent 11 list (was Permanent 10). Registered at top-level mcpServers in both /home/claude/.claude.json AND /root/.claude.json (dual-config sync). Launch command: serena start-mcp-server --context=claude-code --project-from-cwd. Provides symbol-level code operations (find_symbol, find_referencing_symbols, replace_symbol_body, insert_after_symbol, symbols_overview) via LSP backend supporting 40+ languages (Python, TypeScript, Go, Rust, Java, C/C++, Ruby, etc.). Installed via uv tool install -p 3.13 serena-agent@latest --prerelease=allow. Binary: /home/claude/.local/bin/serena. Skill wrapper at ~/.claude/skills/serena/SKILL.md.
Rationale
Our setup had zero semantic code navigation — Grep matches text, not symbols. For large codebases, “find all callers of X” collapsed from 8-12 grep-read-verify iterations to 1 atomic LSP call. Serena’s testimonial (Opus 4.6 in Claude Code): “single most impactful addition to my toolkit.” ast-grep (syntactic) + Serena (semantic) + Grep (literal) form complete code-navigation coverage: SHAPE / SYMBOLS / TEXT. Serena exposes via MCP so tool integration is zero-code. Permanent status (not on-demand) because LSP pre-indexing cost is amortized across a session — re-registering session-start for every code-adjacent task would waste time.
Alternatives Rejected
- isaacphi/mcp-language-server (Go-based LSP bridge) — rejected: less mature, fewer languages, no memory layer. 2. Build custom LSP wrapper — rejected: 2-3 weeks work, upstream has 40+ languages out of box. 3. Use ast-grep alone — rejected: ast-grep matches shape, not symbols; can’t do scope-aware rename. 4. Keep Grep-only — rejected: known 5-10x slower on symbol operations in large codebases.
Outcome
Pending
Related
- docker
- 2026-04-04-oracle-001-self-architecture-analysis
- openclaw
gws-capability-expansion-nova(archived)- graphiti
- getdesign-66-brand-design-systems-via-npx