Skip to main content
Glama

PyPI - Version PyPI Downloads GitHub License GitHub Actions Workflow Status


🤔 これは何?

mcp-google-sheets は、MCP互換クライアント(Claude Desktopなど)とGoogle Sheets APIの間のブリッジとして機能する、PythonベースのMCPサーバーです。定義されたツールセットを使用してGoogleスプレッドシートを操作でき、AIによる強力な自動化とデータ操作ワークフローを実現します。


Related MCP server: mcp-google-sheets

🚀 クイックスタート(uvx を使用)

基本的にサーバーは1行で実行できます:uvx mcp-google-sheets@latest。

このコマンドは最新のコードを自動的にダウンロードして実行します。常に @latest を使用することをお勧めします。最新の機能とバグ修正を含む最新バージョンを確実に入手できます。

以下で使用されるIDの詳細については、IDリファレンスガイド を参照してください。

  1. ☁️ 前提条件:Google Cloudの設定

    • まずGoogle Cloud Platformの認証情報を設定し、必要なAPIを有効化する必要があります。サービスアカウントの使用を強くお勧めします。

    • ➡️ 以下の Google Cloud Platform設定の詳細 ガイドに移動してください。

  2. 🐍 uv のインストール

    • uvx は uv(高速なPythonパッケージインストーラー兼リゾルバー)の一部です。まだインストールしていない場合はインストールしてください:

      # macOS / Linux
      curl -LsSf https://astral.sh/uv/install.sh | sh
      # Windows
      powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
      # Or using pip:
      # pip install uv

      必要に応じて、インストーラーの出力に記載されている指示に従って uv をPATHに追加してください。

  3. 🔑 必須の環境変数を設定(サービスアカウント推奨)

    • サーバーに認証方法を伝える必要があります。ターミナルで以下の変数を設定してください:

    • (Linux/macOS)

      # Replace with YOUR actual path and folder ID from the Google Setup step
      export SERVICE_ACCOUNT_PATH="/path/to/your/service-account-key.json"
      export DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
    • (Windows CMD)

      set SERVICE_ACCOUNT_PATH="C:\path\to\your\service-account-key.json"
      set DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
    • (Windows PowerShell)

      $env:SERVICE_ACCOUNT_PATH = "C:\path\to\your\service-account-key.json"
      $env:DRIVE_FOLDER_ID = "YOUR_DRIVE_FOLDER_ID"
    • ➡️ 他のオプション(OAuth、CREDENTIALS_CONFIG)については、認証と環境変数の詳細 を参照してください。

  4. 🏃 サーバーを実行!

    • uvx が最新バージョンの mcp-google-sheets を自動的にダウンロードして実行します:

      uvx mcp-google-sheets@latest
    • サーバーが起動し、準備完了を示すログが出力されます。

    • 💡 プロのヒント: バグ修正と機能を含む最新バージョンを確実に入手するには、常に @latest を使用してください。@latest を付けない場合、uvx はキャッシュされた古いバージョンを使用する可能性があります。

  5. 🔌 MCPクライアントを接続

    • クライアント(例:Claude Desktop)が実行中のサーバーに接続するように設定します。

    • 使用するクライアントによっては、クライアントがサーバーを起動できるため、手順4は不要な場合があります。ただし、設定が正しく行われていることを確認するために、手順4をテスト実行することをお勧めします。

    • ➡️ 例については、Claude Desktopでの使用 を参照してください。

  6. ⚡ オプション:ツールフィルタリングを有効化(コンテキスト使用量を削減)

    • デフォルトでは、全19ツールが有効です(約13Kトークン)。コンテキスト使用量を削減するには、必要なツールのみを有効にします。

    • ➡️ 詳細については、ツールフィルタリング を参照してください。

準備完了です!MCPクライアントを介してコマンドを発行しましょう。


✨ 主な機能

  • シームレスな統合: Google DriveおよびGoogle Sheets APIに直接接続します。

  • 包括的なツール: 幅広い操作(CRUD、一覧表示、バッチ処理、共有、書式設定など)を提供します。

  • 柔軟な認証: サービスアカウント(推奨)、OAuth 2.0、環境変数による直接の認証情報注入をサポートします。

  • 簡単なデプロイ: uvx で即座に実行(インストール不要の感覚)、または uv を使用して開発用にクローン。

  • AI対応: MCP互換クライアントでの使用を想定して設計されており、自然言語でのスプレッドシート操作を可能にします。

  • ツールフィルタリング: --include-tools または ENABLED_TOOLS 環境変数で必要なツールのみを有効にし、コンテキストウィンドウの使用量を削減します。


