promptgarten 🌱

扩展与集成 · MCP

Serena

26.767

一个 MCP 工具包,为你的智能体提供类似 IDE 的语义化代码工具——通过语言服务器(LSP)进行符号级的查找、编辑与重构,而不是盲目地做文本 grep。

Serena 以 MCP 服务器的形式挂到你的智能体上,提供更像 IDE 而非文本搜索的工具:查找符号(find_symbol)、解析引用(find_referencing_symbols)、替换符号主体(replace_symbol_body)等。它基于语言服务器(LSP)——也就是 VS Code「转到定义」所用的同一套技术——因此智能体是在代码的关系结构上工作,而不是盲目 grep。Serena 与模型、客户端无关,可在 stdio 或 HTTP 模式下运行,且为开源。面向智能体运行环境提供了相应的上下文配置(如 --context claude-code)。

🔧 SETUP

  1. 安装(通过 uv):`uv tool install -p 3.13 serena-agent`
  2. 在 Claude Code 中注册:`claude mcp add serena -- serena start-mcp-server --context claude-code --project "$(pwd)"`
  3. 也可通过 uvx 免安装使用;或启动 HTTP 模式并把 URL 提供给客户端
  4. 会根据项目语言自动使用相应的语言服务器(LSP)

什么时候用?

浏览与重构大型代码库

「找出 X 的所有调用者并重命名」会通过语言服务器进行符号级操作,而不是 grep。

在上下文检索时节省 token

Serena 按需读取单个符号,而不是把整个文件加载进上下文。

什么时候不该用?

极小的项目 / 单个文件

在很小的项目上,LSP 和 MCP 的搭建开销几乎不划算。

更好的选择: 使用智能体内置的 grep/glob 搜索。

缺少良好语言服务器的语言

Serena 的强项取决于各语言的语言服务器——对冷门语言可能较弱。

更好的选择: 选用支持良好的语言(Python、TypeScript、Go、Rust、Java 等)。

来源