/ 目錄 / 演練場 / Semble
● 社群 MinishLab ⚡ 即開即用

Semble

作者 MinishLab · MinishLab/semble

程式碼搜尋的 token 耗用僅約 grep+read 的 2%——語義 + 詞彙雙重搜尋,完全本機,百萬行規模的 repo 也能在次秒內回應。

Semble 是 Minish Lab 出品的程式碼搜尋 MCP。它用混合稀疏+稠密嵌入為 repo 建立索引,提供比 grep 更精準的語義搜尋結果——無需傾印整個檔案。與標準的「grep 後讀取」模式相比,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

在大型 repo 中找到某個概念的實作位置

👤 探索大型程式碼庫的工程師 ⏱ ~5 min beginner

何時使用: 你需要一次回答「session 驗證邏輯在哪裡?」

前置條件
  • Repo 已建立索引semble index .——第一次對大型 repo 需要幾分鐘
步驟
  1. 搜尋
    使用 semble。找出 session token 驗證邏輯所在的位置。回傳 file:line 範圍。✓ 已複製
    → 3–5 個含具體 file:line 範圍的命中結果
  2. 精準讀取
    只讀取那些行數範圍(非整個檔案)。摘要驗證流程。✓ 已複製
    → 簡潔的流程摘要;token 佔用小

結果: 以 grep+read 耗費的一小部分 token 取得問題的解答。

注意事項
  • 大型 rebase 後索引過期semble reindex 或設置檔案監視鉤子
搭配使用: filesystem

審計某個程式碼模式在 repo 中的所有使用情況

👤 重構團隊 ⏱ ~15 min intermediate

何時使用: 你要廢棄一個 helper,想找出它的所有使用位置和變體。

步驟
  1. 詞彙搜尋
    找出所有對 legacy_token_check 的呼叫。✓ 已複製
    → 精確匹配列表
  2. 語義搜尋
    找出以不同名稱做同樣事情的函式。✓ 已複製
    → 類似實作已標記

結果: 開始重構前就完全掌握影響範圍。

注意事項
  • 語義搜尋出現偽陽性 — 逐一驗證每個候選項;semble 提供相似度分數供分流

組合

與其他 MCP 搭配,撬動十倍槓桿

semble-mcp + filesystem

搜尋 → 精準讀取模式(只讀 semble 回傳的範圍)

用 semble 找出候選項,再用 filesystem 只讀取匹配的行數範圍。✓ 已複製
semble-mcp + github

建立一個更新所有呼叫位置的重構 PR

用 semble 找出所有呼叫位置,生成一個更新每個位置的 PR。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
search query, k?, mode? 預設——依概念查找 免費
lexical_search pattern, k? 精確 token 或正則表達式 免費
index path 第一次執行或大型重構後 免費
reindex path 編輯後補上更新 免費

成本與限制

運行它的成本

API 配額
無——本機
每次呼叫 Token 數
極少——通常 100–500
費用
免費
提示
一次建立索引;查詢成本低。token 節省效果會累積。

安全

權限、密鑰、影響範圍

最小權限: 本機檔案讀取(用於建立索引)
憑證儲存:
資料出站: 無——嵌入留在本機

故障排查

常見錯誤與修復

大型 repo 建立索引時記憶體不足

在設定中降低批次大小,或按套件分別建立索引

搜尋沒有回傳相關結果

重新建立索引——本機副本可能已偏移;或精修查詢

uvx 安裝卡住

提前暖機:uv pip install semble[mcp]

替代方案

Semble 對比其他方案

替代方案何時用它替代權衡
ripgrep + grep MCP你只需要精確匹配搜尋無語義召回;結果的 token 成本更高
ast-grep / serena你想要語法感知的結構性搜尋替換不同模型;非基於嵌入

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills