项目简介

InboxFewer 是一款实用的工具,它可以在 GitHub Issue 或 Pull Request 关闭时,自动归档相关 Gmail 邮件。此外,它还作为一个 MCP (Model Context Protocol) 服务器,为 AI 助手提供丰富的 Google 服务(Gmail、Google Docs、Google Calendar、Google Meet)和 GitHub 集成功能,帮助 AI 助手管理邮件、文档、日程和会议记录。

主要功能点

  • Gmail 邮件管理:
    • 列出、归档、发送邮件。
    • 搜索 Google Contacts 中的联系人。
    • 提取邮件附件和正文内容。
    • 识别并提取邮件中的 Google Docs/Drive 链接。
  • Google Docs 集成:
    • 通过文档 ID 获取 Google Docs 的内容,支持多标签文档,并可转换为 Markdown 或纯文本格式。
    • 获取 Google Docs 或 Google Drive 文件的元数据(如名称、MIME 类型、创建时间)。
  • Google Calendar 日程管理:
    • 列出、创建、更新、删除日程事件,支持设置重复事件、外出办公、专注时间等。
    • 查询日历空闲时间,帮助 AI 助手智能安排会议。
    • 查找多位与会者的共同空闲时间段。
    • 从日程事件中提取 Google Docs/Drive 链接和 Google Meet 会议链接。
  • Google Meet 会议功能:
    • 创建和配置 Meet 会议空间,可选择自动开启会议录制、转录和 Gemini 笔记功能。
    • 获取会议记录(包括录制文件和下载链接)和转录文本(包括发言者和时间戳)。
  • GitHub 集成:
    • 识别与 GitHub Issue 或 Pull Request 相关的 Gmail 邮件线程。
    • 检查关联的 GitHub Issue 或 Pull Request 是否已关闭,并据此归档邮件线程。
  • 多账户支持: 支持同时管理和使用多个 Google 账户(例如,工作和个人账户),每个工具调用都可以指定使用的账户。

安装步骤

确保您的系统已安装 Go 语言环境(版本 1.20 或更高)。 打开终端,运行以下命令安装 InboxFewer:

go install github.com/teemow/inboxfewer@latest

安装完成后,'inboxfewer' 可执行文件将位于您的 'GOPATH/bin' 目录下,或者如果 'GOPATH/bin' 已在您的系统路径中,则可直接在终端中运行。

服务器配置

MCP 客户端(如 Claude Desktop 或其他支持 Model Context Protocol 的 AI 助手)需要配置 InboxFewer 服务器的启动信息。通常,这涉及指定服务器的启动命令 ('command') 及其参数 ('args')。

Claude Desktop 客户端配置示例: 如果您使用 Claude Desktop,可以在其配置文件 '~/Library/Application Support/Claude/claude_desktop_config.json' (macOS) 中添加以下配置:

{
  "mcpServers": {
    "inboxfewer": {
      "command": "/path/to/inboxfewer",
      "args": ["serve"],
      "description": "InboxFewer MCP 服务器,提供 Google 服务和 GitHub 集成工具"
    }
  }
}
  • '"/path/to/inboxfewer"': 请将此路径替换为您的系统上 InboxFewer 可执行文件的实际路径。
  • '["serve"]': 这是启动 InboxFewer 作为 MCP 服务器的默认参数。

其他 MCP 客户端的通用配置: MCP 服务器支持多种传输协议。您可以根据 MCP 客户端的类型选择合适的传输方式。

  • 标准输入/输出 (stdio): 这是默认的传输方式,通常用于在同一机器上直接运行的客户端。 启动命令示例:'inboxfewer serve --transport stdio'
  • 服务器发送事件 (SSE): 适用于需要通过 HTTP 持续获取事件流的客户端。 启动命令示例:'inboxfewer serve --transport sse --http-addr :8080' 客户端连接地址:'http://localhost:8080/sse' 消息发送地址:'http://localhost:8080/message'
  • 流式 HTTP (streamable-http): 提供基于 HTTP 的双向流式通信。 启动命令示例:'inboxfewer serve --transport streamable-http --http-addr :8080' 客户端连接地址:'http://localhost:8080/mcp'

Google 服务 OAuth 认证: InboxFewer MCP 服务器在首次访问某个 Google 账户的 Gmail、Docs、Calendar 或 Meet 服务时,如果发现该账户尚未授权,会通过 AI 助手返回一个错误信息,其中包含一个 OAuth 授权 URL。您的 AI 助手应使用 'google_get_auth_url' 工具来获取此 URL。用户访问该 URL 并授权后,会将获得的授权码提供给 AI 助手,AI 助手再调用 'google_save_auth_code' 工具(并指定相应的 'account' 名称,例如 'account="work"')来完成认证流程。OAuth Token 将被安全缓存,后续会自动刷新。

GitHub Token 配置: 为了让 InboxFewer 能够访问 GitHub 信息并判断 Issue/PR 状态,您需要在用户主目录的 '~/keys/github-inboxfewer.token' 文件中,以 '<github-username> <github-personal-access-token>' 的格式配置您的 GitHub 用户名和个人访问令牌。

基本使用方法

1. 作为命令行工具 (清理模式):

  • 归档与已关闭 GitHub Issue/PR 相关的 Gmail 邮件 (使用默认 Google 账户):
    inboxfewer cleanup
  • 归档指定 Google 账户的 Gmail 邮件:
    inboxfewer cleanup --account work

2. 作为 MCP 服务器 (供 AI 助手使用): 一旦 MCP 服务器启动并成功连接到您的 AI 助手,AI 助手就可以通过调用 InboxFewer 暴露的工具来执行各种任务。以下是一些示例工具调用(AI 助手会自动将其转换为 MCP 协议请求):

  • 列出收件箱中的邮件线程:
    gmail_list_threads({query: "in:inbox", maxResults: 5})
  • 获取 Google Docs 文档内容 (Markdown 格式):
    docs_get_document({account: "work", documentId: "您的文档ID", format: "markdown"})
  • 创建一个包含 Google Meet 链接的会议事件:
    calendar_create_event({
      summary: "团队站会",
      start: "2025-01-01T10:00:00Z",
      end: "2025-01-01T10:30:00Z",
      attendees: "[email protected], [email protected]",
      addGoogleMeet: true,
      description: "每日团队同步"
    })
  • 创建一个自动录制和转录的 Google Meet 空间:
    meet_create_space({
      account: "work",
      enable_recording: true,
      enable_transcription: true
    })
  • 发送一封 HTML 格式的邮件:
    gmail_send_email({
      to: "[email protected]",
      subject: "项目更新",
      body: "<h1>项目进展顺利!</h1><p>详情请查看附件。</p>",
      isHTML: true
    })

信息

分类

生产力应用