返回 MCP 目录
public公开dns本地运行

google-workspace-mcp-server-by-itc

基于Google Workspace的MCP服务器项目,提供Gmail和日历功能的API接口,支持邮件管理、日程操作等功能。

article

README

🚀 谷歌工作区 MCP 服务器

本项目是一个谷歌工作区 MCP 服务器,可实现邮件和日历的多种操作,如邮件的搜索、发送、标签修改,以及日历日程的查看、创建、更新和删除等功能。

🚀 快速开始

必要条件

  1. 安装 Node.js 和 npm。
  2. 配置 Google Workspace 开发者凭据。
  3. 确保已启用 Gmail API 和 Calendar API。

设置步骤

项目初始化

npm init -y

安装依赖项

npm install express cors @google/googleapis

创建配置文件

创建 config.js

const config = {
    google: {
        clientId: 'YOUR_CLIENT_ID',
        clientSecret: 'YOUR_CLIENT_SECRET',
        refreshToken: 'YOUR_REFRESH_TOKEN'
    }
};

module.exports = config;

实现 API 调用

参考代码示例:

const {google} = require('googleapis');
const config = require('./config');

function gmailApiCall() {
    const auth = new google.auth.OAuth2(config.google.clientId, 
                                       config.google.clientSecret,
                                       config.google.refreshToken);
    // 实现具体的 API 调用逻辑
}

function calendarApiCall() {
    const auth = new google.auth.OAuth2(config.google.clientId,
                                       config.google.clientSecret,
                                       config.google.refreshToken);
    // 实现具体的日历 API 调用逻辑
}

项目构建

npm run build

运行命令

npm start

✨ 主要特性

邮件操作

  • 最近邮件列表:获取最近未读邮件列表。
{
    "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": "团队会议",
    "location": "会议室",
    "description": "每周同步",
    "start": "2024-01-24T10:00:00Z",
    "end": "2024-01-24T11:00:00Z",
    "attendees": ["colleague@example.com"]
}
  • 更新日程:更新已有日程的信息。
{
    "eventId": "event_id",
    "summary": "更新后的会议标题",
    "location": "虚拟会议室",
    "start": "2024-01-24T11:00:00Z",
    "end": "2024-01-24T12:00:00Z"
}
  • 删除日程:删除指定日程。
{
    "eventId": "event_id"
}

📚 详细文档

常见问题排查

  • 无法启动服务?:检查端口是否被占用或配置文件是否有误。
  • API 请求失败?:确保凭据有效且网络连接正常。
  • 日志信息不足?:启用详细日志记录以获取更多调试信息。

文档参考

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端