基本能力
产品定位
Serena 是一个功能强大的编码代理工具,旨在帮助开发者直接在代码库上工作,提供语义代码检索和编辑功能。
核心功能
- 语义代码检索和编辑:通过语言服务器协议(LSP)提供符号级别的代码查询和编辑功能。
- 多语言支持:支持 Python、Java、TypeScript 等语言,并可通过适配器扩展支持更多语言。
- 与 LLMs 集成:可以与 Claude、ChatGPT 等 LLMs 集成,提供编码任务的自动化支持。
- 免费使用:无需 API 密钥或订阅,完全免费。
- 多种使用方式:可以作为 MCP 服务器使用,也可以通过 Agno 框架与任何 LLM 集成。
适用场景
- 代码分析和规划:帮助开发者分析代码库并制定开发计划。
- 代码编辑和重构:提供符号级别的代码编辑功能,支持代码重构。
- 自动化测试和调试:通过执行 shell 命令运行测试和调试代码。
- 多项目管理:支持动态切换项目,适合多项目开发的场景。
工具列表
- activate_project:按名称激活项目。
- create_text_file:在项目目录中创建/覆盖文件。
- delete_lines:删除文件中的一行或多行。
- execute_shell_command:执行 shell 命令。
- find_symbol:全局或局部搜索符号。
- get_symbols_overview:获取文件中定义的顶级符号概述。
- insert_at_line:在文件的指定行插入内容。
- read_file:读取项目目录中的文件。
- replace_symbol_body:替换符号的完整定义。
- search_in_all_code:在项目中的所有代码文件中搜索模式。
常见问题解答
- 是否真的免费?
- 是的,Serena 完全免费,无需 API 密钥或订阅。
- 支持哪些编程语言?
- 直接支持 Python、Java、TypeScript,间接支持 Ruby、Go、C#、Rust 等。
- 如何与 LLMs 集成?
- 可以通过 MCP 服务器或 Agno 框架与 Claude、ChatGPT 等 LLMs 集成。
- 如何解决工具名称冲突?
- 避免同时使用多个 MCP 服务器,尤其是与 Filesystem MCP Server 冲突的工具。
使用教程
使用依赖
- 安装
uv
:
shell
curl -sSL https://docs.astral.sh/uv/getting-started/installation/ | sh
安装教程
- 克隆仓库:
shell
git clone https://github.com/oraios-ai/serena.git /path/to/serena - 复制配置文件:
shell
cp serena_config.template.yml serena_config.yml
cp myproject.template.yml myproject.yml - 调整配置文件中的设置。
调试方式
- 启动 MCP 服务器:
shell
uv run --directory /path/to/serena serena-mcp-server /path/to/myproject.yml - 检查日志文件以排查问题。
- 启用日志 GUI 工具以帮助调试。