🎯 ツールフィルタリング(コンテキスト使用量の削減)

問題: デフォルトでは、このMCPサーバーは全19ツールを公開しており、会話が始まる前に約13,000トークンを消費します。数個のツールしか必要ない場合、これは貴重なコンテキストウィンドウのスペースを無駄にします。

解決策: ツールフィルタリングを使用して、実際に使用するツールのみを有効にします。

ツールフィルタリングを有効にする方法

以下のいずれかを使用してツールをフィルタリングできます:

  1. コマンドライン引数 --include-tools:

    {
      "mcpServers": {
        "google-sheets": {
          "command": "uvx",
          "args": [
            "mcp-google-sheets@latest",
            "--include-tools",
            "get_sheet_data,update_cells,list_spreadsheets,list_sheets"
          ],
          "env": {
            "SERVICE_ACCOUNT_PATH": "/path/to/credentials.json"
          }
        }
      }
    }
  2. 環境変数 ENABLED_TOOLS:

    {
      "mcpServers": {
        "google-sheets": {
          "command": "uvx",
          "args": ["mcp-google-sheets@latest"],
          "env": {
            "SERVICE_ACCOUNT_PATH": "/path/to/credentials.json",
            "ENABLED_TOOLS": "get_sheet_data,update_cells,list_spreadsheets,list_sheets"
          }
        }
      }
    }

利用可能なツール名

フィルタリングする際は、以下の正確なツール名を使用してください(カンマ区切り、スペースなし):

最も一般的なツール(推奨サブセット):

  • get_sheet_data - スプレッドシートから読み取り

  • update_cells - スプレッドシートに書き込み

  • list_spreadsheets - スプレッドシートを検索

  • list_sheets - タブをナビゲート

利用可能な全ツール:

  • add_columns

  • add_rows

  • batch_update

  • batch_update_cells

  • copy_sheet

  • create_sheet

  • create_spreadsheet

  • find_in_spreadsheet

  • get_multiple_sheet_data

  • get_multiple_spreadsheet_summary

  • get_sheet_data

  • get_sheet_formulas

  • list_folders

  • list_sheets

  • list_spreadsheets

  • rename_sheet

  • search_spreadsheets

  • share_spreadsheet

  • update_cells

注: --include-tools と ENABLED_TOOLS のどちらも指定しない場合、すべてのツールが有効になります(デフォルトの動作)。


🛠️ 利用可能なツールとリソース

このサーバーは、Google Sheetsと連携するための以下のツールを公開しています:

以下で使用されるIDの詳細については、IDリファレンスガイド を参照してください。

