SuperAPI AI Directory

serena

Coding agent that uses language servers for symbolic code operations.

Open website

About this tool

Serena is an MCP toolkit for coding, providing semantic retrieval and editing capabilities, described as "an IDE for your coding agent." It integrates with any client/LLM through the Model Context Protocol (MCP). Its agent-oriented tool design includes robust high-level abstractions, differing from approaches that rely on low-level concepts such as line numbers or basic search patterns, thereby enabling agents to operate faster, more efficiently, and more reliably in larger, more complex codebases.

[Purpose and Positioning] Serena provides the necessary tools for coding workflows, but the actual work still needs to be done by the LLM, with the LLM orchestrating tool usage. It can extend the capabilities of existing AI clients. Most modern AI chat clients directly support MCP, including terminal-based clients (such as Claude Code, Codex, OpenCode, Gemini-CLI), IDEs and IDE assistant plugins (VSCode, Cursor, Copilot for JetBrains IDEs, Junie, JetBrains AI Assistant, etc.), and desktop and web clients (such as Claude Desktop, Codex App, OpenWebUI). Serena v2 has been released, featuring a new REPL-based agent interface.

[Main Capabilities]

  1. Semantic-level code retrieval, editing, refactoring, and debugging, based on symbolic understanding of code, helping agents discover and edit code as senior developers use IDE capabilities.
  2. Code retrieval tools let agents explore codebases at the symbol level, understand structure and relationships, without needing to read entire files.
  3. Symbolic editing tools are less error-prone and more token-efficient than common alternatives.
  4. Interactive debugging (available only in the JetBrains plugin): supports highly versatile debugging tools, allowing agents to set breakpoints, inspect variables, evaluate expressions, and control execution flow through a persistent REPL-style interface.
  5. Basic utility tools (for completeness): search_for_pattern (flexible regex search across the codebase), replace_content (agent-optimized regex and literal text replacement), list_dir / find_file (directory listing and file search), read_file (read a file or file fragments), execute_shell_command (run shell commands such as build, test, linter). When Serena is used in agent host environments such as Claude Code or Codex, these tools are usually disabled by default because the host environment already provides overlapping file, search, and shell capabilities.
  6. Memory management: The memory system is critical for long-term agent workflows, especially when knowledge needs to be shared across sessions, users, and projects. If you prefer other solutions, it can easily be disabled.

[Language Support and Technical Backends] Serena provides versatile code query and editing capabilities based on symbolic understanding, powered by two optional technologies:

  1. Language servers implementing the Language Server Protocol (LSP) — the free/open-source solution used by default. Serena has a built-in powerful language server integration abstraction layer, and the underlying language servers are usually open-source projects or at least free to use. When using the language server backend, more than 40 programming languages are supported, including Ada / SPARK, AL, Angular, Ansible, Astro, Bash, BSL, C#, C/C++, Clojure, Crystal, CUE, Dart, Deno, Elixir, Elm, Erlang, Fortran, F#, GDScript, Gleam, GLSL, Go, Groovy, Haskell, Haxe, HLSL, HTML, Java, JavaScript, JSON, Julia, Kotlin, LaTeX, Lean 4, Lua, Luau, Markdown, MATLAB, mSL, Nextflow, Nix, OCaml, Pascal, Perl, PHP, PowerShell, Python, QML, R, Rego, Ruby, Rust, Scala, SCSS / Sass / CSS, Solidity, Svelte, Swift, SystemVerilog, Terraform, TOML, TypeScript, Vue, WGSL, Wolfram Language, YAML, Zig, and more.
  2. Serena JetBrains plugin: A paid plugin (with a free trial) that leverages the powerful code analysis and editing capabilities of JetBrains IDEs. This plugin natively supports all programming languages and frameworks supported by JetBrains IDEs, including IntelliJ IDEA, PyCharm, Android Studio, WebStorm, PhpStorm, RubyMine, GoLand, etc. (Rider and CLion are not supported).

[How to use] There are two ways to connect the Serena MCP server to a client: provide the client with a startup command so that it starts the MCP server; or start the Serena MCP server yourself in HTTP mode and provide the client with the URL. Installation steps (official instructions): Do not install Serena through MCP or a plugin marketplace, because the installation commands there are outdated and not optimal. Prerequisites: Serena is managed by uv, and installing uv is the only required prerequisite. Install Serena: Install via uv (the original text does not give the specific command content, so it is not provided here). After a successful installation, the serena command should be available in the shell. When using the language server backend, some languages may require additional dependencies to be installed; see the language support page for details. Initialize Serena: Run the initialization command directly to verify whether the installation is correct (the original text does not give the specific command content, so it is not provided here). By default, it will be set to use the language server backend; if you need to switch to the JetBrains backend, add the parameter -b JetBrains. Either way, you should receive a prompt that initialization succeeded. Configure the client: Usually you need to configure the startup command in the client. There are specific setup instructions for Claude Code, Codex, Claude Desktop, MCP-enabled IDEs, and other clients (such as local and web-based GUIs).

[Configurability] Serena provides multi-level (composable) configuration: global configuration; MCP startup command (CLI) configuration; per-project configuration (including local overrides); execution context-specific configuration (for example, for a specific client); dynamically composable configuration fragments (modes). Tools, tool descriptions, prompts, language backend details, etc. can be enabled by adjusting a small amount of YAML.

[Evaluation and feedback] Serena's "end users" are essentially AI agents. The official team designed an unbiased evaluation prompt that guides agents to perform about 20 everyday coding tasks in order to estimate the added value of Serena's tools when used together with their own built-in tools. In different environments, different agents independently reached the same conclusion: for example, one agent in Claude Code, regarding a large Python codebase, stated that Serena's IDE-level semantic tools are the most influentialcomplement in its toolset, as cross-file renaming, moving, and reference finding can be reduced to a single atomic call; another agent in Codex CLI, regarding a Java codebase, stated that it would ask the owner to add Serena in order to gain the missing IDE-level understanding of symbols, references, and refactoring; and still another agent in Copilot CLI, regarding a large multilingual monorepo, stated that Serena made it sharper and more at ease on real code, especially in symbol-aware navigation, cross-file refactoring, and monorepo dependency jumping.

[License] Serena is licensed by component: SolidLSP (src/solidlsp) uses the MIT license; the Serena application (the rest) uses GPL-3.0-or-later. Distributions that combine the two are subject to the GPL as a whole. Contributions require accepting its CLA.