项目简介
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 })
信息
分类
生产力应用