Docker MCP Obsidian(可译为“Docker MCP Obsidian(或根据上下文具体命名,如‘基于Docker的MCP Obsidian’等)”)
https://github.com/user-attachments/assets/a8d88633-0ace-432e-a1e4-4e0be10ac688(该链接翻译为中文表述为:GitHub用户附件资源中的一个特定资产链接,具体资产内容需访问链接查看)
一个用于运行支持MCP(模型上下文协议)的Obsidian的Docker容器设置。
概述
这个项目提供了一个容器化的Obsidian实例,该实例可以作为MCP(模型上下文协议)服务器使用,使MCP客户端能够通过模型上下文协议与Obsidian笔记和功能进行交互。
组件
- Dockerfile基于
lscr.io/linuxserver/obsidian:latest与;和;用uv包管理器已安装 - build.sh 翻译成中文是“构建脚本”构建Docker镜像的脚本
- run.sh(运行脚本文件)运行带有适当配置的Docker容器的脚本
- mcp-条目样本.json连接到正在运行的容器的MCP客户端配置示例
- 保险库/地窖包含Obsidian资料库数据的目录(包括本地REST API插件配置)
先决条件
- Docker已在您的系统上安装并运行
- 对Docker命令有基本了解
- 一个支持模型上下文协议(Model Context Protocol)的MCP客户端
注这个项目依赖于两个关键组件: 1. 本地REST API 一个Obsidian插件,提供用于与笔记交互的REST API。该插件已在资料库中预配置,支持API密钥认证。 1. MCP-Obsidian(注:MCP通常指“模组配置包”(Mod Configurations Pipelines),Obsidian在这里可能指某种特定的配置或模块,但具体含义需根据上下文确定) 一个连接到本地REST API的模型上下文协议服务器,允许MCP客户端与Obsidian笔记进行交互。
快速入门
1. 构建Docker镜像
运行构建脚本以创建 Docker 镜像:
./build.sh这个脚本将:
- 构建一个标记为的 Docker 镜像
mcp-obsidian:latest - 安装
uvPython依赖管理工具
2. 运行容器
使用运行脚本启动 Obsidian 容器:
./run.sh这个脚本将:
- 删除任何已存在的名为(指定名称)的容器
mcp-obsidian - 使用以下配置启动一个新容器:
- 名字: mcp-obsidian - 端口3000(映射到主机端口3000) - 保险库: ./vault 目录挂载到 /vault 在集装箱中 - 环境变量: - PUID=1000 和 PGID=1000 (用户/组标识符) - TZ=America/Los_Angeles (时区) - OBSIDIAN_API_KEY预配置的MCP访问API密钥 - OBSIDIAN_HOST=127.0.0.1 并且 OBSIDIAN_PORT=27123 - 重启策略: unless-stopped
3. 访问 Obsidian
一旦容器运行起来,您就可以通过网页浏览器访问 Obsidian,访问地址为:
http://localhost:3000MCP客户端连接
使用示例配置
这个(或“该”) mcp-entry-sample.json 该文件提供了一个示例配置条目,用于MCP客户端连接到正在运行的Obsidian容器。您应将此条目添加到您的MCP客户端的配置文件中:
"mcp-obsidian": {
"command": "docker",
"args": [
"exec",
"-i",
"mcp-obsidian",
"uvx",
"mcp-obsidian"
]
}注该文件包含点(....在开头和结尾处加上括号,表示这是一个要插入到更大的MCP配置文件中的片段。
如何使用
- 确保容器正在运行 通过执行
./run.sh - 复制示例配置 来自
mcp-entry-sample.json - 添加配置 到您的MCP客户端配置文件
- 连接 使用您的MCP客户端
配置告知MCP客户端:
- 使用 Docker 执行命令
mcp-obsidian集装箱 - 运行
mcp-obsidian使用(进行)打包uvx(UV的执行命令)
配置详情
它是如何工作的MCP服务器(mcp-obsidian) 通过(某种方式)与 Obsidian 进行通信 本地REST API插件,必须在您的Obsidian知识库中启用。本项目包含的知识库已预配置了插件和API密钥认证。对话自动记录的系统提示示例
你是一个笔记记录者。当我与你聊天时,你需要根据我们的对话做笔记。如果我问你问题,你要先检查Obsidian中是否已经存在关于该话题的笔记,然后基于你自己的知识和Obsidian中的内容来回答问题,如果在回答过程中使用到了Obsidian中未包含的信息,就创建或更新Obsidian中的笔记。尽可能在笔记之间建立链接,并保持笔记简洁且内容单一。
环境变量
| 变量 | 值 | 描述 |
|---|---|---|
PUID | 1000 | 文件权限的用户ID |
PGID | 1000 | 文件权限的组ID |
TZ | America/Los_Angeles | 容器时区 |
OBSIDIAN_API_KEY (预配置)本地REST API插件认证的API密钥 | ||
OBSIDIAN_HOST 127.0.0.1 | 本地REST API插件的主机 | |
OBSIDIAN_PORT 本地REST API插件端口(不安全的HTTP) |
音量(或“音量大小”)
./vault:/vault- 映射本地vault指向容器的目录/vault持久存储目录
港口
3000:3000- 将容器端口3000映射到主机端口3000,以便进行网页访问
故障排除
集装箱问题
- 检查容器是否正在运行:
docker ps | grep mcp-obsidian - 查看容器日志:
docker logs mcp-obsidian - 停止容器:
docker stop mcp-obsidian - 移除容器:
docker rm mcp-obsidian
权限问题
如果您遇到保险库目录的权限问题:
# Ensure proper ownership
sudo chown -R 1000:1000 vault/发展
要修改容器配置:
- 编辑
Dockerfile对于图像变化 - 编辑
run.sh用于运行时配置更改 - 使用(指定工具/方法)重建
./build.sh在Dockerfile更改后 - 以……重新启动
./run.sh运行时配置更改后
