oraios/serena
开发工具通过 MCP 为编程 Agent 提供符号级检索、重构和编辑等 IDE 能力,覆盖 40 多种语言。
项目介绍
Serena 是一个 MCP 服务器,把开发者平时在 IDE 里用的操作交给编程 Agent:查找符号、查看文件大纲、查引用、重命名、移动、内联、按符号编辑、读取诊断信息,以及交互式调试。Agent 不再需要通读文件再靠文本替换改代码,而是通过语言服务器在符号层面操作。
这套设计面向 Agent:用高层抽象替代行号和正则式搜索,在大型或跨语言代码库中尤其能减少上下文消耗和误改。Serena 本身不写代码,实际工作由调用它的 LLM 客户端编排。
任何支持 MCP 的客户端都能接入,包括 Claude Code、Codex、OpenCode、Gemini-CLI 等终端工具,VS Code、Cursor 和 JetBrains 系 IDE 助手,以及 Claude Desktop 等桌面或网页客户端。客户端既可以通过启动命令拉起 Serena,也可以让 Serena 以 HTTP 模式独立运行后填写 URL。
快速使用
准备: 安装 uv,这是唯一需要的前置依赖。不要从 MCP 或插件市场安装 Serena,那里的命令可能已经过时。
安装:
uv tool install -p 3.13 serena-agent
确认 shell 中能执行 serena 命令后,初始化:
serena init
该命令默认配置语言服务器后端,成功后会输出提示。若改用付费的 JetBrains 后端,执行 serena init -b JetBrains 并安装 Serena 插件。
最后配置客户端:在客户端中添加启动 Serena MCP 服务器的命令,或以 HTTP 模式运行后填入 URL。各客户端的具体写法见客户端配置文档,整体流程也可参考视频介绍。
连接完成后,在 Agent 中打开项目,让它检索或重构代码,客户端的工具列表应出现 Serena 提供的工具。
语言后端与能力差异
语义能力由两种后端提供:
- 语言服务器(默认,开源)。 LSP 层覆盖 40 多种语言,包括 Python、TypeScript、Java、Go、Rust、C/C++、C#、Ruby、PHP 等。部分语言服务器需要额外安装依赖,详见语言支持页面。重命名仅作用于符号;查找声明和查找实现受语言服务器能力限制。
- JetBrains 插件(付费,有免费试用)。 基于 IntelliJ 系 IDE 的分析引擎,补齐 LSP 路径缺少的能力:在项目依赖中搜索、类型层级、移动符号/文件/目录、内联、删除传播,以及 REPL 式的交互调试。不支持 Rider 和 CLion。详见插件文档。
选择后端时要看这些差异:重命名文件和目录、重构后清理不再使用的代码、设置断点,都只有 JetBrains 后端支持。
配置与使用方式
Serena 自带文件读写、搜索和 shell 命令等基础工具,但在 Claude Code、Codex 这类 Agent 宿主中使用时通常默认关闭,因为宿主本身已有对应能力。保留语义工具、把普通文件操作交给宿主即可。
记忆系统用于跨会话、跨用户、跨项目保存知识,可配合 AGENTS.md 等文件使用,也可以关闭。启用哪些工具、工具描述、提示词和后端参数都能通过分层 YAML 配置:全局、启动命令、项目级(可加本地覆盖)、执行上下文,以及可组合的 mode 片段。用户指南和配置文档说明了各层含义,项目工作流则介绍 Serena 如何打开和使用项目。
使用约束与许可
- Serena 只提供工具,不是自主 Agent,必须由 MCP/LLM 客户端驱动。
- 安装命令指定 Python 3.13,由 uv 管理环境。
- 语言覆盖范围和语义准确度取决于所选语言服务器;在 LSP 后端下,外部依赖中的声明通常无法解析。
- 许可按组件划分:SolidLSP(
src/solidlsp)为 MIT,其余应用为 GPL-3.0-or-later;两者合并分发时整体按 GPL 处理,详见许可说明和许可证文档。贡献代码需要接受 CLA。
HotRepo 点评
项目已有明显热度:约 30,969 Star 和 2,118 Fork,并在 2026-11-01 进入 Python 日榜第 14 名,当天新增 57 Star。2025 年 4 月它就在 Hacker News 引起讨论,参与项目的评论者 MischaPanch 表示,它用语言服务器而非 RAG 分析代码,可作为 MCP 服务器免费配合 Claude Desktop 使用,无需 API key 或订阅(评论原文)。
README 中引用的 Agent 评价称跨文件重命名和查引用能大幅减少步骤,这属于项目方组织的评测,不是独立基准。更实在的差异点是架构:用 LSP 提供语义能力,再用付费 JetBrains 后端补足 LSP 做不到的操作。已经在用 Claude Code 或 Codex 的团队,可以把 Serena 当作语义增强层,而不是替换现有客户端。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。