Back to MCP directory
publicPublicdnsLocal runtime

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

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client