← Back to directory
S

Serena MCP: the IDE for your agent

Community
IDE-level semantic coding capabilities for your agent
GitHub source repository ↗
★ 26.8k Stars Category · Dev Tools Very popular
57FMRS · C
Reliability
9/20
Security and permissions
8/20
Maintenance
14/20
Documentation
14/20
Setup experience
12/20

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.

Read the FMRS scoring method →

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.

Tools

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

Setup

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.

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

Fit and risk

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.

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.

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 CodeFull support
Codex CLIFull support
OpenCodeFull support
Gemini-CLIFull support
VSCodeFull support
CursorFull support
Claude DesktopFull support
Codex AppFull support
OpenWebUIFull support
JetBrains IDEsFull support

More servers from this repository