About serena-mcp-agent
serena-mcp-agent is an integration skill for using Serena as a coding agent with language-server-based code understanding. It guides project activation, symbol-based navigation and editing, persistent project memory, and client configuration for tools such as Claude Desktop and Claude Code.
Key features
- 01Navigate code by symbols using LSP
- 02Edit function bodies while preserving structure
- 03Store and reuse project memories
- 04Configure contexts and operating modes
- 05Set read-only and excluded-tool safeguards
- 06Index large projects
Use cases
- 01Refactoring across multiple files
- 02Analyzing dependencies and architecture
- 03Resuming work with saved project context
- 04Reviewing code with editing disabled
MCP support
Serena runs as an MCP server and exposes code navigation, editing, memory, and project tools to MCP clients. The skill includes configuration guidance for clients including Claude Desktop and Claude Code.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ mamba-mental/ agent-skill-manager --skill serena-mcp-agentAfter installing, type/serena-mcp-agentin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/client-setup.mdcontexts-and-modes.mddebugging-framework.mdtools-reference.mdDetails
From the project READMESerena MCP Agent Integration
Serena transforms LLMs into fully-featured coding agents with IDE-like intelligence by leveraging the Language Server Protocol (LSP) for structural code understanding.
Core Value Proposition
| Capability | Benefit |
|---|---|
| Semantic code retrieval | Navigate by symbols, not text - 30x+ token reduction |
| Surgical editing | Modify function bodies while preserving structure |
| Project memory | Persist knowledge across sessions in .serena/memories/ |
| Multi-client support | Claude Desktop, Claude Code, Codex, ChatGPT, custom agents |
Project Lifecycle
1. Activation
Activate project before any operations:
"Activate the project /path/to/my_project"
First-time activation creates .serena/project.yml with default settings.
2. Onboarding
Run automatically on first session. Creates memories in .serena/memories/:
tech_stack_and_dependencies.mdcode_style_and_conventions.mdtask_completion_guidelines.md
If not auto-triggered:
"Start the Serena onboarding process for this project."
Critical: Start NEW conversation after onboarding (context fills up during analysis).
3. Indexing (Large Projects)
Pre-index to prevent tool timeouts:
serena project index
Run once; auto-updates during use.
Tool Usage Strategy
Priority Order (Prefer Higher):
-
Symbolic tools - Most efficient, LSP-powered
get_symbols_overview→ File structure without reading contentfind_symbol→ Locate definitions preciselyfind_referencing_symbols→ Impact analysis before changesreplace_symbol_body→ Rewrite functions safely
-
Line-based tools - When symbols don't apply
replace_lines,insert_at_line,delete_lines
-
Full file operations - Last resort
read_file,create_text_file
See: references/tools-reference.md for complete tool taxonomy.
Memory Management
Persist knowledge in .serena/memories/:
| Tool | Purpose |
|---|---|
write_memory | Save contracts, schemas, progress |
read_memory | Load prior session context |
list_memories | Discover available memories |
prepare_for_new_conversation | Generate continuation summary |
summarize_changes | Document session work |
Pattern: End sessions with summarize_changes → write_memory.
Thinking Tools
Force self-reflection during complex operations:
| Tool | When to Use |
|---|---|
think_about_collected_information | Before implementing |
think_about_task_adherence | During long operations |
think_about_whether_you_are_done | Before declaring complete |
Client Configuration
Claude Desktop: Edit claude_desktop_config.json
{
"mcpServers": {
"serena": {
"command": "uvx",
"args": ["--from", "git+https://github.com/oraios/serena",
"serena", "start-mcp-server", "--context", "desktop-app"]
}
}
}
Claude Code: From project directory:
claude mcp add serena -- uvx --from git+https://github.com/oraios/serena \
serena start-mcp-server --context ide-assistant --project "$(pwd)"
See: references/client-setup.md for Codex, ChatGPT, Docker, etc.
Contexts and Modes
Contexts (set at startup, immutable):
desktop-app- Claude Desktop (full toolset)claude-code- Claude Code (no duplicates)ide-assistant- IDE extensions (minimal tools)codex- OpenAI Codexchatgpt- ChatGPT via MCPO
Modes (combinable, switchable):
editing+interactive- Standard development (default)planning- Analysis before implementationone-shot- Single-response tasksno-onboarding- Skip if memories exist
Switch dynamically: "Switch to planning mode"
See: references/contexts-and-modes.md for full reference.
Security Configuration
In .serena/project.yml:
read_only: true # Disable all editing (analysis only)
excluded_tools:
- execute_shell_command # Always disable for untrusted contexts
Non-negotiables:
- Use version control (Git) for all projects
- Disable
execute_shell_commandunless explicitly needed - Set
read_only: truefor code review/analysis tasks - Never expose MCPO API keys
Debugging Framework
For complex automation workflows (n8n, Zapier, etc.):
- Behavior Contract - Document expected behavior before changes
- Snapshot Before - Capture current state
- Parity Grid - Map contract → current → fix required
- Dry-Run - Validate changes before applying
- Apply + Validate - Execute with proof
- Memory Harden - Persist final state
See: references/debugging-framework.md for canonical prompts and workflow.
Session Protocol
Start:
- Verify project activation:
get_current_config - Check onboarding:
check_onboarding_performed - Load relevant memories:
list_memories→read_memory - Run build/type-check command (establish baseline)
During:
- Read files BEFORE editing (prevent duplicates)
- Use symbolic tools preferentially
- Run validation after each change
- Use thinking tools for complex tasks
End:
- Final validation (build/lint/test)
summarize_changes→write_memory- For continuation:
prepare_for_new_conversation
When to Use Serena
Optimal:
- Large/complex/legacy codebases
- Refactoring across multiple files
- Analyzing dependencies and architecture
- Token-sensitive operations
Not Needed:
- New empty projects (nothing to analyze)
- Single-file scripts
- When entire context fits easily
Dashboard
Monitor operations at: http://localhost:24282/dashboard/index.html
View: tool calls, logs, configuration, active languages.