适合谁
- 使用 AI 编码代理并希望减少 token 消耗的开发者
- 需要跨文件影响分析与实体级差异的团队
- 在 Git 仓库中工作、希望获得确定性依赖图查询而非 grep 结果的项目
Sem 是 Ataraxy Labs 开发的语义版本控制工具,构建在 Git 之上,通过 tree-sitter 提供实体级差异、影响分析、blame 与上下文能力,支持 32 种语言及多种结构化数据格式。其 MCP 服务器通过 stdio 传输暴露 8 个实体级工具,主要用于让编码代理在不读取整个文件的情况下获得确定性的依赖图查询结果,从而节省 token。它适合使用 AI 编码代理的开发者与需要跨文件影响分析的团队,但需要先安装 sem 二进制文件,且不适用于非 MCP 客户端或浏览器、云存储等场景。
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 二进制文件一同分发,无需单独安装。本地使用始终免费且不要求登录;云端查询为按仓库选择性加入,未登录或云端不可达时会在本地计算并输出完全相同的结果。
{
"mcpServers": {
"sem": {
"command": "sem",
"args": ["mcp"]
}
}
}