mcpField
G
googlesheets-automation

googlesheets-automation

github.com/davepoonデータ・データベース3.7k122 回インストール1 日前に更新
リポジトリ

googlesheets-automation について

Rube MCP上のComposioツールキットでGoogle Sheetsの作業を自動化するワークフロースキルです。データ操作、シート管理、行の検索・絞り込みとアップサート、セルの書式設定に対応します。

主な機能

  1. 01表データの読み取り・書き込み・追加
  2. 02スプレッドシートの作成とシート管理
  3. 03行の検索と絞り込み
  4. 04キーによる行のアップサート
  5. 05セル書式とシートプロパティの変更

活用シーン

  1. 01既存シートのレコード更新
  2. 02スプレッドシートのタブ作成と整理
  3. 03値に一致する行の検索
  4. 04一意キーによるレコード同期

MCP 対応

Rube MCPとComposio Google Sheetsツールキットを通じてシート関連ツールを呼び出します。利用には有効なGoogle Sheets接続が必要です。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davepoon/buildwithclaude --skill googlesheets-automation

インストール後、Claude Code で/googlesheets-automationを入力して読み込まれたか確認します。

詳細

Rube MCP による Google Sheets の自動化

Composio の Google Sheets ツールキットを通じて、データの読み取り/書き込み、スプレッドシートやタブの管理、セルの書式設定、行のフィルタリング、レコードのアップサートなど、Google Sheets のワークフローを自動化します。

ツールキットのドキュメント:composio.dev/toolkits/googlesheets

前提条件

  • Rube MCP に接続されていること(RUBE_SEARCH_TOOLS が利用可能)
  • ツールキット googlesheets を指定した RUBE_MANAGE_CONNECTIONS による有効な Google Sheets 接続
  • 現在のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください

セットアップ

Rube MCP を入手する:クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確かめます
  2. ツールキット googlesheets を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクから Google OAuth を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

主なワークフロー

1. データの読み取りと書き込み

使用する場面:Google スプレッドシートからデータを読み取る、または書き込む場合

ツールの順序:

  1. GOOGLESHEETS_SEARCH_SPREADSHEETS - ID が不明な場合、名前でスプレッドシートを検索します[前提条件]
  2. GOOGLESHEETS_GET_SHEET_NAMES - 対象のシートを特定するため、タブ名を列挙します[前提条件]
  3. GOOGLESHEETS_BATCH_GET - 1 つ以上の範囲からデータを読み取ります[必須]
  4. GOOGLESHEETS_BATCH_UPDATE - 範囲にデータを書き込むか、行を追加します[必須]
  5. GOOGLESHEETS_VALUES_UPDATE - 特定の単一範囲を更新します[代替手段]
  6. GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND - テーブルの末尾に行を追加します[代替手段]

主なパラメーター:

  • spreadsheet_id:スプレッドシートの URL に含まれる英数字の ID(「/d/」と「/edit」の間)
  • ranges:A1 表記の配列(例:'Sheet1!A1:Z1000')。必ず範囲の上限を指定してください
  • sheet_name:タブ名(大文字と小文字を区別しない照合に対応)
  • values:各内部配列を 1 行とする 2 次元配列
  • first_cell_location:A1 表記の開始セル(末尾に追加する場合は省略)
  • valueInputOption:'USER_ENTERED'(解析される)または 'RAW'(リテラル)

注意点:

  • タブ名の大文字と小文字が一致しない場合や、存在しないタブ名を指定した場合は、「Sheet 'X' not found」エラーになります
  • 範囲にデータがない場合、valueRanges[i].values が省略されることがあります。欠落している場合は空の配列として扱ってください
  • GOOGLESHEETS_BATCH_UPDATE の values は、1 行だけの場合でも 2 次元配列(リストのリスト)である必要があります
  • 10,000 行を超えるシートで 'A:Z' のような上限のない範囲を指定すると、タイムアウトすることがあります。必ず行数の上限を指定してください
  • 追記は検出された tableRange に従います。配置を確認するには、返された updatedRange を使用してください
2. スプレッドシートの作成と管理

使用する場面:新しいスプレッドシートを作成する場合や、スプレッドシート内のタブを管理する場合

ツールの順序:

  1. GOOGLESHEETS_CREATE_GOOGLE_SHEET1 - 新しいスプレッドシートを作成します[必須]
  2. GOOGLESHEETS_ADD_SHEET - 新しいタブ/ワークシートを追加します[必須]
  3. GOOGLESHEETS_UPDATE_SHEET_PROPERTIES - タブの名前変更、非表示、並べ替え、色の変更を行います[任意]
  4. GOOGLESHEETS_GET_SPREADSHEET_INFO - スプレッドシートのメタデータ全体を取得します[任意]
  5. GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE - 特定のタブが存在するか確認します[任意]

