FastMCP server for bidirectional sync between personal and team Obsidian vaults

io.github.adelaidasofia由 GitHub 帳號 adelaidasofia 發布v0.1.0更新於 Oct 24, 2026

FastMCP server for bidirectional sync between personal and team Obsidian vaults.

發布方自己的服務:Fastio

概覽

AI 產生的概覽

本機 MCP 伺服器,在個人 Obsidian 儲存庫與團隊共用儲存庫之間雙向同步筆記,支援狀態查詢、依規則推送/拉取與試跑預覽。

可以做什麼
  • 查看同步狀態:列出待同步變更、過期檔案與上次同步時間。
  • 將符合條件的檔案從個人儲存庫推送到團隊儲存庫。
  • 把團隊儲存庫的變更拉取回個人儲存庫。
  • 檢查特定檔案是否符合同步規則範圍。
  • 推送與拉取預設先試跑,預覽後才實際執行。
適用情境
適合同時維護個人 Obsidian 儲存庫,並透過 Google Drive、Dropbox 等共用資料夾把部分筆記分享給團隊的情境,希望助理回報待同步變更並依路徑與 frontmatter 規則搬移檔案。
執行需求
以 stdio 在本機執行,僅限桌面端,可作為外掛或 Python 腳本安裝。需要個人與團隊儲存庫的根路徑,可在 config.yaml 設定,或透過 VAULT_SYNC_PERSONAL、VAULT_SYNC_TEAM 環境變數提供(清單宣告的是 PERSONAL_VAULT_PATH 與 TEAM_VAULT_PATH)。傳統安裝方式需要 Python 及 fastmcp、python-frontmatter、pyyaml、xxhash。
安裝前請注意
推送與拉取會寫入兩個儲存庫,請先試跑,並維護好 no_sync 清單與檔案 frontmatter 中的 sync: false。衝突處理為較新檔案勝出,衝突會被記錄並略過。外掛首次載入時會向外部網站送出一次匿名安裝訊號,除非設定 MYCELIUM_NO_PING=1。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 FastMCP server for bidirectional sync between personal and team Obsidian vaults,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

vault-sync-mcp

[License] [GitHub stars] [Last commit] [Open issues] [PyPI version] [PyPI downloads] [Built by Mycelium AI]

A FastMCP server for bidirectional sync between a personal Obsidian vault and a shared team vault. Designed for teams where one person (the vault owner) maintains the source of truth and shares selected content with collaborators via a shared folder (Google Drive, Dropbox, etc.).

Tools

ToolWhat it does
vault_sync_statusShow pending changes, stale files, and last sync time
vault_sync_pushPush eligible files from personal vault to team vault
vault_sync_pullPull changes from team vault back to personal vault
vault_scope_checkCheck if a specific file is eligible for sync

Both push and pull default to dry_run: true — you always preview before executing.

Install

Open Claude Code, paste:

/plugin marketplace add adelaidasofia/vault-sync-mcp/plugin install vault-sync-mcp@vault-sync-mcp

Then edit config.yaml to set your vault paths and sync rules:

yaml
personal_vault: ~/vault/team_vault: ~/team-vault/

Restart Claude Code. Then ask:

"Show me vault sync status" "Push changes to team vault (dry run first)"

Legacy install
bash
pip install fastmcp python-frontmatter pyyaml xxhash
  1. Clone:

    bash
    git clone https://github.com/adelaidasofia/vault-sync-mcp.gitcd vault-sync-mcp
  2. Edit config.yaml to set your vault paths and sync rules:

    yaml
    personal_vault: ~/vault/team_vault: ~/team-vault/
  3. Register with Claude Code:

    bash
    claude mcp add vault-sync -s user -- python3 /path/to/vault-sync-mcp/server.py
  4. Restart Claude Code. Then ask:

    "Show me vault sync status" "Push changes to team vault (dry run first)"

Configuration

Everything lives in config.yaml:

yaml
personal_vault: ~/vault/team_vault: ~/team-vault/
no_sync:  - "Journal/"  - "Personal/"
sync_rules:  - path: "Team/"    direction: bidirectional
  - path: "CRM/"    direction: personal_to_team    filter:      frontmatter_field: relationship      frontmatter_values: [client, team, advisor]

Sync rule directions

  • bidirectional — changes flow both ways
  • personal_to_team — personal is source of truth, team gets updates
  • team_to_personal — team is source of truth, personal gets updates (useful for shared docs)

Blocking sync on a file

Add sync: false to any file's frontmatter to exclude it from all sync operations.

Environment variables

VariableDefaultDescription
VAULT_SYNC_PERSONALfrom config.yamlPersonal vault root path
VAULT_SYNC_TEAMfrom config.yamlTeam vault root path

Notes

  • Uses os.walk(followlinks=True) instead of Path.rglob() to correctly handle macOS symlinks (Google Drive, iCloud shortcuts)
  • Wikilinks are automatically rewritten to bare filenames during push ([[folder/Note]] becomes [[Note]])
  • Content hashing via xxhash for fast change detection
  • Conflict resolution: newer file wins; conflicts are logged and skipped

Related MCPs

Same author, same architecture pattern (FastMCP, draft+confirm on writes where applicable, vault auto-export, MIT):

Telemetry

This plugin sends a single anonymous install signal to myceliumai.co the first time it loads in a Claude Code session on a given machine.

What is sent:

  • Plugin name (e.g. slack-mcp)
  • Plugin version (e.g. 0.1.0)

What is NOT sent:

  • No user identifiers, names, emails, tokens, or API keys
  • No file paths, message content, or anything from your work
  • No IP address is stored after dedup processing

Why: Helps the maintainer know which plugins people actually install, so attention goes to the ones that get used.

Opt out: Set the environment variable MYCELIUM_NO_PING=1 before launching Claude Code. The hook will skip the network call entirely. Already-pinged installs leave a sentinel at ~/.mycelium/onboarded-<plugin> — delete it if you want to reset state.

License

MIT


Built by Mycelium AI. Full install or team version at diazroa.com.

來源:README.md,提交 f5169c6

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Fast 整合