适合谁
- 使用 AI 编码代理并希望减少 token 消耗的开发者
- 需要跨文件影响分析与实体级差异的团队
- 在 Git 仓库中工作、希望获得确定性依赖图查询而非 grep 结果的项目
Sem 是 Ataraxy Labs 开发的语义版本控制工具,构建在 Git 之上,通过 tree-sitter 提供实体级差异、影响分析、blame 与上下文能力,支持 32 种语言及多种结构化数据格式。其 MCP 服务器通过 stdio 传输暴露 8 个实体级工具,主要用于让编码代理在不读取整个文件的情况下获得确定性的依赖图查询结果,从而节省 token。它适合使用 AI 编码代理的开发者与需要跨文件影响分析的团队,但需要先安装 sem 二进制文件,且不适用于非 MCP 客户端或浏览器、云存储等场景。
最强项 · 文档质量 17/20 最弱项 · 可靠性 11/20
静态评测 · 未实际运行收录于 2026-09-10
查看 FMRS 评分方法 →运行环境:预编译二进制 · Node.js · Docker · Rust stable
SEM_CACHE_DIR
覆盖 SQLite 实体缓存和查询索引的缓存根目录,默认在操作系统缓存目录下;非必需。
SEM_LOCAL
设为 1 时即使已登录 sem cloud 也强制本地计算;非必需。
SEM_NO_TELEMETRY
设为 1 强制完全不记录遥测计数;非必需。
DO_NOT_TRACK
通用禁止跟踪变量,设为 1 强制不记录任何遥测;非必需。
{
"mcpServers": {
"sem": {
"command": "sem",
"args": ["mcp"]
}
}
}
以 Claude Code 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。
{
"servers": {
"sem": {
"command": "sem",
"args": [
"mcp"
]
}
}
}
写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。
claude mcp add sem -- sem mcp
在终端运行;先把 <…> 占位符换成你自己的值。
在客户端配置中添加 sem mcp 后重启,工具列表里应出现 sem_entities、sem_diff、sem_impact 等 8 个工具;可以问“sem_diff 当前有哪些语义层面的改动”来验证连接。
连接成功后,可以直接对 AI 助手这样说:
没有匹配的工具
依据项目文档列出,未经本站实测。
Sem 是构建在 Git 之上的语义版本控制工具,由 Ataraxy Labs 开发。它使用 tree-sitter 解析代码,将每个函数、方法和类提取为实体,并在实体级别而非行级别进行差异比较,因此输出的是「函数 blahh 被修改」而不是「第 x-y 行发生变化」。它支持 32 种编程语言以及 JSON、YAML、TOML、EDN、CSV、Markdown、LaTeX 等结构化数据格式,并提供重命名与移动检测、结构化哈希(区分空白/注释等外观改动与真实逻辑改动)以及模糊相似度匹配。sem mcp 通过 stdin/stdout 启动一个 Model Context Protocol 服务器,供编码代理在后台启动并调用,提供 8 个实体级工具:sem_entities、sem_diff、sem_blame、sem_impact、sem_log、sem_context、sem_find、sem_grep。该服务器以 stdio 传输方式运行,随 sem 二进制文件一同分发,无需单独安装。本地使用始终免费且不要求登录;云端查询为按仓库选择性加入,未登录或云端不可达时会在本地计算并输出完全相同的结果。
Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档
基于 AI 的 NPM 包分析 MCP 服务器
为 AI 编码代理提供预算、验证与回滚的治理控制层
GitHub 官方 MCP Server,用自然语言管理仓库、Issue、PR 与工作流
源版本 2e6a47fcd35c 数据同步于 2026-10-19 查看 FMRS 评分方法