Skip to content

Sync Notion and Obsidian

Keep your Notion workspace and Obsidian vault in sync. Every page created or updated in one app is automatically mirrored to the other.

Terminal window
# Notion
curl -X POST http://localhost:8000/api/connections \
-H "Content-Type: application/json" \
-d '{
"name": "notion",
"command": "npx",
"args": ["-y", "@anthropic/mcp-server-notion"],
"env": { "NOTION_API_KEY": "ntn_your_token" }
}'
# Obsidian
curl -X POST http://localhost:8000/api/connections \
-H "Content-Type: application/json" \
-d '{
"name": "obsidian",
"command": "npx",
"args": ["-y", "@anthropic/mcp-server-obsidian"],
"env": { "OBSIDIAN_VAULT_PATH": "/path/to/vault" }
}'
Terminal window
curl -X POST http://localhost:8000/api/capabilities/scan

Both servers should expose notes capabilities (read/write/list).

Terminal window
curl http://localhost:8000/api/capabilities/syncable-pairs

Expected output includes a pair with capability_id: "notes" listing both notion and obsidian.

Terminal window
curl -X POST http://localhost:8000/api/sync/run/await

Response:

{
"synced": 12,
"errors": 0,
"conflicts": 0,
"duration_ms": 3420
}

If the same page is edited in both apps between syncs, WCP detects a conflict.

Terminal window
# List pending conflicts
curl http://localhost:8000/api/conflicts?status=pending
# Resolve — keep the Notion version
curl -X POST http://localhost:8000/api/conflicts/{conflict_id}/resolve \
-H "Content-Type: application/json" \
-d '{"winning_app": "notion"}'

Or set an automatic strategy:

Terminal window
curl -X PUT http://localhost:8000/api/conflicts/strategy \
-H "Content-Type: application/json" \
-d '{"strategy": "last_write_wins"}'
  • Run syncs on a schedule with cron: */5 * * * * curl -s -X POST http://localhost:8000/api/sync/run
  • Use source_wins strategy if one app is your “source of truth”
  • Monitor via WebSocket for real-time sync events in the Dashboard