Obsidian Lumina MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Obsidian Lumina MCPsearch my notes about machine learning algorithms"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Obsidian Lumina MCP

Lumina (拉丁语:光、启迪) - 为您的 Obsidian 笔记带来智能搜索的"光"
一个基于 Model Context Protocol (MCP) 的 Obsidian 笔记向量搜索服务器。通过语义搜索技术,让 AI 助手能够智能地理解和搜索您的 Obsidian 笔记内容。
✨ 项目名称来源
Obsidian-Lumina-MCP 的名称含义:
Obsidian: 黑曜石,代表您的笔记知识库
Lumina: 拉丁语中的"光"或"启迪",象征这个项目为您的笔记带来智能搜索的"光",帮助您快速找到所需的知识
MCP: Model Context Protocol,使 AI 助手能够访问和理解您的笔记
Related MCP server: Obsidian MCP
🎯 功能特性
🔍 向量语义搜索: 使用 Ollama 嵌入模型将笔记内容转换为向量,支持语义相似度搜索,不仅仅是关键词匹配
📁 自动文件监控: 使用 chokidar 实时监控 Obsidian 笔记文件夹,自动索引新增和修改的文件
📝 段落级索引: 按段落(
\n\n)分割笔记内容,提供更精确的搜索结果🚀 MCP 协议支持: 通过 MCP 协议提供
search_notes工具,可与 Cline、Claude Desktop 等客户端无缝集成⚡ 增量更新: 智能检测文件变化,只处理新增或修改的文件,大幅提升启动速度
🛡️ MCP 规范遵循: 严格遵循 MCP 规范,确保与所有兼容客户端的稳定连接
📋 前置要求
在开始之前,请确保您的系统满足以下要求:
必需软件
Node.js >= 18
node --version # 检查版本下载地址: https://nodejs.org/
Ollama
下载地址: https://ollama.com/
安装后确保 Ollama 服务正在运行:
ollama serve
嵌入模型
推荐模型:
bge-m3:latest或nomic-embed-text下载模型:
ollama pull bge-m3:latest # 或 ollama pull nomic-embed-text
必需信息
Obsidian 笔记文件夹路径: 您需要知道 Obsidian vault 的绝对路径
Windows 示例:
C:\Users\YourName\Documents\Obsidian VaultmacOS/Linux 示例:
/Users/YourName/Documents/Obsidian Vault
🚀 快速开始
1. 安装项目
# 克隆项目
git clone <repository-url>
cd Obsidian-Lumina-MCP
# 安装依赖
npm install2. 编译项目
npm run build3. 配置 MCP 客户端
选择您使用的客户端,按照下方配置说明进行设置。
🔧 MCP 客户端配置
方式 1: Cline (VS Code 扩展) - 推荐
Cline 是 VS Code 的 AI 编程助手扩展,支持 MCP 协议。
配置文件位置
Windows:
%APPDATA%\Code\User\cline_mcp_settings.json或
C:\Users\YourName\AppData\Roaming\Code\User\cline_mcp_settings.jsonmacOS:
~/Library/Application Support/Code/User/cline_mcp_settings.jsonLinux:
~/.config/Code/User/cline_mcp_settings.json配置内容
在 cline_mcp_settings.json 文件中添加以下配置(如果文件不存在则创建):
{
"mcpServers": {
"obsidian-lumina": {
"command": "node",
"args": ["D:\\code_project\\Obsidian-Lumina-MCP\\dist\\index.js"],
"env": {
"OBSIDIAN_PATH": "C:\\Users\\YourName\\Documents\\Obsidian Vault",
"EMBED_MODEL": "bge-m3:latest",
"DB_PATH": "./.lancedb"
}
}
}
}重要提示:
将
args中的路径替换为您的项目绝对路径将
OBSIDIAN_PATH替换为您的 Obsidian 文件夹绝对路径Windows 路径中的反斜杠需要转义为
\\,或使用正斜杠/DB_PATH可以使用相对路径(相对于项目目录),会自动解析为绝对路径
使用示例
配置完成后,重启 VS Code,然后在 Cline 对话中:
搜索我的笔记中关于机器学习的内容或
帮我找一下关于 TypeScript 的笔记方式 2: Claude Desktop
配置文件位置
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
配置内容
{
"mcpServers": {
"obsidian-lumina": {
"command": "node",
"args": ["D:\\code_project\\Obsidian-Lumina-MCP\\dist\\index.js"],
"env": {
"OBSIDIAN_PATH": "C:\\Users\\YourName\\Documents\\Obsidian Vault",
"EMBED_MODEL": "bge-m3:latest",
"DB_PATH": "./.lancedb"
}
}
}
}注意:
保存配置文件后,完全退出并重新启动 Claude Desktop
确保路径使用绝对路径
方式 3: MCP Inspector (测试工具)
MCP Inspector 是官方提供的测试工具,适合开发和调试。
安装
npm install -g @modelcontextprotocol/inspector启动
mcp-inspector配置
在 Inspector 界面中:
Command:
nodeArgs:
[项目绝对路径]/dist/index.jsEnvironment Variables:
OBSIDIAN_PATH=[您的 Obsidian 路径] EMBED_MODEL=bge-m3:latest DB_PATH=./.lancedb
详细步骤请参考 MCP_TEST_GUIDE.md。
🛠️ 技术栈
核心技术
TypeScript: 类型安全的 JavaScript,提供更好的开发体验和代码质量
Node.js ESM: 使用 ES Modules,支持现代 JavaScript 特性
向量搜索技术
Ollama: 本地大语言模型和嵌入模型服务
支持多种嵌入模型(如
bge-m3,nomic-embed-text)本地运行,数据隐私安全
LanceDB: 高性能向量数据库
支持快速向量相似度搜索
数据持久化存储
自动处理向量维度
文件监控
chokidar: 跨平台文件系统监控库
实时监控文件变化
支持 Windows、macOS、Linux
高效的事件驱动架构
MCP 协议
@modelcontextprotocol/sdk: 官方 MCP SDK
标准化的工具注册和调用
STDIO 传输支持
类型安全的接口定义
数据验证
zod: TypeScript 优先的模式验证库
工具参数验证
类型安全的 schema 定义
💡 实现思路
架构设计
┌─────────────────┐
│ MCP Client │ (Cline / Claude Desktop)
│ (Cline/Claude) │
└────────┬────────┘
│ MCP Protocol (JSON-RPC over STDIO)
│
┌────────▼─────────────────────────────────┐
│ Obsidian Lumina MCP Server │
│ ┌─────────────────────────────────────┐ │
│ │ MCP Server (StdioServerTransport) │ │
│ │ - 注册 search_notes 工具 │ │
│ │ - 处理工具调用 │ │
│ └──────────────┬──────────────────────┘ │
│ │ │
│ ┌──────────────▼──────────────────────┐ │
│ │ VectorService │ │
│ │ - 向量生成 (Ollama) │ │
│ │ - 向量存储 (LanceDB) │ │
│ │ - 向量搜索 │ │
│ └──────────────┬──────────────────────┘ │
│ │ │
│ ┌──────────────▼──────────────────────┐ │
│ │ FileWatcher │ │
│ │ - 文件监控 (chokidar) │ │
│ │ - 增量更新 │ │
│ │ - 自动索引 │ │
│ └────────────────────────────────────┘ │
└─────────────────────────────────────────┘
│
│
┌────────▼────────┐ ┌──────────────┐
│ Ollama Service │ │ LanceDB │
│ (Embeddings) │ │ (Vector DB) │
└─────────────────┘ └──────────────┘工作流程
初始化阶段
连接 LanceDB 数据库
检测向量维度(通过测试 embedding)
创建或打开数据表
启动优化
立即启动 MCP Server: 先启动 MCP Server 并响应客户端连接
后台全量扫描: 在后台异步执行全量扫描,不阻塞服务器启动
增量更新: 检查文件修改时间,跳过未修改的文件
文件处理流程
文件变化检测 ↓ 检查文件修改时间 ↓ 已存在且未修改? → 跳过 ↓ 文件不存在或已修改 ↓ 读取文件内容 ↓ 按段落分割 (\n\n) ↓ 生成向量 (Ollama) ↓ 存储到数据库 (LanceDB)搜索流程
用户查询 ↓ 转换为向量 (Ollama) ↓ 向量相似度搜索 (LanceDB) ↓ 返回最相关的 5 条结果
关键优化
增量更新机制
通过比较文件修改时间判断是否需要重新处理
大幅减少不必要的 embedding 计算
提升启动速度和运行效率
异步启动
MCP Server 立即启动,不等待全量扫描
解决客户端连接超时问题
全量扫描在后台异步进行
路径自动解析
自动将相对路径解析为绝对路径
确保无论从哪里启动都能正常工作
支持不同工作目录场景
MCP 规范遵循
所有日志输出到 stderr,不干扰 JSON-RPC 消息
标准化的错误处理
类型安全的工具接口
📖 工具说明
search_notes
搜索 Obsidian 笔记的向量语义搜索工具。
参数:
query(string, 必需): 搜索查询文本
返回:
最多 5 条最相关的笔记段落
每条结果包含:
content: 笔记内容片段filePath: 文件路径score: 相似度分数(越小越相似)
示例:
{
"query": "如何学习 TypeScript"
}返回示例:
[
{
"content": "TypeScript 是 JavaScript 的超集...",
"filePath": "C:\\Users\\YourName\\Documents\\Obsidian Vault\\Coding\\TypeScript.md",
"score": 0.75
},
...
]🔍 工作原理详解
1. 向量化过程
文本输入: 读取 Obsidian 笔记文件
段落分割: 按双换行符(
\n\n)分割为段落向量生成: 使用 Ollama 嵌入模型将每个段落转换为高维向量
存储: 将向量、原始文本、文件路径、修改时间存储到 LanceDB
2. 搜索过程
查询向量化: 将用户查询转换为向量
相似度计算: 在 LanceDB 中计算查询向量与所有存储向量的相似度
结果排序: 按相似度排序,返回最相关的结果
3. 增量更新
文件监控: 使用 chokidar 实时监控文件系统变化
时间戳比较: 比较文件修改时间与数据库中的记录
智能跳过: 未修改的文件跳过处理,只处理新增或修改的文件
🛡️ MCP 规范遵循
本项目严格遵循 Model Context Protocol 规范:
✅ STDIO 传输规范: 所有日志输出使用
console.error()写入 stderr,确保不会干扰 JSON-RPC 消息传输✅ 工具注册: 使用标准的 MCP SDK 注册工具,提供类型安全的接口
✅ 错误处理: 符合 MCP 错误响应格式,确保客户端能正确处理错误情况
✅ 快速启动: 优化启动流程,避免客户端连接超时
重要: 对于 STDIO 传输的 MCP 服务器,绝对不能向 stdout 写入任何内容(包括 console.log()),这会破坏 JSON-RPC 消息。本项目所有日志都输出到 stderr。
🐛 故障排除
连接超时问题
如果 MCP 客户端显示 "Request timed out":
检查服务器是否能手动启动:
node dist/index.js如果启动失败,查看错误信息
检查 Ollama 服务:
ollama list确保 Ollama 正在运行且模型已下载
检查路径配置:
确保使用绝对路径
检查路径是否正确转义(Windows 使用
\\)
Ollama 连接失败
确保 Ollama 服务正在运行:
ollama serve检查模型是否已下载:
ollama list验证
EMBED_MODEL环境变量是否正确
文件监控不工作
检查
OBSIDIAN_PATH是否正确设置确保路径是绝对路径
检查文件权限
向量搜索返回空结果
确保已完成初始全量扫描(查看日志)
检查 LanceDB 数据库中是否有数据
验证文件是否被正确索引
编译错误
确保已安装所有依赖:
npm install检查 TypeScript 版本:
npm list typescript清理并重新编译:
# Windows rmdir /s /q dist npm run build # macOS/Linux rm -rf dist npm run build
📁 项目结构
Obsidian-Lumina-MCP/
├── src/
│ └── index.ts # 主程序文件
├── dist/ # 编译输出目录
├── .lancedb/ # LanceDB 数据库目录(自动创建)
├── .env # 环境变量配置(需要创建)
├── .env.example # 环境变量示例
├── scripts/ # 测试脚本
│ ├── test-basic.ts # 基础功能测试
│ └── test-server.ts # 服务器功能测试
├── package.json
├── tsconfig.json
└── README.md🧪 开发
开发模式
使用 tsx 直接运行(无需编译,支持热重载):
npm run dev生产模式
编译 TypeScript:
npm run build运行编译后的代码:
npm start
测试
# 基础功能测试
npm run test:basic
# 服务器功能测试
npm run test:server📚 相关文档
USAGE_GUIDE.md- 详细使用指南MCP_TEST_GUIDE.md- MCP Inspector 测试指南VERIFICATION.md- 验证检查清单QUICK_TEST.md- 快速测试指南
📄 许可证
ISC
🤝 贡献
欢迎提交 Issue 和 Pull Request!
🙏 致谢
Model Context Protocol - MCP 协议规范
Ollama - 本地 LLM 和嵌入模型
LanceDB - 向量数据库
Cline - VS Code AI 编程助手
让 Lumina 为您的知识库带来智能搜索的"光"! ✨
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- Alicense-qualityDmaintenanceA Model Context Protocol server that enables semantic search and retrieval of Apple Notes content, allowing AI assistants to access, search, and create notes using on-device embeddings.2,4622MIT
- AlicenseBqualityFmaintenanceA Model Context Protocol server that enables AI assistants to read, write, and manipulate notes in your Obsidian vault through a standardized interface.253,6974ISC
- Alicense-qualityDmaintenanceA server implementation that allows AI assistants to read, create, and manipulate notes in Obsidian vaults through the Model Context Protocol.1,8716MIT
- Alicense-qualityCmaintenanceA Model Context Protocol server that provides comprehensive access to Obsidian vaults with Claude.ai remote integration, Tailscale support, and advanced query capabilities.6,10433Apache 2.0
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…
A Model Context Protocol server for Wix AI tools
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/felix-windsor/Obsidian-Lumina-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server