googlesheets-automation について
googlesheets-automation は、Composio のツールキットを通じて Google Sheets の操作を自動化するスキルです。読み書き、管理、フィルタリング、書式設定、キーに基づく行の更新や追加を扱い、接続済みの Rube MCP と Google Sheets アカウントが必要です。
主な機能
- 01スプレッドシートデータの読み書き
- 02スプレッドシート作成とタブ管理
- 03行の検索とフィルター適用
- 04キーによる行の更新・追加
- 05セル範囲の書式設定
活用シーン
- 01範囲データの一括読み取りや更新
- 02スプレッドシート作成とタブ整理
- 03条件に基づくレコード検索と絞り込み
- 04一意のキーによる CRM・在庫行の同期
MCP 対応
Rube MCP 経由で Composio の Google Sheets ツールを呼び出します。クライアントで Rube MCP を接続し、Google Sheets アカウントの認証を有効にする必要があります。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill googlesheets-automationインストール後、Claude Code で/googlesheets-automationを入力して読み込まれたか確認します。
詳細
Rube MCP による Google Sheets の自動化
データの読み書き、スプレッドシートとタブの管理、セルの書式設定、行のフィルタリング、レコードのアップサートなど、Composio の Google Sheets ツールキットを通じて Google Sheets のワークフローを自動化します。
前提条件
- 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: 2 次元配列。内側の各配列が 1 行ですfirst_cell_location: A1 表記での開始セル(追加する場合は省略)valueInputOption: 'USER_ENTERED'(解析済み)または 'RAW'(リテラル)
注意点:
- 大文字と小文字が誤っている、または存在しないタブ名は "Sheet 'X' not found" エラーになります
- 空の範囲では
valueRanges[i].valuesが省略される場合があります。存在しない場合は空の配列として扱ってください GOOGLESHEETS_BATCH_UPDATEの値は、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 次元配列:1 行だけの場合でも、値のすべてのパラメーターはリストのリストである必要があります
- 色の値:整数の 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 |
データと書き込みの境界
意図した Google アカウントに接続し、必要なスプレッドシートのスコープのみを許可してください。MCP エンドポイントだけではアクセスは認可されません。書き込みの前に、スプレッドシート ID、タブ、正確な範囲を確認してください。UI のフィルターを使っても、値の読み取りで表示中の行だけが返されるわけではありません。データを読み取り、意図した条件を明示的に適用してください。信頼できないリテラルテキストには RAW を使用してください。USER_ENTERED は数式として解釈される場合があります。アップサートキーの重複や同時書き込みを確認してください。また、追加処理の結果が不確かな場合は、むやみに再試行せず、範囲を照合してください。一括処理をスケジュールする前に、実際のプロジェクト/ユーザーおよびメソッドに適用されるクォータ制限を確認してください。
使用する場面
このスキルは、概要に記載されているワークフローまたはアクションを実行する場合に適用できます。
例
ユーザーのリクエスト:
Rube MCP(Composio)を介して Google Sheets の操作(読み取り、書き込み、書式設定、フィルター、スプレッドシートの管理)を自動化する。
制限事項
- このスキルは、タスクが上記の説明の範囲に明確に合致する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認してください。