はじめに
僕は最近仕事をする中で、こんな悩みを抱えていました。
- 毎日日報でSlackのデータをMCP(slack-explorer-mcpの設定方法はこちら)で取得しつつ振り返るようにしているが、ミーティングの情報が拾えないため振り返りが難しいんだよな..
- 週のはじめにあるプランニングで「ミーティングがすでにたくさん入ってしまっているが、今週持っているタスクは終わるのか」確認が難しい..
- プランニングの後に、カレンダーにタスク登録するのを忘れてしまった..
Googleカレンダーの情報を取得、登録できれば、もっとPDCAが回しやすくなるのでは?と思い、Claude CodeのMCP連携を試してみました。
同じ悩みを持つ方の参考になれば嬉しいです。
この記事で出てくるキーワード
MCP連携
├── MCP (Model Context Protocol)
│ └── Claude Codeと外部サービスをつなぐ仕組み
├── MCPサーバー
│ └── @cocal/google-calendar-mcp (今回使用)
├── 認証
│ ├── OAuth 2.0
│ ├── Google Cloud Console
│ └── credentials.json
└── 設定ファイル
├── .mcp.json (プロジェクト設定)
└── .claude/settings.json (有効化設定)
MCPを使ってやりたいこと
やりたいこと1
- Googleカレンダーの予定を取得したい
やりたいこと2
- Googleカレンダーに予定を登録したい
どのMCPサーバーを選ぶ?
GoogleカレンダーのMCPサーバーはいくつか選択肢があります。
npx @cocal/google-calendar-mcp
npx @takumi0706/google-calendar-mcp
npx @sudomcp/google-calendar-mcp
今回は@cocal/google-calendar-mcpを選びました。
理由
- OAuth 2.0認証で安全性に問題なし
- 設定がシンプル
- マルチカレンダー対応
会社のカレンダーを使う場合は、念のため会社のセキュリティポリシーを確認してください。(僕は試験的に個人アカウントでお試し中...)
Google Cloud Consoleでの認証設定
設定の流れ
1. Google Cloud Consoleでプロジェクト作成
2. Google Calendar APIを有効化
3. OAuth認証情報を作成
4. credentials.jsonをダウンロード
5. テストユーザーに自分を追加
ステップ1: プロジェクト作成とAPI有効化
- Google Cloud Consoleにアクセス
- 新しいプロジェクトを作成
- 「APIとサービス」→「ライブラリ」
- 「Google Calendar API」を検索して有効化
ステップ2: OAuth認証情報の作成
「APIとサービス」→「認証情報」
↓
「+ 認証情報を作成」→「OAuth クライアント ID」
↓
アプリケーションの種類: 「デスクトップ アプリ」
↓
「作成」→ JSONをダウンロード
↓
credentials.json にリネーム
ステップ3: OAuth同意画面の設定
初回はOAuth同意画面の設定が必要です。
「ブランディング」画面で
├── アプリ名: 任意 (例: MCP Google Calendar)
├── ユーザーサポートメール: 自分のメール
└── デベロッパーの連絡先情報: 自分のメール
↓
「次へ」を数回クリック → 完了
ステップ4: テストユーザーの追加
「対象」タブ
↓
「テストユーザー」セクション
↓
「+ ADD USERS」
↓
自分のGmailアドレスを追加
↓
保存 (反映まで2-3分待つ)
Claude Codeでの設定
ファイル構成
your-project/
├── .mcp.json # MCPサーバー設定
├── .claude/
│ └── settings.json # MCP有効化設定
└── credentials.json # Google認証情報
.mcp.jsonの設定
プロジェクトルートに作成します。
{
"mcpServers": {
"google_calendar": {
"command": "/opt/homebrew/bin/npx",
"args": ["-y", "@cocal/google-calendar-mcp"],
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "./credentials.json"
}
}
}
}
ポイント
-
command: npxのフルパス (which npxで確認) -
GOOGLE_OAUTH_CREDENTIALS: credentials.jsonへの相対パス
.claude/settings.jsonの設定
プロジェクトMCPを有効化します。
{
"enableAllProjectMcpServers": true,
"enabledMcpjsonServers": [
"google_calendar"
]
}
Claude Codeを起動
# プロジェクトディレクトリで
claude
# MCPサーバーの状態を確認
/mcp
初回認証
認証の流れ
Claude Codeで質問
↓
「今日の予定を教えて」
↓
ブラウザが自動的に開く
↓
Googleアカウントを選択
↓
「このアプリは確認されていません」
↓
「詳細」→「移動」をクリック
↓
カレンダーへのアクセスを許可
↓
認証完了
トラブルシューティング
403エラーが出た場合
エラー: access_denied
原因: テストユーザーに追加されていない
解決方法
- Google Cloud Console → OAuth同意画面 → 対象
- テストユーザーに自分のメールアドレスを追加
- 2-3分待ってから再試行
アカウントを切り替えたい場合
# トークンを削除
rm ~/.config/google-calendar-mcp/tokens.json
# 再認証
export GOOGLE_OAUTH_CREDENTIALS="./credentials.json"
npx @cocal/google-calendar-mcp auth
ブラウザが開くので、切り替えたいアカウントを選択すればOKです。
MCPサーバーがfailedになる場合
よくある原因
- npxのパスが間違っている →
which npxで確認 - credentials.jsonが見つからない → パスを絶対パスに変更
- Node.jsがインストールされていない →
brew install node
実際に使ってみる
やりたいこと1と2を実際に試してみます。
やりたいこと1: 予定を取得する
今週のMTGの合計時間を計算して
→ 今週のMTG合計: 9時間45分です
Googleカレンダーから予定を取得して、会議時間を集計してくれました。
やりたいこと2: 予定を登録する
毎日30分開発タスクについて考える時間を設けて
空いている時間を見つけて、自動的にカレンダーに登録してくれました。
これだけで、Googleカレンダーの取得・登録が行えます!
