使用说明
Fly.io上的黑曜石MCP
跑一个 MCP服务器 Fly.io上的黑曜石保险库。 AI助手(Claude.AI等)可以读取、写入和搜索您的 使用OAuth 2.1身份验证通过HTTPS进行保管。
建筑
由shell入口点管理的具有两个进程的单个容器:
- ob同步 — 黑曜石无头 保留您的本地副本 vault与Obsidian的服务器同步
- 保险库同步 --通过MCP提供本地vault文件 使用OAuth 2.1身份验证
两者共享一个持续的容量 /data.
┌──────────────────────────────────────────┐
│ Container (node:24-bookworm-slim) │
│ entrypoint.sh │
│ │
│ ┌─────────────┐ ┌──────────────┐ │
│ │ ob sync │ │ vault-sync │ │
│ │ Node.js CLI │ │ Go binary │ │
│ └──────┬──────┘ └──────┬───────┘ │
│ └────────┬───────┘ │
│ │ │
│ ┌───────────────┴───────────────┐ │
│ │ Fly.io Persistent Volume │ │
│ │ /data/vault (vault files)│ │
│ │ /data/.vault-sync (state db) │ │
│ └───────────────────────────────┘ │
│ │
│ Exposed: :8090 (MCP only) │
└──────────────────────────────────────────┘
先决条件
- Fly.io命令行界面 (
flyctl) - 码头工人 (用于本地测试)
- Node.js 22+(用于初始身份验证令牌)
- 一 黑曜石同步 订阅
首次身份验证设置
黑曜石需要交互式登录才能获得身份验证令牌。在本地执行一次:
npm install -g obsidian-headless
ob login
或与 尼克斯:
nix develop
ob login
登录后,提取您的令牌:
cat ~/.obsidian-headless/auth_token
保存此值——您可以将其设置为 OBSIDIAN_AUTH_TOKEN 在Fly.io上。
部署到Fly.io
1.创建应用程序并配置fly.toml
fly apps create
cp fly.toml.example fly.toml
编辑 fly.toml 并设置 app 到您的应用程序名称和 primary_region 到你的
最近的 Fly.io地区.
2.创建卷
# single volume is fine for personal use — answer "y" to the HA warning
# region MUST match primary_region in fly.toml (machines can only mount local volumes)
fly volumes create obsidian_data --region <same-as-primary_region> --size 1
3.设定秘密
fly secrets set OBSIDIAN_AUTH_TOKEN="your-auth-token"
fly secrets set OBSIDIAN_VAULT_NAME="Your Vault Name"
fly secrets set MCP_SERVER_URL="https://<your-app-name>.fly.dev"
fly secrets set MCP_AUTH_USERS="user:password"
fly secrets set OBSIDIAN_VAULT_PASSWORD="your-e2ee-password" # optional, only if E2E encrypted
4.部署
fly deploy
5.验证
curl "https://<your-app-name>.fly.dev/.well-known/oauth-protected-resource"
连接Claude.ai
添加 https://<your-app>.fly.dev/mcp 作为远程MCP服务器
Claude.ai设置。系统将提示您通过OAuth进行身份验证
使用中设置的凭据 MCP_AUTH_USERS.
本地测试
cp .env.example .env
# Edit .env with your credentials
docker build -t obsidian-mcp .
docker run --env-file .env -p 8090:8090 -v obsidian_data:/data obsidian-mcp
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
OBSIDIAN_AUTH_TOKEN |
是 | -- | 身份验证令牌(来自 ob login) |
OBSIDIAN_VAULT_NAME |
是 | -- | 要同步的保管库名称 |
OBSIDIAN_VAULT_PASSWORD |
如果是E2EE | -- | E2E加密密码 |
ENABLE_SYNC |
没有 | false |
vault同步内置同步 |
ENABLE_MCP |
没有 | true |
启用MCP服务器 |
OBSIDIAN_SYNC_DIR |
没有 | /data/vault |
vault文件的路径 |
MCP_SERVER_URL |
是 | -- | 公共基础URL |
MCP_AUTH_USERS |
是 | -- | user:pass OAuth配对 |
MCP_CLIENT_CREDENTIALS |
没有 | -- | id:secret 无头OAuth |
MCP_API_KEYS |
没有 | -- | user:key 用于API密钥身份验证 |
MCP_LOG_LEVEL |
没有 | info |
debug/info/warn/error |
ENVIRONMENT |
没有 | production |
production 或 development |
