MCP-Obsidian 使用教程
1. 项目介绍
MCP-Obsidian 是一个通过 Obsidian REST API 与 Obsidian 交互的 MCP 服务器。它实现了多个工具来操作 Obsidian,如列出文件和目录、获取文件内容、搜索文档、修改文件内容等。这个项目适用于需要在代码中自动化处理 Obsidian 文件和内容的开发者。
2. 项目快速启动
在开始之前,请确保已经安装了 Obsidian 以及 Obsidian REST API 插件,并获取了 API Key。
环境配置
- 创建一个
.env
文件在项目工作目录中,并添加以下内容:
OBSIDIAN_API_KEY=你的Obsidian_API_KEY
确保替换 你的Obsidian_API_KEY
为你从 Obsidian 插件配置中获取的 API Key。
- 安装依赖项:
uv sync
- 运行服务器:
uv run mcp-obsidian
开发环境配置
对于开发环境,你需要在 claude_desktop_config.json
文件中配置服务器。以下是 macOS 和 Windows 系统的配置路径:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
在配置文件中添加以下内容:
{
"mcpServers": {
"mcp-obsidian": {
"command": "uv",
"args": ["--directory", "<dir_to>/mcp-obsidian", "run", "mcp-obsidian"]
}
}
}
确保替换 <dir_to>
为你的项目目录路径。
3. 应用案例和最佳实践
列出所有文件和目录
# 列出根目录下的所有文件和目录
mcp_obsidian.list_files_in_vault()
获取文件内容
# 获取指定文件的内容
file_path = 'path/to/your/file.md'
mcp_obsidian.get_file_contents(file_path)
搜索文档
# 搜索包含特定文本的文档
text_query = '搜索关键字'
mcp_obsidian.search(text_query)
修改文件内容
# 向现有文件追加内容
file_path = 'path/to/your/file.md'
content_to_append = '这是追加的内容'
mcp_obsidian.append_content(file_path, content_to_append)
# 删除文件
file_path = 'path/to/your/file.md'
mcp_obsidian.delete_file(file_path)
4. 典型生态项目
目前,MCP-Obsidian 作为一个交互式工具,主要被开发者用于个人项目中进行自动化操作。在开源生态中,类似的项目还包括自动同步工具、笔记管理插件等,它们共同构成了一个强大的知识管理和自动化处理生态。开发者可以根据具体需求,选择合适的工具进行集成。