语义搜索MCP服务器

Semantic Search MCP是一个MCP(Model Context Protocol)服务器,旨在为AI代理提供本地代码库的上下文语义搜索功能,支持智能索引和精确搜索工具。

  • by hjamet
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hjamet/semantic-search-mcp

使用说明

语义搜索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上使用服务器:

  1. 在项目根目录中打开终端。
  2. 启动 :
    semcp
    
  3. 就这样!上下文立即更新。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服务器(内部)

辅助可执行脚本和实用程序

(目前没有)

路线图