MCP server

Serena MCP: the IDE for your agent

MCP server published on pypi as serena-agent. Transports: stdio. Maintained in oraios/serena.

Checked 2026-10-31

Install

Claude Code
claude mcp add serena-mcp-the-ide-for-your-agent -- uvx serena-agent

Commands come from the project's own docs or registry entry. Check them against the source before you run them.

Loading poll...

Serena is an MCP toolkit that gives a coding agent IDE-style tools: find a symbol, list who references it, rename it, replace its body, all without reading whole files. It supports more than 40 languages through open-source language servers, plus a paid JetBrains plugin backend. The app is GPL-3.0-or-later. We checked the README and docs on 31 October 2026.

Quick facts

Maintainer

Oraios AI and Oraios Software (oraios/serena)

License

SolidLSP: MIT. Serena application: GPL-3.0-or-later. Combined distributions fall under the GPL

Latest release we saw

v2.1.0, published 19 Oct 2026

Last push we saw

28 Oct 2026

Install

uv tool install -p 3.13 serena-agent, then serena init

Requires

uv (the only required prerequisite)

Backends

Language servers (free, default); Serena JetBrains Plugin (paid, free trial)

Languages

40+ with the language server backend

Transport

stdio launch command, or HTTP/SSE mode you start yourself

Price

Free with language servers; the JetBrains plugin is paid

The GitHub API reports the licence as "NOASSERTION" because the repo has two licences. The README is the authoritative text, and it says the split above. If you plan to bundle Serena inside a product, read the licence page and ask your legal team.

What it lets an agent do

Most coding agents explore code the blunt way. They grep, open a whole file, scroll, then edit by line number or by pattern. That burns tokens and breaks on large files.

Serena changes the unit of work from lines to symbols: functions, classes, methods. It uses the same language server protocol that powers autocomplete and "go to definition" in an editor. The README calls its tool design "agent-first": high-level actions rather than low-level line numbers and search patterns.

In practice, an agent can:

  • ask for the outline of a file without reading the body;
  • find a symbol by name across a project;
  • list every place that references it;
  • rename it everywhere in one call;
  • replace just that function's body, or insert code right before or after it;
  • keep notes in a memory system that survives between sessions.

The README's claim is that this makes agents faster, more efficient and more reliable, especially on large codebases. The page includes self-evaluations written by AI agents. They are the maintainers' own exercise, not an independent benchmark, so we do not repeat the numbers or quotes.

Tools and capabilities

Straight from the README feature tables. "LS" means the language server backend. "JB" means the JetBrains plugin.

Retrieval

Capability

LS

JB

Find symbol

Yes

Yes

Symbol overview (file outline)

Yes

Yes

Find referencing symbols

Yes

Yes

Search in project dependencies

No

Yes

Type hierarchy

No

Yes

Find declaration

Yes, but generally not for external dependencies

Yes

Find implementations

Some languages only

Yes

Query external projects

Yes

Yes

Diagnostics and inspections

Yes

Yes

Refactoring

Capability

LS

JB

Rename

Symbols only

Symbols, files, directories

Move symbol, file or directory

No

Yes

Inline

No

Yes

Propagate deletions (remove unused code)

No

Yes

Symbolic editing: replace symbol body, insert after symbol, insert before symbol and safe delete work in both backends.

Debugging: exclusive to the JetBrains plugin. The README describes breakpoints, variable inspection, expression evaluation and execution control through a REPL-style interface.

Basic utilities: search_for_pattern, replace_content, list_dir, find_file, read_file and execute_shell_command. The README says these are typically disabled when Serena runs inside a harness such as Claude Code or Codex, since the harness already provides them.

Memory: a simple memory system for long-lived workflows. Some users combine it with their agent's own system, such as AGENTS.md. It can be switched off.

Configuration: YAML at several levels: global, MCP launch command, per project with local overrides, per client context, and composable "modes". The README also announces a Serena v2 with a REPL-based agent interface, with a link to the docs for details.

Install it

The README starts with a warning that matters: do not install Serena through an MCP or plugin marketplace, because those listings carry outdated and suboptimal install commands. Install it yourself with uv.

