- 博客
- Serena MCP:详细使用教程(安装、配置与实战)
Serena MCP:详细使用教程(安装、配置与实战)
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
本地安装与运行
- 克隆仓库:
git clone https://github.com/oraios/serena && cd serena。 - 运行服务器:
uv run serena start-mcp-server。 - 如果从
serena安装目录之外运行,请务必指定目录:uv run --directory /abs/path/to/serena serena start-mcp-server。 - 如果需要全局 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 的免费层级上即可工作。
-
打开 Claude Desktop,进入
File / Settings / Developer / MCP Servers / Edit Config。 -
这将打开
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" ] } } } -
保存配置后,务必完全退出 Claude Desktop 应用程序并重启。
-
故障排除: 如果 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 规范,因此需要使用特定的上下文。
-
在全局配置文件
~/.codex/config.toml中添加配置(如果文件不存在则创建):[ mcp_servers . serena ] command = " uvx " args = [ " --from " , " git+https://github.com/oraios/serena " , " serena " , " start-mcp-server " , " --context " , " codex " ]注意: 必须使用
--context codex参数。 -
启动后激活项目: 由于 Codex 是全局配置,您必须通过提示 LLM 来激活项目,否则 Serena 的工具将无法使用。
"Activate the current dir as project using serena"
-
日志和故障排除: 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小时数字员工一样工作。
agent-browser 用快照与引用替代完整 DOM,显著降低 Token 消耗,让 AI 浏览器自动化更轻量、更稳定、更省成本。
厌倦 Claude Code 改两下就自称完成?这篇指南讲清 Ralph Wiggum Plugin 如何把对话变成持续执行循环,让 Claude 自动写代码、跑测试、修错误直到达标。
