mcpField
G
google-workspace-mcp-server

google-workspace-mcp-server

本地服务
github.com/takiguchi-yu生产力06 周前更新

关于 google-workspace-mcp-server

这是一个供 AI 助手调用的 Google Workspace MCP 服务,可操作 Sheets、Docs、Slides 和 Drive。它支持在同一服务中按标签切换多个 Google 账号,并可为各账号选择 OAuth 或服务账号认证。

主要功能

  1. 01管理多个 Google 账号及认证方式
  2. 02读取和编辑 Sheets 数据与格式
  3. 03获取 Google Docs 正文
  4. 04创建和编辑 Slides 演示文稿
  5. 05搜索 Drive 文件并列出文件夹内容

适用场景

  1. 01在工作与个人 Google 账号间切换
  2. 02批量更新表格数据或导入 CSV
  3. 03从 Docs 提取 Markdown 正文
  4. 04创建演示文稿并修改幻灯片内容

MCP 相关

作为 MCP 服务,它向 MCP 客户端提供操作 Google Sheets、Docs、Slides 和 Drive 的工具,并支持按账号选择目标账户。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"takiguchi-yu-google-workspace": {
"command": "npx",
"args": [
"-y",
"@takiguchi-yu/google-workspace-mcp-server"
]
}
}
}
启动命令npx -y @takiguchi-yu/google-workspace-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@takiguchi-yu/google-workspace-mcp-server0.9.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 - フォルダ内のファイル一覧を取得

クイックスタート

簡単な流れ
  1. Google Cloud で OAuth 認証情報(CLIENT_ID, SECRET)を作成(初回のみ)
  2. OAuth 認証情報をもとに、アカウントごとのトークンを取得(アカウントを追加するたび)
  3. 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  # 何が起きるかだけ表示する

やっていること:

  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

開発者向け: テスト

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

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

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

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

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

参考にしたプロジェクト

備忘

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。