Skip to main content
Glama

PyPI - バージョン PyPI - ダウンロード GitHubライセンスGitHub Actions ワークフローステータス


🤔 これは何ですか?

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

Related MCP server: Spreadsheet MCP Server

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

基本的に、サーバーはuvx mcp-google-sheetsという 1 行で実行されます。

このコマンドは、必要に応じて最新のコードを自動的にダウンロードして実行します。ただし、Google Cloud の設定にはかなり多くの手順が必要ですので、以下の手順をお読みください。

  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"
      # 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 コマンド)

      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
    • サーバーが起動し、準備完了を示すログが出力されます。

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

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

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

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

準備完了です!MCP クライアント経由でコマンドの発行を開始してください。


✨ 主な特徴

  • シームレスな統合: Google ドライブおよび Google スプレッドシート API に直接接続します。

  • **包括的なツール:**幅広い操作 (CRUD、リスト、バッチ処理、共有、フォーマットなど) を提供します。

  • 柔軟な認証: サービス アカウント (推奨) 、OAuth 2.0、環境変数を介した直接的な資格情報挿入をサポートします。

  • 簡単な導入: uvx (ゼロインストール感覚) で即座に実行するか、 uvを使用して開発用にクローンを作成します。

  • AI 対応: MCP 対応クライアントで使用するために設計されており、自然言語によるスプレッドシートのインタラクションを可能にします。


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

このサーバーは、Google スプレッドシートを操作するための次のツールを公開します。

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

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

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

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

    • title (文字列): 希望するタイトル。

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

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

    • spreadsheet_id (文字列)

    • sheet (文字列): シートの名前。

    • range (オプションの文字列):A1表記(例: 'A1:C10''Sheet1!B2:D' )。省略した場合はシート全体を読み取ります。

    • *戻り値:*セル値の 2D 配列。

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

    • spreadsheet_id (文字列)

    • sheet (文字列)

    • range (文字列):A1表記。

    • data (2D 配列): 書き込む値。

    • *戻り値:*結果オブジェクトを更新します。

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

    • spreadsheet_id (文字列)

    • sheet (文字列)

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

    • *戻り値:*バッチ更新結果オブジェクト。

  • add_rows : シートの末尾 (データのある最後の行の後) に行を追加します。

    • spreadsheet_id (文字列)

    • sheet (文字列)

    • data (2D 配列): 追加する行。

    • *戻り値:*結果オブジェクトを更新します。

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

    • spreadsheet_id (文字列)

    • *戻り値:*シート名文字列のリスト["Sheet1", "Sheet2"]

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

    • spreadsheet_id (文字列)

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

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

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

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

    • *戻り値:*クエリ パラメータと取得されたdata 、またはerrorを含むオブジェクトのリスト。

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

    • spreadsheet_ids (文字列の配列)

    • rows_to_fetch (オプションの整数、デフォルトは 5): プレビューする行数 (ヘッダーを含む)。

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

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

    • spreadsheet_id (文字列)

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

    • send_notification (オプションのブール値、デフォルトは True): 電子メール通知を送信します。

    • 戻り値: successesfailuresリストを含む辞書。

  • add_columns : シートに列を追加します。 (実装されている場合はパラメータを確認してください)

  • copy_sheet : スプレッドシート内のシートを複製します。 (実装されている場合はパラメータを確認してください)

  • rename_sheet : 既存のシートの名前を変更します。 (実装されている場合はパラメータを確認してください)

MCP リソース:

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

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


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

サーバーを実行する前にこの設定が必要です。

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

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

    • Google Sheets API

    • Google Drive API

  3. **資格情報の構成:**以下の認証方法のいずれかを選択する必要があります (サービス アカウントを推奨)。


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

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

方法 A: サービス アカウント (サーバー/オートメーションに推奨) ✅

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

  • 手順:

    1. サービス アカウントを作成します。GCP Console -> 「IAM と管理」 -> 「サービス アカウント」。

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

      • 役割の付与: 広範なアクセスを許可するにはEditor役割を追加し、より厳しい権限を許可するにはより詳細な役割 ( roles/drive.fileや特定のスプレッドシートの役割など) を追加します。

      • 「完了」をクリックします。アカウントを見つけて、「アクション」(⋮)→「キーの管理」をクリックします。

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

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

    2. Google ドライブ フォルダを作成して共有する:

      • Google ドライブでフォルダを作成します(例:「AI 管理シート」)。

      • 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 ドライブ フォルダの ID。 (OS 固有の例については、 Ultra Quick Start を参照してください)

