使用说明
智能搜索MCP服务器
黑曜石拱顶的语义搜索 克劳德代码。按含义查找注释,而不仅仅是关键字。
基于预先计算 智能连接 嵌入——确实如此 不 要求黑曜石正在运行。
运作原理
"What did we discuss in out last brainstorming session?"
|
v
[bge-micro-v2] Encode query -> 384-dim vector (ONNX, local)
|
v
[AJSON Parser] Load pre-computed note embeddings from .smart-env/
|
v
[Cosine Sim] Compare query vector vs. all stored vectors
|
v
[Results] Ranked note paths + similarity scores
服务器读取 .smart-env/multi/*.ajson Smart Connections在vault中生成的文件。查询编码使用相同的模型(TaylorAI/bge-micro-v2)因此向量空间匹配。
先决条件
- Node.js >= 18
- 克劳德代码 已安装CLI
- 一 黑曜石拱顶 随着 智能连接 安装插件并生成嵌入(查找
.smart-env/multi/vault中的文件夹)
快速开始
窗户:
git clone https://github.com/ekmungi/smart-search-mcp.git
cd smart-search-mcp
setup.bat REM auto-detects vault path
setup.bat C:\path\to\your\vault REM or specify explicitly
macOS/Linux:
git clone https://github.com/ekmungi/smart-search-mcp.git
cd smart-search-mcp
./setup.sh # auto-detects vault path
./setup.sh /path/to/your/vault # or specify explicitly
这两个脚本都安装依赖项,找到您的保管库,并使用Claude Code注册MCP服务器。
手动设置 (如果你愿意的话):
npm install
claude mcp add -s user smart-search \
-e OBSIDIAN_VAULT_PATH="/path/to/your/vault" \
-- node /absolute/path/to/src/server.js
通过以下方式进行验证:
claude mcp list
# Should show: smart-search: ... - Connected
MCP工具
注册后,Claude Code会话中有四个工具可用:
| 工具 | 目的 | 关键参数 |
|---|---|---|
semantic_search |
按含义查找注释 | query (字符串), limit (默认值10), threshold (默认值0.3), type (“源”或“块”), folder (字符串) |
find_related |
查找与给定注释类似的注释 | note_path (字符串), limit (默认值10), type (“源”或“块”) |
vault_stats |
检查嵌入健康状况 | 无 |
read_note |
按路径读取笔记内容 | note_path (字符串) |
过滤参数:
type:筛选结果以记录级别条目("source")或航向水平块("block").省略返回两者。folder:限制semantic_search到vault子文件夹(例如。"Projects/").不区分大小写的前缀匹配。
示例用法(克劳德代码)
> Search my vault for notes about project planning
Claude uses semantic_search("project planning") and returns:
01 PROJECTS/App_Redesign/Planning_Notes.md (score: 0.847)
02 REFERENCE/Agile_Sprint_Templates.md (score: 0.723)
00 INBOX/Meeting_Notes_Q1_Kickoff.md (score: 0.681)
> Read that first note
Claude uses read_note("PROJECTS/App_Redesign/Planning_Notes.md") and returns
the full Markdown content of the note (truncated at 10,000 chars if needed).
分数解释
| 分数范围 | 含义 |
|---|---|
| 0.7-1.0 | 强匹配 |
| 0.5-0.7 | 中等匹配 |
| 0.3--0.5 | 弱匹配(默认阈值包括在内) |
| 低于0.3 | 已过滤掉 |
建筑
src/
server.js MCP server entry point, tool registration
search.js Orchestrator: semantic search, find related, stats
reader.js Note reader: path extraction, safety validation, file reading
ajson-parser.js Parse Smart Connections .ajson embedding files
embedder.js Query encoding via @huggingface/transformers (ONNX)
similarity.js Cosine similarity computation
tests/
server.test.js 18 tests
search.test.js 35 tests
reader.test.js 17 tests
ajson-parser.test.js 18 tests
embedder.test.js 13 tests
similarity.test.js 15 tests
总共116个测试,91%的代码覆盖率。
发展
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage report
嵌入器测试在第一次运行时下载bge-micro-v2模型(约23 MB)。后续运行使用缓存的模型。
依赖项
| 包装 | 用途 |
|---|---|
| @拥抱面/变压器 | 查询编码的ONNX模型推理 |
| @模型上下文协议/sdk | MCP服务器协议 |
| 黄道带 | 工具参数的模式验证 |
智能连接嵌入的工作原理
这 智能连接 黑曜石插件会预先计算保险库中每个音符和标题的嵌入。它将它们存储为 .ajson 文件在 .smart-env/multi/ (每张纸币一个文件)。每个文件包含:
- 源条目 (
smart_sources:):整个音符嵌入一个 - 阻止条目 (
smart_blocks:):每个标题部分嵌入一个
此服务器直接读取这些文件,因此Obsidian不需要运行。但是,如果您添加或编辑笔记,则需要打开一次Obsidian,以便Smart Connections可以重新索引。
许可证
麻省理工学院
