ObsidianでMCPを使ったカレンダー同期方法

技術

LLMの活用においてドキュメント管理は重要な要素ですが、マークダウンエディターであるObsidainが最近注目を集めています。

私も今年になってから利用していますが、Obsidianでmcpサーバーによるグーグルカレンダーを用いた予定確認が非常に便利だったので、環境構築方法をまとめます。

今回利用したもの

  • Obsidian
    • バージョン
      • コミュニティプラグイン使えるバージョンを利用します。私は1.12.7を用いています。
    • プラグイン
      • Terminal
        • Obsidian上でClaudeを起動するために使用します。
      • Thino
        • 今回の本質ではないですが、タスクメモの可視化に便利なので用いています。
  • Claude Code
    • MCP Clientとして利用します。
  • google-calender-mcp

環境構築

Obsidianのインストールは公式ページからインストールするだけなので割愛します。
ドメインが.mdなのもいいですね。
https://obsidian.md/

またClaude Codeについても同様に省略します。
https://code.claude.com/docs/ja/overview

プラグインのインストール方法

Obsidian =>設定(Preferences)=>コミュニティプラグイン=>閲覧
検索ボックスが出てきますのでTeminalと検索しインストールします。

Thinoも同様です。

インストール後左側のリストにTerminalアイコンが表示されますのでクリックし、統合ターミナルを起動してください。デフォルトはzshです。

google-calender-mcpのインストール方法

最新版は公式Repoを参照してください。
https://github.com/nspady/google-calendar-mcp

macユーザの場合はnodebrewを使って環境構築をします。
今回は下記バージョンを利用しました。

nodebrew use v24.14.1

インストールは以下で実施します。

git clone https://github.com/nspady/google-calendar-mcp.git
cd google-calendar-mcp
npm install
npm run build

インストール後はOAuthに関するクレデンシャルを用いる必要がありますが、作成においてはGCPのProjectが必要になります。
作成方法は下記外部ページが参考になります。
https://qiita.com/tomohiko9090/items/0ca44cb22a880a278dae
https://zenn.dev/wasabina67/articles/35-jl1wwob678c07l9b

クレデンシャルを作成後、下記で認証を行います。

export GOOGLE_OAUTH_CREDENTIALS="<OAuthクレデンシャルのパス>"
npm run auth

mcpの設定方法

Obsidianを起動しているルートディレクトリに下記のようなmcp設定ファイルを作成します。

vi .mcp.json


{
  "mcpServers": {
    "google-calendar": {
      "command": "<nodeを実行する絶対パス>/node",
      "args": [
        "<google-calender-mcpの絶対パス>/google-calendar-mcp/build/index.js"
      ],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "<oauthクレデンシャルの絶対パス>",
        "ENABLED_TOOLS": "list-events,create-event,get-current-time,update-event",
        "PATH": "/Users/<ユーザ名>/.nodebrew/current/bin:/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"
      }
    }
  }
}

ポイントとしてはクレデンシャルも実行コマンドも絶対パスで記載することと、PATHを設定することです。環境によっては設定不要ですが、設定した方が確実です。
詳細は下記でも触れています。

MCPの実行方法

ここまで完了したらObsidian上でTerminalを起動しClaudeを起動します。
起動後/mcpを入力し、google-calenderが登録されていたら接続成功です。

/mcp
 google-calendar · ✔ connected      

カレンダーに登録されている場合
「今日の予定を教えて 」
と入力すると結果が返却されるかと思います。

あとは「予定をdailyタスクに書き込んで」といった指示をすればmdファイルに書き込まれるかと思います。

Thino上でも確認することができました。

最後に

今回はグーグルカレンダーのみMCPで連携していますが、それでもObisidianだけで完結できるのは非常に便利です。Thinoと連携することで1日の振り返りもしやすくなりました。将来的にはワークフロー型のMCPサーバーを作ってラップするか、skillsに記載する等して、他のアプリとのも連携も検討したいです。

コメント

タイトルとURLをコピーしました