方法 B: OAuth 2.0 (インタラクティブ / 個人使用) 🧑‍💻

  • **なぜでしょうか?**対話型ブラウザログインが可能な個人使用またはローカル開発向けです。

  • 手順:

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

    2. OAuthクライアントIDを作成: GCP Consoleで、「APIとサービス」→「認証情報」を選択します。「+認証情報を作成」→「OAuthクライアントID」→タイプ:デスクトップアプリ。名前を付けて「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..."

認証の優先順位と概要

サーバーは次の順序で資格情報を確認します。

  1. CREDENTIALS_CONFIG (Base64コンテンツ)

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

  3. CREDENTIALS_PATH (OAuth JSON へのパス) - トークンが見つからないか期限切れの場合に対話型フローをトリガーします。

環境変数の概要:

変数

方法

説明

デフォルト

SERVICE_ACCOUNT_PATH

サービスアカウント

サービス アカウント JSON キー ファイルへのパス。

-

DRIVE_FOLDER_ID

サービスアカウント

サービス アカウントと共有されている Google ドライブ フォルダの 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 文字列。

-


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

方法1: uvxを使用する(ユーザーに推奨)

ウルトラクイックスタートで紹介されているように、これが最も簡単な方法です。環境変数を設定して、次のコマンドを実行してください。

uvx mcp-google-sheets

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

🔌 Claude Desktop での使用

claude_desktop_config.jsonmcpServersにサーバー設定を追加します。設定に一致するブロックを選択してください。

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets"],
      "env": {
        // Use ABSOLUTE paths here
        "SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here"
      },
      "healthcheck_url": "http://localhost:8000/health" // Adjust host/port if needed
    }
  }
}
{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets"],
      "env": {
        // Use ABSOLUTE paths here
        "CREDENTIALS_PATH": "/full/path/to/your/credentials.json",
        "TOKEN_PATH": "/full/path/to/your/token.json" // Ensure this path is writable
      },
      "healthcheck_url": "http://localhost:8000/health"
    }
  }
}

(初回使用時にはGoogleログイン用のブラウザが開く場合があります)

{
  "mcpServers": {
    "google-sheets": {
      "command": "uvx",
      "args": ["mcp-google-sheets"],
      "env": {
        // Paste the full Base64 string here
        "CREDENTIALS_CONFIG": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAi...",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here" // Still needed for Service Account folder context
      },
      "healthcheck_url": "http://localhost:8000/health"
    }
  }
}
{
  "mcpServers": {
    "mcp-google-sheets-dev": { // Use a distinct name
      "command": "uv",
      "args": ["run", "mcp-google-sheets"], // Assumes `mcp-google-sheets` script exists
      "cwd": "/full/path/to/cloned/mcp-google-sheets", // ABSOLUTE path to repo
      "env": {
        // Choose ONE auth method and set corresponding vars
        // Example: Service Account Path
        "SERVICE_ACCOUNT_PATH": "/full/path/to/cloned/mcp-google-sheets/service-account-key.json",
        "DRIVE_FOLDER_ID": "your_shared_folder_id_here"
      },
      "healthcheck_url": "http://localhost:8000/health",
      "disabled": false
    }
  }
}

💬 クロードのプロンプト例

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

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

  • 「『2024年第3四半期の四半期売上レポート』というタイトルの新しいスプレッドシートを作成します。」

  • 「「四半期売上レポート」スプレッドシートで、Sheet1 の範囲 A1 から E10 までのデータを取得します。」

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

  • 「「プロジェクト タスク」スプレッドシートの「タスク」シートで、セル B2 を「進行中」に更新します。」

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

  • 「スプレッドシート「売上データ」と「在庫数」の概要を取得します。」

  • 「「チームの休暇スケジュール」スプレッドシートを、 team@example.comを読者として、 manager@example.comを執筆者として共有します。通知は送信しません。」


🤝 貢献する

貢献を歓迎します!バグや機能リクエストについては、課題を開いて議論してください。プルリクエストも歓迎します。


📄 ライセンス

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


🙏 クレジット

  • FastMCPで構築されました。

  • kazz187/mcp-google-spreadsheetからインスピレーションを受けました。

  • Google API Python クライアント ライブラリを使用します。

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
31dResponse time
6wRelease cycle
8Releases (12mo)
Issues opened vs closed

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xing5/mcp-google-sheets'

If you have feedback or need assistance with the MCP directory API, please join our Discord server