跳转到内容

Serena 使用

  1. 安装 Serena

    Terminal window
    $ uv tool install -p 3.13 serena-agent
    $ serena --version

    终端若找不到 serena,在 .zshrcexport PATH="$HOME/.local/bin:$PATH"。MCP 配置内联 PATH,集成 MCP 不必改 .zshrc

  2. 集成 MCP 客户端

    ~/.config/opencode/opencode.jsonmcp 字段添加:

    {
    "mcp": {
    "serena": {
    "type": "local",
    "command": ["serena", "start-mcp-server", "--context", "ide"],
    "enabled": true
    }
    }
    }

    可选 instructions

    "instructions": [
    "Use `serena` tools for symbol-level code operations: find symbol definitions, references, rename across files, replace symbol bodies, insert code before/after symbols."
    ]
  3. 初始化项目

    在项目根目录执行 serena init,生成 .serena/ 目录。项目配置在 .serena/project.yml,本地覆盖用 .serena/project.local.yml(不提交)。

  4. 验证

    重启客户端,在对话中测试:请帮我找到项目中 main 函数的定义

Terminal window
# 更新
$ uv tool upgrade serena-agent
# 项目索引
$ serena project index
# 健康检查
$ serena project health-check
# 手动启动 MCP(调试)
$ serena start-mcp-server --project-from-cwd
分类工具功能
检索serena_find_symbol按名称搜索符号,支持源码/文档提取
检索serena_get_symbols_overview获取文件结构概览
检索serena_find_referencing_symbols查找所有引用位置
检索serena_find_implementations查找接口/抽象类的所有实现
编辑serena_replace_symbol_body替换符号体,保留签名
编辑serena_insert_after_symbol在符号之后插入代码
编辑serena_safe_delete_symbol安全删除(有引用时阻止)
重构serena_rename_symbol跨文件重命名符号
重构serena_replace_content正则/字面文本替换
记忆serena_write_memory / serena_read_memory跨会话知识持久化
  • 默认使用 LSP 后端(免费),支持 40+ 语言
  • stdio 模式由编辑器拉起,无需手动常驻 start-mcp-server
  • 多客户端共享实例可用 streamable-http 模式,需自行启动并配置 URL