Back to the catalog

io.github.takiguchi-yu/google-workspace-mcp

An MCP server for Google Workspaces.

Open source Open in the app JSON README (API)

About

An MCP server for Google Workspaces.

Details

Kind
MCP servers
Topic
Productivity
Publisher
takiguchi-yu
Origin
official
Category
ferramentas
Transport
local
Version
0.0.5
Open pull requests
8
Last push
2026-08-29T10:56:47Z
Repository state
ativo
Language
TypeScript
Added
2026-08-29 04:01:30
Updated
2026-08-29 04:01:30
Origin id
io.github.takiguchi-yu/google-workspace-mcp

README

# Google Workspace MCP Server

Google Workspace MCP Server は、GitHub Copilot などの AI アシスタントから Google Workspace サービス(Slides、Sheets、Docs、Drive)を操作できるようにする MCP サーバーです。

会社用・個人用など、**複数の Google アカウントを 1 つのサーバーで使い分けられます**。

## 主な機能

### 👤 アカウント

- **accounts_list** - 登録されている Google アカウントの一覧を取得

すべてのツールに `account` 引数があり、`work` `private` のようなラベルで対象アカウントを指定します。省略した場合は既定アカウントが使われます。

アカウントごとに **OAuth**(利用者として認証)と **サービスアカウント**(ブラウザ認可が不要)を選べます。

|                        | OAuth      | サービスアカウント |
| ---------------------- | ---------- | ------------------ |
| ブラウザでの認可       | 必要       | 不要               |
| 既存ファイルの読み書き | Drive 全体 | 共有したものだけ   |
| 新規ファイルの作成     | 可         | 不可               |

### 📊 Google Sheets

- **sheets_list_spreadsheets** - スプレッドシート一覧を取得
- **sheets_get_spreadsheet_info** - スプレッドシートの詳細情報(シート一覧、プロパティ)を取得
- **sheets_read_sheet_values** - セル範囲のデータを読み取り
- **sheets_update_sheet_values** - セル範囲のデータを更新
- **sheets_create_spreadsheet** - 新規スプレッドシートを作成
- **sheets_add_sheet** - 既存のスプレッドシートにシートを追加
- **sheets_append_values** - 既存データの末尾に行を追記
- **sheets_clear_sheet_values** - 指定範囲のセルの値をクリア
- **sheets_import_csv** - CSV/TSV ファイルをスプレッドシートにインポート(カスタムデリミタ・Base64対応)
- **sheets_insert_dimension** - 指定位置に行・列を挿入
- **sheets_delete_dimension** - 指定範囲の行・列を削除

### 📄 Google Docs

- **docs_get_document** - Google Doc の本文を Markdown 形式で取得(見出し・段落・篇条書き・テーブルに対応)

### 🖼️ Google Slides

- **slides_create_presentation** - プレゼンテーションを作成
- **slides_get_presentation** - プレゼンテーションの内容を取得
- **slides_list_presentations** - プレゼンテーション一覧を取得
- **slides_get_page** - 特定スライドの詳細情報を取得
- **slides_update_text_shape** - テキスト要素の内容を更新または追記
- **slides_add_text_box** - スライドに新しいテキストボックスを追加
- **slides_delete_element** - スライドの要素(図形、テキストボックス、画像など)を削除
- **slides_duplicate_slide** - スライドを複製
- **slides_add_shape** - スライドに図形(矩形、円、矢印など)を追加
- **slides_update_slide_properties** - スライドのプロパティ(背景色など)を更新
- **slides_batch_update_presentation** - 複数の更新リクエストをバッチで実行(高度な操作)

### 📁 Google Drive

- **drive_search_files** - ファイルを検索(クエリ構文対応)
- **drive_list_items** - フォルダ内のファイル一覧を取得

## クイックスタート

### 簡単な流れ

1. Google Cloud で OAuth 認証情報(CLIENT_ID, SECRET)を作成(初回のみ)
2. OAuth 認証情報をもとに、アカウントごとのトークンを取得(アカウントを追加するたび)
3. GitHub Copilot で使用開始

```sh
# 会社アカウントを登録
npm run setup -- --account work --description "会社の Google Workspace"

# 個人アカウントを登録
npm run setup -- --account private --description "個人の Google アカウント"
```

詳細なセットアップ手順は **[docs/setup.md](docs/setup.md)** を参照してください。

## プロジェクト構成

```
src/
├── index.ts                # MCP サーバー起動
├── auth/                   # アカウント設定・トークン・OAuth クライアントの解決
├── manager/                # サービス統合管理と account 引数の取り回し
└── tools/                  # Google Workspace ツール実装
    ├── accounts/
    ├── sheets/
    ├── slides/
    ├── docs/
    └── drive/
```

設定とトークンは 1 つのディレクトリにまとまります。

```
~/.google-workspace-mcp/
├── accounts.json           # アカウント一覧と既定アカウント
├── credentials.json        # 全アカウントで共有する OAuth クライアント
└── accounts/
    ├── work/token.json                 # OAuth のトークン
    └── private/service-account.json    # サービスアカウントの鍵
```

用語の定義は [CONTEXT.md](CONTEXT.md) を参照してください。

## 新しいバージョンへの差し替え

新しいバージョンが公開されたら、次のコマンドで差し替えます。

```sh
npm run update-image             # 公開済みの最新版へ差し替える
npm run update-image -- 0.4.1    # バージョンを指定して差し替える
npm run update-image -- --dry-run  # 何が起きるかだけ表示する
```

やっていること:

1. Docker Hub のタグ一覧から最新のリリースバージョンを選び、`docker pull` する
2. MCP クライアントの設定(既定は `~/.claude.json`)に固定されているタグを差し替える(控えを `.bak` に残す)
3. 不要になった旧イメージを削除する(そのイメージで動いているコンテナがあれば削除せず知らせる)

差し替え後は、Claude Code を再起動するか `/mcp` で再接続すると新しいイメージで起動します。

| オプション        | 意味                                                                          |
| ----------------- | ----------------------------------------------------------------------------- |
| `--config <path>` | 設定ファイルの場所を変える(既定: `~/.claude.json`)                          |
| `--image <name>`  | 対象の Docker イメージを変える(既定: `takigu1/google-workspace-mcp-server`) |
| `--keep-old`      | 旧イメージを削除しない                                                        |
| `--dry-run`       | 変更せず、差し替え内容だけ表示する                                            |

> タグは `latest` ではなくバージョンで固定したままにします。`latest` は指す先が黙って変わるため、
> 今どのバージョンが動いているのか分からなくなります。

## 開発者向け: クラス設計

[docs/class-diagram.md](docs/class-diagram.md)

## 開発者向け: テスト

```sh
npm test    # ビルドしたうえで認証・アカウント解決層のテストを実行
```

## 開発者向け: Docker コンテナのデプロイメント方法

以下のファイルを参照してください:

- [docs/docker-deployment.md](docs/docker-deployment.md)

## 開発者向け: MCP Registry への公開手順

以下のファイルを参照してください:

- [docs/mcp-registry-publish.md](docs/mcp-registry-publish.md)

## 参考にしたプロジェクト

- [google_workspace_mcp](https://github.com/taylorwilsdon/google_workspace_mcp)

## 備忘

https://registry.modelcontextprotocol.io/?q=google-workspace で MCP を検索すると `-server` なしのプロジェクトが見つかるが、初期に登録してしまったものなので、 `unpublish` 的な操作ができるようになったら、そちらは削除する予定。(2026年3月時点では削除ができない。)

More