关于 Obsidian MCP Server Enhanced
Obsidian MCP Server Enhanced 是一个 MCP 服务,让 Amazon Q 通过 Obsidian Local REST API 插件读写 Obsidian 库中的笔记,无需打开 Obsidian 应用。
主要功能
- 01读取、创建、更新、追加和删除笔记
- 02列出库中的文件和文件夹
- 03获取当前活动文件
- 04创建带预设章节的每日笔记
- 05创建结构化会议笔记模板
适用场景
- 01让 Amazon Q 查阅或整理 Obsidian 笔记
- 02通过 AI 助手自动生成每日笔记或会议记录
MCP 相关
该项目是基于 FastMCP 构建的 MCP 服务,向 MCP 客户端(如 Amazon Q CLI)暴露 obsidian_* 系列工具和提示词模板。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Obsidian MCP Server Enhanced
用于将 Amazon Q 与 Obsidian 集成的模型上下文协议(MCP)服务。
项目概述
此 MCP 服务允许 Amazon Q 与 Obsidian 库交互,无需打开 Obsidian 应用。它利用 Obsidian Local REST API plugin,提供笔记管理、搜索和知识管理功能。
当前状态
- 第一阶段(核心基础架构):已完成
- 已完整实现基本文件操作、搜索和笔记模板
- 使用 FastMCP 构建,可与 Amazon Q 无缝集成
- 使用基于装饰器的提示词注册方式
- 已准备好开始第二阶段:核心功能
功能
已实现
- 文件操作:读取、创建、更新、追加内容到笔记,以及删除笔记
- 基本文件夹管理:列出文件夹中的文件
- 搜索:基本笔记搜索功能
- 每日笔记:创建包含预定义分区的每日笔记
- 会议笔记:使用结构化模板创建会议笔记
计划中的功能
- 高级文件夹管理:创建、删除、重命名和移动文件夹
- 组织与元数据:管理标签、frontmatter 和文件组织
- 高级搜索与发现:按内容、标签和其他条件进行增强搜索
- 知识管理:提取重点、汇总笔记等
- 搜索与汇编:搜索笔记并将信息汇编到单篇笔记中
- 笔记整理:在 AI 协助下整理特定主题的笔记
入门指南
前置条件
- Obsidian:安装 Obsidian 并创建一个库
- Local REST API Plugin:在 Obsidian 中安装 Local REST API 插件
- Python 3.10+:确保已安装 Python 3.10 或更高版本
安装
-
克隆此仓库:
git clone https://github.com/yourusername/mcp-obsidian-enhanced.git cd mcp-obsidian-enhanced -
创建虚拟环境:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
安装依赖项:
pip install -e ".[dev]" -
创建
.env文件并填写 Obsidian API 配置:OBSIDIAN_API_KEY=your_api_key_from_local_rest_api_plugin OBSIDIAN_HOST=127.0.0.1 OBSIDIAN_PORT=27124
与 Amazon Q CLI 集成
要将此 MCP 服务与 Amazon Q CLI 集成,请在 AWS 配置中配置 MCP 服务:
- 创建或更新文件
~/.aws/amazonq/mcp.json:
{
"mcpServers": {
"obsidian-mcp-server": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-obsidian-enhanced", "run", "run_server.py"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
- 将
/path/to/mcp-obsidian-enhanced替换为仓库的实际路径。
运行服务
运行服务:
python run_server.py
使用 MCP Inspector 进行测试:
npx @modelcontextprotocol/inspector uv --directory ./ "run" "run_server.py"
可用工具
| 工具名称 | 描述 |
|---|---|
obsidian_read_note | 从 Obsidian 库中获取笔记内容 |
obsidian_create_note | 在 Obsidian 库中创建新笔记 |
obsidian_update_note | 更新 Obsidian 库中的现有笔记 |
obsidian_append_note | 向现有笔记追加内容 |
obsidian_delete_note | 从 Obsidian 库中删除笔记 |
obsidian_list_files | 列出 Obsidian 库中的文件和文件夹 |
obsidian_get_active_file | 获取 Obsidian 中当前处于活动状态的文件 |
obsidian_create_daily_note | 创建包含预定义分区的每日笔记 |
计划中的工具(第二阶段)
| 工具名称 | 描述 |
|---|---|
obsidian_search | 搜索 Obsidian 库中的笔记 |
obsidian_summarize_note | 总结笔记内容 |
obsidian_search_and_compile | 搜索笔记并汇编信息 |
obsidian_organize_notes | 整理特定主题的笔记 |
可用提示词
此服务使用基于装饰器的方式提供提示词模板:
会议笔记
@mcp.prompt("meeting-notes")
async def meeting_notes_prompt(
title: str,
date: str = "",
participants: str = "",
folder: str = "Meetings",
tags: List[str] = None
) -> Dict[str, Any]:
"""Create a meeting note with the given details."""
# Implementation...
创建笔记
@mcp.prompt("create-note")
async def create_note_prompt(
title: str,
content: str,
folder: str = "",
tags: List[str] = None
) -> Dict[str, Any]:
"""Create a new note with the given details."""
# Implementation...
整理笔记
@mcp.prompt("organize-notes")
async def organize_notes_prompt(
topic: str,
folder: str = ""
) -> Dict[str, Any]:
"""Organize notes related to a specific topic."""
# Implementation...
配置选项
| 环境变量 | 描述 | 默认值 |
|---|---|---|
OBSIDIAN_API_KEY | Local REST API 插件提供的 API 密钥 | (必填) |
OBSIDIAN_HOST | Obsidian 运行所在的主机 | 127.0.0.1 |
OBSIDIAN_PORT | API 端口 | 27124 |
OBSIDIAN_PROTOCOL | 使用的协议 | https |
OBSIDIAN_VERIFY_SSL | 是否验证 SSL 证书 | false |
OBSIDIAN_TIMEOUT | 连接超时时间(秒) | 10 |
LOG_LEVEL | 日志级别(INFO、DEBUG 等) | INFO |
实施路线图
阶段 1:核心基础设施(已完成)
- ✅ 使用 FastMCP 完成基本服务设置
- ✅ 配置管理
- ✅ Obsidian API 客户端
- ✅ 基本文件操作
- ✅ 基本文件夹管理工具
阶段 2:核心功能(计划中)
- 高级搜索功能
- 元数据管理
- 改进模板
- 笔记整理功能
- 搜索和编译功能
- 笔记摘要
阶段 3:高级功能(计划中)
- 知识管理工具
- 批量操作
- 高级搜索功能
阶段 4:优化与完善(计划中)
- 性能优化
- 增强错误处理
- 全面的日志记录
- 详细文档
直接测试 API
你可以使用 curl 直接测试 Obsidian Local REST API 端点:
列出文件夹中的文件
curl -X GET "http://127.0.0.1:27124/vault/FolderName?list=true" \
-H "Authorization: Bearer YOUR_API_KEY"
读取笔记
curl -X GET "http://127.0.0.1:27124/vault/path/to/note.md" \
-H "Authorization: Bearer YOUR_API_KEY"
创建/更新笔记
curl -X PUT "http://127.0.0.1:27124/vault/path/to/note.md" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: text/markdown" \
-d "# Note Title\n\nNote content here."
搜索笔记
curl -X POST "http://127.0.0.1:27124/search/simple" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "query=search_term"
贡献
欢迎贡献!请参阅 CONTRIBUTING.md 文件中的指南。
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。