Zed的Serena上下文服务器扩展
Zed编辑器扩展,集成 塞雷娜 -一个强大的编码代理工具包,具有语义代码分析功能——通过模型上下文协议(MCP)。
关于Serena
Serena是一个免费开源的编码代理工具包,提供语义代码检索和编辑工具。它的工作原理类似于编码代理的IDE,使它们能够:
- 使用以下工具在符号级别查找和编辑代码
find_symbol,find_referencing_symbols,以及insert_after_symbol - 使用语言服务器协议(LSP)执行高效的语义代码分析
- 使用大型代码库,无需读取整个文件或执行基本的grep搜索
- 支持20多种编程语言
特性
Zed扩展与Serena的MCP服务器无缝集成,提供:
- 自动安装:下载和安装
serena-agent如果不存在,则通过pip - 智能Python检测:自动查找Python 3.11-3.12解释器(Serena要求)
- 零配置:无需手动设置服务器即可开箱即用
- 与跨平台支持:适用于macOS、Linux和Windows
- 19语义工具:用于AI驱动的代码分析和操作的完整工具包
- 错误处理:清除缺少依赖项的错误消息
安装
先决条件
- Zed预览/开发:扩展系统需要Zed Preview或Dev频道(不稳定)
- Python 3.11-3.12Serena特别需要Python 3.11或3.12
- 点:Python依赖项的包管理器
快速安装步骤
- 安装兼容的Python (如果需要):
# macOS with Homebrew
brew install python@3.11
# Verify installation
python3.11 --version- 作为开发扩展安装:
- 下载/克隆此存储库 - 在Zed: Cmd+Shift+P → “zed:安装开发扩展” - 选择: path/to/zed-mcp-server-serena/serena-context-server 目录 - 扩展程序会自动安装,无需手动配置
- 验证安装:
- 在Zed的“扩展”面板中检查“Serena上下文服务器” - 无需手动配置服务器,它会自动处理!
已发布的扩展(即将推出)
当发布到Zed扩展市场时:
- 打开Zed
- 转到扩展(
Cmd+Shift+X) - 搜索“Serena上下文服务器”
- 单击安装
用法
自动操作
安装后,扩展程序会自动工作:
- 自动设置:扩展程序检测Python 3.11/3.12,并在需要时安装Serena
- 零配置:上下文服务器在Zed中自动注册
- 准备使用:AI功能可立即访问19个Serena工具
测试Serena集成
要验证Serena是否正常工作,请在Zed中询问您的AI助手:
List the MCP tools available to you right now您应该看到19个Serena工具,包括:
get_symbols_overview,find_symbol,find_referencing_symbolslist_dir,find_file,search_for_patternreplace_symbol_body,insert_after_symbol,insert_before_symbolwrite_memory,read_memory,list_memories,delete_memory- 加上工作流程和分析工具
示例用法
语义代码分析:
Use Serena to analyze the symbols in this project and show me an overview符号搜索:
Find all functions related to "authentication" in this codebase using Serena代码操作:
Use Serena to add error handling to the login function可用的Serena工具
该扩展提供了19个专用MCP工具:
📁 文件操作
list_dir-列出目录内容find_file-按名称/模式查找文件search_for_pattern-使用正则表达式搜索文件内容
🔍 语义分析
get_symbols_overview-获取项目符号摘要find_symbol-定位特定符号(函数、类等)find_referencing_symbols-查找符号的引用
✏️ 代码操作
replace_symbol_body-替换函数/类实现insert_after_symbol-在符号后添加代码insert_before_symbol-在符号前添加代码
🧠 内存管理
write_memory-存储信息以供以后使用read_memory-检索存储的信息list_memories-列出所有存储的信息delete_memory-删除存储的信息
🤖 代理工作流
onboarding-初始化项目理解think_about_collected_information-分析收集的数据think_about_task_adherence-验证任务完成情况think_about_whether_you_are_done-评估完成状态check_onboarding_performed-验证初始化initial_instructions-获取项目上下文
配置(可选)
该扩展无需配置即可工作,但您可以在Zed设置中对其进行自定义(Cmd+,):
{
"context_servers": {
"serena-context-server": {
"settings": {
// Optional: Specify Python executable path
"python_executable": "/opt/homebrew/bin/python3.11",
// Optional: Additional environment variables
"environment": {
"SERENA_LOG_LEVEL": "debug"
}
}
}
}
}备注:只有自动检测失败时才需要手动配置。
故障排除
扩展未加载
- ✅ 使用Zed预览/开发:扩展在Zed Stable中不起作用
- ✅ 检查Python版本Serena特别需要Python 3.11-3.12
- ✅ 验证路径:安装到
serena-context-server/目录,而非根目录
Python检测问题
# Test Python detection manually
python3.11 --version
python3.11 -c "import serena; print('Serena:', serena.__version__)"
# Install Serena manually if needed
python3.11 -m pip install serena-agent缺少工具
如果Serena工具没有出现:
- 检查扩展面板显示“Serena上下文服务器”✅
- 完全重新启动Zed
- 询问AI:“列出可用的MCP工具”以进行验证
手动安装回退
如果自动设置失败,请添加手动配置:
{
"serena-context-server": {
"command": "/opt/homebrew/bin/serena",
"args": ["start-mcp-server"],
"env": {
"SERENA_LOG_LEVEL": "debug"
}
}
}支持的语言
Serena为20多种语言提供语义分析:
主要支持:Python、Types/JavaScript、PHP、Go、Rust、C/C++、Java、C#、Swift 额外:Ruby、Kotlin、Clojure、Dart、Bash、Lua、Nix、Elixir、Erlang、Zig、R
发展
看 开发.md 用于:
- 从源代码构建扩展
- 本地测试
- 贡献指南
- 详细故障排除
相关项目
许可证
麻省理工学院
贡献
欢迎投稿!请看 开发.md 用于开发设置和贡献指南。
