Serena

A powerful MCP toolkit for coding, providing semantic retrieval and editing capabilities - the IDE for your agent

Last verified:

Visit Serena

What is Serena?

Serena is the IDE for your coding agent, providing essential semantic code retrieval, editing, refactoring, and debugging tools that operate at the symbol level. It integrates with any client or LLM via the Model Context Protocol (MCP), offering IDE-like capabilities to AI coding agents. Serena's agent-first tool design uses robust high-level abstractions rather than low-level concepts like line numbers or primitive search patterns, enabling agents to work faster, more efficiently, and more reliably, especially in larger and more complex codebases.

Key features include semantic code retrieval (find symbol, symbol overview, find referencing symbols, type hierarchy, find declaration/implementations), precise refactoring tools (rename symbols/files/directories, move, inline, propagate deletions), symbolic editing (replace symbol body, insert before/after symbol, safe delete), and an interactive debugging tool exclusive to the JetBrains plugin (set breakpoints, inspect variables, evaluate expressions, control execution flow via REPL-style interface). Serena also includes basic utilities like regex search, file operations, shell command execution, and a memory system for long-lived agent workflows.

Serena is designed for AI coding agents and the humans who set them up. It works with terminal-based clients (Claude Code, Codex, OpenCode, Gemini-CLI), IDEs and IDE plugins (VSCode with Copilot/Junie, Cursor, JetBrains IDEs with Copilot/Junie/JetBrains AI Assistant), and desktop/web clients (Claude Desktop, Codex App, OpenWebUI). The tool is particularly valuable for developers working with large codebases, multi-language monorepos, or anyone using AI agents for coding tasks.

Serena pricing

Pricing model: Freemium

Serena is free and open-source. It is installed via uv tool install with no paid tiers or subscription plans mentioned. The tool is maintained by Oraios AI & Oraios Software with contributions from Serena contributors. All features including semantic retrieval, refactoring, symbolic editing, memory management, and the JetBrains plugin are available without cost.

Serena pros

  • Semantic code retrieval at symbol level without reading entire files
  • Cross-file renames collapse into one atomic call instead of 8-12 error-prone steps
  • IDE-backed semantic tools for precise refactorings
  • Works with any MCP-enabled client via Model Context Protocol
  • Symbol-aware navigation across codebase relationships
  • Type hierarchy and referencing symbol lookups
  • Interactive debugging with breakpoints exclusive to JetBrains plugin
  • Token-efficient symbolic editing compared to text-based alternatives
  • Memory system for sharing knowledge across sessions and projects
  • Multi-layered YAML configuration system (global, per-project, per-client)
  • Search in project dependencies exclusive to JetBrains plugin
  • Find implementations and declarations for symbols
  • Query external projects for symbol information
  • Auto-approval hooks for destructive tools in Claude Code
  • Dashboard for monitoring session configuration and logs
  • Supports 10+ programming languages via language servers
  • Remind hooks prevent agent drift in long sessions

Serena cons

  • Requires uv package manager as prerequisite
  • Python 3.13 required for installation
  • Some language servers require manual dependency installation
  • Interactive debugging exclusive to JetBrains plugin only
  • Claude Code has bias towards internal tools making Opus 4.7 hard to convince
  • serena command may not be discoverable on system PATH
  • Agent drift occurs in long sessions without hooks
  • Environment variables may not inherit from shell profile in some clients
  • Global MCP configuration requires manual project activation in some clients
  • Dynamic tool loading in VSCode causes tool discovery issues

Frequently asked questions about Serena

What is Serena and what does it do?

Serena is the IDE for your coding agent, providing essential semantic code retrieval, editing, refactoring, and debugging tools that operate at the symbol level. It integrates with any client/LLM via the Model Context Protocol (MCP), offering IDE-like capabilities to AI agents. Serena's agent-first design uses high-level abstractions rather than line numbers or primitive search, enabling faster and more reliable coding in complex codebases.

How do I install Serena?

First install uv package manager. Then run 'uv tool install -p 3.13 serena-agent' to install Serena. Test the installation with 'serena init' for language servers backend or 'serena init -b JetBrains' for JetBrains backend. To update, run 'uv tool upgrade serena-agent'. To uninstall, run 'uv tool uninstall serena-agent'.

Which clients support Serena?

Serena works with any MCP-enabled client including terminal-based clients (Claude Code, Codex, OpenCode, Gemini-CLI), IDEs and plugins (VSCode with Copilot/Junie, Cursor, JetBrains IDEs with Copilot/Junie/JetBrains AI Assistant), and desktop/web clients (Claude Desktop, Codex App, OpenWebUI). It also supports local GUIs like Cline, Roo Code, and agent frameworks.

How do I connect Serena to Claude Code?

Run 'serena setup claude-code' for automatic setup. For per-project configuration, use 'claude mcp add serena -- serena start-mcp-server --context claude-code --project $(pwd)'. For global configuration, use 'claude mcp add --scope user serena -- serena start-mcp-server --context claude-code --project-from-cwd'. Highly recommend setting up hooks in .claude/settings.json for optimal performance.

What is the difference between Language Servers and JetBrains backend?

Language Servers backend provides find symbol, symbol overview, find referencing symbols, query external projects, rename (symbols only). JetBrains backend includes all of those plus search in project dependencies, type hierarchy, find declaration, find implementations, rename (symbols/files/directories), move, inline, and propagate deletions. Interactive debugging is exclusive to JetBrains plugin.

How do I configure Serena?

Serena offers multiple levels of composable YAML configuration: global configuration, MCP launch command (CLI) configuration, per-project configuration with local overrides, execution context-specific configuration for particular clients, and dynamically composable configuration fragments (modes). Active tools, tool descriptions, prompts, and language backend details can be flexibly configured on a per-case basis.

What is Serena's memory system?

The memory system is elemental to long-lived agent workflows, especially when knowledge needs to be shared across sessions, users, and projects. Users often combine Serena's memory management with their agent's internal system like AGENTS.md files. It can be easily disabled if you prefer to use something else.

What are Serena hooks and why are they recommended?

Hooks counteract agent drift and tool discovery problems in clients like Claude Code and VSCode. The remind hook nudges agents to use Serena's symbolic tools after too many grep/read_file calls. The activate hook prompts project activation at session start. The cleanup hook removes session data at session end. The auto-approve hook auto-approves destructive tools in permissive permission modes.

How do I access the Serena Dashboard?

The dashboard is enabled by default and provides detailed information on your Serena session, current configuration, and access to logs. Some settings like active programming languages can be modified through it. Access it at http://localhost:24282/dashboard/index.html via browser, native application wrapper with tray icon, or tray manager aggregating multiple instances.

What basic utilities does Serena include?

Beyond semantic capabilities, Serena includes: search_for_pattern (flexible regex search), replace_content (agent-optimized regex and literal text replacement), list_dir/find_file (directory listing and file search), read_file (read files or chunks), and execute_shell_command (run builds, tests, linters). These are typically disabled by default in agentic harnesses like Claude Code that already provide overlapping capabilities.

Categories

Use cases

Browse all AI tools on NeedAnAI