Google服务集成协议服务器

一个模型上下文协议(MCP)服务器,提供与Gmail、Google Drive和Google Calendar的读写集成能力。

  • by razibra
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 razibra/google-mcp-server

使用说明

谷歌MCP服务器

一种模型上下文协议(MCP)服务器,提供与谷歌服务的完全集成,包括Gmail、谷歌云端硬盘和具有读写功能的谷歌日历。

特性

  • Gmail集成

    • 发送支持CC、BCC和HTML内容的电子邮件
    • 完全希伯来语/RTL语言支持,自动格式化
  • Google Drive集成

    • 将文件上传到驱动器
    • 列出具有搜索功能的文件
    • 删除文件
  • 谷歌日历集成

    • 为与会者创建日历事件
    • 使用时间范围筛选列出事件
    • 更新现有事件

安装说明

1.谷歌云控制台设置

  1. 创建谷歌云项目

    • 首选 谷歌云控制台
    • 点击“创建项目”或选择一个现有项目
    • 记下您的项目ID
  2. 启用所需的API

    • 在云控制台中,转到“APIs和服务”>“启用API和服务”
    • 搜索并启用这些API:
      • Gmail API
      • Google Drive API
      • 谷歌日历API
  3. 创建OAuth2凭据

    • 转到“API和服务”>“凭据”
    • 点击“创建凭据”>“OAuth客户端ID”
    • 如果出现提示,请配置OAuth同意屏幕:
      • 为用户类型选择“外部”
      • 填写必填字段(应用程序名称、用户支持电子邮件、开发人员联系方式)
      • 添加作用域:
        • https://www.googleapis.com/auth/gmail.send
        • https://www.googleapis.com/auth/drive.file
        • https://www.googleapis.com/auth/calendar
      • 将您的电子邮件添加为测试用户
    • 对于应用程序类型,选择“桌面应用程序”
    • 下载凭据JSON文件
    • 将其重命名为 credentials.json 并将其放置在项目根目录中

2.本地设置

  1. 安装依赖项

    npm install
    
  2. 配置环境

    • 复制 .env.example 向 .env
    • 从下载的JSON文件中填写您的Google OAuth2凭据:
      GOOGLE_CLIENT_ID=your_client_id
      GOOGLE_CLIENT_SECRET=your_client_secret
      
  3. 构建项目

    npm run build
    

3.身份验证

首次运行时,服务器将:

  1. 打开默认浏览器进行谷歌身份验证
  2. 要求您登录并授权该应用程序
  3. 将身份验证令牌保存在本地 tokens.json

使用MCP客户端

配置您的MCP客户端

将此服务器添加到您的MCP客户端配置中(例如,Claude Desktop):

{
  "mcpServers": {
    "google": {
      "command": "node",
      "args": ["/path/to/google-mcp-integration/dist/index.js"],
      "env": {
        "GOOGLE_CLIENT_ID": "your_client_id",
        "GOOGLE_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

可用工具

Gmail工具

  • gmail_send:发送电子邮件

    Parameters:
    - to: Recipient email address
    - subject: Email subject
    - body: Email body
    - cc: (optional) CC recipients
    - bcc: (optional) BCC recipients
    - isHtml: (optional) Whether body is HTML
    

    希伯来语/RTL支持:服务器会自动检测希伯来语内容并应用适当的RTL格式。发送希伯来语电子邮件时,内容会用 dir="rtl" 以及右对齐的样式,以实现正确的显示。

驱动工具

  • drive_upload:将文件上传到Google Drive

    Parameters:
    - fileName: Name of the file
    - content: File content
    - mimeType: (optional) MIME type
    - folderId: (optional) Parent folder ID
    
  • drive_list:列出驱动器中的文件

    Parameters:
    - query: (optional) Search query
    - pageSize: (optional) Number of results
    
  • drive_delete:删除文件

    Parameters:
    - fileId: ID of file to delete
    

日历工具

  • 日历创建事件:创建日历事件

    Parameters:
    - summary: Event title
    - description: Event description
    - startTime: Start time (ISO 8601)
    - endTime: End time (ISO 8601)
    - attendees: (optional) List of email addresses
    - location: (optional) Event location
    - calendarId: (optional) Calendar ID (default: primary)
    
  • 日历列表事件:列出日历事件

    Parameters:
    - calendarId: (optional) Calendar ID
    - maxResults: (optional) Maximum results
    - timeMin: (optional) Start of time range
    - timeMax: (optional) End of time range
    
  • 日历更新事件:更新事件

    Parameters:
    - eventId: Event ID to update
    - calendarId: (optional) Calendar ID
    - summary: (optional) New title
    - description: (optional) New description
    - startTime: (optional) New start time
    - endTime: (optional) New end time
    - location: (optional) New location
    

身份验证工具

  • auth_status:检查身份验证状态

发展

# Run in development mode with hot reload
npm run dev

# Build for production
npm run build

# Run production build
npm start

安全说明

  • 这 credentials.json 文件包含敏感的OAuth2凭据-切勿将其提交到版本控制
  • 这 tokens.json 文件包含访问令牌-确保其安全
  • 这 .env 文件包含敏感数据-切勿提交
  • 在设置OAuth作用域时使用最小权限原则

故障排除

  1. 身份验证问题

    • 删除 tokens.json 并重新验证
    • 确保您的Google Cloud项目已启用所需的API
    • 检查您的OAuth同意屏幕是否配置正确
  2. 权限错误

    • 验证您的OAuth范围 .env 文件
    • 确保您的Google帐户可以访问您尝试访问的资源
  3. API配额限制

    • Google API有使用配额
    • 在Google Cloud控制台中检查您的配额使用情况

许可证

麻省理工学院