返回 MCP 目录
public公开dns本地运行

serena

Serena是一个强大的开源编码代理工具包,能够将LLM转化为可直接在代码库上工作的全功能代理。它提供类似IDE的语义代码检索和编辑工具,支持多种编程语言,并可通过MCP协议或Agno框架与多种LLM集成。

article

README

🚀 如何使用Serena

Serena是一款强大的工具,能帮助用户高效地进行项目开发和管理。本指南将详细介绍Serena的安装、使用、配置等方面的内容,让你快速上手。

🚀 快速开始

📦 安装指南

  1. 安装依赖:请按照INSTALL.md文件中的说明完成Python、Node.js和Yarn的安装。
  2. 创建虚拟环境并安装包
    python -m venv .venv && source .venv/bin/activate  # 在macOS/Linux下
    pip install -r requirements.txt
    
  3. 初始化项目
    uv init your_project_name
    cd your_project_name
    

启动语言服务

在项目目录中运行以下命令启动Serena的语言服务:

uv run serena

💻 使用示例

项目激活与管理

基础用法

  • 切换项目
    uv run serena activate <project_name>
    
  • 删除项目
    uv run serena delete-project <project_name>
    

文件操作

基础用法

  • 创建文件
    uv run serena create-file <filename>
    
  • 读取文件内容
    uv run serena read-file <filepath>
    
  • 删除文件
    uv run serena delete-file <filepath>
    

代码操作

基础用法

  • 查找符号
    uv run serena find-symbol <symbol_name>
    
  • 插入代码片段
    uv run serena insert-code <position> --content <code_content>
    
  • 替换代码段
    uv run serena replace-lines <start_line>:<end_line> --content <new_content>
    

项目构建与测试

基础用法

  • 运行测试
    uv run serena run-tests
    
  • 构建项目
    uv run serena build
    

📚 详细文档

自定义配置

创建新工具

  1. 创建新的工具类文件,命名为new_tool.py,添加以下内容:
    class NewTool(Tool):
        def apply(self, context: Context) -> Context:
            # 在此处实现工具逻辑
            return context
    
  2. 注册新工具
    • 修改serena/agent/tools/__init__.py文件,添加以下内容:
      from .new_tool import NewTool
      
      __all__ = ['NewTool']
      

故障排除

问题排查步骤

  1. 检查日志:查看语言服务的输出日志以获取更多信息。
  2. 重新启动服务
    uv run serena restart-language-server
    
  3. 重新初始化项目
    uv init your_project_name
    

完整工具列表

以下是Serena的所有工具及其简要描述(通过运行uv run serena-list-tools获得):

| 工具名称 | 详情 | | ---- | ---- | | activate_project | 激活指定名称的项目。 | | check_onboarding_performed | 检查是否已经完成初始化流程。 | | create_text_file | 创建/覆盖项目目录中的文件。 | | delete_lines | 删除文件中指定范围内的行。 | | delete_memory | 从Serena的项目特定存储中删除记忆。 | | execute_shell_command | 执行shell命令。 | | find_referencing_code_snippets | 查找引用给定位置符号的代码片段。 | | find_referencing_symbols | 查找引用给定位置符号的其他符号(可选过滤类型)。 | | find_symbol | 在项目中全局或局部搜索名称包含指定字符串的符号。 | | get_active_project | 获取当前激活项目的名称(如果有),并列出所有项目。 |

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端