使用说明
语义搜索MCP
语义搜索MCP 是一个模型上下文协议(MCP)服务器,旨在允许AI代理在本地代码库中执行上下文语义搜索。它智能地索引当前工作文件并提供精确的搜索工具。
新功能 :
- 🎯 在浏览器中交互式查看依赖关系图
- ⚡ 实时图形更新(WebSocket)
- 🧠 智能分析仪 :支持杜
TYPE_CHECKING,复杂的相对导入和回退(try/except) - 🛡️ 架构“零锁” :新的自制矢量电机(Numpy/Pickle),永久消除锁定错误。
- 🛡️ 安全stdout流 :将日志重定向到stderr,以实现100%可靠的MCP通信。
- 🚀 强大的GPU检测 :严格执行子过程隔离,以避免任何Stderr C++污染。
安装
curl -LsSf https://raw.githubusercontent.com/hjamet/semantic-search-mcp/main/install.sh?v=123 | bash
备注:确保你有
uv已安装。如果没有,脚本将为您安装。
GPU(CUDA) :如果您有带有CUDA的NVIDIA GPU,GPU支持将自动启用。脚本安装
onnxruntime-gpu用于加速嵌入。
使用
1.索引和上下文切换(CLI)
要在特定repo上使用服务器:
- 在项目根目录中打开终端。
- 启动 :
semcp - 就这样!上下文立即更新。MCP服务器将在下次请求时读取此上下文。
重要 :工具
semcp如果更改项目(更改上下文),则必须重新启动。
2.查看依赖关系图(WEB)
当你启动 semcp,web界面将自动打开 http://localhost:8765 显示:
- 交互式图形 文件及其依赖项(导入)
- 实时更新 :更改文件时图形会自动刷新
- 堆砌艰涩的 语义或文件名(前缀
@) - 聚焦 在一个结上看 他所有的后代 (过渡继承人)及其直接进口商
- 方向箭头 :绿色表示传出依赖项,红色表示传入依赖项
- 侧面板 具有函数、类和docstrings
- 标记“重要” 要突出显示某些文件:
- 分组档案 :切换允许按目录可视化分组文件
- 过滤器“选择” :将所选节点与其后代和直系亲属隔离
- 分层导航 :按钮▲/▼用于在文件夹树中上下移动,带有深度指示器
- 显示/隐藏文件 :单击文件夹以一次隐藏/显示其所有文件
- 抑制伪造者 :侧边栏中的直接操作,确认 双击
- 死亡代码检测 :红色显示未使用的函数/类(死代码)
- 变更通知 :动画红色按钮,指示检测到的更改数,单击时手动更新图表
- 分析进口稳健性 :完全支持Python导入(相对、绝对、条件),并自动检测根源(
src/,lib/等)用于无噪声图。
要禁用:
semcp --no-web
3.研究(MCP工具)
在您的代理(Cursor、Claude等)中,您可以访问以下工具:
-
semsearch:简单的语义搜索。- 查询 :“如何处理身份验证?”
- 全局 :“src/*.py”(可选)
-
semgraph:语义搜索 完整的依赖关系图上下文.- 返回找到的每个文件:
- 进口分拣员/入境者(直接连接)
- 与中间文件的间接连接
- 代码结构(具有完整DocStrings的类/函数)
- 死码检测(未使用符号)
- 如果文件已标记,则标记“重要”
- 查询 :“依赖性分析器”(英国要求)
- 限制 :10(可选,最大文件数)
- 返回找到的每个文件:
详细说明
该项目为本地语义搜索提供了标准化接口。
- 角色 :在代码中索引和搜索。
- 通量 :用户启动
semcp在文件夹->MCP服务器重新配置->代理使用工具semsearch. - 演出 :使用增量索引仅处理文件更改(时间戳)。
- 可视化 :具有现代web界面的交互式依赖关系图(cytoscape.js)。
主要成果
(即将推出)
文档索引
| 标题 | 描述 |
|---|---|
| 任务 | 技术任务索引 |
| 故障排除 | 常见问题解决指南 |
回购计划
.
├── semantic_search_mcp/ # Code source
│ ├── cli.py # CLI principal (semcp)
│ ├── server.py # Serveur MCP
│ ├── indexer/ # Moteur d'indexation sémantique
│ ├── graph/ # Analyseur de dépendances
│ └── web/ # Serveur web (FastAPI + frontend)
│ ├── api.py # API REST
│ └── static/ # HTML, CSS, JS
├── docs/ # Documentation
├── README.md # Ce fichier
└── install.sh # Script d'installation
主要输入脚本
| 命令 | 描述 |
|---|---|
semcp |
配置当前文件夹并启动web可视化 |
semcp --no-web |
无界面网络模式 |
semcp --force-cpu 强制使用CPU(禁用GPU检测) |
|
semantic_search_mcp 启动MCP服务器(内部) |
辅助可执行脚本和实用程序
(目前没有)
路线图
- [x] 项目初始化
- [x] SEMCP CLI的实现
- [x] MCP服务器实现
- [x] 本地迁移指数
- [x] 优化指数化
- [x] 修复安装脚本
- [x] 增强工具描述
- [x] 优化工具描述
- [x]动态上下文管理
- [x]通过本地UV工具简化安装
- [x] 依赖关系的图形可视化
- [x]实时图表更新(WebSocket+文件观察程序)
- [x] 分组档案 (复合节点)
- [x] 简化档案 (仅低级别)
- [x]通过web界面删除文件(双击)
- [x]死码检测(Dead Code Detection)
- [x]MCP工具
semgraph(语义搜索+图形+详细信息) - [x]用SimpleVectorstore(零锁)替换QDRant
- [x]修复视图稳定性(在WebSocket更新期间保留视口)
- [x] Highlight完整后代 (过渡继承人+直接进口商)
- [x] 修复布鲁特观察者和过滤器 (集中式constants.py+support.tex、.sh)
- [x] 修复GPU检测和安装 (备用nvidia smi+清洁安装CUDA 12)
- [x] 绝对GPU性能保证(严格回退控制)
- [x] 保护MCP(零污染)的STDOUT流