mcpField
O
outlook-automation

outlook-automation

github.com/composiohq生产力78.3k83 次安装14 周前更新
代码仓库

关于 outlook-automation

outlook-automation 是通过 Composio Outlook 工具包和 Rube MCP 自动处理 Microsoft Outlook 邮件、日历、联系人及文件夹的技能,面向需要以工作流操作 Outlook 的用户。

主要功能

  1. 01搜索和筛选邮件
  2. 02查询邮件与附件
  3. 03管理日历事件和日程
  4. 04创建及整理联系人
  5. 05管理邮件文件夹

适用场景

  1. 01按发件人或日期查找邮件
  2. 02筛选特定文件夹中的邮件
  3. 03查看日历事件与空闲时间
  4. 04创建联系人或邮件文件夹

MCP 相关

通过 Rube MCP 调用 Composio 的 Outlook 工具包;需要先连接 MCP,并激活 Outlook 账户连接。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/composiohq/awesome-claude-skills --skill outlook-automation

安装后在 Claude Code 中输入/outlook-automation确认已加载。

详细介绍

通过 Rube MCP 自动化 Outlook

通过 Rube MCP 使用 Composio 的 Outlook 工具包自动执行 Microsoft Outlook 操作。

工具包文档:composio.dev/toolkits/outlook

前提条件

  • 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
  • 通过 RUBE_MANAGE_CONNECTIONS 建立有效的 Outlook 连接,工具包为 outlook
  • 始终先调用 RUBE_SEARCH_TOOLS,以获取当前工具架构

设置

获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用
  2. 使用工具包 outlook 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请通过返回的身份验证链接完成 Microsoft OAuth
  4. 运行任何工作流前,确认连接状态为 ACTIVE

核心工作流

1. 搜索和筛选邮件

适用场景:用户想要在邮箱中查找特定邮件

工具调用顺序:

  1. OUTLOOK_SEARCH_MESSAGES - 使用 KQL 语法搜索所有文件夹【必需】
  2. OUTLOOK_GET_MESSAGE - 获取完整邮件详情【可选】
  3. OUTLOOK_LIST_OUTLOOK_ATTACHMENTS - 列出邮件附件【可选】
  4. OUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENT - 下载附件【可选】

关键参数:

  • query:KQL 搜索字符串(from:、to:、subject:、received:、hasattachment:)
  • from_index:分页起始位置(从 0 开始)
  • size:每页结果数(最多 25)
  • message_id:邮件 ID(使用搜索结果中的 hitId)

注意事项:

  • 仅适用于 Microsoft 365/Enterprise 账户(不适用于 @hotmail.com/@outlook.com)
  • 分页依赖 hitsContainers[0].moreResultsAvailable;仅当其为 false 时才停止
  • 后续调用的 message_id 应使用搜索结果中的 hitId,而非 resource.id
  • 索引存在延迟:最新邮件可能不会立即显示
  • 内嵌图片会显示为附件;请按 mimetype 筛选实际文档
2. 查询文件夹中的邮件

适用场景:用户想要使用 OData 筛选器列出特定文件夹中的邮件

工具调用顺序:

  1. OUTLOOK_LIST_MAIL_FOLDERS - 列出邮件文件夹以获取文件夹 ID【前置条件】
  2. OUTLOOK_QUERY_EMAILS - 使用结构化筛选器查询邮件【必需】

关键参数:

  • folder:文件夹名称('inbox'、'sentitems'、'drafts')或文件夹 ID
  • filter:OData 筛选器(例如,isRead eq false and importance eq 'high')
  • top:最大结果数(1-1000)
  • orderby:排序字段和方向
  • select:要返回的字段数组

注意事项:

  • QUERY_EMAILS 仅搜索单个文件夹;如需跨文件夹搜索,请使用 SEARCH_MESSAGES
  • 自定义文件夹需要使用文件夹 ID,而非显示名称;请使用 LIST_MAIL_FOLDERS
  • 始终检查 response['@odata.nextLink'] 以进行分页
  • 无法按收件人或正文内容筛选;这类搜索请使用 SEARCH_MESSAGES
3. 管理日历事件

适用场景:用户想要列出、搜索或查看日历事件

工具调用顺序:

  1. OUTLOOK_LIST_EVENTS - 使用筛选器列出事件【可选】
  2. OUTLOOK_GET_CALENDAR_VIEW - 获取指定时间范围内的事件【可选】
  3. OUTLOOK_GET_EVENT - 获取特定事件详情【可选】
  4. OUTLOOK_LIST_CALENDARS - 列出可用日历【可选】
  5. OUTLOOK_GET_SCHEDULE - 获取空闲/忙碌信息【可选】