(入力パラメータは特に指定がない限り通常は文字列です)

  • list_spreadsheets: 設定されたDriveフォルダ(サービスアカウント)内、またはユーザーがアクセス可能な(OAuth)スプレッドシートを一覧表示します。

    • folder_id(任意の文字列): 検索するGoogle DriveフォルダID。URLから取得します。省略した場合、設定済みのデフォルトフォルダを使用するか、「マイドライブ」を検索します。

    • 戻り値: オブジェクトのリスト [{id: string, title: string}]

  • create_spreadsheet: 新しいスプレッドシートを作成します。

    • title(文字列): スプレッドシートの希望タイトル。例: "Quarterly Report Q4"。

    • folder_id(任意の文字列): スプレッドシートを作成するGoogle DriveフォルダID。URLから取得します。省略した場合、設定済みのデフォルトまたはルートを使用します。

    • 戻り値: spreadsheetId、title、folder を含むスプレッドシート情報のオブジェクト。

  • get_sheet_data: シート/タブの範囲からデータを読み取ります。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • sheet(文字列): シート/タブの名前(例: "Sheet1")。

    • range(任意の文字列): A1記法(例: 'A1:C10'、'Sheet1!B2:D')。省略した場合、sheet で指定されたシート/タブ全体を読み取ります。

    • include_grid_data(任意のブール値、デフォルト False): True の場合、書式やメタデータを含む完全なグリッドデータを返します(はるかに大きい)。False の場合、値のみを返します(より効率的)。

    • 戻り値: include_grid_data=True の場合、メタデータ付きの完全なグリッドデータ(get レスポンス)。False の場合、Values API からの値結果オブジェクト(values.get レスポンス)。

  • get_sheet_formulas: シート/タブの範囲から数式を読み取ります。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • sheet(文字列): シート/タブの名前(例: "Sheet1")。

    • range(任意の文字列): A1記法(例: 'A1:C10'、'Sheet1!B2:D')。省略した場合、sheet で指定されたシート/タブ内のすべての数式を読み取ります。

    • 戻り値: セル数式の2次元配列(配列の配列)(values.get レスポンス)。

  • update_cells: 特定の範囲にデータを書き込みます。既存のデータを上書きします。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • sheet(文字列): シート/タブの名前(例: "Sheet1")。

    • range(文字列): 書き込むA1記法の範囲(例: 'A1:C3')。

    • data(配列の配列): 書き込む値の2次元配列。例: [[1, 2, 3], ["a", "b", "c"]]。

    • 戻り値: 更新結果オブジェクト(values.update レスポンス)。

  • batch_update_cells: 1回のAPI呼び出しで複数の範囲を更新します。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • sheet(文字列): シート/タブの名前(例: "Sheet1")。

    • ranges(オブジェクト): 範囲文字列(A1記法)を値の2次元配列にマッピングする辞書。例: { "A1:B2": [[1, 2], [3, 4]], "D5": [["Hello"]] }。

    • 戻り値: 操作の結果(values.batchUpdate レスポンス)。

  • add_rows: 指定したインデックスにシート/タブへ空の行を追加(挿入)します。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • sheet(文字列): シート/タブの名前(例: "Sheet1")。

    • count(整数): 挿入する空の行数。

    • start_row(任意の整数、デフォルト 0): 行の挿入を開始する0始まりの行インデックス。省略した場合、0(先頭に挿入)になります。

    • 戻り値: 操作の結果(batchUpdate レスポンス)。

  • list_sheets: スプレッドシート内のすべてのシート/タブ名を一覧表示します。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • 戻り値: シート/タブ名の文字列リスト。例: ["Sheet1", "Sheet2"]。

  • create_sheet: スプレッドシートに新しいシート/タブを追加します。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • title(文字列): 新しいシート/タブの名前。

    • 戻り値: 新しいシートのプロパティオブジェクト。

  • get_multiple_sheet_data: 1回の呼び出しで、異なるスプレッドシートにまたがる複数の範囲からデータを取得します。

    • queries(オブジェクトの配列): 各オブジェクトには spreadsheet_id、sheet、range が必要です。例: [{"spreadsheet_id": "abc", "sheet": "Sheet1", "range": "A1:B2"}, ...]。

    • 戻り値: 各オブジェクトがクエリパラメータと取得した data または error を含むオブジェクトのリスト。各 data は values.get レスポンス です。

  • get_multiple_spreadsheet_summary: 複数のスプレッドシートについて、タイトル、シート/タブ名、ヘッダー、最初の数行を取得します。

    • spreadsheet_ids(文字列の配列): スプレッドシートのID(URLから取得)。

    • rows_to_fetch(任意の整数、デフォルト 5): プレビューする行数(ヘッダーを含む)。例: 5。

    • 戻り値: 各スプレッドシートのサマリーオブジェクトのリスト。

  • share_spreadsheet: 指定したユーザー/メールアドレスとロールでスプレッドシートを共有します。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • recipients(オブジェクトの配列): [{"email_address": "user@example.com", "role": "writer"}, ...]。ロール: reader、commenter、writer。

    • send_notification(任意のブール値、デフォルト True): 受信者にメール通知を送信します。

    • 戻り値: successes と failures のリストを含む辞書。

  • add_columns: 指定したインデックスにシート/タブへ空の列を追加(挿入)します。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • sheet(文字列): シート/タブの名前(例: "Sheet1")。

    • count(整数): 挿入する空の列数。

    • start_column(任意の整数、デフォルト 0): 挿入を開始する0始まりの列インデックス。省略した場合、0(先頭に挿入)になります。

    • 戻り値: 操作の結果(batchUpdate レスポンス)。

  • copy_sheet: あるスプレッドシートから別のスプレッドシートへシート/タブを複製し、必要に応じて名前を変更します。

    • src_spreadsheet(文字列): コピー元のスプレッドシートID(URLから取得)。

    • src_sheet(文字列): コピー元のシート/タブ名(例: "Sheet1")。

    • dst_spreadsheet(文字列): コピー先のスプレッドシートID(URLから取得)。

    • dst_sheet(文字列): コピー先スプレッドシートでの希望するシート/タブ名。

    • 戻り値: コピーおよび任意の名前変更操作の結果。

  • rename_sheet: 既存のシート/タブの名前を変更します。

    • spreadsheet(文字列): スプレッドシートID(URLから取得)。

    • sheet(文字列): 現在のシート/タブ名(例: "Sheet1")。

    • new_name(文字列): 新しいシート/タブ名(例: "Transactions")。

    • 戻り値: 操作の結果(batchUpdate レスポンス)。

  • add_chart: 指定したデータからGoogleスプレッドシートにグラフを作成します。

    • spreadsheet_id(文字列): スプレッドシートID(URLから取得)。

    • sheet(文字列): データを含むシート/タブの名前(例: "Sheet1")。

    • chart_type(文字列): 作成するグラフの種類。オプション: COLUMN(縦棒)、BAR(横棒)、LINE、AREA、PIE、SCATTER、COMBO、HISTOGRAM。

    • data_range(文字列): グラフデータのA1記法の範囲(例: "A1:C10")。最初の行はヘッダーとして扱われます。

    • title(任意の文字列): グラフのタイトル。

    • x_axis_label(任意の文字列): X軸(下軸)のラベル。円グラフには適用されません。

    • y_axis_label(任意の文字列): Y軸(左軸)のラベル。円グラフには適用されません。

    • position_x(任意の整数、デフォルト 0): 左上隅からの水平方向のオフセット(ピクセル単位)。

    • position_y(任意の整数、デフォルト 0): 左上隅からの垂直方向のオフセット(ピクセル単位)。

    • width(任意の整数、デフォルト 600): グラフの幅(ピクセル単位)。

    • height(任意の整数、デフォルト 400): グラフの高さ(ピクセル単位)。

    • 戻り値: 成功ステータス、グラフID、操作の詳細を含む結果オブジェクト。

