Obsidian MCP 服务器
专为 LLM 与 Obsidian Vault 交互而设计的模型上下文协议服务器。它基于 TypeScript 构建,具有安全的 API 通信、高效的文件操作和全面的搜索功能,使 AI 助手能够通过简洁灵活的工具界面无缝管理知识库。
模型上下文协议(MCP)使AI模型能够通过标准化接口与外部工具和资源进行交互。
需要 Obsidian 中的本地 REST API 插件。
📋 目录
✨ 特点
- 文件操作:具有验证、资源监控和错误处理的原子文件/目录操作。
- 搜索系统:具有可配置上下文、高级 JsonLogic 查询、全局模式和前置字段支持的全文搜索。
- 属性管理:YAML 前端解析、智能合并、自动时间戳和自定义字段支持。
- 安全性和性能:API 密钥认证、速率限制、SSL 选项、资源监控和正常关机。
🚀 安装
注意:需要在 Obsidian 中启用 Node.js 和本地 REST API 插件。
选项 1:克隆和构建(用于开发或直接使用)
- 在 Obsidian 中启用本地 REST API 插件。
- 克隆存储库、安装依赖项并构建项目:
- 使用环境变量配置服务器(请参阅下面的配置部分)。
- 配置您的 MCP 客户端设置(例如
claude_desktop_config.json
或cline_mcp_settings.json
)以包含服务器。有关详细信息,请参阅配置部分。
选项 2:通过 npm 安装(作为依赖项或全局安装)
- 在 Obsidian 中启用本地 REST API 插件。
- 使用 npm 安装包:
- 配置您的 MCP 客户端设置(例如
claude_desktop_config.json
或cline_mcp_settings.json
)以包含服务器。有关详细信息,请参阅配置部分。
⚙️ 配置
添加到您的 MCP 客户端设置(例如, claude_desktop_config.json
或cline_mcp_settings.json
):
环境变量:
OBSIDIAN_API_KEY
(必需):来自 Obsidian 的本地 REST API 插件设置中的 API 密钥。VERIFY_SSL
(默认值:false
):启用 SSL 验证。对于自签名证书或本地使用,请设置为false
。OBSIDIAN_PROTOCOL
(默认值:"https"
):协议(http
或https
)。OBSIDIAN_HOST
(默认值:"127.0.0.1"
):主机地址。OBSIDIAN_PORT
(默认值:27124
):端口号。REQUEST_TIMEOUT
(默认值:5000
):请求超时(毫秒)。MAX_CONTENT_LENGTH
(默认值:52428800
[50MB]):最大响应内容长度(字节)。MAX_BODY_LENGTH
(默认值:52428800
[50MB]):最大请求正文长度(字节)。RATE_LIMIT_WINDOW_MS
(默认值:900000
[15 分钟]):速率限制窗口(毫秒)。RATE_LIMIT_MAX_REQUESTS
(默认值:200
):每个窗口的最大请求数。TOOL_TIMEOUT_MS
(默认值:60000
[1 分钟]):工具执行超时(毫秒)。
🛠️ 工具
工具 | 描述 | 参数 |
---|---|---|
obsidian_list_files_in_vault | 列出 Obsidian Vault 根目录下的所有文件和目录。返回一个包含文件、文件夹及其类型的详细层次结构。 | 没有任何 |
obsidian_list_files_in_dir | 列出 Obsidian Vault 中特定文件夹中的文件和目录。返回层级结构。注意:结果中可能不包含空目录。有助于探索 Vault 的组织结构。 | dirpath* :列出文件的路径(相对于文件库根目录)。请注意,不会返回空目录。 |
obsidian_get_file_contents | 检索 Obsidian 保险库中指定文件的完整内容。支持多种可读文件格式。 | filepath* :相关文件的路径(相对于您的保管库根目录)。 |
obsidian_append_content | 将提供的内容附加到 Vault 中指定文件的末尾。如果该文件不存在,则会创建该文件。 | filepath* :文件路径(相对于保管库根目录) content* :要附加到文件的内容 |
obsidian_update_content | 使用提供的内容覆盖 Vault 中指定文件的全部内容。如果文件不存在,则会创建该文件。 | filepath* :文件路径(相对于保管库根目录) content* :文件的新的完整内容(覆盖现有内容)。 |
obsidian_find_in_file | 对 Obsidian Vault 中的所有文件进行全文搜索。返回匹配的文件及其上下文。如果匹配的文件超过 5 个,则仅返回文件名和匹配次数,以避免输出过多信息。非常适合查找特定文本、标签或模式。 | query* :要搜索的文本模式。可以包含标签、关键词或短语。contextLength:用于提供上下文contextLength 每个匹配项周围的字符数(默认值:10)。 |
obsidian_complex_search | 使用 JsonLogic 查询根据路径模式查找文件。主要支持使用glob 进行模式匹配(例如 '*.md')以及使用var 访问“path”变量。注意:对于基于内容的搜索(全文、内容中的标签、日期),请使用obsidian_find_in_file 。 | query* :一个 JsonLogic 查询对象,用于定位文件路径。例如: {"glob": ["*.md", {"var": "path"}]} 匹配所有 Markdown 文件。 |
obsidian_get_tags | 检索 Obsidian Vault 中 Markdown 文件的 YAML 前置内容中定义的所有标签,以及它们的使用次数和关联文件路径。您也可以选择将搜索范围限制在特定文件夹中。 | path :可选文件夹路径(相对于保管库根目录)以限制标签搜索。 |
obsidian_get_properties | 从指定 Obsidian 笔记的 YAML 前置内容中检索属性(例如标题、标签、状态)。返回所有已定义的属性,包括任何自定义字段。 | filepath* :注释文件的路径(相对于保险库根目录) |
obsidian_update_properties | 更新指定 Obsidian 笔记的 YAML 前置内容中的属性。默认情况下,数组属性(例如标签、类型、状态)会被合并;请使用“replace”选项覆盖它们。系统会自动处理自定义字段并管理时间戳。请参阅 schema 了解支持的标准字段(例如标题、作者、标签、状态等)。 | filepath* :笔记文件的路径(相对于库根目录) properties* :要更新的属性replace :如果为 true,数组属性(例如标签、状态)将完全替换为指定值,而不是与现有值合并。默认为 false(合并)。 |
🔗 资源
资源 | 描述 | 返回 |
---|---|---|
黑曜石://标签 | Obsidian 保险库中使用的所有标签及其使用次数的列表 | 应用程序/json |
📁 项目结构
该项目采用模块化架构,关注点明确分离:
👥 贡献
- 分叉存储库
- 创建功能分支
- 提交拉取请求
对于错误和功能,请在https://github.com/cyanheads/obsidian-mcp-server/issues上创建问题。
📄 许可证
Apache 许可证 2.0
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
通过模型上下文协议实现 LLM 和 Obsidian 保险库之间的交互,支持安全文件操作、内容管理和高级搜索功能。
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to interact with Salesforce data through SOQL queries, SOSL searches, and various API operations including record management.Last updated -1077PythonMIT License
- AsecurityAlicenseAqualityAdds powerful Hacker News integration to LLM clients, allowing users to access stories, comments, user profiles, and search functionality through the Model Context Protocol.Last updated -9254JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server enabling LLMs to search, retrieve, and manage documents through Rememberizer's knowledge management API.Last updated -24PythonApache 2.0
- -securityAlicense-qualityFEGIS is a Model Context Protocol server that gives LLMs structured, persistent and portable memory through customizable cognitive tools defined in schema.Last updated -16PythonMIT License