Gmail和Google Calendar集成服务

GMCP是一个模型上下文协议服务器,使LLMs能够通过安全的OAuth2认证与Gmail和Google Calendar交互,包括搜索邮件、管理标签、发送消息和处理日历事件。

  • by johnie
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于

使用说明

🔗
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.谷歌云设置

  1. 在中创建项目 谷歌云控制台
  2. 启用 Gmail API 和 日历API
  3. 创建 OAuth 2.0客户端ID (桌面应用程序类型)
  4. 下载凭据JSON文件

2.身份验证

# If installed globally
gmcp auth

# Or with npx
npx gmcp auth

# Or from source
bun run auth

您的浏览器将自动打开。授权后,身份验证代码将通过本地回调服务器自动捕获,无需手动复制。

手动模式: 如果本地服务器不工作(例如,端口冲突、远程环境),请使用 --manual 自己从URL复制代码:

gmcp auth --manual

3.跑步

# Globally installed
gmcp start
# or just: gmcp

# With npx
npx gmcp start

# From source
bun run start

Claude桌面集成

使用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.events

CLI参考

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

许可证

麻省理工学院