Google Workspace CLI服务器

gws-mcp是一个MCP服务器,通过5个通用工具向任何MCP兼容客户端提供对19个Google Workspace服务的完全访问权限。

  • by danielemoraschi
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 danielemoraschi/gws-mcp

使用说明

gws-mcp

MCP服务器公开 谷歌工作区CLI (gws)连接到任何兼容MCP的客户端,使他们能够完全访问 19谷歌工作区服务 通过5个通用工具。

为什么?

Claude的内置谷歌连接器盖 3服务 (Gmail、日历、驱动器),具有有限的写入权限。此MCP服务器包装完整 gws CLI,解锁一切:

功能 本机连接器 gws-mcp
服务 3 19 (Gmail、日历、驱动器、表格、文档、幻灯片、任务、人员、聊天室、课堂、表单、保持、会议、管理员报告、事件、模型盔甲、工作流)
发送电子邮件 否(仅限草稿) 是
编辑工作表单元格 否 是
编辑文档/幻灯片 否 是
任务、聊天、表格、课堂 否 是
模式自省 否 是
试运行验证 否 是
需要计划层 Pro+ 任何 (自托管)

先决条件

  • Python 3.10+
  • mcp 包裹: pip install "mcp>=1.0.0"
  • gws 命令行界面 已安装并验证
  • Node.js (要求 gws)

验证 gws 首次使用前:

gws auth login

快速入门

  1. 克隆此仓库:

    git clone https://github.com/danielemoraschi/gws-mcp
    
  2. 安装MCP依赖关系:

    pip install "mcp>=1.0.0"
    
  3. 配置您的MCP客户端 (见下文)。

  4. 重新启动客户端。 The 5 gws_* 工具应该出现。

客户端设置

服务器使用 stdio传输。它从stdin读取JSON-RPC并写入stdout。任何可以启动子流程的MCP客户端都可以工作。

克劳德桌面版

添加 claude_desktop_config.json (或通过打开 设置→ 开发者→ 编辑配置):

操作系统 路径
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
窗户 %APPDATA%\Claude\claude_desktop_config.json
Linux ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "gws": {
      "command": "python3",
      "args": ["/path/to/gws-mcp/server.py"]
    }
  }
}

如果你使用 非易失性存储器,Claude Desktop不会继承其PATH。设置显式路径:

{
  "mcpServers": {
    "gws": {
      "command": "python3",
      "args": ["/path/to/gws-mcp/server.py"],
      "env": {
        "GWS_NODE_PATH": "/Users/YOUR_USERNAME/.nvm/versions/node/v22.0.0/bin/node",
        "GWS_BIN_PATH": "/Users/YOUR_USERNAME/.nvm/versions/node/v22.0.0/bin/gws"
      }
    }
  }
}

任何其他MCP客户端

服务器通过stdio与MCP通信。以以下方式启动:

python3 /path/to/gws-mcp/server.py

如果你的客户的环境没有 node 和 gws 在PATH上,设置 GWS_NODE_PATH 和 GWS_BIN_PATH 启动前的环境变量。

工具

服务器公开了5个工具。Claude被指示遵循发现工作流程:

# 工具 目的
1 gws_services 列出所有19项可用服务及其说明
2 gws_help 获取任何命令或子命令的帮助
3 gws_schema 获取方法的完整API架构(参数、类型、必需字段)
4 gws_dry_run 验证命令而不执行(显示解析的URL、HTTP方法、正文)
5 gws_run 执行命令并返回解析后的JSON

发现工作流程: gws_services → gws_help → gws_schema → gws_dry_run → gws_run

配置

环境变量 默认值 描述
GWS_NODE_PATH which node Node.js二进制文件的路径
GWS_BIN_PATH which gws gws二进制文件的路径

如果找不到任何二进制文件,服务器在启动时会快速失败,并出现明显错误。

安全

  • 不执行shell --用途 asyncio.create_subprocess_exec args为列表
  • 服务满负荷 --执行前验证服务名称
  • 被封锁的旗帜 — --upload 和 --output 被拒绝(没有通过MCP写入本地文件)
  • 超时 --每个命令超时60秒
  • 输出上限 --响应截断为100 KB
  • 本地身份验证 --使用来自的环境OAuth令牌 ~/.config/gws/,配置中没有凭据

许可证

麻省理工学院