主なパラメーター:

  • title:スプレッドシートまたはシートタブの名前
  • spreadsheetId:対象のスプレッドシート ID
  • forceUnique:タブ名がすでに存在する場合、末尾に接尾辞を自動追加します(デフォルトは true)
  • properties.gridProperties:行数、列数、固定する行数を設定します

注意点:

  • シート名はスプレッドシート内で一意である必要があります
  • デフォルトのシート名はロケールによって異なります(英語では 'Sheet1'、スペイン語では 'Hoja 1')
  • 複数のシートを並列で作成する場合は index を使用しないでください(「index too high」エラーの原因になります)
  • アカウントにアクセス権がない場合、GOOGLESHEETS_GET_SPREADSHEET_INFO は 403 を返すことがあります
3. 行の検索とフィルタリング

使用する場面:特定の行を検索したり、シートのデータにフィルタを適用したりする場合

ツールの手順:

  1. GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW - セルの値が完全に一致する最初の行を検索します[必須]
  2. GOOGLESHEETS_SET_BASIC_FILTER - 範囲にフィルタや並べ替えを適用します[代替]
  3. GOOGLESHEETS_CLEAR_BASIC_FILTER - 既存のフィルタを削除します[任意]
  4. GOOGLESHEETS_BATCH_GET - フィルタ済みの結果を読み取ります[任意]

主なパラメーター:

  • query:一致させる正確なテキスト値(セル全体の内容と一致します)
  • range:検索対象の A1 表記の範囲
  • case_sensitive:大文字と小文字を区別するかどうかを指定するブール値(デフォルトは false)
  • filter.range:基本フィルタ用の sheet_id を含むグリッド範囲
  • filter.criteria:列単位のフィルタ条件
  • filter.sortSpecs:並べ替えの指定

注意点:

  • GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW は部分文字列ではなく、セル全体の内容と一致します
  • スペースを含むシート名は、範囲内でシングルクォートで囲む必要があります(例:"'My Sheet'!A:Z")
  • 範囲を含まないシート名だけの指定は検索でサポートされていません。必ず範囲を指定してください
4. キーを使った行のアップサート

使用する場面:一意のキー列に基づいて既存の行を更新したり、新しい行を挿入したりする場合

ツールの手順:

  1. GOOGLESHEETS_UPSERT_ROWS - 一致する行を更新するか、新しい行を末尾に追加します[必須]

主なパラメーター:

  • spreadsheetId:対象のスプレッドシート ID
  • sheetName:タブ名
  • keyColumn:一意の識別子として使用する列見出し名(例:'Email'、'SKU')
  • headers:データの列名のリスト
  • rows:データ行の 2 次元配列
  • strictMode:列数が一致しない場合にエラーにするかどうか(デフォルトは true)

注意点:

  • keyColumn には実際の列見出し名を指定する必要があります。列文字ではありません(例:'A' ではなく 'Email')
  • headers が指定されていない場合、rows の最初の行が列見出しとして扱われます
  • strictMode=true の場合、列見出しより値の数が多い行はエラーになります
  • シートに不足している列が自動的に追加されます
5. セルの書式設定

使用する場面:セルに書式(太字、色、フォントサイズ)を適用する場合

ツールの手順:

  1. GOOGLESHEETS_GET_SPREADSHEET_INFO - 対象タブの数値の sheetId を取得します[前提条件]
  2. GOOGLESHEETS_FORMAT_CELL - 範囲に書式を適用します[必須]
  3. GOOGLESHEETS_UPDATE_SHEET_PROPERTIES - 固定する行や列幅を変更します[任意]

主なパラメーター:

  • spreadsheet_id:スプレッドシート ID
  • worksheet_id:数値の sheetId(タブ名ではありません)。GET_SPREADSHEET_INFO から取得します
  • range:A1 表記(例:'A1:F1')。インデックスフィールドよりもこちらを推奨します
  • bold、italic、underline、strikethrough:書式設定のブール値オプション
  • red、green、blue:背景色を 0.0~1.0 の浮動小数点数で指定します(0~255 の整数ではありません)
  • fontSize:ポイント単位のフォントサイズ