关键参数:

  • filter:OData 筛选器(使用 start/dateTime,不要使用 receivedDateTime)
  • start_datetime/end_datetime:日历视图的 ISO 8601 时间
  • timezone:IANA 时区(例如,'America/New_York')
  • calendar_id:可选的非主日历 ID
  • select:要返回的字段

注意事项:

  • 仅使用日历事件属性(start/dateTime、end/dateTime),不要使用邮件属性(receivedDateTime)
  • 日历视图需要提供 start_datetime 和 end_datetime
  • 若要查看重复事件的单次实例,需设置 expand_recurring_events=true
  • 拒绝状态按参与者分别记录,位于 attendees[].status.response
4. 管理联系人

适用场景:用户想要列出、创建或整理联系人

工具调用顺序:

  1. OUTLOOK_LIST_CONTACTS - 列出联系人 [可选]
  2. OUTLOOK_CREATE_CONTACT - 创建新联系人 [可选]
  3. OUTLOOK_GET_CONTACT_FOLDERS - 列出联系人文件夹 [可选]
  4. OUTLOOK_CREATE_CONTACT_FOLDER - 创建联系人文件夹 [可选]

关键参数:

  • givenName/surname:联系人姓名
  • emailAddresses:电子邮件对象数组
  • displayName:完整显示名称
  • contact_folder_id:联系人的可选文件夹

注意事项:

  • 创建联系人支持许多字段,但只需提供 givenName 或 surname
5. 管理邮件文件夹

适用场景:用户想要整理邮件文件夹

工具调用顺序:

  1. OUTLOOK_LIST_MAIL_FOLDERS - 列出顶级文件夹 [必需]
  2. OUTLOOK_LIST_CHILD_MAIL_FOLDERS - 列出子文件夹 [可选]
  3. OUTLOOK_CREATE_MAIL_FOLDER - 创建新文件夹 [可选]

关键参数:

  • parent_folder_id:已知名称或文件夹 ID
  • displayName:新文件夹名称
  • include_hidden_folders:显示隐藏文件夹

注意事项:

  • 已知文件夹名称:'inbox'、'sentitems'、'drafts'、'deleteditems'、'junkemail'、'archive'
  • 操作自定义文件夹时需要使用文件夹 ID,而非显示名称

常见模式

KQL 搜索语法

属性筛选器:

组合运算符:

  • AND - 同时满足两个条件
  • OR - 满足任一条件
  • 使用括号进行分组
OData 筛选语法

电子邮件筛选器:

  • isRead eq false - 未读邮件
  • importance eq 'high' - 高重要性
  • hasAttachments eq true - 包含附件
  • receivedDateTime ge 2025-01-01T00:00:00Z - 日期筛选

日历筛选器:

  • start/dateTime ge '2025-01-01T00:00:00Z' - 日期之后的事件
  • contains(subject, 'Meeting') - 主题包含文本

已知注意事项

帐户类型:

  • SEARCH_MESSAGES 需要 Microsoft 365/Enterprise 帐户
  • 个人帐户(@hotmail.com、@outlook.com)的 API 访问权限有限

字段混淆:

  • 电子邮件属性(receivedDateTime)与日历属性(start/dateTime)不同
  • 请勿在日历查询中使用电子邮件字段,反之亦然

快速参考

任务工具标识关键参数
搜索邮件OUTLOOK_SEARCH_MESSAGESquery, from_index, size
查询文件夹OUTLOOK_QUERY_EMAILSfolder, filter, top
获取邮件OUTLOOK_GET_MESSAGEmessage_id
列出附件OUTLOOK_LIST_OUTLOOK_ATTACHMENTSmessage_id
下载附件OUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENTmessage_id, attachment_id
列出文件夹OUTLOOK_LIST_MAIL_FOLDERS(无)
子文件夹OUTLOOK_LIST_CHILD_MAIL_FOLDERSparent_folder_id
列出事件OUTLOOK_LIST_EVENTSfilter, timezone
日历视图OUTLOOK_GET_CALENDAR_VIEWstart_datetime, end_datetime
获取事件OUTLOOK_GET_EVENTevent_id
列出日历OUTLOOK_LIST_CALENDARS(无)
空闲/忙碌OUTLOOK_GET_SCHEDULEschedules, times
列出联系人OUTLOOK_LIST_CONTACTStop, filter
创建联系人OUTLOOK_CREATE_CONTACTgivenName, emailAddresses
联系人文件夹OUTLOOK_GET_CONTACT_FOLDERS(无)

由 Composio 提供支持

评论

支持 Markdown