MCPリソース:

  • spreadsheet://{spreadsheet_id}/info: Googleスプレッドシートに関する基本メタデータを取得します。

    • 戻り値: スプレッドシート情報を含むJSON文字列。


☁️ Google Cloud Platformのセットアップ(詳細)

このセットアップはサーバーを実行する前に必須です。

  1. GCPプロジェクトの作成/選択: Google Cloud Console に移動します。

  2. APIの有効化: 「APIとサービス」→「ライブラリ」に移動します。以下を検索して有効にします:

    • Google Sheets API

    • Google Drive API

  3. 認証情報の設定: 以下の認証方法から1つを選択する必要があります(サービスアカウントが推奨されます)。


🔑 認証と環境変数(詳細)

サーバーがGoogle APIにアクセスするには認証情報が必要です。1つの方法を選択してください:

以下のIDの詳細については、IDリファレンスガイド を参照してください。

方法A: サービスアカウント(サーバー/自動化に推奨)✅

  • 理由: ヘッドレス(ブラウザ不要)、安全、サーバー環境に最適。簡単に期限切れになりません。

  • 手順:

    1. サービスアカウントの作成: GCPコンソール →「IAMと管理」→「サービスアカウント」。

      • 「+ サービスアカウントを作成」をクリックします。名前を付けます(例: mcp-sheets-service)。

      • ロールを付与: 広範なアクセスには Editor ロールを追加するか、より厳格な権限にはより詳細なロール(roles/drive.file や特定のSheetsロールなど)を追加します。

      • 「完了」をクリックします。アカウントを見つけ、操作(⋮)→「鍵を管理」をクリックします。

      • 「鍵を追加」→「新しい鍵を作成」→ JSON →「作成」をクリックします。

      • JSONキーファイルをダウンロードして安全に保管します。

    2. Google Driveフォルダの作成と共有:

      • Google Drive でフォルダを作成します(例: "AI Managed Sheets")。

      • URLからフォルダIDをメモします: https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID。

      • フォルダを右クリック→「共有」→「共有」。

      • サービスアカウントのメールアドレス(JSONファイルの client_email)を入力します。

      • 編集者アクセスを付与します。「ユーザーに通知」のチェックを外します。「共有」をクリックします。

    3. 環境変数の設定:

      • SERVICE_ACCOUNT_PATH: ダウンロードしたJSONキーファイルの完全なパス。

      • DRIVE_FOLDER_ID: 共有されたGoogle DriveフォルダのID。 (OS別の例についてはウルトラクイックスタートを参照してください)

