Serena MCP:详细使用教程(安装、配置与实战)

Vibe Tools专家团队
发布时间
更新时间

Serena MCP:详细使用教程(安装、配置与实战)

Serena 是一款功能强大的开源 AI 编码代理工具包,它作为 MCP 服务器 运行,旨在通过语言服务器协议 (LSP) 提供的符号级理解能力,弥补传统基于文本搜索(如 RAG)的 AI 编程工具在处理复杂代码库时的短板。Serena 的独特之处在于它能够通过 Claude Desktop 应用程序免费使用,甚至在免费层级上即可工作,从而避免了 API 成本。

本教程将详细介绍 Serena 的安装、配置和在不同客户端上的使用方法。

这篇文章既是完整的 serena 教程,也是涵盖 serena mcp 安装 与 serena 安装 的实操指南,帮助你快速进入 serena mcp使用 的状态。


一、 环境准备与服务器启动

Serena 依赖于 Python 环境,并推荐使用 uv 工具进行管理。

1. 前提条件:安装 uv

Serena 的命令行操作由 uv 驱动,您需要先安装它;如果想快速照着 serena 教程 上手,可直接按以下命令完成 serena 安装 前置准备。

  • Windows (PowerShell): powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • Linux / macOS: curl -LsSf https://astral.sh/uv/install.sh | sh
  • 验证:终端执行 uv --version,确认可见版本号。

2. 启动 Serena MCP 服务器

Serena 必须作为 MCP 服务器运行。通常,客户端(如 Claude Desktop)会将其作为子进程启动,通过标准输入输出(stdio)进行通信。

使用 uvx 快速启动(推荐)

uvx 可以直接从仓库运行最新版本的 Serena,无需本地克隆,是最直接的 serena mcp 安装 / serena mcp使用 入口。

uvx --from git+https://github.com/oraios/serena serena start-mcp-server

本地安装与运行

  1. 克隆仓库:git clone https://github.com/oraios/serena && cd serena
  2. 运行服务器:uv run serena start-mcp-server
  3. 如果从 serena 安装目录之外运行,请务必指定目录:uv run --directory /abs/path/to/serena serena start-mcp-server
  4. 如果需要全局 serena 安装,完成以上步骤后可直接在任意项目中启动,提高后续 serena mcp使用 便捷度。

使用 Docker (实验性)

Docker 提供了更好的安全隔离和一致的环境,无需本地安装语言服务器。您需要将项目目录挂载到容器中:

docker run --rm -i --network host -v /path/to/your/projects:/workspaces/projects ghcr.io/oraios/serena:latest serena start-mcp-server --transport stdio

仪表板和日志

