必备mcp教程
serena语义理解代码

Serena :一个强大的编程智能体工具包,提供语义检索和编辑能力

github: https://github.com/oraios/serena (opens in a new tab)

推荐指数:⭐⭐⭐⭐⭐

介绍

普通AI助手Serena + AI
只能“看”你发给它的代码片段直接访问整个项目,像IDE一样理解代码结构
回答基于文本模式匹配基于语言服务器协议(LSP),知道函数在哪、变量怎么用
修改代码 = 替换整文件能做“手术刀式修改”,精准插入、替换、重构
无法运行代码或执行命令可以读写文件、运行测试、执行终端命令

使用教程

安装UV依赖

Serena 依赖 uv 的现代Python包管理器,比 pip 更快。

Windows 用户

打开 PowerShell(右键开始菜单 → Windows PowerShell),粘贴并运行以下命令:

# 设置安装目录(可自定义)
set UV_INSTALL_DIR=D:\tools\uv
 
# 下载并安装 uv
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Mac或者Linux 用户

打开终端,运行:

curl -LsSf https://astral.sh/uv/install.sh | sh

安装完成后,重启终端!重启终端!,**重启终端!**输入 uv --version,如果看到版本号,说明成功了!

添加mcp

claude code

首先进入项目目录,注意:此操作需要在重启终端后,否则会找不到uvx命令,启动不了serena服务,导致mcp连接不上,同时需要确保到github的网络通畅,(windows请在cmd执行,不要使用power hsell)

claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena-mcp-server --context ide-assistant

image-20250913143112992

如果连接不上github,先进入项目目录,然后执行,git clone https://github.com/oraios/serena,下载该项目,然后将以下的目录替换为自己的项目目录,执行添加mcp的命令

claude mcp add serena -- uvx --from D:\\project\\my\\open-webui\\serena serena start-mcp-server --context ide-assistant --project $(pwd)

codex

windows用户进入 C:\Users\testuser\.codex目录编辑config.toml文件,添加如下配置,mac和linux用户打开终端,vi ~/.codex/config.toml,粘贴后按一下键盘上的"ESC"案件,将输入法调成英文,输入:wq后按下Enter键保存并且退出。

[mcp_servers.serena]
command = "uvx"
args = ["--from", "git+https://github.com/oraios/serena", "serena", "start-mcp-server", "--context", "codex"]

执行claude或者codex进入cli后,执行 /mcp 查看现有的mcp,可以看到 serena已连接,按一下键盘上的Esc键退出

image-20250913144823101

同时浏览器会自动打开serena服务的网页端

image-20250913145725527

为项目建立索引

进入项目,然后执行以下命令(使用cmd,不要使用power shell以及idea、pycahrm、goland等ide中的终端)

uvx --from git+https://github.com/oraios/serena serena project index

执行这个命令可能会报错,因为不同语言需要,这里以go语言为例,执行后报错(最后一行)RuntimeError: Found a Go version but gopls is not installed. ,这表示,Serena 需要使用 gopls 来为 Go 项目提供语言服务功能(如代码分析、补全等),但它在你的系统上找不到 gopls。

image-20250913151041280

在项目目录执行go install golang.org/x/tools/gopls@latest安装依赖,然后重新执行建立索引的命令,可以看到索引建立成功,但是有个go文件失败了,可以再多次重试解决。

image-20250913151318643

写入记忆文件

执行claude命令进入cli,输入"can you access serena",然后一直点击允许即可

image-20250913151812833

执行效果

输入:找到 api/v1/admin/captcha/config 这个接口 并且描述下实现 use serena,可以看到已经在使用serena进行语义检索了

image-20250913161437192