方法B: OAuth 2.0(対話型 / 個人利用)🧑💻

  • 理由: 対話型のブラウザログインが問題ない個人利用やローカル開発向け。

  • 手順:

    1. OAuth同意画面の設定: GCPコンソール →「APIとサービス」→「OAuth同意画面」。「外部」を選択し、必要な情報を入力し、スコープ(.../auth/spreadsheets、.../auth/drive)を追加し、必要に応じてテストユーザーを追加します。

    2. OAuthクライアントIDの作成: GCPコンソール →「APIとサービス」→「認証情報」。「+ 認証情報を作成」→「OAuthクライアントID」→ タイプ: デスクトップアプリ。名前を付けます。「作成」。JSONをダウンロードします。

    3. 環境変数の設定:

      • CREDENTIALS_PATH: ダウンロードしたOAuth認証情報JSONファイルのパス(デフォルト: credentials.json)。

      • TOKEN_PATH: 初回ログイン後にユーザーのリフレッシュトークンを保存するパス(デフォルト: token.json)。書き込み可能である必要があります。

方法C: 直接の認証情報注入(上級者向け)🔒

  • なぜ? Docker、Kubernetes、CI/CD などの環境で役立ちます。ファイルの管理が難しい一方、環境変数は簡単かつ安全に扱えます。ファイルシステムへのアクセスを回避できます。

  • どのように? 認証情報ファイルへのパスを指定する代わりに、ファイルの内容を Base64 でエンコードして、環境変数に直接指定します。

  • 手順:

    1. 認証情報の JSON ファイル(サービスアカウントキーまたは OAuth クライアント ID ファイル)を用意します。ここでは your_credentials.json と呼びます。

    2. Base64 文字列を生成します:

      • (Linux/macOS): base64 -w 0 your_credentials.json

      • (Windows PowerShell):

        $filePath = "C:\path\to\your_credentials.json"; # Use actual path
        $bytes = [System.IO.File]::ReadAllBytes($filePath);
        $base64 = [System.Convert]::ToBase64String($bytes);
        $base64 # Copy this output
      • (注意): 機密性の高い認証情報を信頼できないオンラインエンコーダーに貼り付けないでください。

    3. 環境変数を設定します:

      • CREDENTIALS_CONFIG:この変数に、生成した完全な Base64 文字列を設定します。

        # Example (Linux/macOS) - Use the actual string generated
        export CREDENTIALS_CONFIG="ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb..."

方法 D:Application Default Credentials (ADC) 🌐

  • なぜ? Google Cloud 環境(GKE、Compute Engine、Cloud Run)や、gcloud auth application-default login を使用したローカル開発に最適です。明示的な認証情報ファイルは不要です。

  • どのように? Google の Application Default Credentials チェーンを使用して、複数のソースから自動的に認証情報を検出します。

  • ADC の検索順序:

    1. GOOGLE_APPLICATION_CREDENTIALS 環境変数(サービスアカウントキーへのパス)- Google の標準変数

    2. gcloud auth application-default login の認証情報(ローカル開発)

    3. メタデータサーバーからアタッチされたサービスアカウント(GKE、Compute Engine など)

  • セットアップ:

    • ローカル開発:

      1. gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive を一度実行します

      2. 割り当てプロジェクトを設定します:gcloud auth application-default set-quota-project <project_id>(<project_id> を Google Cloud プロジェクト ID に置き換えます)

    • Google Cloud: コンピューティングリソースにサービスアカウントをアタッチします

    • 環境変数: GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json を設定します(Google の標準)

  • 追加の環境変数は不要です - 他の方法が失敗した場合、ADC が自動的にフォールバックとして使用されます。

注: GOOGLE_APPLICATION_CREDENTIALS は Google の公式標準環境変数であり、SERVICE_ACCOUNT_PATH はこの MCP サーバー固有のものです。GOOGLE_APPLICATION_CREDENTIALS を設定すると、ADC が自動的にそれを検出します。

認証の優先順位とサマリー

サーバーは次の順序で認証情報をチェックします:

  1. CREDENTIALS_CONFIG(Base64 コンテンツ)

  2. SERVICE_ACCOUNT_PATH(サービスアカウント JSON へのパス)

  3. CREDENTIALS_PATH(OAuth JSON へのパス)- トークンが存在しない/期限切れの場合、インタラクティブフローを開始します

  4. Application Default Credentials (ADC) - 自動フォールバック

