你的AI可以推理。但它能检查你的日历吗?
     
*为人工智能代理提供完整的谷歌工作区桥梁——47个操作,一个URL。*
______________________________________________________________________
问题
AI代理可以编写代码、分析文档和规划复杂的项目。但是,如果让一个人发电子邮件、安排会议或更新电子表格,就会碰壁。
- 你的代理人起草了一份项目计划,但无法将其放入谷歌文档中
- 它分析数据,但无法将结果写回表格
- 它安排任务,但无法检查任何人的日历
- 它编写电子邮件,但实际上无法发送
谷歌工作区是工作的地方。 如果你的AI不能触摸它,你的AI就无法完成这项工作。
*你不需要更聪明的模型。你需要一个能够触及人们实际使用的工具的模型。*
______________________________________________________________________
洞察
人工智能代理并不缺乏智能。
他们没有手。
这 模型上下文协议 为AI代理提供了一种与外部工具交互的标准化方式。但大多数MCP服务器需要本地安装、凭据管理和手动路径配置,然后才能进行单个API调用。
v4完全改变了这一点。 部署一次到Cloudflare Workers,获取一个URL。该URL是您的MCP服务器——随时随地可用,始终在线,无需本地设置。
一个URL。六个服务。完全自主。
______________________________________________________________________
v4.0.0的新增功能
这是一个突破性的变化发布。 v4引入了双工具SDK架构和Cloudflare Workers部署。传统的6-tool stdio服务器保留供本地使用。
零安装远程部署
将服务器部署到Cloudflare Workers,并使用单个URL连接任何MCP客户端——无需Node.js、Docker或路径配置。只是:
https://your-worker.workers.dev/mcp受...启发 Cloudflare远程MCP服务器的方法 多亏了 @马茨卡里 为了使其浮出水面。
2-Tool SDK架构
| 工具 | 目的 |
|---|---|
search | 通过自然语言SDK规范查询谷歌工作区 |
execute | 使用完整的googleapis SDK访问运行沙盒JavaScript |
工具减少88% 在代理的上下文窗口中。SDK动态处理其余部分。
KV支持令牌存储
存储在Cloudflare KV中的OAuth令牌——加密、持久、无需本地凭据文件。
______________________________________________________________________
gdrive MCP服务器介绍
一个生产就绪的MCP服务器,为AI代理提供对Google Workspace的完整、安全的访问。
| 服务 | 运营 | 亮点 |
|---|---|---|
| 驾驶 | 7 | 搜索、增强搜索、读取、创建、更新、批处理操作 |
| 表格 | 12 | 读/写单元格、公式、格式、条件格式、冻结、列宽 |
| Gmail | 10 | 列表、搜索、阅读、草稿, 发送邮件,发送草稿,管理标签 |
| 日历 | 9 | 全CRUD, 自然语言快速添加,忙/闲支票 |
| 文档 | 5 | 创建、插入文本、替换、, 富文本样式,插入表格 |
| 表单 | 4 | 创建表单、添加问题、阅读回复 |
| 总共47个 |
______________________________________________________________________
在行动中看到它
Send an email and schedule a follow-up — in two calls
// 1. Send the email
{
"tool": "gmail",
"args": {
"operation": "sendMessage",
"to": "team@company.com",
"subject": "Q1 Report Ready",
"body": "The Q1 report is complete. Link: https://docs.google.com/..."
}
}
// 2. Schedule the review meeting
{
"tool": "calendar",
"args": {
"operation": "quickAdd",
"text": "Q1 Report Review with team tomorrow at 2pm",
"calendarId": "primary"
}
}Build a formatted spreadsheet from scratch
// 1. Create the spreadsheet
{ "tool": "drive", "args": { "operation": "createFile", "name": "Sales Dashboard", "mimeType": "application/vnd.google-apps.spreadsheet" } }
// 2. Add data
{ "tool": "sheets", "args": { "operation": "updateCells", "spreadsheetId": "...", "range": "Sheet1!A1:D4",
"values": [["Region", "Q1", "Q2", "Total"], ["North", 50000, 62000, ""], ["South", 43000, 51000, ""], ["West", 67000, 71000, ""]] } }
// 3. Add formulas
{ "tool": "sheets", "args": { "operation": "updateFormula", "spreadsheetId": "...", "range": "D2:D4", "formula": "=B2+C2" } }
// 4. Format the header row
{ "tool": "sheets", "args": { "operation": "formatCells", "spreadsheetId": "...", "sheetId": 0,
"range": { "startRowIndex": 0, "endRowIndex": 1 },
"format": { "textFormat": { "bold": true }, "backgroundColor": { "red": 0.2, "green": 0.4, "blue": 0.8 } } } }
// 5. Freeze the header
{ "tool": "sheets", "args": { "operation": "freezeRowsColumns", "spreadsheetId": "...", "sheetId": 0, "frozenRowCount": 1 } }Check availability and book a meeting
// 1. Check if everyone is free
{ "tool": "calendar", "args": { "operation": "checkFreeBusy",
"timeMin": "2025-03-15T14:00:00Z", "timeMax": "2025-03-15T15:00:00Z",
"items": ["alice@company.com", "bob@company.com"] } }
// 2. Book it
{ "tool": "calendar", "args": { "operation": "createEvent", "calendarId": "primary",
"summary": "Design Review", "start": "2025-03-15T14:00:00Z", "end": "2025-03-15T15:00:00Z",
"attendees": ["alice@company.com", "bob@company.com"],
"description": "Reviewing the new dashboard designs" } }______________________________________________________________________
快速开始
选项1:远程(Cloudflare Workers)--推荐
部署一次到Cloudflare的边缘——通过永久URL从任何地方连接。初始设置后,无需管理本地进程。
先决条件:
- Cloudflare帐户 (免费版作品)
- (一次性本地身份验证步骤所需)
- 牧马人CLI:
npm install -g wrangler或使用npx wrangler - 谷歌云项目 使用OAuth凭据
just—brew install just(macOS)·winget install just(Windows)·cargo install just(跨平台)
引导式设置: 跑 just install 让Claude交互式地指导您完成每一步——GCP项目创建、API启用、OAuth证书、KV设置和部署。或者手动执行以下步骤。1.克隆并安装
git clone https://github.com/AojdevStudio/gdrive.git
cd gdrive
npm install && npm run build2.通过Cloudflare进行身份验证
npx wrangler login3.创建KV命名空间用于令牌存储
npx wrangler kv:namespace create GDRIVE_KV --preview false
# Copy the `id` from the output, update [[kv_namespaces]] id in wrangler.toml4.在本地完成Google OAuth
# Generate encryption key
echo "GDRIVE_TOKEN_ENCRYPTION_KEY=$(openssl rand -base64 32)" > .env
# Place your gcp-oauth.keys.json in credentials/
mkdir -p credentials
cp /path/to/gcp-oauth.keys.json credentials/
# Run auth — opens browser, saves tokens to .tokens.json
node ./dist/index.js auth没有Google Cloud凭据? 跟随 谷歌云设置指南 --或奔跑 just install 以获得完全有指导的演练。5.将令牌和机密上传到Cloudflare
# Upload OAuth tokens to KV
npx wrangler kv:key put --namespace-id= \
"gdrive:oauth:tokens" "$(cat .tokens.json)"
# Set OAuth client credentials as Wrangler secrets
npx wrangler secret put GDRIVE_CLIENT_ID
npx wrangler secret put GDRIVE_CLIENT_SECRET6.部署
npx wrangler deploy
# Note the URL printed: https://your-worker.workers.dev7.联系克劳德
Claude Code CLI——用户作用域 (每个项目中都有,存储在 ~/.claude/settings.json):
claude mcp add --scope user --transport http gdrive https://your-worker.workers.dev/mcpClaude Code CLI——项目范围 (仅此项目,可以提交到repo):
claude mcp add --scope project --transport http gdrive https://your-worker.workers.dev/mcp为什么是用户范围? 连接到的MCP服务器 *你的* Google帐户属于用户级别,而不是锁定到一个项目。使用 --scope project 仅当服务器是特定于项目的(不同的谷歌帐户,不同的权限)。克劳德桌面版 --添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"gdrive": {
"url": "https://your-worker.workers.dev/mcp"
}
}
}______________________________________________________________________
选项2:本地(Node.js stdio)
用于本地开发,或者当您希望将所有内容都保留在机器上时。
先决条件
- 谷歌云项目 使用OAuth凭据
Google Cloud新手? 跟随 详细设置指南.
安装并验证
git clone https://github.com/AojdevStudio/gdrive.git
cd gdrive
npm install && npm run build
# Copy your OAuth credentials
mkdir -p credentials
cp /path/to/gcp-oauth.keys.json credentials/
# Generate encryption key and authenticate
export GDRIVE_TOKEN_ENCRYPTION_KEY=$(openssl rand -base64 32)
node ./dist/index.js auth联系克劳德
Claude Code CLI——用户作用域 (推荐--适用于所有项目):
claude mcp add --scope user gdrive -- node /absolute/path/to/gdrive/dist/index.jsClaude Code CLI——项目范围:
claude mcp add --scope project gdrive -- node /absolute/path/to/gdrive/dist/index.js克劳德桌面:
{
"mcpServers": {
"gdrive": {
"command": "node",
"args": ["/absolute/path/to/gdrive/dist/index.js"],
"env": {
"GDRIVE_TOKEN_ENCRYPTION_KEY": "your-key-here"
}
}
}
}______________________________________________________________________
选项3:Docker(自托管生产)
适用于需要具有Redis缓存的持久共享实例的团队。
# Authenticate on host first (opens browser)
./scripts/auth.sh
# Start with Redis caching
docker compose up -d --build
# Verify
docker compose psClaude桌面与Docker:
{
"mcpServers": {
"gdrive": {
"command": "docker",
"args": ["exec", "-i", "gdrive-mcp-server", "node", "dist/index.js"]
}
}
}______________________________________________________________________
运作原理
基于操作的刀具模式
服务器公开了47个单独的工具,而不是争夺代理的注意力 6工具 带着一个 operation 参数:
// One tool per service, operation parameter for routing
{
name: "sheets",
args: {
operation: "formatCells", // ← The operation discriminator
spreadsheetId: "abc123",
sheetId: 0,
range: { startRowIndex: 0, endRowIndex: 1 },
format: { textFormat: { bold: true } }
}
}这意味着 工具减少88% 在代理的上下文窗口中——更快的工具选择、更低的令牌成本、更好的结果。
安全
- AES-256-GCM加密 对于所有存储的令牌
- OAuth自动刷新 --认证一次,永远有效
- 关键点旋转 配备V1-V4版本的钥匙
- Redis缓存 具有智能失效功能(可选,优雅回退)
- 沙盒执行 通过隔离的虚拟机
- 全面的审计追踪 在结构化日志中
______________________________________________________________________
故事
这个项目之所以开始,是因为我们一直遇到同一堵墙:可以聪明思考但不能 *做* 现实世界中的任何事物。
每次我们想让代理更新电子表格、查看日历或发送电子邮件时,我们都必须离开人工智能循环,手动完成,然后回来。代理人是一个被困在盒子里的伟大思想家。
MCP通过为代理人提供使用工具的标准方式改变了游戏规则。但现有的谷歌集成很肤浅——基本的文件读/写,没有格式化,没有电子邮件发送,没有日历管理。我们需要一些与人们每天在谷歌工作区实际做的事情的深度相匹配的东西。
所以我们构建了它。从驱动器和表格开始,然后是表单和文档,然后是Gmail(实际发送,而不仅仅是草稿),最后是带有完整CRUD和自然语言调度的日历。每个版本都由同一个问题驱动: *“代理人需要什么才能在没有人为干预的情况下真正完成这项工作?”*
v4回答下一个问题: *“开发人员需要什么才能在60秒内连接他们的代理?”* 一个URL。这就是答案。
最好的人工智能助手并不是最聪明的。这才是真正能把事情做好的人。
______________________________________________________________________
完整的API参考资料
全部47项操作
Drive — 7 operations
| 操作 | 说明 |
|---|---|
search | 使用查询搜索文件 |
enhancedSearch | 具有智能过滤功能的自然语言搜索 |
read | 读取文件内容(自动转换谷歌格式) |
createFile | 创建新文件 |
createFolder | 创建新文件夹 |
updateFile | 更新现有文件 |
batchOperations | 批量创建/更新/删除/移动 |
Sheets — 12 operations
| 操作 | 说明 |
|---|---|
listSheets | 在电子表格中列出所有工作表 |
readSheet | 从某个范围读取数据 |
createSheet | 创建新的图纸选项卡 |
renameSheet | 重命名图纸选项卡 |
deleteSheet | 删除图纸选项卡 |
updateCells | 将值写入单元格 |
updateFormula | 编写具有相对引用支持的公式 |
formatCells | 应用格式(粗体、颜色、边框、数字格式) |
addConditionalFormat | 添加条件格式规则 |
freezeRowsColumns | 冻结标题行/列 |
setColumnWidth | 调整列宽 |
appendRows | 将行追加到数据末尾 |
Gmail — 10 operations
| 操作 | 说明 |
|---|---|
listMessages | 列出带有可选查询的消息 |
listThreads | 列出电子邮件线程 |
getMessage | 获取完整消息内容 |
getThread | 获取完整的线程内容 |
searchMessages | 高级邮件搜索 |
createDraft | 创建电子邮件草稿 |
sendMessage | 发送电子邮件(支持以别名发送) |
sendDraft | 发送现有草稿 |
listLabels | 列出所有Gmail标签 |
modifyLabels | 添加/删除邮件上的标签 |
Calendar — 9 operations
| 操作 | 说明 |
|---|---|
listCalendars | 列出可用日历 |
getCalendar | 获取日历详细信息 |
listEvents | 列出时间范围内的事件 |
getEvent | 获取活动详细信息 |
createEvent | 与与会者一起创建新活动 |
updateEvent | 修改现有事件 |
deleteEvent | 使用通知选项删除事件 |
quickAdd | 自然语言事件创建 |
checkFreeBusy | 检查日程安排的可用性 |
Docs — 5 operations
| 操作 | 说明 |
|---|---|
createDocument | 创建新文档 |
insertText | 在某个位置插入文本 |
replaceText | 查找和替换文本 |
applyTextStyle | 应用格式(粗体、斜体、颜色、字体) |
insertTable | 插入具有自定义尺寸的表 |
Forms — 4 operations
| 操作 | 说明 |
|---|---|
createForm | 创建新表单 |
readForm | 获取表单结构和详细信息 |
addQuestion | 添加问题(文本、多项选择、复选框、比例) |
listResponses | 检索表单响应 |
______________________________________________________________________
路线图
- \[x\] 谷歌云端硬盘——文件管理和搜索
- \[x\] 谷歌表格——带格式的完整电子表格控件
- \[x\] Google Forms——表单创建和响应管理
- \[x\] 谷歌文档——文档创建和富文本编辑
- \[x\] Gmail——包括发送在内的完整电子邮件管理
- \[x\] 日历——带自然语言调度的完整CRUD
- \[x\] Cloudflare Workers——零安装远程部署
- \[\]谷歌幻灯片——演示文稿的创建和编辑
- \[\]谷歌聊天——工作区消息集成
- \[\]联系人--联系人管理和查找
- \[\]任务--谷歌任务集成
贡献
我们欢迎捐款!代码库是TypeScript,具有干净的模块结构:
src/modules/
drive/ — 9 files
sheets/ — 9 files
gmail/ — 12 files
calendar/ — 13 files
docs/ — 2 files
forms/ — 7 files- 分叉并创建特征分支
- 遵循现有的Types/ESLint约定
- 添加测试(Jest)并更新文档
npm run lint && npm test && npm run build- 打开一个带有清晰描述的PR
许可证
麻省理工学院——见 许可证 了解详情。
______________________________________________________________________
你的人工智能代理现在可以完成你在谷歌工作区中所做的一切。
如果这个项目能帮助你的代理人完成工作, 给它一颗星.

