home / skills / mamba-mental / agent-skill-manager / serena-mcp-agent-skill
This skill helps you integrate and orchestrate Serena MCP-powered coding workflows, enabling semantic navigation, surgical edits, and memory management across
npx playbooks add skill mamba-mental/agent-skill-manager --skill serena-mcp-agent-skillReview the files below or copy the command above to add this skill to your agents.
---
name: serena-mcp-agent
description: Expert integration for the Serena MCP Server - a powerful coding agent toolkit providing IDE-like semantic code understanding to LLMs. This skill should be used when working with codebases through Serena tools, setting up Serena projects, performing semantic code navigation and editing, managing project memories, debugging complex automation workflows, or integrating Serena with Claude Desktop, Claude Code, Codex, ChatGPT, or custom agents. Triggers on Serena tool usage, project activation/onboarding, symbolic code operations (find_symbol, replace_symbol_body, etc.), memory management (write_memory, read_memory), and MCP server configuration. Use for large/complex codebases requiring structural understanding, refactoring tasks, and token-efficient code operations.
---
# Serena 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.md`
- `code_style_and_conventions.md`
- `task_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:
```bash
serena project index
```
Run once; auto-updates during use.
## Tool Usage Strategy
**Priority Order (Prefer Higher):**
1. **Symbolic tools** - Most efficient, LSP-powered
- `get_symbols_overview` → File structure without reading content
- `find_symbol` → Locate definitions precisely
- `find_referencing_symbols` → Impact analysis before changes
- `replace_symbol_body` → Rewrite functions safely
2. **Line-based tools** - When symbols don't apply
- `replace_lines`, `insert_at_line`, `delete_lines`
3. **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`
```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:
```bash
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 Codex
- `chatgpt` - ChatGPT via MCPO
**Modes** (combinable, switchable):
- `editing` + `interactive` - Standard development (default)
- `planning` - Analysis before implementation
- `one-shot` - Single-response tasks
- `no-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`:
```yaml
read_only: true # Disable all editing (analysis only)
excluded_tools:
- execute_shell_command # Always disable for untrusted contexts
```
**Non-negotiables:**
1. Use version control (Git) for all projects
2. Disable `execute_shell_command` unless explicitly needed
3. Set `read_only: true` for code review/analysis tasks
4. Never expose MCPO API keys
## Debugging Framework
For complex automation workflows (n8n, Zapier, etc.):
1. **Behavior Contract** - Document expected behavior before changes
2. **Snapshot Before** - Capture current state
3. **Parity Grid** - Map contract → current → fix required
4. **Dry-Run** - Validate changes before applying
5. **Apply + Validate** - Execute with proof
6. **Memory Harden** - Persist final state
**See:** `references/debugging-framework.md` for canonical prompts and workflow.
## Session Protocol
**Start:**
1. Verify project activation: `get_current_config`
2. Check onboarding: `check_onboarding_performed`
3. Load relevant memories: `list_memories` → `read_memory`
4. 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:**
1. Final validation (build/lint/test)
2. `summarize_changes` → `write_memory`
3. 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.
This skill integrates Serena MCP Server capabilities into AI coding agents to provide IDE-like semantic code understanding and surgical editing. It streamlines large-project workflows by enabling symbol-aware navigation, safe function rewrites, persistent project memories, and multi-client support. Use it to manage project activation, onboarding, indexing, and MCP configuration for token-efficient coding operations.
The skill talks to the Serena MCP server and exposes LSP-powered symbolic tools that operate on symbols instead of raw text, dramatically reducing token usage. It runs project activation and onboarding, manages project memories in .serena/memories/, and performs operations such as find_symbol, replace_symbol_body, and find_referencing_symbols. It also supports client configuration for Claude Desktop, Claude Code, Codex, ChatGPT, and custom agents, and provides debugging and session protocols for safe changes.
Do I need to index the project before using Serena?
Indexing is recommended for very large projects to prevent tool timeouts; run serena project index once and Serena will auto-update as needed.
How do memories work and when should I write them?
Memories are stored under .serena/memories/. Use summarize_changes then write_memory at session end to persist decisions, contracts, and progress for future conversations.