環境変数のサマリー:

変数

メソッド

説明

デフォルト

SERVICE_ACCOUNT_PATH

サービスアカウント

サービスアカウント JSON キーファイルへのパス(MCP サーバー固有)。

-

GOOGLE_APPLICATION_CREDENTIALS

ADC

サービスアカウントキーへのパス(Google の標準変数)。

-

DRIVE_FOLDER_ID

サービスアカウント

サービスアカウントと共有されている Google Drive フォルダの ID。

-

CREDENTIALS_PATH

OAuth 2.0

OAuth 2.0 クライアント ID JSON ファイルへのパス。

credentials.json

TOKEN_PATH

OAuth 2.0

生成された OAuth トークンを保存するパス。

token.json

CREDENTIALS_CONFIG

サービスアカウント / OAuth 2.0

認証情報コンテンツの Base64 エンコードされた JSON 文字列。

-


⚙️ サーバーの実行(詳細)

以下で使用する ID の詳細については、ID リファレンスガイド を参照してください。

方法 1:uvx を使用(ユーザー向け推奨)

ウルトラクイックスタート で示したように、これが最も簡単な方法です。環境変数を設定してから実行します:

uvx mcp-google-sheets@latest

uvx がパッケージの取得と一時的な実行を処理します。

方法 2:開発用(リポジトリのクローン)

コードを変更したい場合:

  1. クローン: git clone https://github.com/yourusername/mcp-google-sheets.git && cd mcp-google-sheets(実際の URL を使用)

  2. 環境変数の設定: 上記のとおり。

  3. uv で実行:(ローカルコードを使用)

    uv run mcp-google-sheets
    # Or via the script name if defined in pyproject.toml, e.g.:
    # uv run start

方法 3:Docker(SSE トランスポート)

同梱の Dockerfile を使用してコンテナ内でサーバーを実行します:

# Build the image
docker build -t mcp-google-sheets .

# Run (SSE on port 8000)
# NOTE: Prefer CREDENTIALS_CONFIG (Base64 credentials content) in containers.
docker run --rm -p 8000:8000 ^
  -e HOST=0.0.0.0 ^
  -e PORT=8000 ^
  -e CREDENTIALS_CONFIG=YOUR_BASE64_CREDENTIALS ^
  -e DRIVE_FOLDER_ID=YOUR_DRIVE_FOLDER_ID ^
  mcp-google-sheets
  • Docker 内では SERVICE_ACCOUNT_PATH の代わりに CREDENTIALS_CONFIG を使用して、シークレットをファイルとしてマウントすることを避けます。

  • コンテナは --transport sse で起動し、HOST/PORT で待ち受けます。SSE トランスポートを使用して MCP クライアントを http://localhost:8000 に接続します。


🔌 Claude Desktop での使用

claude_desktop_config.json の mcpServers にサーバー設定を追加します。セットアップに合ったブロックを選択してください:

以下で使用する ID の詳細については、ID リファレンスガイド を参照してください。

⚠️ 重要な注意事項:

  • 🍎 macOS ユーザー: "uvx" の代わりにフルパス "/Users/yourusername/.local/bin/uvx" を使用してください

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets@latest"],
      "env": {
        "SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here"
      }
    }
  }
}

🍎 macOS の注意: spawn uvx ENOENT エラーが発生した場合は、uvx へのフルパスを使用してください:

{
  "mcpServers": {
    "google-sheets": {
      "command": "/Users/yourusername/.local/bin/uvx",
      "args": ["mcp-google-sheets@latest"],
      "env": {
        "SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here"
      }
    }
  }
}

yourusername を実際のユーザー名に置き換えてください。

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets@latest"],
      "env": {
        "CREDENTIALS_PATH": "/full/path/to/your/credentials.json",
        "TOKEN_PATH": "/full/path/to/your/token.json"
      }
    }
  }
}

注:初回使用時に Google ログイン用のブラウザが開く場合があります。TOKEN_PATH が書き込み可能であることを確認してください。

🍎 macOS の注意: spawn uvx ENOENT エラーが発生した場合は、"command": "uvx" を "command": "/Users/yourusername/.local/bin/uvx" に置き換えてください(yourusername を実際のユーザー名に置き換えます)。

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets@latest"],
      "env": {
        "CREDENTIALS_CONFIG": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAi...",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here"
      }
    }
  }
}

