⚡ Serena:24.3k Stars 的 MCP 编码工具包,给你的 Coding Agent 装上 IDE 级语义能力
项目地址:https://github.com/oraios/serena | ⭐ 24,331 Stars | 🛠 Python | 作者:oraios
老实说,用了这么久的 Claude Code / Codex,最烦的就是它在大项目里像个瞎子——不懂符号引用、不会跨文件重构、重构变量全靠猜。全靠正则和行号来理解代码,根本不是人干活的方式。
Serena 就是来解决这个问题的。它通过 MCP 协议给你的 coding agent 装上 IDE 级的语义理解能力:找符号、查引用、跨文件重命名、查看文件大纲——agent 自己就能搞定,你不用在旁边盯。
一、它解决了什么问题
| 场景 | 没有 Serena | 有 Serena |
|---|---|---|
| 跨文件重命名变量 | 读 5-8 个文件,手动替换 | 一句 rename_symbol 原子操作 |
| 找某个函数的调用者 | grep 全文,挨个看 | find_references 秒出结果 |
| 了解文件结构 | 读完整个文件 | symbol_overview 看大纲 |
| 重构 API 接口 | 心惊胆战怕漏 | find_all_references + rename 安全操作 |
最骚的是,它支持 40+ 种编程语言,从 Python/Go/TypeScript 到 Rust/Swift/Zig,甚至 Ada 和 Lean 4 都有。
二、安装
Serena 用 uv 管理,一行搞定:
# 安装 uv(如果还没有)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装 Serena
uv tool install -p 3.13 serena-agent@latest --prerelease=allow
安装完验证:
serena --version
三、初始化
在当前项目里跑:
serena init
默认用 language server 后端,不用额外配置。它会在项目根目录生成一个 .serena/ 配置目录。
如果你用 JetBrains IDE,想用更强的分析能力:
serena init -b JetBrains
四、接入 Claude Code / Codex
Serena 通过 MCP 协议接入。在 Claude Code 的 ~/.claude/settings.json 里加上:
{
"mcpServers": {
"serena": {
"command": "serena",
"args": ["mcp"]
}
}
}
或者用 Codex CLI,在 ~/.codex/settings.json 里:
{
"mcpServers": {
"serena": {
"command": "serena",
"args": ["mcp"]
}
}
}
重开终端,你的 agent 就多了十几个语义级别的工具可用。
五、实际用起来什么样
装完之后,直接在 chat 里说:
"帮我找到
UserService类的所有引用,然后把它重命名为AccountService"
agent 会调用 find_references 找到所有引用点,再调 rename_symbol 一步搞定——不用你手动一个个文件改。
或者:
"给我看看
src/core/目录下每个文件的大纲"
agent 调 symbol_overview,直接显示每个文件里的类、函数、变量结构。
六、踩坑记录
- 别在 MCP marketplace 里装 Serena — README 特意警告了,marketplace 里的版本命令过期了,直接从
uv tool install装 - 初始化要在项目目录里跑 —
serena init会检测项目语言,帮配置好对应的 language server - 大项目首次索引要等几秒 — language server 需要建索引,超大型 monorepo 可能要 10-15 秒
要点总结
- Serena 通过 MCP 给你的 coding agent 装上 IDE 级语义能力(符号查找、引用追踪、跨文件重构)
uv tool install -p 3.13 serena-agent@latest --prerelease=allow一行安装serena init初始化,serena mcp启动 MCP 服务器- 支持 40+ 语言,language server 和 JetBrains 双后端可选
- agent 实测反馈:跨文件操作从 8-12 步缩成 1 步