← Back to directory
S

Serena MCP: the IDE for your agent

Community
IDE-level semantic coding capabilities for your agent
Category
Dev Tools #158 of 438
Stars
★ 30.4k Very popular
Transport
stdio (local process)
Runtime
Python 3.13 · Prebuilt binary
Credentials
No credential needed
License
Other / unspecified
Last commit
Tools
6
57FMRS · C

An MIT-licensed open-source coding MCP toolkit focused on semantic code retrieval, editing, and refactoring. The manifest specifies the serena-agent PyPI package and stdio launch method; available capabilities depend on the selected language-server or JetBrains backend.

Strongest · Documentation 14/20 Weakest · Security and permissions 8/20

Reliability
9/20
Security and permissions
8/20
Maintenance
14/20
Documentation
14/20
Setup experience
12/20
Why each score
Reliability 9/20
The manifest declares a versioned PyPI package, stdio transport, and uvx launch arguments, while the README describes the connection model and capability scope, making the happy-path startup plausible. However, the supplied material contains no CI, commit history, committed tests, or MCP initialization/tool-list tests; language-server and optional language dependencies can also create runtime variability. Static calibration therefore requires a deduction and keeps this below 12.
Security and permissions 8/20
The material shows no credential theft, covert exfiltration, or default remote access; the design is project-oriented and basic tools can be disabled. However, it explicitly includes file reads/writes, regex replacement, symbolic refactoring, and execute_shell_command, without evidence of confirmation defaults, permission boundaries, sandboxing, data-flow disclosure, or dangerous-operation auditing. Least privilege is therefore not demonstrated.
Maintenance 14/20
The repository is not archived and provides an MIT license, identifiable GitHub ownership, version 1.5.3, and issue information, establishing a credible maintenance and release baseline. The supplied source does not show release or commit cadence, dependency-update policy, vulnerability response procedures, or a dedicated security contact, so full marks are not justified.
Documentation 14/20
The README covers positioning, backend differences, supported languages, capability limitations, prerequisites, initialization, client integration, and links to a user guide. It also discloses several differences between language-server and JetBrains functionality. It lacks reviewable complete tool parameter/return examples, error behavior, troubleshooting, authentication or network-boundary details, cost information, and fuller platform compatibility guidance.
Setup experience 12/20
The README provides a fairly clear path through uv, Python 3.13, serena init, and client configuration, and the manifest supplies uvx launch arguments. It does not include concrete mainstream-client configuration examples; language servers may require additional dependencies, and the JetBrains backend involves a paid plugin. Cross-platform and failure-recovery guidance is therefore incomplete, making setup somewhat manual.

Static review · not runListed 2026-07-29

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesRuns commands or code

Best for

  • Coding agents that need IDE-level code understanding
  • Large or complex multi-file projects
  • Developers using MCP-enabled terminal clients, desktop clients, or IDEs

Not for

  • Non-coding tasks
  • Small tasks requiring only simple text edits
  • Environments unwilling to grant project editing or shell-command capabilities

Required permissions

  • It needs access to project files for code retrieval and editing.
  • When basic tools are enabled, execute_shell_command can run shell commands such as builds, tests, and linters.
  • The language-server backend may require additional dependencies for particular programming languages.
  • The JetBrains backend requires the Serena JetBrains Plugin, which is paid and has a free trial.

Risks and side effects

  • Symbolic edits, refactorings, and text replacements can modify or delete code.
  • When shell tools are enabled, the agent can run builds, tests, linters, or other commands.
  • Language-server support and capabilities vary by language.
  • The JetBrains backend does not support Rider or CLion.

Setup

Before you start

Runtime:Python 3.13 · Prebuilt binary

Install uv, then launch the serena-agent PyPI package with uvx using Python 3.13. Configure the client to start it over stdio; --project-from-cwd can select the current project, and --context can select the execution context. Run serena init for initial setup and verification.

.mcp.json
{"mcpServers":{"serena":{"command":"uvx","args":["-p","3.13","serena-agent","start-mcp-server","--project-from-cwd","--context","desktop-app"]}}}

Shown for Claude Code. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "serena": {
      "command": "uvx",
      "args": [
        "-p",
        "3.13",
        "serena-agent",
        "start-mcp-server",
        "--project-from-cwd",
        "--context",
        "desktop-app"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add serena -- uvx -p 3.13 serena-agent start-mcp-server --project-from-cwd --context desktop-app

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

Run serena init and confirm the success message; then check that the serena server appears in your MCP client's tool list with tools like search_for_pattern and read_file, and ask it to read a file to prove the connection works.

Troubleshooting

  1. Verify that uv is installed.
  2. Verify that the launch command uses Python 3.13 and serena-agent.
  3. Run serena init to verify initialization.
  4. Check the language-server dependencies required by the target language.
  5. Check the client's MCP launch configuration, including --project-from-cwd and --context.
  6. If stronger code analysis or debugging is needed, verify that the JetBrains backend is selected and configured.

Things to try

Once connected, you can ask your AI assistant things like:

  • Search the whole codebase with a regex for all calls to execute_shell_command and list the files and line numbers
  • Read src/config.py and summarize the main configuration classes
  • Replace the body of the parse_args function in utils.py with a new implementation, keeping the signature
  • Run the test suite from the project root and report any failing tests

Tools 6

search_for_pattern read-only
Performs flexible regular-expression searches across the codebase.
replace_content writes
Performs agent-optimized regular-expression or literal text replacement.
list_dir read-only
Lists directory contents.
find_file read-only
Finds files in the project.
read_file read-only
Reads files or file chunks.
execute_shell_command destructive
Runs shell commands such as builds, tests, and linters.

Use cases

Retrieving code by symbols and relationships in large codebases
Performing symbolic edits, renames, and safe deletions
Supporting refactoring through language servers or the JetBrains backend
Interactive debugging when the JetBrains Plugin backend is enabled
Managing memory for long-lived agent workflows

Supported clients

Claude Code
Codex
OpenCode
Gemini CLI
VS Code
Cursor
Claude Desktop
Open WebUI
JetBrains IDEs

Listed from the project's documentation, not tested by this site.

Overview

Serena is an MCP coding toolkit that provides semantic code retrieval, editing, refactoring, and debugging capabilities. It uses language servers or the Serena JetBrains Plugin to help agents work with symbols and code relationships in complex codebases.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

More servers from this repository

Source revision d9e4c796fae0 Data synced 2026-10-19 Read the FMRS scoring method