googlesheets-automation について
googlesheets-automationは、ComposioのツールキットとRube MCPを通じてGoogle Sheetsの作業を自動化するスキルです。データ操作からシート管理、書式設定、キーによる行更新まで扱います。
主な機能
- 01セル範囲の読み書き
- 02スプレッドシート作成とシート管理
- 03行の検索とフィルター適用
- 04キー列を使った行の追加・更新
- 05セル書式とシート属性の設定
活用シーン
- 01キーに基づくCRMや在庫データの同期
- 02スプレッドシート内のレコード検索と更新
- 03シートの追加とデータの書式設定
MCP 対応
Rube MCP経由でComposioのGoogle Sheetsツールキットを利用します。使用には有効なGoogle Sheets接続と最新のツールスキーマが必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ composiohq/ awesome-claude-skills --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 キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確かめます- ツールキット
googlesheetsを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクから Google OAuth を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. データの読み取りと書き込み
使用する場面:Google スプレッドシートからデータを読み取る、または書き込む場合
ツールの順序:
GOOGLESHEETS_SEARCH_SPREADSHEETS- ID が不明な場合、名前でスプレッドシートを検索します[前提条件]GOOGLESHEETS_GET_SHEET_NAMES- 対象のシートを特定するため、タブ名を列挙します[前提条件]GOOGLESHEETS_BATCH_GET- 1 つ以上の範囲からデータを読み取ります[必須]GOOGLESHEETS_BATCH_UPDATE- 範囲にデータを書き込むか、行を追加します[必須]GOOGLESHEETS_VALUES_UPDATE- 特定の単一範囲を更新します[代替手段]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. スプレッドシートの作成と管理
使用する場面:新しいスプレッドシートを作成する場合や、スプレッドシート内のタブを管理する場合
ツールの順序:
GOOGLESHEETS_CREATE_GOOGLE_SHEET1- 新しいスプレッドシートを作成します[必須]GOOGLESHEETS_ADD_SHEET- 新しいタブ/ワークシートを追加します[必須]GOOGLESHEETS_UPDATE_SHEET_PROPERTIES- タブの名前変更、非表示、並べ替え、色の変更を行います[任意]GOOGLESHEETS_GET_SPREADSHEET_INFO- スプレッドシートのメタデータ全体を取得します[任意]GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE- 特定のタブが存在するか確認します[任意]
主なパラメーター:
title:スプレッドシートまたはシートタブの名前spreadsheetId:対象のスプレッドシート IDforceUnique:タブ名がすでに存在する場合、末尾に接尾辞を自動追加します(デフォルトは true)properties.gridProperties:行数、列数、固定する行数を設定します
注意点:
- シート名はスプレッドシート内で一意である必要があります
- デフォルトのシート名はロケールによって異なります(英語では 'Sheet1'、スペイン語では 'Hoja 1')
- 複数のシートを並列で作成する場合は
indexを使用しないでください(「index too high」エラーの原因になります) - アカウントにアクセス権がない場合、
GOOGLESHEETS_GET_SPREADSHEET_INFOは 403 を返すことがあります
3. 行の検索とフィルタリング
使用する場面:特定の行を検索したり、シートのデータにフィルタを適用したりする場合
ツールの手順:
GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW- セルの値が完全に一致する最初の行を検索します[必須]GOOGLESHEETS_SET_BASIC_FILTER- 範囲にフィルタや並べ替えを適用します[代替]GOOGLESHEETS_CLEAR_BASIC_FILTER- 既存のフィルタを削除します[任意]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. キーを使った行のアップサート
使用する場面:一意のキー列に基づいて既存の行を更新したり、新しい行を挿入したりする場合
ツールの手順:
GOOGLESHEETS_UPSERT_ROWS- 一致する行を更新するか、新しい行を末尾に追加します[必須]
主なパラメーター:
spreadsheetId:対象のスプレッドシート IDsheetName:タブ名keyColumn:一意の識別子として使用する列見出し名(例:'Email'、'SKU')headers:データの列名のリストrows:データ行の 2 次元配列strictMode:列数が一致しない場合にエラーにするかどうか(デフォルトは true)
注意点:
keyColumnには実際の列見出し名を指定する必要があります。列文字ではありません(例:'A' ではなく 'Email')headersが指定されていない場合、rowsの最初の行が列見出しとして扱われますstrictMode=trueの場合、列見出しより値の数が多い行はエラーになります- シートに不足している列が自動的に追加されます
5. セルの書式設定
使用する場面:セルに書式(太字、色、フォントサイズ)を適用する場合
ツールの手順:
GOOGLESHEETS_GET_SPREADSHEET_INFO- 対象タブの数値の sheetId を取得します[前提条件]GOOGLESHEETS_FORMAT_CELL- 範囲に書式を適用します[必須]GOOGLESHEETS_UPDATE_SHEET_PROPERTIES- 固定する行や列幅を変更します[任意]
主なパラメーター:
spreadsheet_id:スプレッドシート IDworksheet_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_SPREADSHEETS | query、search_type |
| スプレッドシートを作成 | GOOGLESHEETS_CREATE_GOOGLE_SHEET1 | title |
| タブを一覧表示 | GOOGLESHEETS_GET_SHEET_NAMES | spreadsheet_id |
| タブを追加 | GOOGLESHEETS_ADD_SHEET | spreadsheetId、title |
| データを読み取り | GOOGLESHEETS_BATCH_GET | spreadsheet_id、ranges |
| 単一の範囲を読み取り | GOOGLESHEETS_VALUES_GET | spreadsheet_id、range |
| データを書き込み | GOOGLESHEETS_BATCH_UPDATE | spreadsheet_id、sheet_name、values |
| 範囲を更新 | GOOGLESHEETS_VALUES_UPDATE | spreadsheet_id、range、values |
| 行を追加 | GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND | spreadsheetId、range、values |
| 行をアップサート | GOOGLESHEETS_UPSERT_ROWS | spreadsheetId、sheetName、keyColumn、rows |
| 行を検索 | GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW | spreadsheet_id、query |
| セルを書式設定 | GOOGLESHEETS_FORMAT_CELL | spreadsheet_id、worksheet_id、range |
| フィルターを設定 | GOOGLESHEETS_SET_BASIC_FILTER | spreadsheetId、filter |
| 値をクリア | GOOGLESHEETS_CLEAR_VALUES | spreadsheet_id、range |
| 行/列を削除 | GOOGLESHEETS_DELETE_DIMENSION | spreadsheet_id、sheet_name、dimension |
| スプレッドシート情報 | GOOGLESHEETS_GET_SPREADSHEET_INFO | spreadsheet_id |
| タブのプロパティを更新 | GOOGLESHEETS_UPDATE_SHEET_PROPERTIES | spreadsheetId、properties |
Composio 提供