Serena
Serena is an MCP toolkit that gives coding agents IDE-like semantic code retrieval, editing, refactoring and debugging tools operating at symbol level and using relational structure.
Visit oraios/serenaOverview
Serena is a model context protocol toolkit that provides coding agents with essential semantic code retrieval, editing, refactoring and debugging capabilities similar to an IDE. It operates at the symbol level and exploits relational structure, integrating with clients and LLMs via MCP. Its agent-first tool design uses high-level abstractions rather than line numbers or primitive search patterns, aiming to make agents faster, more efficient and more reliable in larger and complex codebases.
Key Features
- Semantic retrieval tools let agents explore codebases at the symbol level, including symbol search, file outlines, referencing symbols, declarations and implementations where supported by the backend.
- Symbolic editing tools support replacing symbol bodies, inserting before or after symbols, and safe deletion with less error-prone and token-efficient operations than typical alternatives.
- Refactoring tools support symbol renames with the language server backend, while the JetBrains plugin adds move, inline and propagate-deletion capabilities.
- Interactive debugging is exclusive to the JetBrains plugin and lets an agent set breakpoints, inspect variables, evaluate expressions and control execution flow through a persistent REPL-style interface.
- A memory system supports long-lived agent workflows and sharing knowledge across sessions, users and projects; it can be disabled if preferred.
- A multi-layered YAML configuration system allows active tools, tool descriptions, prompts, language backend details and other aspects to be configured per case.
Use Cases
- Equip coding agents with IDE-like navigation and editing in large, complex codebases.
- Perform cross-file renames, moves and reference lookups more efficiently than step-by-step text operations.
- Support long-lived agent workflows that need shared project memory across sessions or users.
- Enable agent-driven debugging through the JetBrains plugin's persistent REPL-style interface.
Getting Started
- Install uv, then install Serena with uv tool install -p 3.13 serena-agent.
- Run serena init to initialise Serena and verify the setup; add -b JetBrains to use the JetBrains backend.
- Connect your preferred MCP client by configuring a launch command, or start the Serena MCP server in HTTP mode and provide the client with the URL.
Deployment & Requirements
- Serena is managed by uv, and installing uv is the only required prerequisite.
- After installation, the serena command should be available in the shell.
- When using the language server backend, some additional dependencies may need to be installed to support certain languages.
- The JetBrains plugin supports languages and frameworks supported by JetBrains IDEs, but Rider and CLion are unsupported.
- Clients connect to the Serena MCP server either through a launch command or through an HTTP URL.
Before You Adopt
- License: Other. Review its terms before using, modifying, or distributing the project.
- Serena supplies tools but depends on an LLM or client to orchestrate their use and perform the coding work.
- Installation should not be performed through MCP or plugin marketplaces because their commands may be outdated.
- The JetBrains plugin is paid, though a free trial is available.
- Language server usage may require installing additional dependencies for certain languages.