🔗 gmcp
MCP server for Gmail and Google Calendar integration.
by @johnie
概述
GMCP是一个 模型上下文协议 使LLM能够与Gmail和谷歌日历交互的服务器。它提供了搜索电子邮件、管理标签、发送消息和处理日历事件的工具,所有这些都是通过安全的OAuth2身份验证完成的。
安装
NPM(推荐)
# Install globally
npm install -g gmcp
# Or run directly
npx gmcp
bunx gmcp码头工人
docker pull johnie/gmcp:latest来源
git clone https://github.com/johnie/gmcp.git
cd gmcp
bun install快速开始
1.谷歌云设置
- 在中创建项目 谷歌云控制台
- 启用 Gmail API 和 日历API
- 创建 OAuth 2.0客户端ID (桌面应用程序类型)
- 下载凭据JSON文件
2.身份验证
# If installed globally
gmcp auth
# Or with npx
npx gmcp auth
# Or from source
bun run auth您的浏览器将自动打开。授权后,身份验证代码将通过本地回调服务器自动捕获,无需手动复制。
手动模式: 如果本地服务器不工作(例如,端口冲突、远程环境),请使用 --manual 自己从URL复制代码:
gmcp auth --manual3.跑步
# Globally installed
gmcp start
# or just: gmcp
# With npx
npx gmcp start
# From source
bun run startClaude桌面集成
使用npx(推荐)
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"gmcp": {
"command": "npx",
"args": ["-y", "gmcp"],
"env": {
"GOOGLE_CREDENTIALS_PATH": "/path/to/credentials.json",
"GOOGLE_TOKEN_PATH": "/path/to/token.json",
"GOOGLE_SCOPES": "gmail.readonly,gmail.send,calendar.events"
}
}
}
}使用Docker
{
"mcpServers": {
"gmcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/path/to/credentials.json:/app/data/credentials.json:ro",
"-v", "/path/to/token.json:/app/data/token.json",
"-e", "GOOGLE_CREDENTIALS_PATH=/app/data/credentials.json",
"-e", "GOOGLE_TOKEN_PATH=/app/data/token.json",
"-e", "GOOGLE_SCOPES=gmail.readonly,gmail.send,calendar.events",
"johnie/gmcp:latest"
]
}
}
}使用Bun(来源)
{
"mcpServers": {
"gmcp": {
"command": "bun",
"args": ["run", "/path/to/gmcp/src/cli.ts"],
"env": {
"GOOGLE_CREDENTIALS_PATH": "/path/to/credentials.json",
"GOOGLE_TOKEN_PATH": "/path/to/token.json",
"GOOGLE_SCOPES": "gmail.readonly,gmail.send,calendar.events"
}
}
}
}工具
Gmail(17个工具)
| 工具 | 说明 |
|---|---|
gmcp_gmail_search_emails | 使用Gmail查询语法搜索 |
gmcp_gmail_get_email | 按ID获取消息 |
gmcp_gmail_get_thread | 获取对话线索 |
gmcp_gmail_list_attachments | 列出邮件附件 |
gmcp_gmail_get_attachment | 下载附件数据 |
gmcp_gmail_send_email | 发送新电子邮件 |
gmcp_gmail_reply | 在帖子中回复电子邮件 |
gmcp_gmail_create_draft | 创建消息草稿 |
gmcp_gmail_delete_email | 永久删除电子邮件(绕过垃圾箱) |
gmcp_gmail_archive_email | 存档电子邮件(从收件箱中删除) |
gmcp_gmail_list_labels | 列出所有标签 |
gmcp_gmail_get_label | 获取标签详细信息 |
gmcp_gmail_create_label | 创建自定义标签 |
gmcp_gmail_update_label | 更新标签设置 |
gmcp_gmail_delete_label | 删除自定义标签 |
gmcp_gmail_modify_labels | 添加/删除邮件上的标签 |
gmcp_gmail_batch_modify | 批量标签操作 |
日历(4个工具)
| 工具 | 说明 |
|---|---|
gmcp_calendar_list_calendars | 列出所有日历 |
gmcp_calendar_list_events | 使用筛选器列出事件 |
gmcp_calendar_get_event | 按ID获取事件 |
gmcp_calendar_create_event | 创建活动(支持定期、Google Meet) |
配置
环境变量
| 变量 | 描述 |
|---|---|
GOOGLE_CREDENTIALS_PATH | OAuth2凭据JSON路径 |
GOOGLE_TOKEN_PATH | 存储OAuth2令牌的路径 |
GOOGLE_SCOPES | 以逗号分隔的API范围 |
范围
| 范围 | 访问 |
|---|---|
gmail.readonly | 阅读电子邮件和标签 |
gmail.send | 发送电子邮件 |
gmail.modify | 阅读、修改标签、删除电子邮件 |
gmail.labels | 管理标签 |
gmail.compose | 创建草稿并发送 |
calendar.readonly | 阅读日历和活动 |
calendar.events | 管理事件 |
calendar | 完全日历访问 |
示例:
# Read-only
GOOGLE_SCOPES=gmail.readonly,calendar.readonly
# Full access
GOOGLE_SCOPES=gmail.readonly,gmail.modify,gmail.send,calendar.eventsCLI参考
gmcp [command]
Commands:
start Start MCP server (default)
auth Run OAuth2 authentication flow
Options:
--help, -h Show usage
--version, -v Show version
Auth Options:
--manual, -m Skip local callback server; manually paste code from URL测试
bunx @modelcontextprotocol/inspector bun run start许可证
麻省理工学院