注意点:

  • タブのタイトルではなく、数値の worksheet_id が必要です。スプレッドシートのメタデータから取得してください
  • 色の各チャンネルは 0~1 の浮動小数点数です(例:赤を最大にする場合は 1.0)。0~255 の整数ではありません
  • 応答が空の reply オブジェクト([{}])を返す場合があります。読み取り直して書式設定を確認してください
  • 1 回の呼び出しで書式設定できる範囲は 1 つです。複数の範囲に書式設定するには、個別に呼び出す必要があります

一般的なパターン

ID の解決
  • スプレッドシート名 -> ID:query を指定して GOOGLESHEETS_SEARCH_SPREADSHEETS
  • タブ名 -> sheetId:GOOGLESHEETS_GET_SPREADSHEET_INFO を使用し、sheets のメタデータから取得します
  • タブの存在確認:GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE
レート制限

Google Sheets には厳格なレート制限があります:

  • 読み取りは最大 60 回/分、書き込みは最大 60 回/分です
  • 制限を超えるとエラーになります。可能な場合はバッチ操作を使用してください
  • 効率化のため、GOOGLESHEETS_BATCH_GET と GOOGLESHEETS_BATCH_UPDATE を使用してください
データのパターン
  • 既存のレイアウトを把握するため、書き込む前に必ず読み取ってください
  • CRM の同期、在庫の更新、重複排除のシナリオには GOOGLESHEETS_UPSERT_ROWS を使用してください
  • 新しいレコードを追加する場合は、追加モード(first_cell_location を省略)が最も安全です
  • 書式を保持したまま内容を消去するには、GOOGLESHEETS_CLEAR_VALUES を使用してください

既知の落とし穴

  • タブ名:ロケールによってデフォルトが異なります。英語以外のアカウントでは「Sheet1」が存在しない場合があります。
  • 範囲の表記:A1 表記では、スペースを含むシート名を単一引用符で囲む必要があります。
  • 上限のない範囲:大きなシートではタイムアウトする可能性があるため、必ず行の範囲を指定してください(例:「A1:Z10000」)。
  • 2 次元配列:単一行の場合でも、すべての値パラメーターはリストのリストである必要があります。
  • 色の値:整数の 0~255 ではなく、浮動小数点数の 0.0~1.0 を指定します。
  • 書式設定 ID:FORMAT_CELL にはタブのタイトルではなく、数値の sheetId が必要です。
  • レート制限:読み取りは 1 分あたり 60 回、書き込みは 1 分あたり 60 回です。制限内に収まるよう、バッチ処理してください。
  • ディメンションの削除:GOOGLESHEETS_DELETE_DIMENSION は元に戻せません。範囲をよく確認してください。

クイックリファレンス

タスクツールのスラッグ主なパラメーター
スプレッドシートを検索GOOGLESHEETS_SEARCH_SPREADSHEETSquery、search_type
スプレッドシートを作成GOOGLESHEETS_CREATE_GOOGLE_SHEET1title
タブを一覧表示GOOGLESHEETS_GET_SHEET_NAMESspreadsheet_id
タブを追加GOOGLESHEETS_ADD_SHEETspreadsheetId、title
データを読み取りGOOGLESHEETS_BATCH_GETspreadsheet_id、ranges
単一の範囲を読み取りGOOGLESHEETS_VALUES_GETspreadsheet_id、range
データを書き込みGOOGLESHEETS_BATCH_UPDATEspreadsheet_id、sheet_name、values
範囲を更新GOOGLESHEETS_VALUES_UPDATEspreadsheet_id、range、values
行を追加GOOGLESHEETS_SPREADSHEETS_VALUES_APPENDspreadsheetId、range、values
行をアップサートGOOGLESHEETS_UPSERT_ROWSspreadsheetId、sheetName、keyColumn、rows
行を検索GOOGLESHEETS_LOOKUP_SPREADSHEET_ROWspreadsheet_id、query
セルを書式設定GOOGLESHEETS_FORMAT_CELLspreadsheet_id、worksheet_id、range
フィルターを設定GOOGLESHEETS_SET_BASIC_FILTERspreadsheetId、filter
値をクリアGOOGLESHEETS_CLEAR_VALUESspreadsheet_id、range
行/列を削除GOOGLESHEETS_DELETE_DIMENSIONspreadsheet_id、sheet_name、dimension
スプレッドシート情報GOOGLESHEETS_GET_SPREADSHEET_INFOspreadsheet_id
タブのプロパティを更新GOOGLESHEETS_UPDATE_SHEET_PROPERTIESspreadsheetId、properties

Composio 提供

コメント