Symbol-level code navigation, refactoring and memory for coding agents — the IDE brain your assistant has been missing.
Serena MCP server exists for a simple reason — assistants are far more useful when they can act on Serena directly instead of describing what you should do. 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.
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.
The server ships on PyPI as serena-agent, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
Once Serena is connected, these are the calls the assistant has available:
find_symbol — Locate a symbol by name or path anywhere in the activated projectget_symbols_overview — Return a structural outline of the top-level symbols in a filefind_referencing_symbols — Enumerate every symbol that references a given definition, across filesfind_implementations — Find implementations of an interface or abstract member, where the language server supports itfind_declaration — Jump to the declaration of a symbol; generally limited to project code rather than external dependenciesrename_symbol — Perform a semantic cross-file rename as a single atomic operationreplace_symbol_body — Replace the body of a symbol without touching surrounding code or relying on line numbersinsert_after_symbol — Insert new code immediately after a named symbolinsert_before_symbol — Insert new code immediately before a named symbolget_diagnostics_for_file — Fetch language-server diagnostics for an entire fileget_diagnostics_for_symbol — Fetch diagnostics scoped to a single symbolsearch_for_pattern — Flexible regular-expression search across the codebaseuv 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.
This sits in the developer tooling group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Serena's toolset — find_symbol, get_symbols_overview, find_referencing_symbols and 17 more — is a fair guide to whether it matches your workflow. It is maintained by Oraios AI rather than a third party, which usually means auth handling and breaking changes are dealt with faster.
This entry was verified against Serena's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
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.
| 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.
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.