uv tool install -p 3.13 serena-agent
serena init

After the first command, serena should be on your path. serena init sets up the language server backend and checks that things work. Add -b JetBrains to use the JetBrains backend instead. Some languages need extra tools for their language server; the Language Support page lists them.

Then connect your client. There are two ideas to understand first.

Per-workspace clients vs global clients. Claude Code and VS Code keep MCP config per workspace. Codex and Claude Desktop keep it globally. In a per-workspace setup, start Serena with --project <path> and a single-project context. In a global setup you ask the agent to activate the project, for example "Activate the current dir as project using serena". The activate_project tool is needed for that.

Contexts. A context tells Serena which tools to switch off because the client already has them. The docs use claude-code, codex, vscode, copilot-cli and a generic ide context.

Claude Code

The docs offer a helper:

serena setup claude-code

Or add it yourself. For all projects, use the user scope and let Serena find the project from the current directory:

claude mcp add --scope user serena -- serena start-mcp-server --context claude-code --project-from-cwd

For one project only:

claude mcp add serena -- serena start-mcp-server --context claude-code --project "$(pwd)"

Check with /mcp. If Serena is slow to start, the docs say to set MCP_TIMEOUT to a larger value, for example export MCP_TIMEOUT=60000. The page also describes hooks that remind Claude Code to use Serena's tools when the client does not pick them.

Codex

serena setup codex

Or put this in ~/.codex/config.toml:

[mcp_servers.serena]
startup_timeout_sec = 15
command = "serena"
args = ["start-mcp-server", "--project-from-cwd", "--context=codex"]

The docs say the Codex app does not start a session in the project directory, so ask it to activate the current directory as a project at the start of each session. They also describe optional Codex hooks via serena-hooks, which need a recent Codex version for some events.

VS Code

Run MCP: Add Server, pick Command (stdio), then enter one of these:

  • Global (recommended by the docs): serena start-mcp-server --context=vscode
  • Workspace: serena start-mcp-server --context=vscode --project ${workspaceFolder}

The docs state that in the global setting a VS Code bug stops Serena from activating the project automatically, so you must prompt "Activate the current dir as project using serena" each session. The workspace setting avoids that, at the price of adding Serena to every project.

Cursor and other IDE clients

The docs treat Cursor with Cline, Roo Code and Windsurf as MCP-enabled IDEs. Add a server whose command is serena and whose args include start-mcp-server and --context ide. The ide context reduces tool duplication. A typical mcp.json entry in Cursor's mcpServers format would be:

{
  "mcpServers": {
    "serena": {
      "command": "serena",
      "args": ["start-mcp-server", "--context", "ide", "--project-from-cwd"]
    }
  }
}

The docs give no Cursor-specific snippet, so treat that block as our adaptation of the generic instruction. Add --project-from-cwd only if your client starts the server in the project directory.

Gemini CLI

The docs list Gemini CLI among terminal clients and suggest --context ide. Add it to ~/.gemini/settings.json using the same command and args:

{
  "mcpServers": {
    "serena": {
      "command": "serena",
      "args": ["start-mcp-server", "--context", "ide"]
    }
  }
}

Again, this is the generic recipe applied to Gemini CLI's format, not a block copied from Serena's page. With no project flag, ask the agent to activate the project.

HTTP mode

If your client prefers a URL, start the Serena MCP server in HTTP mode yourself and point the client at the endpoint. The docs give this as the alternative to a launch command: run serena start-mcp-server --transport streamable-http --port 9121, then connect the client to http://localhost:9121/mcp. Only localhost connections are allowed unless you pass --host.

Compatibility at a glance

Agent

Setup

Context flag

Project handling

Claude Code

serena setup claude-code or claude mcp add

claude-code

--project-from-cwd or --project

Codex

serena setup codex or TOML

codex

--project-from-cwd; ask to activate in the app

VS Code with Copilot

MCP: Add Server

vscode

${workspaceFolder} in workspace mode

Cursor

mcp.json

ide

Per client

Gemini CLI

settings.json

ide

Activate by prompt