默认情况下,Serena 会启动一个 Web 仪表板(通常在 http://localhost:24282/dashboard/index.html),用于显示日志和允许用户关闭 MCP 服务器(防止客户端关闭时遗留僵尸进程)。

完成上述步骤后,基本的 serena mcp 安装 与 serena 安装 即告完成,可直接进入下一步的 serena mcp使用。


二、 客户端配置(不同系统的集成)

Serena 可以与任何支持 Model Context Protocol (MCP) 的客户端集成,这一部分也是实操 serena 教程 的关键。

1. Claude Desktop (Windows/macOS)

这是免费使用 Serena 功能的最佳途径,因为它在 Claude 的免费层级上即可工作。

  1. 打开 Claude Desktop,进入 File / Settings / Developer / MCP Servers / Edit Config

  2. 这将打开 claude_desktop_config.json 文件。在 mcpServers 部分添加 Serena 配置。

    使用 uvx 的配置示例:

    {
      "mcpServers": {
        "serena": {
          "command": "/abs/path/to/uvx", // 必须是 uvx 的绝对路径
          "args": [
            "--from",
            "git+https://github.com/oraios/serena",
            "serena",
            "start-mcp-server"
          ]
        }
      }
    }
    
    
  3. 保存配置后,务必完全退出 Claude Desktop 应用程序并重启

  4. 故障排除: 如果 Claude 注册了 Serena 但不调用其工具,建议禁用 FileSystemMCP,因为它可能存在工具名称冲突。

Windows WSL2 集成

如果您在 Windows 上运行 Claude Desktop,但 Serena 安装在 WSL2 (Ubuntu) 中,您需要通过 wsl.exe 来调用服务器:

claude_desktop_config.json 中,命令应以 wsl.exe -d Ubuntu 为前缀。

2. Codex (OpenAI CLI)

Codex 并非完全支持 MCP 规范,因此需要使用特定的上下文。

  1. 在全局配置文件 ~/.codex/config.toml 中添加配置(如果文件不存在则创建):

    [ mcp_servers . serena ]
    command = " uvx "
    args = [ " --from " , " git+https://github.com/oraios/serena " , " serena " , " start-mcp-server " , " --context " , " codex " ]
    
    

    注意: 必须使用 --context codex 参数。

  2. 启动后激活项目: 由于 Codex 是全局配置,您必须通过提示 LLM 来激活项目,否则 Serena 的工具将无法使用。

    "Activate the current dir as project using serena"

  3. 日志和故障排除: Codex 经常会显示工具执行 failed,即使它们已成功执行,这似乎是 Codex 的一个 Bug。

3. Claude Code (CLI)

在您的项目目录下,使用 claude mcp add 命令添加 Serena。推荐使用 ide-assistant 上下文。

claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena start-mcp-server --context ide-assistant --project $(pwd)

4. 其他 MCP 客户端 (Cursor, Cline, Roo-Code, Windsurf)

Serena 作为 MCP 服务器,可以被任何支持 MCP 的客户端集成,包括 IDE 扩展或类 VSCode 的 IDE。

  • 配置建议: 强烈建议在 args 中使用 -context ide-assistant
  • 成本注意: 通过这些客户端使用 Serena,您仍需支付所选 LLM 的 API 费用

5. 本地 GUI 和其他 LLM (Agno, OpenWebUI)

Serena 不限于 Claude。通过 Agno、OpenWebUI 或 Jan 等本地 GUI 工具,您可以将 Serena 与 Gemini本地部署的模型(如 Ollama/LM Studio)结合使用。

  • 使用 Agno 或其他非 Claude 客户端通常需要 API Key,因此会产生费用。

三、 实际使用和操作流程

Serena 旨在提供 IDE 级别的工具,如符号搜索 (find_symbol) 和符号后插入 (insert_after_symbol),而不是依赖于文件读取或文本搜索。以下步骤延续 serena 教程 主线,让你在真实项目中完成 serena mcp使用。

0. 核心用法示例(serena mcp使用 快速参考)

  • 项目分析:“分析这个项目的架构,找出可以优化的地方”。
  • 精准导航:“帮我找出所有调用 UserService 的地方”。
  • 智能重构:“重构这个函数,提取公共逻辑并确保符合项目现有风格”。
  • 错误诊断:“检查这段代码是否存在内存泄漏或潜在 Bug”。
  • 记忆管理:Serena 会在 .serena/memories/ 下存储项目相关的重要业务逻辑和架构信息,方便跨对话维持上下文。

1. 项目激活与索引

在使用 Serena 的工具之前,必须先让 LLM 知道它正在处理哪个项目。

  • 激活项目: 通过提示 LLM 激活项目路径:

    "Activate the project /path/to/my_project"

  • 单项目限制: Serena 当前只能处理一个项目文件 (one project file at once)。

  • 项目索引: 对于大型项目,为了加速 Serena 的工具运行,建议先对项目进行索引。

    uvx --from git+https://github.com/oraios/serena serena project index
    
    

2. 首次启动:项目入职(Onboarding)与记忆

Serena 具有独特的记忆系统。

  • 入职流程: 首次在项目上启动 Serena 时,它会执行 onboarding 过程,分析项目结构、关键信息和重要业务逻辑,并将这些信息存储在 .serena/memories/ 目录下的记忆文件中。
  • 记忆利用: 在后续对话中,LLM 可以选择性地读取这些记忆文件,从而更好地理解用户需求。
  • 绕过入职: 如果 LLM 未完成入职流程或您想跳过,可以在 .serena/memories/ 中创建一个文件,Serena 就不会再次触发入职.

3. 编码、编辑与自主代理行为

Serena 提供的工具能够支持复杂的编码工作流。

  • 符号级编辑: 主要编辑操作是 replace_symbol_body(替换符号的完整主体),它比基于文本的替换更准确。
  • 自主纠错(Agent Loop): 建议启用 execute_shell_command 工具(在 Claude Desktop 中默认启用),这样 Serena 可以在执行代码或运行测试后,自主识别并纠正错误
  • 安全注意: execute_shell_command 允许执行任意代码。使用时应检查执行参数。如果只进行分析而不修改代码,可在项目配置文件中设置 read_only: true
  • 节省 Token: Serena 只检索必要的代码符号而非全文扫描,在 serena mcp使用 场景下通常能明显降低 Token 成本。

4. 避免上下文超限

对于长而复杂的任务,或当 LLM 上下文接近限制时,最好在新对话中继续。

  • prepare_for_new_conversation Serena 有一个专用工具可以创建当前状态的摘要并保存为记忆。您可以在新的对话中要求 Serena 读取该记忆,从而无缝地继续未完成的任务。

5. 模式和上下文定制

您可以使用 上下文(Contexts)模式(Modes) 来调整 Serena 的行为和工具集。

  • 上下文 (Contexts): 在启动时设置,定义操作环境。例如,desktop-app(默认)、agent(更自主的代理)或 ide-assistant(集成到 IDE 中)。
  • 模式 (Modes): 可以动态切换,用于专注于特定任务类型,例如 planning(规划)、editing(编辑)或 one-shot(一次性完成任务)。您可以通过 switch_modes 工具来动态切换模式。
博客

最新博客文章

追踪 Vibe Coding Tools 最新的对比、测评与实战技巧。

告别只会聊天的AI,Moltbot才是你真正的24小时数字员工

当下的AI助手虽聪明,却缺乏记忆与主动性:每次聊天都要重述背景,不问就不会行动。Moltbot 以本地常驻与长期记忆为核心,通过常用聊天软件连接你,能在后台主动执行任务、整理信息并自动汇报,还可与日历、邮件和智能家居协作,同时支持定时任务与自动提醒,更注重隐私,数据留在本地,像24小时数字员工一样工作。

Vibe Tools Expert Team
阅读全文
告别 Token 焦虑:Vercel 开源的 agent-browser 深度评测与实操指南

agent-browser 用快照与引用替代完整 DOM,显著降低 Token 消耗,让 AI 浏览器自动化更轻量、更稳定、更省成本。

Vibe Tools Expert Team
阅读全文
告别 AI“半途而废”:Claude Code 里的 Ralph Wiggum Plugin 实战全攻略

厌倦 Claude Code 改两下就自称完成?这篇指南讲清 Ralph Wiggum Plugin 如何把对话变成持续执行循环,让 Claude 自动写代码、跑测试、修错误直到达标。

Vibe Tools Expert Team
阅读全文
Serena MCP:详细使用教程(安装、配置与实战)