Googleスプレッドシート × MCP × Cursor で スプレッドシート自動編集を試してみる

Googleスプレッドシート × MCP × Cursor で スプレッドシート自動編集を試してみる

作成日:
更新日:

「このエラー調査の結果、スプレッドシートにまとめておいて」

こんな依頼、よくありますよね。調査結果のMarkdownをコピペして、表を整形して...正直、面倒です。

今回、CursorのMCP機能を使って、AIに直接Googleスプレッドシートを編集させてみたら、これが想像以上に便利だったので紹介します。


MCP(Model Context Protocol)とは?

MCP(Model Context Protocol) は、Anthropic(Claude開発元)が提唱するオープンプロトコルです。

従来のAIの限界

従来のAIは「テキストを生成する」ことはできても、外部システムを直接操作することはできませんでした。

ユーザー: 「このデータをスプレッドシートに入力して」
AI: 「以下の形式でコピペしてください...」 ← 結局手作業

MCPで変わること

MCPを使うと、AIが外部サービスのAPIを直接呼び出せるようになります。

ユーザー: 「このデータをスプレッドシートに入力して」
AI: (Google Sheets APIを呼び出して実際に入力)
    「入力完了しました」 ← 自動化!

対応サービス例

MCPサーバーは様々なサービス向けに公開されています:

  • Google Sheets - スプレッドシート操作
  • GitHub - Issue/PR操作
  • Slack - メッセージ送信
  • PostgreSQL/MySQL - データベース操作
  • Notion - ドキュメント操作
  • など多数...

今回は Google Sheets MCP を使います。


事前準備

必要なもの

  1. Cursor - MCP対応のAIエディタ
  2. Google Cloud Platform (GCP) アカウント - API認証用
  3. Google Drive - スプレッドシート保存先

Step 1: Google Cloud Platform (GCP) の設定

