用于OpenCode的黑曜石MCP服务器
本地MCP(模型上下文协议)服务器,使用本地嵌入和SQLite向量存储在黑曜石保险库上提供语义搜索。
特性
- 语义搜索 --按含义查找笔记,而不仅仅是关键字
- 完全本地化 -没有API密钥,没有云服务。嵌入在您的机器上运行
- 增量索引 --仅重新嵌入已更改的文件(基于内容的更改检测)
- 孤儿清理 --自动从索引中删除已删除/重命名的文件
- Markdown感知分块 --尊重标题、正文和文档结构
- 标签支持 --按黑曜石标签搜索和过滤(frontmatter+内联)
- 轻量级 --基于SQLite,无需Docker或外部数据库
设置
npm install
npm run build配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| OBSIDIAN_VAULT_PATH | (必填) | 黑曜石保险库的路径 |
| OBSIDIAN_IGNORED_KEYS | 查看时间,修改日期 | 逗号分隔的前体键,用于更改检测 |
这 OBSIDIAN_IGNORED_KEYS 设置允许您从内容哈希计算中排除volatile frontmatter字段。当只有元数据(如视图计数或修改时间戳)发生变化时,这可以防止不必要的重新索引,同时仍然检测到实际的内容变化。
用法
索引数据库
OBSIDIAN_VAULT_PATH=/path/to/vault npm run index独立
# Via environment variable
OBSIDIAN_VAULT_PATH=/path/to/vault npm start
# Via CLI argument
node dist/index.js /path/to/vault使用OpenCode
添加到您的 opencode.json:
{
"mcp": {
"obsidian-mcp": {
"type": "local",
"command": ["node", "/path/to/obsidian-mcp-for-opencode/dist/index.js"],
"environment": {
"OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault",
},
"timeout":600000,
"enabled": true
}
}
}MCP工具
| 工具 | 说明 |
|---|---|
search_notes | 跨保险库的语义搜索 |
read_note | 阅读特定笔记的完整内容 |
list_tags | 列出vault中的所有标记 |
search_by_tag | 按标签查找笔记 |
reindex | 重新索引保险库(增量或完整) |
vault_stats | 获取索引统计信息 |
技术栈
- 嵌入:
Xenova/multilingual-e5-small通过@xenova/transformers(384个维度,局部运行) - 向量存储:SQLite+
sqlite-vec扩展 - MCP-SDK:
@modelcontextprotocol/sdk - 分块:支持Markdown,通过
gray-matter
