将Claude转变为强大的Google Workspace助手,通过这个全面的MCP服务器集成。
将Claude变成您的个人生产力助手,可以:
---
config:
theme: default
---
graph TB
用户[用户<br/>硕士生] --> Claude[🤖 Claude AI<br/>聊天界面]
Claude <==> MCP[MCP服务器<br/>大脑<br/>Node.js + ES模块]
MCP --> 认证[OAuth2认证<br/>令牌管理<br/>安全层]
MCP --> Gmail[Gmail服务<br/>邮件操作]
MCP --> 日历[日历服务<br/>会议管理]
MCP --> 云端硬盘[云端硬盘服务<br/>文件操作]
MCP --> Meet[Meet集成<br/>视频会议]
认证 --> Google认证[Google OAuth2<br/>安全认证]
Gmail --> GmailAPI[Gmail API<br/>Google服务器]
日历 --> 日历API[日历API<br/>Google服务器]
云端硬盘 --> 云端硬盘API[云端硬盘API<br/>Google服务器]
Meet --> MeetAPI[Meet API<br/>Google服务器]
Claude -.->|"为下午2点创建会议"| MCP
MCP -.->|"工具调用:create_meeting"| 日历
日历 -.->|"API请求"| 日历API
日历API -.->|"会议已创建"| 日历
日历 -.->|"成功响应"| MCP
MCP -.->|"会议创建成功!"| Claude
classDef 用户样式 fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
classDef claude样式 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef mcp样式 fill:#e8f5e8,stroke:#2e7d32,stroke-width:3px
classDef 服务样式 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef api样式 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef 认证样式 fill:#fff8e1,stroke:#f9a825,stroke-width:2px
class 用户 用户样式
class Claude claude样式
class MCP mcp样式
class Gmail,日历,云端硬盘,Meet 服务样式
class GmailAPI,日历API,云端硬盘API,MeetAPI api样式
class 认证,Google认证 认证样式
---
config:
theme: redux-dark
---
sequenceDiagram
参与者 U as 用户
参与者 C as Claude
参与者 MCP as MCP服务器
参与者 认证 as 认证管理器
参与者 Gmail as Gmail服务
参与者 Cal as 日历服务
参与者 Drive as 云端硬盘服务
参与者 G as Google API
注释 over U,G: 示例:"创建团队会议并发送邀请"
U->>C: "为今天下午2点创建会议并邀请团队"
C->>MCP: 工具调用:create_meeting_and_send
MCP->>认证: 检查认证
认证-->>MCP: 令牌有效
并行 创建会议
MCP->>Cal: 创建日历事件
Cal->>G: POST /calendar/events
G-->>Cal: 创建了带有Meet链接的事件
Cal-->>MCP: 会议详情
并行 发送邀请
MCP->>Gmail: 发送日历邀请
Gmail->>G: POST /gmail/send
G-->>Gmail: 邮件已发送
Gmail-->>MCP: 邀请已发送
并行 创建文档
MCP->>Drive: 创建会议笔记文档
Drive->>G: POST /drive/files
G-->>Drive: 文档已创建
Drive-->>MCP: 文档已准备好
结束
MCP->>MCP: 编译结果
MCP-->>C: 成功响应及详情
C-->>U: "会议已创建!邀请已发送给团队。笔记文档已准备好。"
注释 over U,G: 总时间:~10秒用于复杂工作流
---
config:
layout: dagre
theme: base
look: classic
---
flowchart LR
subgraph 子图0["核心组件"]
服务器["MCP服务器<br>- 请求处理器<br>- 工具注册表<br>- 响应格式化"]
认证["认证管理器<br>- OAuth2流程<br>- 令牌管理<br>- 安全层"]
end
subgraph 子图1["服务层"]
Gmail["Gmail服务<br>- 搜索邮件<br>- 发送邮件<br>- 管理标签<br>- 邮件分析"]
日历["日历服务<br>- 创建事件<br>- 安排会议<br>- 生成Meet链接<br>- 时间区处理"]
云端硬盘["云端硬盘服务<br>- 创建文件<br>- 共享文档<br>- 组织文件夹<br>- 管理权限"]
Meet["Meet集成<br>- 协调工作流<br>- 格式化邀请<br>- 发送提醒<br>- 处理RSVP"]
end
subgraph 子图2["工具处理器"]
邮件工具["邮件工具<br>- search_emails<br>- send_email<br>- delete_email<br>- create_label"]
日历工具["日历工具<br>- create_meeting<br>- schedule_event<br>- send_reminder<br>- list_meetings"]
云端硬盘工具["云端硬盘工具<br>- create_file<br>- share_file<br>- organize_folder<br>- update_permissions"]
工作流工具["工作流工具<br>- create_and_send_meet<br>- project_setup<br>- bulk_operations<br>- smart_scheduling"]
end
subgraph 子图3["模式定义"]
模式["工具模式<br>- 输入验证<br>- 响应格式化<br>- 错误处理<br>- 类型定义"]
end
subgraph 子图4["MCP服务器(大脑)"]
方向 TB
子图0
子图1
子图2
子图3
end
subgraph 子图5["外部服务"]
GoogleAPIs["Google API<br>- Gmail API<br>- 日历API<br>- 云端硬盘API<br>- OAuth2 API"]
end
subgraph 子图6["Claude集成"]
Claude["Claude AI<br>- 自然语言<br>- 工具发现<br>- 响应解析<br>- 上下文管理"]
end
服务器 --> 认证 & Gmail & 日历 & 云端硬盘 & Meet
Gmail --> 邮件工具 & GoogleAPIs
日历 --> 日历工具 & GoogleAPIs
云端硬盘 --> 云端硬盘工具 & GoogleAPIs
Meet --> 工作流工具
邮件工具 --> 模式
日历工具 --> 模式
云端硬盘工具 --> 模式
工作流工具 --> 模式
认证 --> GoogleAPIs
Claude <--> 服务器
服务器:::核心样式
认证:::核心样式
Gmail:::服务样式
日历:::服务样式
云端硬盘:::服务样式
Meet:::服务样式
邮件工具:::工具样式
日历工具:::工具样式
云端硬盘工具:::工具样式
工作流工具:::工具样式
模式:::工具样式
GoogleAPIs:::外部样式
Claude:::claude样式
classDef 核心样式 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef 服务样式 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef 工具样式 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef 外部样式 fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef claude样式 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
git clone https://github.com/SmitPatel-31/gmail-drive-mcp-server
cd gmail-drive-mcp-server
npm install
创建Google Cloud项目
启用所需API
- Gmail API
- Google日历API
- Google云端硬盘API
创建OAuth2凭证
credentials.json# 运行交互式认证设置
node auth.js
# 按照提示操作:
# 1. 访问授权URL
# 2. 授权权限
# 3. 输入授权代码
# 4. 令牌将自动保存
# 启动MCP服务器
npm start
将MCP服务器添加到您的Claude配置中:
{
"mcpServers": {
"gmail-drive-server": {
"command": "node",
"args": ["path/to/your/server.js"],
"env": {}
}
}
}
| 工具 | 描述 | 示例 |
|---|---|---|
search_emails | 使用Gmail查询搜索邮件 | "查找来自john@company.com关于项目的邮件" |
send_email | 发送带有附件的邮件 | "向团队发送进度更新" |
delete_email | 删除特定邮件 | "删除那封垃圾邮件" |
archive_email | 归档邮件 | "归档所有新闻通讯" |
create_label | 创建Gmail标签 | "创建'重要项目'标签" |
analyze_email_patterns | 邮件统计和分析 | "显示我上个月的邮件模式" |
| 工具 | 描述 | 示例 |
|---|---|---|
create_meeting | 使用Meet链接安排会议 | "为今天下午2点创建团队会议" |
create_quick_meet | 即刻会议,5分钟后开始 | "快速站会与团队" |
create_instant_meet | 会议在2分钟后开始 | "紧急通话现在开始" |
create_meeting_natural | 使用自然语言安排 | "今天下午6点到8点的学习小组会议" |
send_meet_reminder | 发送会议提醒 | "提醒所有人明天的演示" |
list_upcoming_meetings | 显示即将举行的会议 | "这周我有哪些会议?" |
| 工具 | 描述 | 示例 |
|---|---|---|
create_file | 创建文档、表格、幻灯片 | "创建项目提案文档" |
update_file | 编辑现有文件 | "更新会议记录" |
share_file | 按权限共享 | "以编辑权限与团队共享" |
create_folder | 使用文件夹组织 | "创建Q4规划文件夹" |
move_file | 重新组织文件 | "将所有草稿移动到最终文件夹" |
search_drive_files | 快速找到文件 | "查找包含'预算'的所有文件" |
| 工具 | 描述 | 示例 |
|---|---|---|
create_meet_and_send | 会议 + 邮件自动化 | "为客户电话创建并发送专业邀请" |
project_setup | 完整项目初始化 | "设置新网站项目,包括所有资源" |
bulk_email_management | 处理多个邮件 | "整理我的收件箱并回复紧急事项" |
// 学位论文答辩准备
"为下周五下午2点设置我的学位论文答辩,邀请我的委员会成员,创建演示模板,并发送准备清单"
// 团队项目协调
"创建我们的毕业设计工作空间:每周会议,共享文件夹,任务跟踪文档,以及团队沟通设置"
// 研究组织
"组织我的文献综述:创建分类文件夹,移动研究论文,并设置引用跟踪"
// 客户会议设置
"安排周四上午10点的客户演示,创建议程文档,邀请利益相关方,并发送专业确认"
// 团队协作
"设置冲刺计划:创建会议,邀请开发团队,准备待办事项文档,并安排后续会议"
// 活动协调
"组织公司黑客马拉松:创建活动日历,设置注册,准备资源文件夹,并协调通信"
// 每周规划
"设置我的每周回顾会议,创建规划模板,整理上周的文档,并准备议程"
// 出行协调
"规划会议旅行:创建行程,与团队分享,设置离线消息,并协调覆盖会议"
credentials.json和token.json安全认证错误
# 清除令牌并重新认证
rm token.json
node auth.js
node test-auth.js
API速率限制
# 在Google Cloud Console检查配额使用情况
# 实现指数退避(已包含)
权限错误
# 验证API启用状态
# 检查OAuth2范围配置
# 确认credentials.json格式
| 代码 | 描述 | 解决方案 |
|---|---|---|
AUTH_FAILED | 认证问题 | 重新运行认证设置 |
API_QUOTA_EXCEEDED | 达到速率限制 | 等待并重试 |
INVALID_PERMISSIONS | 范围问题 | 检查OAuth2范围 |
NETWORK_ERROR | 连接问题 | 检查互联网连接 |
创建服务方法
// 在适当的服务文件中
async newFeature(params) {
// 实现
}
定义工具模式
// 在tool-definations.js中
{
name: 'new_feature',
description: '它做什么',
inputSchema: { /* 模式 */ }
}
添加工具处理器
// 在tool-handlers.js中
async handle