使用说明

项目简介

Serena 是一个开源的编码助手,旨在直接在您的代码库上工作。它通过 Model Context Protocol (MCP) 服务器和 Agno 框架与大型语言模型 (LLM) 集成,无需 API 密钥或订阅即可使用,为开发者提供免费且强大的代码分析和编辑能力。

主要功能点

  • 语义代码分析: 基于 Language Server Protocol (LSP) 的代码理解,实现精确的代码检索和编辑。
  • 工具执行: 提供代码读取、代码编辑、Shell 命令执行等多种工具,支持 LLM 与代码库进行深度交互。
  • MCP 服务器: 通过 Model Context Protocol 与支持 MCP 协议的 LLM 客户端(如 Claude Desktop)进行标准化通信。
  • Agno 集成: 通过 Agno 框架,Serena 可以与各种 LLM 模型(包括开源模型和商业 API 模型)结合使用。
  • Prompt 模板: 内置 Prompt 模板支持,允许 Serena 根据不同的任务和场景生成合适的指令。

安装步骤

  1. 安装 'uv': 按照 uv 安装指南 安装 'uv' 包管理器。
  2. 克隆仓库: 使用 git 命令克隆 Serena 仓库到本地:
    git clone https://github.com/oraios/serena /path/to/serena
    请将 '/path/to/serena' 替换为您希望安装 Serena 的目录的绝对路径。
  3. 创建项目配置文件: 复制仓库中的 'myproject.demo.yml' 文件,并重命名为 'myproject.yml',然后根据您的项目需求编辑 'myproject.yml' 文件,例如修改项目根目录路径等。
  4. 安装 Serena: 在 Serena 仓库根目录下,使用 'uv pip' 命令安装 Serena 及其依赖:
    uv pip install -e .

服务器配置

要将 Serena 配置为 Claude Desktop 的 MCP 服务器,您需要编辑 Claude Desktop 的 MCP 服务器配置文件 'claude_desktop_config.json'。在 'mcpServers' 字段下添加 Serena 的配置信息。以下是一个配置示例,请根据您的实际安装路径进行修改:

{
    "mcpServers": {
        "serena": {
            "command": "/abs/path/to/uv",  // 【请替换为 uv 的绝对路径】
            "args": [
                "run",
                "--directory",
                "/abs/path/to/serena",  // 【请替换为 serena 仓库的绝对路径】
                "serena-mcp-server",
                "/abs/path/to/myproject.yml"  // 【请替换为 myproject.yml 的绝对路径】
            ]
        }
    }
}

配置参数说明:

  • 'command': 'uv' 包管理器的绝对路径。
  • 'args': 启动 Serena MCP 服务器的参数列表。
    • '"run"': 'uv run' 命令用于运行 Python 脚本。
    • '"--directory"': 指定工作目录为 Serena 仓库根目录。
    • '"/abs/path/to/serena"': Serena 仓库的绝对路径。
    • '"serena-mcp-server"': 运行 'scripts/mcp_server.py' 脚本,启动 MCP 服务器。
    • '"/abs/path/to/myproject.yml"': 您的项目配置文件的绝对路径。

请务必将上述配置示例中的 '/abs/path/to/uv'、'/abs/path/to/serena' 和 '/abs/path/to/myproject.yml' 替换为您的实际路径。

基本使用方法

  1. 配置 MCP 服务器: 按照上述 “服务器配置” 步骤配置 Serena MCP 服务器。
  2. 重启 Claude Desktop: 完整退出 Claude Desktop 应用程序并重新启动,确保配置生效。
  3. 开始对话: 在 Claude Desktop 中,您应该可以在聊天界面中看到 Serena 提供的工具(通常以小锤子图标表示)。
  4. 与 Claude 互动: 像正常聊天一样与 Claude 互动,Serena 会根据您的对话内容,利用其工具分析代码库、执行编辑操作或运行 Shell 命令来辅助 Claude 完成编码任务。

注意: 在 Claude Desktop 中执行工具时,通常会弹出权限请求,请仔细检查工具执行参数,确认安全后再允许执行。

信息

分类

开发者工具