Google Workspace MCP 服务器
一个模型上下文协议 (MCP) 服务器,提供与 Gmail 和日历 API 交互的工具。此服务器可让您通过 MCP 界面以编程方式管理电子邮件和日历活动。
特征
Gmail 工具
list_emails
:列出收件箱中最近的电子邮件,并可选择过滤search_emails
:使用 Gmail 查询语法进行高级电子邮件搜索send_email
:发送新邮件,支持抄送和密送modify_email
:修改电子邮件标签(存档、垃圾箱、标记为已读/未读)
日历工具
list_events
:列出即将发生的日历事件,并按日期范围进行过滤create_event
:创建有参与者的新日历事件- 由于 Google Cloud Calendar API 不具有允许创建但阻止删除或更新的范围,因此出于安全措施,以下事件已从此服务器中删除。
update_event
:更新现有日历事件delete_event
:删除日历事件
先决条件
- Node.js :安装 Node.js 版本 14 或更高版本
- Google Cloud 控制台设置:
- 前往Google Cloud Console
- 创建新项目或选择现有项目
- 启用 Gmail API 和 Google 日历 API:
- 前往“API 和服务”>“库”
- 搜索并启用“Gmail API”
- 搜索并启用“Google 日历 API”
- 设置 OAuth 2.0 凭据:
- 前往“API 和服务”>“凭证”
- 点击“创建凭证”>“OAuth 客户端 ID”
- 选择“Web应用程序”
- 将“授权重定向 URI”设置为包含:
http://localhost:4100/code
- 记下客户端 ID 和客户端密钥
设置说明
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 Google Workspace Server - No Calendar Deletion:
npx -y @smithery/cli install @erickva/google-workspace-mcp-server-no-calendar-deletetion --client claude
手动安装
- 克隆并安装:
git clone https://github.com/epaproditus/google-workspace-mcp-server.git
cd google-workspace-mcp-server
npm install
- 创建 OAuth 凭证:在根目录中创建一个
credentials.json
文件:{
"web": {
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"redirect_uris": ["http://localhost:4100/code"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token"
}
}
- 获取刷新令牌:
node get-refresh-token.js
这将:- 打开浏览器进行 Google OAuth 身份验证
- 请求以下权限:
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/gmail.send
- 将凭证保存到
token.json
- 在控制台中显示刷新令牌
- 配置 MCP 设置:将服务器配置添加到您的 MCP 设置文件:
- 对于 VSCode Claude 扩展:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- 对于 Claude 桌面应用程序:
~/Library/Application Support/Claude/claude_desktop_config.json
将其添加到mcpServers
对象:
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["/path/to/google-workspace-server/build/index.js"],
"env": {
"GOOGLE_CLIENT_ID": "your_client_id",
"GOOGLE_CLIENT_SECRET": "your_client_secret",
"GOOGLE_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
- 构建并运行:
使用示例
Gmail操作
- 列出最近的电子邮件:
{
"maxResults": 5,
"query": "is:unread"
}
- 搜索电子邮件:
{
"query": "from:example@gmail.com has:attachment",
"maxResults": 10
}
- 发送电子邮件:
{
"to": "recipient@example.com",
"subject": "Hello",
"body": "Message content",
"cc": "cc@example.com",
"bcc": "bcc@example.com"
}
- 修改邮箱:
{
"id": "message_id",
"addLabels": ["UNREAD"],
"removeLabels": ["INBOX"]
}
日历操作
- 列出事件:
{
"maxResults": 10,
"timeMin": "2024-01-01T00:00:00Z",
"timeMax": "2024-12-31T23:59:59Z"
}
- 创建事件:
{
"summary": "Team Meeting",
"location": "Conference Room",
"description": "Weekly sync-up",
"start": "2024-01-24T10:00:00Z",
"end": "2024-01-24T11:00:00Z",
"attendees": ["colleague@example.com"]
}
3.更新事件:
{
"eventId": "event_id",
"summary": "Updated Meeting Title",
"location": "Virtual",
"start": "2024-01-24T11:00:00Z",
"end": "2024-01-24T12:00:00Z"
}
4.删除事件:
{
"eventId": "event_id"
}
故障排除
- 身份验证问题:
- 确保所有必需的 OAuth 范围都已授予
- 验证客户端ID和密钥是否正确
- 检查刷新令牌是否有效
- API 错误:
- 检查 Google Cloud Console 的 API 配额和限制
- 确保您的项目已启用 API
- 验证请求参数是否符合所需格式
执照
该项目已获得 MIT 许可。