Serena
Serena 是一个 MCP 工具包,为编码代理提供类似 IDE 的语义代码检索、编辑、重构与调试能力,在符号层面运行并利用关系结构,帮助代理在大型复杂代码库中更高效、更可靠地工作。
访问 oraios/serena项目简介
Serena 是一个模型上下文协议(MCP)工具包,为编码代理提供类似 IDE 的语义代码检索、编辑、重构与调试能力。它在符号层面运行并利用关系结构,通过 MCP 与客户端和 LLM 集成。其代理优先的工具设计采用高层抽象,而不是行号或原始搜索模式,旨在让代理在更大、更复杂的代码库中更快、更高效、更可靠地工作。
核心功能
- 语义检索工具让代理在符号层面探索代码库,包括符号搜索、文件大纲、引用符号、声明与实现(视后端支持而定)。符号编辑工具支持替换符号主体、在符号前后插入以及安全删除,比常见替代方案更少出错且更节省令牌。重构工具在语言服务器后端支持符号重命名,JetBrains 插件增加移动、内联和传播删除能力。交互式调试仅限 JetBrains 插件,允许代理通过持久 REPL 风格界面设置断点、检查变量、求值表达式并控制执行流。记忆系统支持长期代理工作流,并可跨会话、用户和项目共享知识,也可按需禁用。多层 YAML
适用场景
- 为编码代理在大型复杂代码库中提供类似 IDE 的导航与编辑能力。以比逐步文本操作更高效的方式执行跨文件重命名、移动和引用查找。支持需要在会话或用户之间共享项目记忆的长期代理工作流。通过 JetBrains 插件的持久 REPL 风格界面实现代理驱动的调试。
快速开始
- 安装 uv,然后使用 uv tool install -p 3.13 serena-agent 安装 Serena。运行 serena init 初始化 Serena 并验证设置;加上 -b JetBrains 可使用 JetBrains 后端。连接首选 MCP 客户端时配置启动命令,或以 HTTP 模式启动 Serena MCP 服务器并向客户端提供 URL。
部署与要求
- Serena 由 uv 管理,安装 uv 是唯一必需的前置条件。安装成功后,shell 中应可使用 serena 命令。使用语言服务器后端时,某些语言可能需要安装额外依赖。JetBrains 插件支持 JetBrains IDE 所支持的语言和框架,但不支持 Rider 和 CLion。客户端可通过启动命令或 HTTP URL 连接 Serena MCP 服务器。
采用前须知
- 许可证:Other。在使用、修改或分发项目前,请确认其具体条款。