
如何让Claude Code和Cursor自动看懂代码结构sem MCP与Skill一键配置【免费下载链接】semSemantic version control entity-level diffs, blame, and impact analysis on top of git. 28 languages via tree-sitter. Built for coding agents.项目地址: https://gitcode.com/gh_mirrors/sem7/sem想让 AI 编码助手真正理解你的代码结构sem是一个构建在 Git 之上的语义版本控制工具——它用 tree-sitter 解析 32 种编程语言把函数、类、方法提取为实体从而支持实体级的 diff、blame 和影响面分析。通过sem MCP服务器和Skill技能文件你可以让 Claude Code 和 Cursor 在写代码时自动调用这些能力不再逐行 grep 和盲读文件而是直接问出改这个函数会影响谁。全文只需 3 步配置一条命令即可搞定。为什么 AI 编码助手常常看不懂代码结构 默认情况下Claude Code 和 Cursor 这类编码 Agent 了解代码的方式很原始用 grep 搜关键词、把整个文件塞进上下文。这带来两个问题烧 Token读完一个文件才知道调用了谁跨文件的传递依赖全靠猜漏调用者文本搜索可能漏掉重命名后的调用点重构时埋下隐患。sem 的思路不同它先解析代码 AST把每个函数/类/方法建成依赖图Agent 查询的是结构化的事实而不是文本匹配的结果。比如上图一次改动会告诉你哪个函数被修改、哪个被删除而不是第 43~51 行变了。sem MCP 服务器给 AI 装上 8 把结构手术刀运行sem mcp会启动一个基于 Model Context ProtocolMCP的标准服务器stdin/stdout 传输它向 Agent 暴露 8 个与 CLI 对应的工具MCP 工具能回答的问题sem_diff这次提交/PR 到底改了哪些函数sem_impact改这个函数会波及哪些代码影响面sem_context给我这个函数的完整上下文 调用者/被调用者sem_blame这个函数最后一次是谁改的sem_log这个函数的演变历史 / 仓库热点sem_entities按意图查找实体哪里在处理重试sem_find这个实体定义在哪个文件sem_grep基于索引的实体级文本搜索对 Agent 来说差别是巨大的问一句改submitOrder会坏掉什么sem_impact直接给出依赖图上的精确答案而不是一堆可能漏掉调用者的 grep 结果。服务端的实现位于 crates/sem-mcp/src/server.rs工具定义见 crates/sem-mcp/src/tools.rs。 额外福利在 macOS 和 Linux 上同一仓库的多个客户端会共享一个常驻仓库守护进程warm daemon解析和图缓存全局复用第二个客户端几乎零成本接入。运行sem mcp --status可随时检查状态详见 docs/shared-mcp.md。一键配置3 步让 Claude Code 和 Cursor 自动用上 sem第 1 步安装 sem CLIMCP 和 Skill 都依赖sem命令本身任选一种方式安装# HomebrewmacOS / Linux brew install sem-cli # 或 npm 全局安装 npm i -g ataraxy-labs/sem # 或 Cargo cargo install sem-cli脚本方式可参考仓库中的 install.sh。装好后运行sem --version确认可用。第 2 步一条命令完成 Skill MCP 配置在 Claude Code 环境macOS / Linux下npx ataraxy-labs/sem-skill这一条命令自动完成两件事逻辑见 agent-skill/install.mjs安装 sem Skill把技能文件写入~/.claude/skills/sem/SKILL.md告诉 Agent什么场景该用 sem、用哪个工具注册 sem MCP 服务器以用户级作用域执行claude mcp add -s user sem -- sem mcp让 8 个sem_*工具在每个项目中可用。整个过程幂等重复运行安全已注册的会跳过、设置文件会先备份。第 3 步Cursor / Claude Desktop 等其他客户端任何支持mcpServers配置的客户端手动加一段 JSON 即可{ mcpServers: { sem: { command: sem, args: [mcp] } } }⚠️ 两个小细节如果sem不在 Agent 的 PATH 里把command换成二进制的绝对路径sem mcp与其他命令打包在同一个二进制里不需要单独安装 MCP 服务。配置完成后重启 Agent 会话让工具加载即可。Skill 到底做了什么让 AI 知道什么时候该用MCP 提供了能力Skill 提供判断力。sem 的 skills/sem/SKILL.md 教给 Agent 一套决策规则用户问这个 commit 改了什么 / 影响面多大 / 谁最后动过这个函数 → 走 sem 工具已知实体名时只传entity_name调一次sem_context就能拿到函数体 上下游调用grep 需要搜 读两步影响面分析要在回复中画出小型 ASCII 依赖树让用户直接看到波及范围结构性问题永远优先 sem回退到 grep 时必须说明原因。还有两个可选增强同样一条 npx 命令加参数开启说明见 agent-skill/README.mdnpx ataraxy-labs/sem-skill --badge在 Claude Code 状态栏加一个实时徽章Agent 一触发 sem 就能看到正在分析哪个实体、耗时多少毫秒npx ataraxy-labs/sem-skill --guard安装守卫钩子硬性禁止 Agent 对代码文件用 grep/read强制走 sem 工具链SEM_GUARD0可随时逃生。配置之后的体验变化 装好之后你不需要改变任何说话方式——正常提需求Agent 会自己选工具改代码前Agent 调sem_impact先摸清楚波及范围而不是改完再靠编译报错补救问历史sem_blame告诉你这个方法是哪次重构引入的精确到函数而非行省 Tokensem_context按 token 预算裁剪上下文一次往返拿全函数体 依赖 被依赖还带回elapsed_ms实测耗时零后台负担日常查询由本地磁盘索引mmap 查询索引 SQLite 实体缓存直接回答冷进程也是毫秒级无需常驻服务。核心语义逻辑位于 crates/sem-core/src/graph.rs 的依赖图构建更多细节可阅读 README.md。常见问题速查问题解决方法sem命令找不到确认已安装且在 PATH 中npm 安装的用户可用npx sem和 GNU Parallel 的sem冲突sem --version确认把~/.cargo/bin放到 PATH 最前或设置 alias 指向真正的 semAgent 没调用 sem 工具重启会话加载 MCP检查claude mcp list中 sem 是否已注册想卸载/回退删除 MCP 注册项移除~/.claude/skills/sem/即可仓库本身不受任何影响总结sem MCP负责给 AI 精确的代码结构情报sem Skill负责让 AI 知道何时该用。一条npx ataraxy-labs/sem-skill命令就能让 Claude Code 和 Cursor 从读文本的助手升级为懂结构的工程师。【免费下载链接】semSemantic version control entity-level diffs, blame, and impact analysis on top of git. 28 languages via tree-sitter. Built for coding agents.项目地址: https://gitcode.com/gh_mirrors/sem7/sem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考