はじめに
Claude Code から Google Calendar・Gmail・Drive を操作したい。MCP サーバーを立てる方法もありますが、CLI ツール1本で済む方法があります。
gogcli は Google Workspace の主要サービスをコマンドラインから操作できる Go 製 CLI です。Claude Code の Bash ツールから直接呼び出すことで、MCP 不要で Google 連携が実現します。
この記事では、セットアップから実践ワークフローまでを紹介します。
前回の記事
本記事は以下の姉妹編です。
環境
- Windows 11
- Claude Code
- Go 1.26.0
- gogcli v0.12.0-dev
Part 1: セットアップ
Go のインストール
winget install -e --id GoLang.Go
gogcli のビルド
cd ~
git clone https://github.com/steipete/gogcli.git
cd gogcli
go mod download
go build -o .\bin\gog.exe .\cmd\gog
PATH 設定
# 永続化
setx PATH "$env:USERPROFILE\gogcli\bin;$env:PATH"
# デフォルトアカウントを環境変数に設定
[System.Environment]::SetEnvironmentVariable("GOG_ACCOUNT", "your-email@gmail.com", "User")
OAuth 認証
Google Cloud Console で OAuth クライアント ID(デスクトップアプリ)を作成し、JSON をダウンロード。
# クレデンシャルをインポート
gog auth credentials <ダウンロードしたJSON>
# 認証(ブラウザが開く)
gog auth add your-email@gmail.com
「このアプリは Google が確認していません」と表示されたら、「詳細」→「安全でないページに移動」で続行してください。
動作確認
gog calendar events -a $env:GOG_ACCOUNT --json
gog gmail search "newer_than:1d" -a $env:GOG_ACCOUNT --max 5 --json
Part 2: 対応サービスと主要コマンド
gogcli は 15 以上の Google サービスに対応しています。実際に動作確認できたものを紹介します。
Google Calendar
# カレンダー一覧
gog calendar calendars -a $GOG_ACCOUNT --json
# 今後のイベント取得
gog calendar events -a $GOG_ACCOUNT --json
# イベント検索(日本語OK)
gog calendar search "会議" -a $GOG_ACCOUNT --json
# イベント作成
gog calendar create primary \
--summary "記事執筆タイム" \
--from "2026-03-06T10:00:00+09:00" \
--to "2026-03-06T12:00:00+09:00" \
--description "gogcli記事のドラフト作成" \
-a $GOG_ACCOUNT --json
# スケジュール競合チェック(今後7日間)
gog calendar conflicts --days 7 -a $GOG_ACCOUNT --json
# 空き時間確認
gog calendar freebusy primary \
--from "2026-03-04T00:00:00+09:00" \
--to "2026-03-11T00:00:00+09:00" \
-a $GOG_ACCOUNT --json
ポイント: --dry-run フラグで実行前に内容を確認できる。Claude Code に作成させる場合でも安全。
Gmail
# メール検索(Gmail クエリ構文そのまま)
gog gmail search "from:github newer_than:3d" -a $GOG_ACCOUNT --max 10 --json
# 特定メールの本文取得
gog gmail get <messageId> -a $GOG_ACCOUNT --json
# ラベル一覧
gog gmail labels list -a $GOG_ACCOUNT --json
# メール送信(dry-run で確認)
gog gmail send \
--to "recipient@example.com" \
--subject "件名" \
--body "本文" \
-a $GOG_ACCOUNT --dry-run --json
ポイント: Gmail のクエリ構文(from:, subject:, newer_than:, has:attachment 等)がそのまま使える。
Google Drive
# ファイル一覧
gog drive ls -a $GOG_ACCOUNT --json
# ファイル検索
gog drive search "コンペ" -a $GOG_ACCOUNT --json
# ダウンロード(Google Docs は pdf/docx 等に変換可能)
gog drive download <fileId> --out ./output.pdf --format pdf -a $GOG_ACCOUNT
# アップロード
gog drive upload ./local-file.txt --parent <folderId> -a $GOG_ACCOUNT --json
# フォルダ作成
gog drive mkdir "新しいフォルダ" -a $GOG_ACCOUNT --json
Google Sheets(スプレッドシート操作)
# セル値の取得
gog sheets get <spreadsheetId> "Sheet1!A1:C10" -a $GOG_ACCOUNT --json
# セル値の更新
gog sheets update <spreadsheetId> "Sheet1!A1" "値1" "値2" -a $GOG_ACCOUNT --json
# 行の追記
gog sheets append <spreadsheetId> "Sheet1!A:C" "値1" "値2" "値3" -a $GOG_ACCOUNT --json
その他対応サービス
| サービス | 主な操作 | API有効化 |
|---|---|---|
| Google Tasks | タスクリスト管理、タスクCRUD | 別途有効化が必要 |
| Google Contacts | 連絡先の検索・作成 | デフォルトで有効 |
| Google Docs | エクスポート(Drive経由) | デフォルトで有効 |
| Google Slides | エクスポート(Drive経由) | デフォルトで有効 |
| Google Forms | フォーム情報取得 | 別途有効化が必要 |
| Google Chat | メッセージ送受信 | Workspace限定 |
注意: Google Tasks など一部サービスは、Google Cloud Console で API を個別に有効化する必要があります。エラーメッセージに有効化URLが表示されるので、それに従えばOK。
Part 3: Claude Code との統合
CLAUDE.md に記載する設定
## Google Workspace操作(gogcli)
- 実行パス: "C:\Users\<user>\gogcli\bin\gog.exe"
- アカウント: 環境変数 GOG_ACCOUNT にデフォルトアカウント設定済み
- フラグ: 必ず `-a $GOG_ACCOUNT --json` を付与
- 変更操作は `--dry-run` で確認してからユーザー承認を得て実行
これにより、Claude Code が自動的に gogcli を活用するようになります。
ワークフロー例: カンバン → カレンダー登録
Obsidian のカンバンに書かれた予定を、Claude Code が読み取ってカレンダーに登録するワークフロー:
1. カンバン.md を Read ツールで読み取り
2. 未着手タスクから日時情報を抽出
3. gog calendar create で dry-run → ユーザー確認
4. 承認後に実際に登録
5. カンバンを「完了」に更新
ワークフロー例: メール要約 → デイリーノート追記
1. gog gmail search "newer_than:1d is:important" で今日の重要メールを取得
2. Claude Code が内容を要約
3. Obsidian CLI で daily:append → デイリーノートに追記
Part 4: MCP vs CLI の比較
| 観点 | MCP サーバー | gogcli (CLI) |
|---|---|---|
| セットアップ | MCP設定 + サーバー起動 | go build + OAuth認証 |
| 依存関係 | Node.js/Python + MCPランタイム | Go バイナリ1本 |
| ツール呼び出し | ネイティブ(tool_use) | Bash ツール経由 |
| JSON出力 | 構造化済み |
--json フラグで構造化 |
| dry-run | サーバー実装次第 | 全コマンド対応 |
| サービス数 | 個別MCPサーバーが必要 | 15+サービスを1バイナリで |
| オフライン | サーバー起動が必要 | バイナリ実行のみ |
使い分け:
- CLI が向いているケース: 個人利用、バッチ処理、シンプルなCRUD操作
- MCP が向いているケース: リアルタイム双方向通信、複雑なステート管理、チーム利用
まとめ
gogcli で実現できたこと
- Google Calendar のイベント取得・作成・競合チェック
- Gmail の検索・本文取得・送信(dry-run確認付き)
- Google Drive のファイル一覧・検索・アップロード・ダウンロード
- Google Sheets のセル読み書き
- Obsidian カンバン → カレンダー登録のクロスツール連携
CLI ツール群による個人環境の構築
| ツール | 役割 |
|---|---|
| Obsidian CLI | ナレッジベース操作 |
| gogcli | Google Workspace 操作 |
| gh | GitHub 操作 |
| Claude Code | 全体のオーケストレーション |
MCP サーバーを立てなくても、CLI + CLAUDE.md の組み合わせで十分な自動化が実現できます。