mrkeyoor.com_
Wed 16 Sept 23:52 UTC
AI Toolsevaluationupdated 26 Aug 2026

serena review

Serena is an MCP server that gives coding agents symbol-aware search, editing, refactoring, and project memory through language servers or a paid JetBrains plugin. It tackles the cases where plain text search and line-based edits are too crude for following references or changing code across a large repository.

+366stars / 7d
Verdict

Our Serena run built successfully, but the 840-second test step ended with 36 failures and 164 setup or collection errors, including an explicit missing-Ruby error. It is still worth trying when an MCP coding agent regularly loses track of symbols across a large repository, because 1,253 tests passed and the free backend covers more than 40 listed languages. Budget time for language runtimes, tool permissions, and client configuration; choose a narrower assistant if you only need search and small edits.

We ran it

Lab card: what happened when we ran serenaScreenshot of serena (oraios.github.io/serena)
Install✓ · 111s97 packages · 116 MB
Build✓ · 125s
Tests✗ · 840s1253 passed · 36 failed · 273 skipped · 164 errors of 1453 (pytest)
Known vulns0(pip-audit)
Repo1051 files~109,991 lines of source · 8.2 MB · 8 CI workflows · Dockerfile · tests dir

Answers from our run

Does serena build from source?

Dependencies installed in 111 seconds (97 packages), and the build succeeded in 125 seconds. We cloned commit 7fcbca7 into a clean Debian container with 3 CPUs and no project-specific setup.

Do serena's tests pass?

Not all of them: 1253 of 1453 passed and 36 failed when we ran the project's own test command (pytest), with 164 collection errors. Some failures need services or credentials a bare container does not have.

Does serena have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use serena?

Developers who expect a marketplace install to stay current: the README explicitly warns that marketplace commands are outdated and says to use its quick start.

What are the alternatives to serena?

Aider, Continue, OpenHands. Our Serena run built successfully, but the 840-second test step ended with 36 failures and 164 setup or collection errors, including an explicit missing-Ruby error.

Setup3/5Install and build passed; full tests exposed language runtime needs
Docs5/5Client, backend, language, tool, and configuration paths are detailed
Community5/528,511 stars with pushes and issue activity in August 2026
Maturity4/5v1.7.0 is active, but the full sandbox suite did not pass

Discussed on

  1. hnFree to Use Alternative to Cursor, Claude Code, Cline etc.4 points

Who it’s for

Developers using Claude Code, Codex, Cursor, or another MCP client on codebases where symbol references matter.
Teams working across several supported languages that want one agent-facing interface over language servers.
JetBrains users willing to pay for deeper refactoring, dependency search, and interactive debugging.
Agent operators prepared to choose tools, permissions, contexts, and project configuration deliberately.

Who it’s NOT for

Developers who expect a marketplace install to stay current: the README explicitly warns that marketplace commands are outdated and says to use its quick start.
Teams that need identical behavior across every advertised language: the README says declaration and implementation support varies by language server, and our suite stopped after failures that included a missing Ruby runtime.
Users who need file and directory moves on the free backend: the capability table reserves those refactors for the paid JetBrains plugin.
Anyone uncomfortable exposing code editing or shell execution to an agent without reviewing the active tool set: Serena includes both capabilities and relies on context configuration to disable overlaps.
Workflows that treat agent memory claims as proof of persistence: open issue 1936 reports a Codex session that appeared to record memories without creating the corresponding files.

Setup reality

Our sandbox installed 97 Python packages in 111 seconds and used 116 MB. The build passed in 125 seconds. Tests failed after 840 seconds: 1,253 passed, 36 failed, 273 skipped, 2 were expected failures, and 164 collection or setup errors were recorded before pytest stopped after 200 failures.

The README calls uv the only prerequisite for installation, but the language-server path needs tools for the languages you use. Our log explicitly said Ruby was not installed or on PATH. Client setup also requires an MCP launch command or an HTTP server URL, followed by project and context choices.

Serena can expose search, edits, memory, and shell execution. Free LSP and paid JetBrains backends have different capabilities, and some language-server features vary by language. The repository includes Docker and Compose files, while pip-audit reported 0 known vulnerabilities in our installed Python environment.

Symbol tools replace brittle line-based agent edits

Serena gives an existing coding agent an IDE-like view of a repository through MCP. Its tools find symbols, list file structure, follow references, replace symbol bodies, and insert code relative to a definition. The free backend talks to language servers, so the agent can reason about code structure instead of treating every file as undifferentiated text. That is useful when a rename or API change crosses several files and plain search produces too many unrelated matches.

The README lists more than 40 supported languages, ranging from Python and TypeScript to Ada, Solidity, Terraform, and Zig. Coverage is uneven by design. Finding declarations may miss external dependencies, implementation lookup exists only for some language servers, and moving symbols or files is absent from the free backend. Buyers should check the exact row for their language and task instead of reading the language count as a promise that every operation works everywhere.

