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快速入门
- 克隆此仓库:
git clone https://github.com/danielemoraschi/gws-mcp- 安装MCP依赖关系:
pip install "mcp>=1.0.0"- 配置您的MCP客户端 (见下文)。
- 重新启动客户端。 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_execargs为列表 - 服务满负荷 --执行前验证服务名称
- 被封锁的旗帜 —
--upload和--output被拒绝(没有通过MCP写入本地文件) - 超时 --每个命令超时60秒
- 输出上限 --响应截断为100 KB
- 本地身份验证 --使用来自的环境OAuth令牌
~/.config/gws/,配置中没有凭据
许可证
麻省理工学院