注:CREDENTIALS_CONFIG には完全な Base64 文字列を貼り付けてください。サービスアカウントのフォルダコンテキストには DRIVE_FOLDER_ID が引き続き必要です。

🍎 macOS の注意: spawn uvx ENOENT エラーが発生した場合は、"command": "uvx" を "command": "/Users/yourusername/.local/bin/uvx" に置き換えてください(yourusername を実際のユーザー名に置き換えます)。

オプション 1:GOOGLE_APPLICATION_CREDENTIALS を使用

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets@latest"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json"
      }
    }
  }
}

オプション 2:gcloud auth を使用(環境変数不要)

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets@latest"],
      "env": {}
    }
  }
}

前提条件:

  1. 最初に gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive を実行します。

  2. 割り当てプロジェクトを設定:gcloud auth application-default set-quota-project <project_id>

🍎 macOS の注意: spawn uvx ENOENT エラーが発生した場合は、"command": "uvx" を "command": "/Users/yourusername/.local/bin/uvx" に置き換えてください(yourusername を実際のユーザー名に置き換えます)。

{
  "mcpServers": {
    "mcp-google-sheets-local": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/your/mcp-google-sheets",
        "mcp-google-sheets"
      ],
      "env": {
        "SERVICE_ACCOUNT_PATH": "/path/to/your/mcp-google-sheets/service_account.json",
        "DRIVE_FOLDER_ID": "your_drive_folder_id_here"
      }
    }
  }
}

注:--directory フラグを使用してプロジェクトパスを指定し、パスを実際のワークスペースの場所に合わせて調整してください。


💬 Claude 向けのプロンプト例

接続後、次のようなプロンプトを試してください:

  • 「アクセス権のあるすべてのスプレッドシートを一覧表示して。」(または「AI Managed Sheets フォルダ内の」)

  • 「'Quarterly Sales Report Q3 2024' というタイトルの新しいスプレッドシートを作成して。」

  • 「'Quarterly Sales Report' スプレッドシートの Sheet1 の範囲 A1 から E10 のデータを取得して。」

  • 「ID 1aBcDeFgHiJkLmNoPqRsTuVwXyZ のスプレッドシートに 'Summary' という名前の新しいシートを追加して。」

  • 「'Project Tasks' スプレッドシートの 'Tasks' シートで、セル B2 を 'In Progress' に更新して。」

  • 「スプレッドシート XYZ の 'Log' シートに次の行を追加して:[['2024-07-31', 'Task A Completed'], ['2024-08-01', 'Task B Started']]」

  • 「'Sales Data' と 'Inventory Count' のスプレッドシートのサマリーを取得して。」

  • 「'Team Vacation Schedule' スプレッドシートを team@example.com には閲覧者として、manager@example.com には編集者として共有して。通知は送信しないで。」

  • 「'Sales Report' スプレッドシートに、範囲 A1:B13 のデータから月次売上を示す縦棒グラフを作成して。」

  • 「'Market Analysis' シートに、A1:B5 のデータを使用して 'Market Share by Product' というタイトルの円グラフを追加して。」

  • 「スプレッドシート abc123 の Sheet1 に、範囲 A1:C10 から 'Growth Trends' というタイトルと 'Month' と 'Revenue' というラベルで折れ線グラフを作成して。」


🆔 ID リファレンスガイド

ドキュメント全体で参照されているさまざまな ID を見つけるには、次のリファレンスガイドを使用してください:

Google Cloud Project ID:
  https://console.cloud.google.com/apis/dashboard?project=sheets-mcp-server-123456
                                                          └───── Project ID ─────┘

Google Drive Folder ID:
  https://drive.google.com/drive/u/0/folders/1xcRQCU9xrNVBPTeNzHqx4hrG7yR91WIa
                                             └────────── Folder ID ──────────┘

Google Sheets Spreadsheet ID:
  https://docs.google.com/spreadsheets/d/25_-_raTaKjaVxu9nJzA7-FCrNhnkd3cXC54BPAOXemI/edit
                                         └───────────── Spreadsheet ID ─────────────┘

🤝 コントリビューション

コントリビューションを歓迎します!バグや機能リクエストについては、issue を開いてください。プルリクエストも歓迎します。


📄 ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細は LICENSE ファイルを参照してください。


🙏 クレジット

Related MCP Connectors

Related MCP Servers