Obsidian远程同步服务

通过CouchDB和MCP服务器实现Obsidian笔记的远程同步与管理,支持多种客户端接入。

  • by Selenion
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Selenion/obsidian-livesync-mcp

使用说明

黑曜石livesync mcp

通过CouchDB访问黑曜石保险库的远程MCP服务器/ 自托管LiveSync.适用于Claude Code、Claude.ai和任何兼容MCP的客户端。

服务器上不需要黑曜石桌面应用程序,直接连接到CouchDB。

建筑

Obsidian (phone/desktop) <-> CouchDB <-> MCP Server <-> Claude Code / Claude.ai

黑曜石客户端通过LiveSync插件同步到CouchDB实例。此MCP服务器可直接读取和写入CouchDB,提供20种工具来管理您的保险库-服务器端不需要Obsidian REST API或桌面应用程序。

特性

备注

  • 搜索 --全文搜索(文本/正则表达式)
  • 获取 --获取内容、属性和统计信息(.md/.base/.canvas)
  • create_note --使用frontmatter创建笔记
  • update_note --修改(覆盖/追加/前置/标题后/搜索替换)
  • delete_note --删除笔记
  • move_note --移动/重命名
  • 复制_注释 --重复
  • list_notes --列出带有文件夹/扩展名过滤器的文件

属性和标签

  • 管理特性 --获取/设置/删除frontmatter属性
  • 管理标签 --添加/删除/列出标签
  • 获取所有标签 --所有带有计数的保险库标签

图表和链接

  • get_links --传出/传入链接
  • get_link_graph --完整保险库图
  • find_orphaned_notes --没有链接的笔记
  • find_hub_notes --最相关的笔记

画布

  • canvas_node --添加/删除画布节点
  • 画布_边缘 --添加/删除画布边缘

其他

  • vault_stats --保险库统计信息
  • create_from_template --使用变量替换从模板创建
  • list_templates --列出可用模板

先决条件

  • 带有黑曜石LiveSync数据的CouchDB
  • Python 3.11+

设置

1.安装

git clone https://github.com/YOUR_USERNAME/obsidian-livesync-mcp.git
cd obsidian-livesync-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2.配置

cp .env.example .env
# Edit .env with your settings
变量 描述
COUCHDB_URL CouchDB URL(例如。 http://localhost:5984)
COUCHDB_USER CouchDB管理员用户名
COUCHDB_PASSWORD CouchDB管理员密码
COUCHDB_DATABASE 数据库名称(默认值: obsidian)
MCP_API_KEY MCP客户端(如Codex)的共享承载令牌
OAUTH_PASSWORD OAuth同意密码(留空可禁用OAuth)
OAUTH_CLIENT_ID 预注册客户端的OAuth客户端ID
OAUTH_CLIENT_SECRET OAuth客户端密钥
MCP_SERVER_URL 此服务器的公共HTTPS URL
MCP_HOST 绑定地址(默认值: 0.0.0.0)
MCP_PORT 端口(默认值: 8484)

3.跑步

python run.py

4.系统化服务(可选)

sudo cp obsidian-mcp.service /etc/systemd/system/
# Edit the service file: set User and paths
sudo systemctl daemon-reload
sudo systemctl enable obsidian-mcp
sudo systemctl start obsidian-mcp

连接客户

法典

在Codex运行的环境中设置相同的API密钥,然后将可流式传输的HTTP MCP服务器添加到 ~/.codex/config.toml:

[mcp_servers.obsidian]
url = "https://your-server/mcp"
bearer_token_env_var = "MCP_API_KEY"

Codex支持已通过此可流式传输的HTTP配置和存储在 MCP_API_KEY 环境变量。

对于直接要求自定义标头的MCP客户端,请使用:

键 值
Authorization Bearer your_api_key

替换 your_api_key 服务器上配置的确切值为 MCP_API_KEY.

Claude.ai(网络版)

  1. 设置>连接器>添加自定义连接器
  2. 网址: https://your-server/mcp
  3. 您的客户端ID和客户端密码 .env

认证

服务器支持两种身份验证模式:

  1. 承载API密钥 -set MCP_API_KEY 客户端必须发送 Authorization: Bearer <MCP_API_KEY>。如果同时存在承载和OAuth设置,则此模式优先。
  2. OAuth 2.1 -set OAUTH_PASSWORD OAuth客户端设置使用现有的授权码流+PKCE。

如果两者都没有 MCP_API_KEY 也不 OAUTH_PASSWORD 设置后,服务器在启动时失败,而不是打开运行。

当前限制

开箱即用,OAuth只支持 克劳德 (Claude.ai和Claude Code)作为客户。预注册的OAuth客户端已硬编码 redirect_uris 对于Claude的回调URL和 scope: claudeai.

添加其他MCP客户端

要支持其他客户,您可以:

  1. 预先注册其他客户 --在中添加更多客户端 oauth_provider.py __init__ 与适当 redirect_uris 为您的客户。

  2. 启用动态客户端注册(DCR) --in server.py,更改 ClientRegistrationOptions(enabled=False, ...) 到 enabled=True这允许任何兼容MCP的客户端自动注册。注意:这意味着任何知道您的服务器URL的人都可以注册客户端。

许可证

Apache 2.0