Data as of

Serena for Claude Code: Setup & Config

Serena gives Claude Code symbol-aware retrieval, editing, refactoring, and debugging capabilities through MCP.

Serena Claude Code configuration

  1. Choose Claude Code configuration scope

    For Serena, open Project scope: .mcp.json at the repository root. Project JSON: merge into mcpServers; user scope: use the CLI.

  2. Add Serena to Claude Code

    Use the serena entry below in mcpServers. Keep Serena's documented stdio connection fields and your other Claude Code entries.

  3. Check Serena in Claude Code

    Serena: Inspect claude mcp list and /mcp status.

Config file · Project scope: .mcp.json at the repository root

JSON
{
  "mcpServers": {
    "serena": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "install",
        "-p",
        "3.13",
        "serena-agent"
      ],
      "env": {}
    }
  }
}

CLI (POSIX shell)
claude mcp add-json --scope project 'serena' '{"type":"stdio","command":"uv","args":["tool","install","-p","3.13","serena-agent"],"env":{}}'

Serena in Claude Code: stdio checks

  • Serena's uv tool install command installs a package, not a persistent MCP process. Confirm the upstream launch command before connecting Claude Code.
  • If Serena fails to start, check uv, the working directory, and Claude Code's selected scope; inspect claude mcp list and /mcp.
Tools
search_for_pattern, replace_content, list_dir

Serena — details. Claude Code guide

Frequently asked questions

Register Serena with the displayed claude mcp add-json --scope project command, or merge the JSON into .mcp.json at the repository root.

Claude Code's serena example uses stdio.

Serena's Claude Code configuration invokes uv. Serena's uv tool install command installs a package, not a persistent MCP process. Confirm the upstream launch command before connecting Claude Code.

Serena's stored list contains 6 tools, including search_for_pattern, replace_content, list_dir. Compare those names with Claude Code's connected tool list; the stored list is not a live check.