关于 google-workspace-mcp
这是一个供 AI 助手调用的 Google Workspace MCP 服务,可操作 Sheets、Docs、Slides 和 Drive。它支持在同一服务中按标签切换多个 Google 账号,并可为各账号选择 OAuth 或服务账号认证。
主要功能
- 01管理多个 Google 账号及认证方式
- 02读取和编辑 Sheets 数据与格式
- 03获取 Google Docs 正文
- 04创建和编辑 Slides 演示文稿
- 05搜索 Drive 文件并列出文件夹内容
适用场景
- 01在工作与个人 Google 账号间切换
- 02批量更新表格数据或导入 CSV
- 03从 Docs 提取 Markdown 正文
- 04创建演示文稿并修改幻灯片内容
MCP 相关
作为 MCP 服务,它向 MCP 客户端提供操作 Google Sheets、Docs、Slides 和 Drive 的工具,并支持按账号选择目标账户。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Google Workspace MCP Server
Google Workspace MCP Server 是一个 MCP 服务,可让 GitHub Copilot 等 AI 助手操作 Google Workspace 服务(Slides、Sheets、Docs、Drive)。
您可以在同一服务中使用多个 Google 账号,例如工作账号和个人账号。
主要功能
👤 账号
- 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_batch_update_sheet_values - 一次更新多个单元格范围
- sheets_create_spreadsheet - 创建新电子表格
- sheets_add_sheet - 向现有电子表格添加工作表
- sheets_delete_sheet - 删除工作表及其内容(不可删除最后一张工作表)
- sheets_duplicate_sheet - 复制工作表及其格式和公式(基于模板创建)
- sheets_update_sheet_properties - 更改工作表名称、标签页颜色、标签页顺序和隐藏状态
- sheets_append_values - 在现有数据末尾追加行
- sheets_clear_sheet_values - 清除指定范围内单元格的值
- sheets_import_csv - 将 CSV/TSV 文件导入电子表格(支持自定义分隔符和 Base64)
- sheets_insert_dimension - 在指定位置插入行或列
- sheets_delete_dimension - 删除指定范围内的行或列
- sheets_sort_range - 根据多个列键对范围内的内容排序
- sheets_set_basic_filter - 设置筛选器(也可指定筛选条件和默认排序顺序)
- sheets_clear_basic_filter - 移除筛选器
- sheets_set_data_validation - 设置数据验证规则(下拉菜单、复选框、输入限制)
- sheets_clear_data_validation - 移除数据验证规则
- sheets_format_cells - 更改单元格填充色、文字颜色、粗体、字号、对齐方式和数字格式(可按范围批量指定)
- sheets_set_borders - 为单元格范围添加或移除边框(可分别指定外边框和内边框)
- sheets_merge_cells - 合并或取消合并单元格(MERGE_ALL / MERGE_COLUMNS / MERGE_ROWS / UNMERGE)
- sheets_resize_dimension - 以像素指定列宽或行高,也可根据内容自动调整
- sheets_freeze_panes - 固定首行或首列(固定标题行)
- sheets_add_conditional_format - 添加条件格式规则(按条件着色/色阶)
- sheets_delete_conditional_format - 根据 index 删除条件格式规则
- sheets_list_conditional_formats - 列出条件格式规则(包含用于删除的 index)
📄 Google Docs
- docs_get_document - 以 Markdown 格式获取 Google Doc 的正文(支持标题、段落、项目符号列表和表格)
🖼️ 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 - 複数の更新リクエストをバッチで実行(高度な操作)
- slides_update_text_style - テキストのフォント・サイズ・色・太字などを変更
- slides_update_shape_style - 既存の図形の塗りと枠線を変更
- slides_insert_image - 公開 URL の画像をスライドに挿入
- slides_replace_all_text - プレゼンテーション内の文字列を一括置換(ひな形の差し込み)
- slides_add_slide - レイアウトを選んでスライドを追加(タイトル・本文も同時に記入)
- slides_update_paragraph_style - 段落の配置・行間・インデント・段落前後の空きを変更
- slides_create_paragraph_bullets - 段落を箇条書き・番号付きリストにする
- slides_delete_paragraph_bullets - 箇条書きを解除
- slides_update_element_transform - 既存要素の位置・大きさ・回転を変更
- slides_update_elements_z_order - 要素の重なり順を変更(複数まとめて)
- slides_add_line - 始点・終点を指定して線・矢印を引く(色・太さ・破線も同時に)
- slides_group_elements - 複数の要素を 1 つのグループにまとめる
- slides_ungroup_elements - グループを解除
- slides_add_table - 2 次元配列から表を追加(中身も同時に記入)
- slides_update_table_cells - 表のセルの塗りと縦揃えを変更(範囲は A1 記法)
- slides_update_table_borders - 表に罫線を引く(全体・外周・内側・各辺を指定可)
- slides_resize_table - 表の行の高さ・列の幅を変更
- slides_insert_table_dimension - 表に行・列を挿入
- slides_delete_table_dimension - 表から行・列を削除
- slides_connect_line - 線の端を図形に繋ぐ(図形を動かすと線が追随)
- slides_disconnect_line - 線と図形の接続を外す
寸法の単位は、slides_add_line / slides_add_table / slides_update_element_transform /
slides_update_paragraph_style がポイント(スライドは 720 × 405 pt)、それ以前からある
slides_add_shape / slides_add_text_box / slides_insert_image が EMU です。
理由は ADR 0004 を参照してください。
📁 Google Drive
- drive_search_files - ファイルを検索(クエリ構文対応)
- drive_list_items - フォルダ内のファイル一覧を取得
クイックスタート
簡単な流れ
- Google Cloud で OAuth 認証情報(CLIENT_ID, SECRET)を作成(初回のみ)
- OAuth 認証情報をもとに、アカウントごとのトークンを取得(アカウントを追加するたび)
- GitHub Copilot で使用開始
# 会社アカウントを登録
npm run setup -- --account work --description "会社の Google Workspace"
# 個人アカウントを登録
npm run setup -- --account private --description "個人の Google アカウント"
詳細なセットアップ手順は 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 を参照してください。
新しいバージョンへの差し替え
新しいバージョンが公開されたら、次のコマンドで差し替えます。
npm run update-image # 公開済みの最新版へ差し替える
npm run update-image -- 0.4.1 # バージョンを指定して差し替える
npm run update-image -- --dry-run # 何が起きるかだけ表示する
やっていること:
- Docker Hub のタグ一覧から最新のリリースバージョンを選び、
docker pullする - MCP クライアントの設定(既定は
~/.claude.json)に固定されているタグを差し替える(控えを.bakに残す) - 不要になった旧イメージを削除する(そのイメージで動いているコンテナがあれば削除せず知らせる)
差し替え後は、Claude Code を再起動するか /mcp で再接続すると新しいイメージで起動します。
| オプション | 意味 |
|---|---|
--config <path> | 設定ファイルの場所を変える(既定: ~/.claude.json) |
--image <name> | 対象の Docker イメージを変える(既定: takigu1/google-workspace-mcp-server) |
--keep-old | 旧イメージを削除しない |
--dry-run | 変更せず、差し替え内容だけ表示する |
タグは
latestではなくバージョンで固定したままにします。latestは指す先が黙って変わるため、 今どのバージョンが動いているのか分からなくなります。
開発者向け: クラス設計
開発者向け: テスト
npm test # ビルドしたうえで認証・アカウント解決層のテストを実行
開発者向け: Docker コンテナのデプロイメント方法
以下のファイルを参照してください:
開発者向け: MCP Registry への公開手順
以下のファイルを参照してください:
参考にしたプロジェクト
備忘
https://registry.modelcontextprotocol.io/?q=google-workspace で MCP を検索すると -server なしのプロジェクトが見つかるが、初期に登録してしまったものなので、 unpublish 的な操作ができるようになったら、そちらは削除する予定。(2026年3月時点では削除ができない。)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。