Symbol-level code navigation, refactoring and memory for coding agents — the IDE brain your assistant has been missing.
Serena gives coding agents IDE-grade semantic tools: find symbols and references, rename and move code, edit at the symbol level, and keep project memories.
uv is the only hard prerequisite — install with uv tool install -p 3.13 serena-agent, then run serena init. Some languages need their language server's own dependencies installed separately; the JetBrains backend requires a supported JetBrains IDE and the paid plugin.
Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.
Rename a widely used function or class in one semantic operation instead of dozens of search-and-replace edits that silently miss call sites in strings, tests or sibling packages.
Outline a file's symbols, jump to a definition, then list everything that references it — enough to answer 'what breaks if I change this?' without loading the repo into context.
Symbolic editing replaces whole-file rewrites, which keeps context windows usable on monorepos where a single file can exceed a model's practical read budget.
Store architectural notes and conventions as Serena memories so the next agent session starts informed rather than re-deriving the same conclusions.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| find_symbol | Locate a symbol by name or path anywhere in the activated project. |
| get_symbols_overview | Return a structural outline of the top-level symbols in a file. |
| find_referencing_symbols | Enumerate every symbol that references a given definition, across files. |
| find_implementations | Find implementations of an interface or abstract member, where the language server supports it. |
| find_declaration | Jump to the declaration of a symbol; generally limited to project code rather than external dependencies. |
| rename_symbol | Perform a semantic cross-file rename as a single atomic operation. |
| replace_symbol_body | Replace the body of a symbol without touching surrounding code or relying on line numbers. |
| insert_after_symbol | Insert new code immediately after a named symbol. |
| insert_before_symbol | Insert new code immediately before a named symbol. |
| get_diagnostics_for_file | Fetch language-server diagnostics for an entire file. |
| get_diagnostics_for_symbol | Fetch diagnostics scoped to a single symbol. |
| search_for_pattern | Flexible regular-expression search across the codebase. |
| replace_content | Regex or literal text replacement tuned for agent use. |
| read_file | Read a whole file or a specific chunk of one. |
| list_dir | List directory contents within the project. |
| find_file | Find files by name or pattern. |
| execute_shell_command | Run a shell command such as a build, test suite or linter. |
| write_memory | Persist a named project memory for use in later sessions. |
| read_memory | Read back a previously stored project memory. |
| list_memories | List the memories stored for the active project. |
uv tool install -p 3.13 serena-agent && serena init && serena setup claude-codeuv is the only hard prerequisite — install with uv tool install -p 3.13 serena-agent, then run serena init. Some languages need their language server's own dependencies installed separately; the JetBrains backend requires a supported JetBrains IDE and the paid plugin.
Read, search and edit files inside allowed directories with the Model Context Protocol reference Filesystem server.
Retrieve version-aware library documentation and code examples with Context7 MCP, using resolve-library-id and query-docs.
Analyzes code repositories.
AI code impact analysis MCP server — dependency graphs, cascade detection, and a mandatory build gate for AI coding agents
Agent-harness picks, decision guides, and setup templates; live GitHub/HN discovery.
SoftProbe MCP Server for Session Data Recording Retrival