mcpField
M
Mcp Google Sheets

Mcp Google Sheets

ローカル
github.com/xing5ファイル・ストレージ1.0k24 週間前に更新

Mcp Google Sheets について

mcp-google-sheets は、MCP クライアントを Google Drive および Google Sheets API に接続する Python 製の MCP サーバーです。AI アシスタントがツールを通じてスプレッドシートを作成・編集できます。サービスアカウント、OAuth 2.0、環境変数による認証に対応し、有効にするツールを絞り込んでコンテキスト使用量を減らせます。

主な機能

  1. 01セル範囲の読み取り、書き込み、一括更新
  2. 02スプレッドシートとシートタブの作成と管理
  3. 03スプレッドシートの検索、共有、数式の確認
  4. 04サービスアカウントと OAuth 2.0 による認証
  5. 05ENABLED_TOOLS または --include-tools によるツールの絞り込み

活用シーン

  1. 01AI アシスタントによるスプレッドシートデータの読み取りと分析
  2. 02複数のシートへのデータの一括書き込みと更新
  3. 03Drive フォルダー内のスプレッドシートの検索と共有

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": [
"mcp-google-sheets@latest"
]
}
}
}
起動コマンドuvx mcp-google-sheets@latest

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-google-sheets@latest

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-google-sheets

AI アシスタントと Google スプレッドシートをつなぐゲートウェイです!📊

PyPI - Version PyPI Downloads GitHub License GitHub Actions Workflow Status


🤔 これは何ですか?

mcp-google-sheets は、あらゆる MCP 対応クライアント(Claude Desktop など)と Google Sheets API をつなぐ、Python ベースの MCP サーバーです。定義済みのツールを使って Google スプレッドシートを操作できるため、AI を活用した強力な自動化やデータ操作のワークフローを実現できます。


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

基本的には、uvx mcp-google-sheets@latest という1行のコマンドでサーバーを実行できます。

このコマンドを実行すると、最新のコードが自動的にダウンロードされ、起動します。最新の機能とバグ修正を利用できるよう、常に @latest を使用することをおすすめします。

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

  1. ☁️ 前提条件:Google Cloud のセットアップ

    • Google Cloud Platform の認証情報を設定し、必要な API を有効にする必要があります。サービスアカウントの使用を強くおすすめします。
    • ➡️ 以下のGoogle Cloud Platform の詳細なセットアップガイドを参照してください。
  2. 🐍 uv のインストール

    • uvx は、高速な Python パッケージインストーラー兼リゾルバーである uv の一部です。まだインストールしていない場合は、インストールしてください。
      # macOS / Linux
      curl -LsSf https://astral.sh/uv/install.sh | sh
      # Windows
      powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
      # または pip を使用
      # pip install uv
      
      必要に応じて、インストーラーの出力に記載された手順に従い、uv を PATH に追加してください。
  3. 🔑 必須の環境変数を設定(サービスアカウントを推奨)

    • サーバーが認証を行う方法を指定する必要があります。ターミナルで次の変数を設定してください。
    • (Linux/macOS)
      # Google のセットアップ手順で確認した実際のパスとフォルダー ID に置き換えてください
      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. ⚡ オプション:ツールのフィルタリングを有効化(コンテキスト使用量を削減)

