mcpField
G
google-sheets

google-sheets

github.com/acedatacloudドキュメント17170 回インストール1 日前に更新
リポジトリ

google-sheets について

curl と jq で Sheets API を呼び出し、Google Sheets を操作するスキルです。表の情報確認、セル値の読み書き、スプレッドシートの作成やシート追加に対応し、OAuth スコープの要件も説明します。

主な機能

  1. 01スプレッドシートのタイトルとシート確認
  2. 02A1 形式による範囲の読み取り
  3. 03行の追加とセル値の更新
  4. 04スプレッドシート作成とシート追加
  5. 05OAuth スコープと入力形式への対応

活用シーン

  1. 01シート構成と内容の確認
  2. 02行の追加やセル範囲の更新
  3. 03レポート用スプレッドシートの作成
  4. 04既存ファイルへのシート追加

インストール

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

$npx skills add https://github.com/acedatacloud/skills --skill google-sheets

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

詳細

curl + jq を使って Google Sheets を操作します。ユーザーの OAuth ベアラートークンは $GOOGLE_SHEETS_TOKEN に格納されています。すべての呼び出しで Authorization: Bearer $GOOGLE_SHEETS_TOKEN が必要です。ベース URL:https://sheets.googleapis.com/v4/spreadsheets。 トークンには spreadsheets.readonly(および ID 情報)が含まれています。書き込みには、より広い spreadsheets スコープが必要です。

エラーは {"error":{"code","message","status"}} です。そのまま表示してください。401 = 再インストールしてください。書き込み時の 403 PERMISSION_DENIED = 読み取り専用スコープです。読み取りと書き込みの両方ができるよう、再接続してください。

スプレッドシート ID は、URL 内の …/spreadsheets/d/<ID>/edit の部分です。

S="https://sheets.googleapis.com/v4/spreadsheets"; AUTH="Authorization: Bearer $GOOGLE_SHEETS_TOKEN"
# Tabs + title
curl -sS -H "$AUTH" "$S/SPREADSHEET_ID?fields=properties.title,sheets.properties(title,sheetId)" \
  | jq '{title: .properties.title, tabs: [.sheets[].properties.title]}'

値の読み取り/追加/更新

ID="SPREADSHEET_ID"
# Read a range (A1 notation; values are rows of cells)
curl -sS -H "$AUTH" "$S/$ID/values/Sheet1!A1:D20" | jq '.values'

# Append rows (confirm first). valueInputOption=USER_ENTERED parses formulas/dates.
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"values":[["2026-06-21","Acme",4200]]}' \
  "$S/$ID/values/Sheet1!A1:append?valueInputOption=USER_ENTERED" | jq '.updates'

# Update a fixed range: PUT /values/{range}?valueInputOption=USER_ENTERED
curl -sS -X PUT -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"values":[["done"]]}' \
  "$S/$ID/values/Sheet1!E2?valueInputOption=USER_ENTERED" | jq '.updatedCells'

スプレッドシートの作成/タブの追加

# New spreadsheet
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"properties":{"title":"Report 2026"}}' "$S" | jq '{spreadsheetId, spreadsheetUrl}'

# Add a tab via batchUpdate (addSheet request)
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"requests":[{"addSheet":{"properties":{"title":"Q3"}}}]}' \
  "$S/$ID:batchUpdate" | jq '.replies'

注意点

  • A1 表記: Sheet1!A1:D20。スペースを含むタブ名は 'My Tab'!A1 のように引用符で囲みます。
  • valueInputOption=RAW は文字列をそのまま保存します。USER_ENTERED は UI と同様に解釈します(数値、日付、=FORMULA)。意図に応じて選択してください。
  • values は行優先です([[row1...],[row2...]])。末尾のセルが欠けている場合、返されるデータは短くなります。矩形データであると想定しないでください。

コメント