1-1. プロジェクトの作成

  1. Google Cloud Console にアクセス
  2. 左上の「プロジェクトを選択」→「新しいプロジェクト」
  3. プロジェクト名を入力(例: cursor-mcp-sheets
  4. 「作成」をクリック

1-2. APIの有効化

作成したプロジェクトで以下のAPIを有効化します:

  1. 左メニュー「APIとサービス」→「ライブラリ」
  2. 以下のAPIを検索して「有効にする」:
    • Google Sheets API
    • Google Drive API

1-3. サービスアカウントの作成

  1. 左メニュー「APIとサービス」→「認証情報」
  2. 「認証情報を作成」→「サービスアカウント」
  3. 必要情報を入力:
    • サービスアカウント名: cursor-sheets
    • サービスアカウントID: 自動生成されます
  4. 「作成して続行」→ ロールは空欄のまま「続行」→「完了」

1-4. 認証キーのダウンロード

  1. 作成したサービスアカウントをクリック
  2. 「キー」タブ→「鍵を追加」→「新しい鍵を作成」
  3. 「JSON」を選択→「作成」
  4. JSONファイルがダウンロードされる(大切に保管!

ダウンロードしたJSONを適切な場所に配置します:

# 例: ~/.config/gcp/ に配置
mkdir -p ~/.config/gcp
mv ~/Downloads/cursor-mcp-sheets-xxxxx.json ~/.config/gcp/service-account.json

Step 2: Google Drive の共有設定

2-1. 作業用フォルダの作成

  1. Google Drive にアクセス
  2. 「新規」→「フォルダ」で作業用フォルダを作成(例: Cursor-MCP

2-2. サービスアカウントへの共有

重要: サービスアカウントはGoogleアカウントとは別物です。フォルダを共有しないとアクセスできません。

  1. 作成したフォルダを右クリック→「共有」
  2. サービスアカウントのメールアドレスを追加
    • JSONファイル内の client_email の値(xxx@xxx.iam.gserviceaccount.com
  3. 権限を「編集者」に設定
  4. 「送信」

2-3. フォルダIDの取得

フォルダIDはMCP設定で使います:

  1. 共有設定したフォルダを開く
  2. URLからフォルダIDをコピー
https://drive.google.com/drive/folders/1ABC...XYZ
「1ABC...XYZ」の部分がフォルダID

Step 3: MCP設定(Cursor)

3-1. MCP設定ファイルの作成

Cursorの設定ファイルにMCPサーバーを追加します。

macOSの場合: ~/.cursor/mcp.json

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets@latest"],
      "env": {
        "SERVICE_ACCOUNT_PATH": "/path/to/credentials.json",
        "DRIVE_FOLDER_ID": "1ABC...XYZ"
      }
    }
  }
}
環境変数 説明
GOOGLE_APPLICATION_CREDENTIALS サービスアカウントのJSONファイルパス
GOOGLE_SHEETS_FOLDER_ID デフォルトの保存先フォルダID

3-2. Cursorの再起動

設定を反映するためにCursorを再起動します。

3-3. MCPの動作確認

Cursorのチャットで以下を試してみます:

スプレッドシートの一覧を表示して

正常に設定できていれば、フォルダ内のスプレッドシート一覧が表示されます。


Step 4: 実際に使ってみる

ユースケース: エラー調査レポートをスプレッドシートにまとめる

障害が発生した際、アプリケーションのエラーログをAIに読み込んでもらい調査結果をMarkdownにまとめてもらうことが多いのですが、そのMarkdownをもとにスプレッドシートに整形してもらいます。

実際の障害報告書(例)

以下のような障害報告書があったとします:

# 【サンプルサイト】500エラー障害報告

## 障害概要

| 項目 | 内容 |
|------|------|
| **発生日時** | 2025年12月25日 10:00:00 |
| **解消日時** | 2025年12月25日(本番デプロイ完了時) |
| **影響サイト** | サンプルサイト |
| **影響範囲** | 検索ページ全般 |
| **障害レベル** | 重大(検索機能が利用不可) |

## エラー内容

[2025-12-25 10:00:00] production.ERROR: Undefined index: cond
{
    "exception": "ErrorException: Undefined index: cond 
                  at OfferSearchService.php:599"
}

## 原因

定義ファイルの構造がサンプルサイトだけ2段階だったのに、1段階構造を前提としたコードを書いてしまった。

## タイムライン

| 日時 | 事象 |
|------|------|
| 2025-12-20 | コンテンツ追加をデプロイ |
| 2025-12-25 10:00:00 | 500エラー発生 |
| 2025-12-25 | 原因特定・修正・デプロイ完了 |

Cursorへの指示

このMarkdownファイルを読んで、
スプレッドシートに障害報告書としてまとめてください。

/path/to/調査結果.md

結果

AIがMarkdownを解析し、以下のような構造でスプレッドシートを作成してくれました:

作成されたシート構成:

セクション 内容
障害概要 発生日時、影響範囲などの基本情報
エラー内容 エラーメッセージ、スタックトレース
原因 直接原因・根本原因の説明
タイムライン 時系列での経緯
再発防止策 短期・中長期の対策

プレーンテキストの形式ではなく、罫線や背景色、文字色等を適切に設定してくれて、 フォーマットされたスプレッドシートが完成しました。


便利な使い方

スプレッドシートの新規作成

「プロジェクト管理」という名前で新しいスプレッドシートを作成して、必要と思われる項目の雛形を作成して

既存シートへのデータ追加

このサイトの構造を調査して、スプレッドシートにURLの一覧を作成して

データの取得・分析

このスプレッドシートの内容を読んで、完了していないタスクの一覧を教えて

注意点・制限事項

セキュリティ

  • サービスアカウントのJSONファイルは絶対に公開しない
  • 必要最小限のフォルダにのみ共有設定する
  • 機密情報を含むシートへのアクセスは慎重に

制限

  • 大量のセルを一度に更新すると時間がかかる
  • 複雑な書式設定(条件付き書式など)は一部対応していない
  • Google Sheets APIのクォータ制限に注意

トラブルシューティング

症状 原因・対処
「権限がない」エラー サービスアカウントにフォルダ共有されているか確認
MCPが認識されない Cursorを再起動、JSONパスを確認
シートが見つからない 共有フォルダ内にあるか確認

まとめ

Google Sheets × MCP × Cursor の組み合わせで、こんなことができるようになりました:

  • 調査レポートの自動整形 - Markdown → スプレッドシート
  • 定型作業の自動化 - 行追加、データ更新
  • データ分析の効率化 - シートの内容を読んで要約

「AIにスプレッドシートを触らせる」というのは最初は少し怖い気もしましたが、適切に権限設定すれば安全に使えます。

特に障害報告書議事録など、定型フォーマットへの変換作業が多い人には、かなりの時短になるはずです。

MCPは他にもGitHub、Slack、Notionなど様々なサービスに対応しているので、自分のワークフローに合わせて試してみてください。


参考