これで準備完了です。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(文字列):スプレッドシートに付けるタイトル。例:「四半期レポート 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": "[email protected]", "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(文字列):新しいシート/タブ名(例:「取引」)。
    • 戻り値: 操作の結果(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 Spreadsheet の基本的なメタデータを取得します。

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

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

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

  1. GCP プロジェクトを作成/選択する: Google Cloud Console にアクセスします。
  2. API を有効にする: 「APIs & Services」→「Library」に移動します。以下を検索して有効にします。
    • Google Sheets API
    • Google Drive API
  3. 認証情報を設定する: 以下から認証方法を1 つ選択する必要があります(サービスアカウントを推奨します)。

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

サーバーが Google API にアクセスするには、認証情報が必要です。以下から方法を選択してください。

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

方法 A:サービスアカウント(サーバー/自動化に推奨)✅
  • 理由: ヘッドレス(ブラウザー不要)で安全なため、サーバー環境に最適です。簡単には期限切れになりません。
  • 手順:
    1. サービスアカウントを作成する: GCP Console →「IAM & Admin」→「Service Accounts」に移動します。
      • 「+ CREATE SERVICE ACCOUNT」をクリックし、名前を付けます(例:mcp-sheets-service)。
      • ロールを付与します。広範なアクセスにはEditorロールを追加し、より厳格な権限が必要な場合は、より細かなロール(roles/drive.fileや特定の Sheets ロールなど)を追加します。
      • 「Done」をクリックします。アカウントを見つけ、「Actions」(⋮)→「Manage keys」をクリックします。
      • 「ADD KEY」→「Create new key」→JSON→「CREATE」をクリックします。
      • JSON キーファイルをダウンロードし、安全に保管します。
    2. Google Drive フォルダーを作成して共有する:
      • Google Drive でフォルダーを作成します(例:「AI Managed Sheets」)。
      • URL からフォルダー IDを確認します:https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID。
      • フォルダーを右クリックし、「Share」→「Share」を選択します。
      • サービスアカウントのメールアドレス(JSON ファイル内のclient_email)を入力します。
      • Editorアクセス権を付与します。「Notify people」のチェックを外し、「Share」をクリックします。
    3. 環境変数を設定する:
      • SERVICE_ACCOUNT_PATH:ダウンロードした JSON キーファイルの完全なパス。
      • DRIVE_FOLDER_ID:共有した Google Drive フォルダーの ID。 (OS ごとの例については、超クイックスタートを参照してください)
方法 B:OAuth 2.0(対話型/個人利用)🧑‍💻
  • 理由: ブラウザーでの対話型ログインが可能な、個人利用またはローカル開発向けです。
  • 手順:
    1. OAuth 同意画面を設定する: GCP Console →「APIs & Services」→「OAuth consent screen」に移動します。「External」を選択し、必須情報を入力して、スコープ(.../auth/spreadsheets、.../auth/drive)を追加します。必要に応じてテストユーザーも追加します。
    2. OAuth クライアント ID を作成する: GCP Console →「APIs & Services」→「Credentials」に移動します。「+ CREATE CREDENTIALS」→「OAuth client ID」→種類はDesktop appを選択します。名前を付けて「CREATE」をクリックし、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:アプリケーションのデフォルト認証情報(ADC)🌐
  • 理由: Google Cloud 環境(GKE、Compute Engine、Cloud Run)や、gcloud auth application-default login を使ったローカル開発に最適です。認証情報ファイルを明示的に用意する必要はありません。
  • 方法: Google のアプリケーションのデフォルト認証情報チェーンを使用して、複数のソースから認証情報を自動的に検出します。
  • 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. アプリケーションのデフォルト認証情報(ADC) - 自動的にフォールバックします

環境変数の概要:

変数方法説明デフォルト
SERVICE_ACCOUNT_PATHサービスアカウントサービスアカウント JSON キーファイルへのパス(MCP サーバー固有)。-
GOOGLE_APPLICATION_CREDENTIALSADCサービスアカウントキーへのパス(Google 標準の変数)。-
DRIVE_FOLDER_IDサービスアカウントサービスアカウントと共有されている Google Drive フォルダーの ID。-
CREDENTIALS_PATHOAuth 2.0OAuth 2.0 クライアント ID JSON ファイルへのパス。credentials.json
TOKEN_PATHOAuth 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
    # または、pyproject.toml で定義されている場合はスクリプト名で実行します。例:
    # 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" のようにフルパスを使用してください。
🔵 設定: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 を実際のユーザー名に置き換えてください。

🔵 設定:uvx + OAuth 2.0
{
  "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 は実際のユーザー名に置き換えてください)。

🔵 設定:uvx + CREDENTIALS_CONFIG(サービスアカウントの例)
{
  "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 は実際のユーザー名に置き換えてください)。

🔵 設定:uvx + アプリケーションのデフォルト認証情報(ADC)

オプション 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』スプレッドシートを [email protected] に閲覧者として、[email protected] に編集者として共有してください。通知は送信しないでください。」
  • 「『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 ファイルを参照してください。


🙏 クレジット

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。