Mcp Google Sheets について
mcp-google-sheets は、MCP クライアントを Google Drive および Google Sheets API に接続する Python 製の MCP サーバーです。AI アシスタントがツールを通じてスプレッドシートを作成・編集できます。サービスアカウント、OAuth 2.0、環境変数による認証に対応し、有効にするツールを絞り込んでコンテキスト使用量を減らせます。
主な機能
- 01セル範囲の読み取り、書き込み、一括更新
- 02スプレッドシートとシートタブの作成と管理
- 03スプレッドシートの検索、共有、数式の確認
- 04サービスアカウントと OAuth 2.0 による認証
- 05ENABLED_TOOLS または --include-tools によるツールの絞り込み
活用シーン
- 01AI アシスタントによるスプレッドシートデータの読み取りと分析
- 02複数のシートへのデータの一括書き込みと更新
- 03Drive フォルダー内のスプレッドシートの検索と共有
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🤔 これは何ですか?
mcp-google-sheets は、あらゆる MCP 対応クライアント(Claude Desktop など)と Google Sheets API をつなぐ、Python ベースの MCP サーバーです。定義済みのツールを使って Google スプレッドシートを操作できるため、AI を活用した強力な自動化やデータ操作のワークフローを実現できます。
🚀 クイックスタート(uvx を使用)
基本的には、uvx mcp-google-sheets@latest という1行のコマンドでサーバーを実行できます。
このコマンドを実行すると、最新のコードが自動的にダウンロードされ、起動します。最新の機能とバグ修正を利用できるよう、常に @latest を使用することをおすすめします。
以下で使用する ID の詳細については、ID リファレンスガイドを参照してください。
-
☁️ 前提条件:Google Cloud のセットアップ
- Google Cloud Platform の認証情報を設定し、必要な API を有効にする必要があります。サービスアカウントの使用を強くおすすめします。
- ➡️ 以下のGoogle Cloud Platform の詳細なセットアップガイドを参照してください。
-
🐍
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 uvuvを PATH に追加してください。
-
🔑 必須の環境変数を設定(サービスアカウントを推奨)
- サーバーが認証を行う方法を指定する必要があります。ターミナルで次の変数を設定してください。
- (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)については、認証と環境変数の詳細を参照してください。
-
🏃 サーバーを実行
uvxによって、mcp-google-sheetsの最新バージョンが自動的にダウンロードされ、実行されます。uvx mcp-google-sheets@latest- サーバーが起動すると、準備完了を示すログが出力されます。
-
💡 ヒント: バグ修正や新機能を含む最新バージョンを利用するため、常に
@latestを使用してください。@latestを指定しない場合、uvxはキャッシュされた古いバージョンを使用することがあります。
-
🔌 MCP クライアントを接続
- 実行中のサーバーに接続するよう、クライアント(例:Claude Desktop)を設定してください。
- 使用するクライアントによっては、クライアントがサーバーを起動できるため、手順4は不要な場合があります。ただし、正しく設定されていることを確認するため、手順4を試しに実行しておくことをおすすめします。
- ➡️ 設定例については、Claude Desktop での使用方法を参照してください。
-
⚡ オプション:ツールのフィルタリングを有効化(コンテキスト使用量を削減)
- デフォルトでは、19個のツールすべてが有効になっています(約13Kトークン)。コンテキスト使用量を削減するには、必要なツールだけを有効にしてください。
- ➡️ 詳細については、ツールのフィルタリング(コンテキスト使用量を削減)を参照してください。
これで準備完了です。MCP クライアントからコマンドを実行してください。
✨ 主な機能
- シームレスな統合: Google Drive と Google Sheets の API に直接接続します。
- 包括的なツール: 幅広い操作(CRUD、一覧表示、一括処理、共有、書式設定など)を提供します。
- 柔軟な認証: サービスアカウント(推奨)、OAuth 2.0、環境変数による認証情報の直接指定をサポートします。
- 簡単なデプロイ:
uvxですぐに実行するか(インストール不要の感覚)、uvを使って開発用にクローンできます。 - AI 対応: MCP 互換クライアントでの利用を想定して設計されており、自然言語でスプレッドシートを操作できます。
- ツールのフィルタリング:
--include-toolsまたはENABLED_TOOLS環境変数を使って必要なツールだけを有効にし、コンテキストウィンドウの使用量を削減できます。
🎯 ツールのフィルタリング(コンテキスト使用量の削減)
問題: デフォルトでは、この MCP サーバーはすべての 19 個のツールを公開するため、会話を始める前に約 13,000 トークンを消費します。必要なツールが一部だけの場合、貴重なコンテキストウィンドウの領域が無駄になります。
解決策: ツールのフィルタリングを使い、実際に使用するツールだけを有効にします。
ツールのフィルタリングを有効にする方法
次のいずれかを使ってツールをフィルタリングできます。
-
コマンドライン引数
--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" } } } } -
環境変数
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_columnsadd_rowsbatch_updatebatch_update_cellscopy_sheetcreate_sheetcreate_spreadsheetfind_in_spreadsheetget_multiple_sheet_dataget_multiple_spreadsheet_summaryget_sheet_dataget_sheet_formulaslist_folderslist_sheetslist_spreadsheetsrename_sheetsearch_spreadsheetsshare_spreadsheetupdate_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 のセットアップ(詳細)
サーバーを実行する前に、このセットアップが必要です。
- GCP プロジェクトを作成/選択する: Google Cloud Console にアクセスします。
- API を有効にする: 「APIs & Services」→「Library」に移動します。以下を検索して有効にします。
Google Sheets APIGoogle Drive API
- 認証情報を設定する: 以下から認証方法を1 つ選択する必要があります(サービスアカウントを推奨します)。
🔑 認証と環境変数(詳細)
サーバーが Google API にアクセスするには、認証情報が必要です。以下から方法を選択してください。
以下で使用する ID の詳細については、ID リファレンスガイドを参照してください。
方法 A:サービスアカウント(サーバー/自動化に推奨)✅
- 理由: ヘッドレス(ブラウザー不要)で安全なため、サーバー環境に最適です。簡単には期限切れになりません。
- 手順:
- サービスアカウントを作成する: 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 キーファイルをダウンロードし、安全に保管します。
- 「+ CREATE SERVICE ACCOUNT」をクリックし、名前を付けます(例:
- 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」をクリックします。
- 環境変数を設定する:
SERVICE_ACCOUNT_PATH:ダウンロードした JSON キーファイルの完全なパス。DRIVE_FOLDER_ID:共有した Google Drive フォルダーの ID。 (OS ごとの例については、超クイックスタートを参照してください)
- サービスアカウントを作成する: GCP Console →「IAM & Admin」→「Service Accounts」に移動します。
方法 B:OAuth 2.0(対話型/個人利用)🧑💻
- 理由: ブラウザーでの対話型ログインが可能な、個人利用またはローカル開発向けです。
- 手順:
- OAuth 同意画面を設定する: GCP Console →「APIs & Services」→「OAuth consent screen」に移動します。「External」を選択し、必須情報を入力して、スコープ(
.../auth/spreadsheets、.../auth/drive)を追加します。必要に応じてテストユーザーも追加します。 - OAuth クライアント ID を作成する: GCP Console →「APIs & Services」→「Credentials」に移動します。「+ CREATE CREDENTIALS」→「OAuth client ID」→種類はDesktop appを選択します。名前を付けて「CREATE」をクリックし、JSON をダウンロードします。
- 環境変数を設定する:
CREDENTIALS_PATH:ダウンロードした OAuth 認証情報 JSON ファイルへのパス(デフォルト:credentials.json)。TOKEN_PATH:初回ログイン後にユーザーの更新トークンを保存するパス(デフォルト:token.json)。書き込み可能である必要があります。
- OAuth 同意画面を設定する: GCP Console →「APIs & Services」→「OAuth consent screen」に移動します。「External」を選択し、必須情報を入力して、スコープ(
方法 C:認証情報の直接注入(上級者向け)🔒
- 理由: Docker、Kubernetes、CI/CD など、ファイルの管理が難しく、環境変数の管理が簡単かつ安全な環境で役立ちます。ファイルシステムへのアクセスを回避できます。
- 方法: 認証情報ファイルのパスを指定する代わりに、ファイルの内容を Base64 でエンコードし、環境変数に直接指定します。
- 手順:
- 認証情報の JSON ファイルを取得します(サービスアカウントキーまたは OAuth クライアント ID ファイル)。ここではファイル名を
your_credentials.jsonとします。 - 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 - (注意): 信頼できないオンラインエンコーダーに機密性の高い認証情報を貼り付けないでください。
- (Linux/macOS):
- 環境変数を設定します:
CREDENTIALS_CONFIG:この変数に、生成した完全な Base64 文字列を設定します。# Example (Linux/macOS) - Use the actual string generated export CREDENTIALS_CONFIG="ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb..."
- 認証情報の JSON ファイルを取得します(サービスアカウントキーまたは OAuth クライアント ID ファイル)。ここではファイル名を
方法 D:アプリケーションのデフォルト認証情報(ADC)🌐
- 理由: Google Cloud 環境(GKE、Compute Engine、Cloud Run)や、
gcloud auth application-default loginを使ったローカル開発に最適です。認証情報ファイルを明示的に用意する必要はありません。 - 方法: Google のアプリケーションのデフォルト認証情報チェーンを使用して、複数のソースから認証情報を自動的に検出します。
- ADC の検索順序:
GOOGLE_APPLICATION_CREDENTIALS環境変数(サービスアカウントキーへのパス)— Google の標準変数gcloud auth application-default loginの認証情報(ローカル開発)- メタデータサーバーにアタッチされたサービスアカウント(GKE、Compute Engine など)
- セットアップ:
- ローカル開発:
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を一度実行します- クォータプロジェクトを設定します:
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 が自動的に検出します。
認証の優先順位と概要
サーバーは次の順序で認証情報を確認します。
CREDENTIALS_CONFIG(Base64 コンテンツ)SERVICE_ACCOUNT_PATH(サービスアカウント JSON へのパス)CREDENTIALS_PATH(OAuth JSON へのパス)- トークンがない場合や期限切れの場合は、対話型フローを開始します- アプリケーションのデフォルト認証情報(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:開発向け(リポジトリをクローン)
コードを変更する場合は、次の手順を実行します。
- クローン:
git clone https://github.com/yourusername/mcp-google-sheets.git && cd mcp-google-sheets(実際の URL を使用してください) - 環境変数を設定: 上記の説明に従って設定します。
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": {}
}
}
}
前提条件:
- 最初に
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を実行してください。 - クォータプロジェクトを設定します:
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 ファイルを参照してください。
🙏 クレジット
- FastMCP を使用して構築されています。
- kazz187/mcp-google-spreadsheet に着想を得ています。
- Google API Python Client ライブラリを使用しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。