The docs also cover Copilot CLI, Claude Desktop, JetBrains Junie and AI Assistant, Antigravity, CodeBuddy and ZCode, and mention local GUIs such as Jan, OpenWebUI and Agno.

Real tasks with copy-ready prompts

Learn a module cheaply

Use Serena to get the symbol overview of src/billing/invoice.py.
Tell me what each class does from the names and signatures. Do not
read the function bodies yet.

Rename safely

Rename the function calc_total to compute_invoice_total using Serena's
rename tool. Then list every file it touched.

Find all callers before a change

Find every symbol that references PaymentGateway.charge. Group them by
module and tell me which ones pass the retry argument.

Edit one function only

Use Serena to replace the body of parse_config so it also accepts a
YAML file. Keep the signature. Do not touch other symbols.

Start a session

Activate the current dir as project using serena. Then show me the
available memories.

If your agent ignores the tools, say "use Serena's symbol tools" in the prompt, or add that line to your rule file. See our CLAUDE.md starter template for where it goes.

Security and permissions

Serena has no account and no API key. It runs on your machine and talks to local language servers. That is a good starting point, and it also means the permissions are yours to set.

  • It edits your code. Symbol edits and rename write to disk. Use version control and review diffs.
  • Shell execution. execute_shell_command exists. The README says it is typically disabled inside harnesses. If you run Serena in a client without its own shell, think about whether you want that tool on. Tool selection is done through Serena's configuration, and the docs recommend that over disabling tools in the client, because Serena's prompts adjust to the enabled set.
  • Language servers are programs. Each one is third-party code that runs locally and parses your repo. They are generally open source, but you install and trust them.
  • Memory files. Notes Serena stores can contain details of your project. Check where they live before you commit anything.
  • Licence. GPL-3.0-or-later applies to the app. Using it as a tool on your own code is different from shipping it. Companies embedding it in a product should check with counsel.

Limits and known issues

  • Setup is heavier than most servers. You need uv, and some languages need extra installs. Plan for ten minutes, not one.
  • The language server backend is narrower than the JetBrains one. Rename covers symbols only, and move, inline and unused-code removal are JetBrains only. Find declaration does not generally work for external dependencies.
  • Quality follows the language server. Serena inherits whatever a language server can do. The tracker shows language-specific reports, such as an F# language server regression (#1209), an Ansible hover failure on Windows (#1182) and a Kotlin hover gap (#924).
  • Tools may not get used. The docs list this as a common pitfall and say it is mainly down to client tool discovery. Hooks for Claude Code and VS Code exist to nudge the agent.
  • Environment variables. Some language servers need variables, and some clients such as Claude Desktop do not pass shell profile variables to the server process. Put them in the server entry's env.
  • PATH problems. If a client cannot find serena, use the full path to the executable.
  • A project must be active. Global-config clients need an explicit activation step.
  • JetBrains support has gaps. Rider and CLion are unsupported by the plugin, per the README.

Alternatives

Option

Choose it when

Your agent's built-in grep and edit tools

The repo is small and the work is simple

Context7 MCP

You need library docs, not code navigation of your own repo

Git MCP

You want history and diffs

Repomix

You want to pack a whole repo into one prompt for a one-off read

An IDE's own AI assistant

You already work inside JetBrains or VS Code and want it built in

Serena complements retrieval servers rather than replacing them. It is about your code. Context7 is about other people's. Compare them in the MCP servers hub.

Which agents it works best with

Serena says its tools shine most in "larger and more complex codebases", and the contexts it ships suggest where it is best supported: Claude Code and Codex have a one-line serena setup helper and hooks. VS Code with Copilot has its own context and a documented workaround for project activation. Cursor and Gemini CLI work through the generic ide context. If your editor is a JetBrains IDE, the paid plugin gives the broadest capability, including refactors the free backend lacks.

Our take

We did not test Serena for this page. This is a reading of the README and docs.

The idea is the right one. Reading a 2,000 line file to change one method is waste, and a text replace across a repo is a gamble. A rename that follows references is a better tool, and agents rarely have one.

What you pay for it is setup and care. You install uv, run a second tool, pick a context, activate a project, and trust language servers. For a small repo, that is more work than it saves. For a large one with many callers, the maths flips.

