/ 目录 / 演练场 / Semble
● 社区 MinishLab ⚡ 即开即用

Semble

作者 MinishLab · MinishLab/semble

代码搜索的 token 消耗约为 grep+read 方案的 2%——语义 + 词法双引擎,完全本地,百万行代码库亚秒级响应。

Semble 是 Minish Lab 出品的代码搜索 MCP。它用稀疏+稠密混合 embedding 对代码库建索引,返回的语义搜索结果比 grep 更精准——无需把整个文件都倒进上下文。与标准的「先 grep 再 read」模式相比,token 消耗大幅降低,在大型 monorepo 上尤为突出。

为什么要用

核心特性

实时演示

实际使用效果

semble-mcp.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "semble-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "semble[mcp]",
        "semble"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "semble-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "semble[mcp]",
        "semble"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "semble-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "semble[mcp]",
        "semble"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "semble-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "semble[mcp]",
        "semble"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "semble-mcp",
      "command": "uvx",
      "args": [
        "--from",
        "semble[mcp]",
        "semble"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "semble-mcp": {
      "command": {
        "path": "uvx",
        "args": [
          "--from",
          "semble[mcp]",
          "semble"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add semble-mcp -- uvx --from semble[mcp] semble

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: Semble

在大型代码库中快速定位某个概念的实现

👤 探索大型代码库的工程师 ⏱ ~5 min beginner

何时使用: 需要一次性回答「session 验证逻辑在哪里?」这样的问题。

前置条件
  • 代码库已建索引semble index .——大型代码库首次运行需要几分钟
步骤
  1. 搜索
    Use semble. Find where session token validation logic lives. Return file:line ranges.✓ 已复制
    → 3-5 个命中结果,带具体的 file:line 范围
  2. 精准阅读
    Read just those line ranges (not whole files). Summarize the validation flow.✓ 已复制
    → 简洁的流程总结;token 占用极小

结果: 用 grep+read 所需 token 的零头回答了问题。

注意事项
  • 大型 rebase 后索引过期 — 运行 semble reindex,或配置文件监听 hook
搭配使用: filesystem

审计某个编码模式在代码库中的所有用法

👤 重构团队 ⏱ ~15 min intermediate

何时使用: 你即将废弃一个工具函数,需要找出所有使用点及其变体。

步骤
  1. 词法搜索
    Find all calls to legacy_token_check.✓ 已复制
    → 精确匹配列表
  2. 语义搜索
    Find functions that do the same job under a different name.✓ 已复制
    → 功能相似的实现被标记出来

结果: 开始重构前就掌握完整的影响范围。

注意事项
  • 语义搜索有误报 — 逐个验证候选结果;semble 提供相似度分数辅助分级

组合

与其他 MCP 搭配,撬动十倍杠杆

semble-mcp + filesystem

搜索 → 精准阅读模式(只读 semble 返回的范围)

Use semble to find candidates, then filesystem to read just the matched ranges.✓ 已复制
semble-mcp + github

构建一个更新所有调用点的重构 PR

Find all call sites with semble, generate a PR that updates each.✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
search query, k?, mode? 默认——按概念搜索 free
lexical_search pattern, k? 精确 token / 正则表达式搜索 free
index path 首次运行 / 大规模重构后 free
reindex path 编辑后同步更新 free

成本与限制

运行它的成本

API 配额
无——本地运行
每次调用 Token 数
极低——通常 100-500
费用
免费
提示
索引一次,查询不断;token 节省效果会随使用次数叠加

安全

权限、密钥、影响范围

最小权限: Local file read for indexing
凭据存储:
数据出站: 无——embedding 留在本地

故障排查

常见错误与修复

Indexing OOM on huge repos

在配置中降低 batch size,或按包分别建索引

Search returns nothing relevant

重新建索引——本地代码可能已发生偏移;或优化查询语句

uvx install hangs

提前执行 uv pip install semble[mcp] 预热

替代方案

Semble 对比其他方案

替代方案何时用它替代权衡
ripgrep + grep MCP只需要精确匹配搜索无语义召回;结果 token 成本更高
ast-grep / serena需要语法感知的结构化搜索替换不同的模型;不基于 embedding

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills