Overview
What Serena does
Serena gives MCP clients an IDE-like layer for navigating and changing code by symbol rather than by fragile line ranges. Its language-server backend can find declarations, implementations, references, diagnostics, and symbol trees, then perform targeted insertions, body replacement, and cross-project renames. A JetBrains plugin backend adds richer refactorings and debugging when that environment is available. Serena also provides project activation, file operations, shell execution, and Markdown memories, with contexts and modes used to keep each client on an appropriate subset of tools.
Best for
- Cross-file navigation and refactoring in medium or large codebases
- Agents that benefit from language-server symbols and reference relationships
- Longer workflows that need reusable project notes and configurable tool modes
Not ideal for
- Small one-file edits where the client's built-in search and patch tools are already sufficient
- Environments that cannot grant a local process read, write, or optional shell access to the project
Capabilities
What an agent can do
- 01
Find declarations, implementations, references, diagnostics, and symbol outlines
- 02
Insert around symbols, replace symbol bodies, rename symbols, and perform safe deletion where supported
- 03
Search and edit project files with backend-aware context
- 04
Persist project memories for later agent sessions
- 05
Use optional JetBrains refactoring, inspection, hierarchy, and debugging operations
- 06
Tailor the active tools and instructions through project contexts and modes
Representative tools and operations
find_symbolfind_referencing_symbolsfind_implementationsget_symbols_overviewget_diagnostics_for_fileinsert_before_symbolinsert_after_symbolreplace_symbol_bodyrename_symbolsearch_for_patternactivate_projectread_memorywrite_memory
Installation
Connect Serena
Use the publisher’s current instructions as the source of truth. The examples below were checked on .
Local installationInstall and initialize Serena with uv
uv tool install -p 3.13 serena-agent && serena init
Initialization selects the language-server backend by default. Some languages need additional language-server dependencies.
Any stdio MCP clientLaunch Serena for the current project
uvx -p 3.13 --from serena-agent serena start-mcp-server --project-from-cwd
Choose the documented --context value for the client so Serena enables a suitable tool and instruction set.
Trust and access
Authentication and security notes
Authentication: No built-in authentication is needed for a local stdio launch. If Serena is exposed in HTTP mode, deployment-level access controls are required.
Review before connecting
- Serena can edit project files and may expose shell execution, so rely on client approvals and disable overlapping or unnecessary tools.
- Keep project activation scoped to intended workspaces and do not expose a local HTTP server to untrusted networks.
- Review persistent memory files before sharing them because they can contain repository context or operational notes.
Known limitations
- Language coverage and semantic precision depend on the configured backend and installed language servers.
- Only a subset of tools is enabled in a typical context; JetBrains-specific operations require the plugin backend.
- Startup and indexing overhead can be noticeable on large projects or slower language servers.
- Serena provides coding tools, not the model that plans and evaluates the work.
Evidence
Sources used for this guide
Facts were checked against primary publisher material. Descriptions and guidance are original Graphify summaries.
FAQ
Questions about Serena
How is Serena different from ordinary file search and patch tools?
Serena works with symbols, references, diagnostics, and refactorings supplied by a semantic backend, which is useful when a change spans definitions and call sites.
Does every Serena client receive every tool?
No. Contexts, modes, backends, and optional-tool settings determine the active set so the server can avoid duplicating a client's built-in capabilities.