Serena

产品介绍

Serena 是一个强大的 MCP(Model Context Protocol)工具包,专为编码场景设计,提供语义级的代码检索和编辑能力。它将 LLM 转变为可以直接在代码库上工作的全功能 Agent,被誉为「给你的 Agent 的 IDE」。Serena 是免费且开源的(MIT 协议),由 vkuprin 维护。

核心能力

1. 语义代码检索

不是简单的文本搜索,而是理解代码的语义结构:

  • 符号级检索:按函数名、类名、变量名等代码实体进行精准查找
  • 关系感知:理解函数调用关系、类继承关系等
  • 上下文感知:检索时考虑代码所处的上下文环境

2. 语义代码编辑

  • 在理解代码结构的基础上进行精准修改
  • 支持跨文件的批量编辑
  • 保持代码一致性

3. 项目索引

  • 自动为代码库建立索引
  • 支持大型项目的快速检索
  • 增量更新索引

4. 多语言支持

支持主流编程语言的语义分析:

  • Python、TypeScript、JavaScript、Go、Rust 等

技术原理

Serena 的核心技术基于 LSP(Language Server Protocol,语言服务器协议):

┌─────────────────────────────────────┐
│           AI Agent (LLM)            │
└──────────────┬──────────────────────┘
               │ MCP Protocol
               │ (JSON-RPC)
┌──────────────▼──────────────────────┐
│          Serena MCP Server          │
└──────────────┬──────────────────────┘
               │ LSP
               │ (stdio)
┌──────────────▼──────────────────────┐
│     Language Server (e.g. pyright)  │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────┐
│          代码文件系统                │
└─────────────────────────────────────┘

工作流程:

  1. AI Agent 通过 MCP 协议向 Serena 发送请求
  2. Serena 将请求翻译为 LSP 调用
  3. LSP 与具体的语言服务器通信(如 pyright 处理 Python,tsserver 处理 TypeScript)
  4. 语言服务器分析代码,返回符号信息
  5. Serena 将结果格式化后通过 MCP 返回给 Agent

集成方式

Serena 作为一个 MCP Server,可以被多种 AI 客户端使用:

客户端类型代表产品
终端客户端Claude Code、Codex、Gemini-CLI、OpenHands CLI
IDE 插件VSCode Copilot、Cursor、JetBrains AI Assistant
桌面应用Claude Desktop、Codex App
本地客户端OpenWebUI、Jan、Agno

serena-slim 版本:将 29 个工具智能分组为 18 个语义操作,减少 50.3% 的 token 使用,功能零损失。

安装与配置

  • 安装方式:通过 uv(Python 包管理器)安装
  • 配置位置:与三个数据库连接并列配置在 TraeWork 的 MCP 中
  • 启动命令:uvx —from serena-ai-serena —no-read-only mcp_server_serena

实际演示

在 TraeWork 中配置好后,可以对 AI 说:

  • “帮我找到这个项目里所有使用数据库连接的地方”
  • “把这个函数的参数类型从 string 改成 number,同步更新所有调用处”
  • “找出所有 TODO 注释的位置”

Serena 会理解代码结构,精准定位并执行修改。

运行记录(2026-09-02)

  • 每次 TraeWork 会话启动时自动拉起,并在浏览器自动弹出其网页面板:http://127.0.0.1:24282/dashboard/index.html(端口可能每次不同)——用户曾误以为装了陌生软件
  • 该面板只监听本机地址(127.0.0.1),外部无法访问,无安全风险
  • 对非编程用途(日记 / 知识库)没有实际作用;2026-09-02 经用户确认后停用——已从 TraeWork 的 MCP 配置(User/mcp.json)中移除 Serena 条目(原配置备份为 mcp.json.bak-20260902),并结束其残留进程,弹窗不再出现;如需恢复,把备份里的 Serena 段加回配置即可

相关笔记

2026-10-02 核实:它不是 TraeWork 插件

TraeWork 插件市场里查不到 Serena,本机也没装。 它是 Claude Code 生态里的独立 MCP 项目(oraios/serena,最新 v1.5.3,含 JetBrains 插件),通过 MCP 接入,与 TraeWork 插件体系无关。

别混淆两件事:

  • 之前是通过 mcp.json 配 MCP 接入的(2026-08-26),已于 2026-09-02 停用并从配置移除
  • 那与「装插件」是完全不同的机制

相关日记

  • 2026-08-19 - 开始研究
  • 2026-08-26 - 安装 uv 和 Serena
  • 2026-09-02 - 排查 24282 端口反复弹窗,确认来源是 Serena 的自动面板
  • 2026-10-02 - 核实:确认不在 TraeWork 插件市场,属独立 MCP 项目