Two details we like: the README tells you not to use marketplace installs, which is rare candour, and it is open about which features need the paid JetBrains plugin. Two things to watch: the GPL licence for any company use beyond running it as a dev tool, and the fact that the quoted evaluations are self-reported.

Setup checklist

  1. Install uv, then run uv tool install -p 3.13 serena-agent.
  2. Run serena init and read the success message.
  3. Run the serena setup helper for your agent, or add the launch command by hand.
  4. Open a session and run /mcp or the equivalent to see the tools.
  5. Ask the agent to activate the project, if your client needs it.
  6. Try the file outline prompt on a large file.
  7. Add one line to your rule file telling the agent to prefer Serena's symbol tools.

Frequently asked questions

What license is Serena under? SolidLSP is MIT and the application is GPL-3.0-or-later. Combined distributions are under the GPL as a whole.

What does Serena need installed? uv, plus extra dependencies for some languages.

Is there a paid option? Yes, the JetBrains plugin backend, with a free trial.

Does it replace my agent's file tools? No. The basic tools are typically disabled in harnesses that already have their own.

Which clients does it work with? Any MCP client. The docs cover Claude Code, Codex, VS Code, Copilot CLI, Claude Desktop, JetBrains tools and more.

*Product names are used descriptively. We are not affiliated with Oraios.*

Works with

Tried it with one of these? Vote below: works for me, or not.

Questions

What license is Serena under?

It is licensed per component. SolidLSP is MIT and the Serena application is GPL-3.0-or-later. A distribution that combines both is subject to the GPL as a whole.

What does Serena need installed?

uv is the only required prerequisite. Some languages need extra dependencies for their language server.

Is there a paid option?

The JetBrains plugin backend is paid, with a free trial. The default language server backend is open source.

Does it replace my agent's file tools?

No. In harnesses such as Claude Code or Codex, Serena's basic file, search and shell tools are typically disabled by default because the harness already has them.

Which clients does it work with?

Any MCP client. The docs give setup for Claude Code, Codex, VS Code, Copilot CLI, Claude Desktop, JetBrains tools, Antigravity and more.

Loading poll...

Reviews

Loading reviews…

Write a review

Your rating

Up to 1000 characters. Stars alone are enough.

Sources

  1. github.com/oraios/serena
  2. raw.githubusercontent.com/oraios/serena/main/README.md
  3. oraios.github.io/serena/02-usage/030_clients.html
  4. code.claude.com/docs/en/mcp
  5. developers.openai.com/codex/mcp
  6. oraios.github.io/serena/02-usage/020_running.html

Similar

  • browser-use MCP

    Browser Use is an open-source Python library for AI browser agents, and our entry covers its MCP route.

    • MCP server
    • Official

    browser-use · 119,597 stars

  • Scrapling MCP Server

    Scrapling is a Python web scraping framework from D4Vinci, described on GitHub as handling everything from a single request to a full-scale crawl, and this entry is its MCP server.

    • MCP server

    D4Vinci · 90,477 stars

  • Netdata MCP

    Netdata is an observability platform, and this entry is its hosted MCP endpoint at app.netdata.cloud, reached over streamable HTTP.

    • MCP server

    netdata · 81,227 stars

  • claude-flow MCP

    Claude Flow is published on npm as claude-flow, and its repository now sits at ruvnet/ruflo, which the GitHub description calls the original agent harness for deploying multi-agent swarms and coordinating autonomous workflows.

    • MCP server

    ruvnet · 80,298 stars

  • Context7 MCP

    Context7 is an MCP server from Upstash that serves up-to-date library documentation to coding agents, so the model reads current docs instead of guessing from training data.

    • MCP server

    upstash · 63,974 stars

  • Chrome DevTools MCP

    MCP server published on npm as chrome-devtools-mcp. Transports: stdio. Maintained in ChromeDevTools/chrome-devtools-mcp.

    • MCP server

    ChromeDevTools · 54,503 stars

Part of the Wbcom Designs family

The all-in-one WordPress community stack

Also ours: wbcomdesigns.comvapvarun.combrndle.com