The free backend searches symbols, while JetBrains handles deeper refactors

Language servers provide the open path for symbol search, references, diagnostics, basic renames, and targeted edits. Serena can also query external projects and maintain project memories. It fits Claude Code, Codex, Cursor, JetBrains assistants, desktop clients, and other software that can start an MCP process or connect to one over HTTP. Serena supplies the tools; the connected model decides when and how to call them.

The paid JetBrains plugin changes the ceiling. It adds dependency search, type hierarchy, file and directory moves, inline refactoring, deletion propagation, and interactive debugging. Rider and CLion are listed as unsupported even though other JetBrains IDEs are named. If those extra operations are the reason for adopting Serena, price and IDE choice belong in the decision. The MIT license covers the repository, while the plugin is a separate commercial path with a free trial.

What happened when we ran it

Our sandbox installed Serena in 111 seconds, adding 97 Python packages and occupying 116 MB. The build succeeded in 125 seconds. The checkout at commit 7fcbca7 contained 1,051 files and about 109,991 lines of source, with 8 CI workflow files, a Dockerfile, a Compose file, and a tests directory. Pip-audit found 0 known vulnerabilities in the installed Python packages.

The test command ran for 840 seconds and exited with failure. Pytest reported 1,253 passed, 36 failed, 273 skipped, 2 expected failures, and 164 collection or setup errors out of 1,453 before stopping after 200 failures. The tail repeatedly said Ruby was not installed or found on PATH during Ruby symbol retrieval tests. It offered mise, rbenv, asdf, RVM, or a system package manager as ways to install Ruby.

That log supports a narrow conclusion: the checked-out commit did not pass its complete suite in our fresh unprivileged Debian container. It also shows that a project whose job is coordinating language tooling may need language runtimes beyond its Python package. The tail does not account for every one of the 36 failures or 164 errors, so blaming all of them on Ruby would go past the evidence.

One uv command starts the setup, then language tooling takes over

The README calls uv the only prerequisite and gives uv tool install -p 3.13 serena-agent followed by serena init. Connecting a client means adding a launch command or starting the server in HTTP mode and supplying its URL. The project warns against MCP and plugin marketplaces because their installation commands may be outdated. That warning is unusually direct and worth following, especially when a copied command controls which server build an agent launches.

Initialization defaults to the language-server backend. Each working language may bring another executable, download, or runtime requirement, as the missing Ruby message in our 840-second test run demonstrates. Configuration spans global settings, launch arguments, per-project overrides, client contexts, and composable modes. The layering lets a team trim duplicate tools, but it also means two developers can have materially different Serena behavior while both say they use the default project.

Tool permissions matter because editing and shell access are available

Serena includes read_file, pattern search, content replacement, directory listing, and shell execution alongside its semantic tools. The README says agent harnesses commonly disable overlapping basics. That is the sensible starting point: expose the smallest tool set the client needs, inspect project overrides, and decide whether an agent should execute commands at all. HTTP deployment also deserves normal network access controls because its tools can inspect and alter source code.

Memory needs verification too. Open issue 1936 describes Serena 1.7.0 with Codex CLI appearing to retain project knowledge during a session without writing the expected files under .serena/memories/. After restart, the knowledge was gone. The report attributes the gap to whether the model actually calls the write tool. Until that behavior is made explicit, teams using memory as a handoff should check the filesystem rather than trusting a conversational confirmation.

August 2026 activity is high, and the issue queue reflects the scope

GitHub recorded 28,511 stars and 146 combined open issues and pull requests when fetched. The last push was August 20, 2026, and release v1.7.0 was published August 9. Recent activity included reports and fixes around memory persistence, MCP behavior, process cleanup, hooks, and individual language servers. This is a busy project rather than a quiet utility, with the support surface that comes from many clients and languages.

Serena earns a trial when agents repeatedly make costly mistakes around symbols or cross-file references. The 1,253 passing tests show substantial exercised code, while the failed full run warns against assuming a Python install reproduces every supported language environment. Start on one real repository, keep the active tools visible, and test the language operations you care about before making Serena part of every agent session.

Alternatives

ProjectWhat it isPick it when
Aider gh↗A terminal coding assistant that edits Git repositories with several model providers.pick this instead when you want a complete interactive coding client instead of an MCP tool server for another agent.
Continue gh↗An open-source coding assistant with IDE integrations and configurable models.pick this instead when the editor experience and a packaged assistant matter more than symbol tools exposed over MCP.
OpenHands gh↗An agent platform that can plan, edit, run commands, and work through software tasks.pick this instead when you need the whole agent runtime rather than an IDE-like tool layer.

Sources

  1. Serena README
  2. Serena repository facts
  3. Serena v1.7.0
  4. Memory persistence issue

More ai tools reviews

eve · MemOS · LongCat-Video · Concat · DLSS5-Feeder · Concat · the whole board →