使用说明

项目简介

本项目 'Outlook 邮件 MCP 服务器' 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 应用提供访问 Microsoft Outlook 邮箱中邮件主题信息的能力。通过注册为 MCP 工具,LLM 客户端可以调用此服务,获取用户最近的邮件主题列表,从而实现更丰富的上下文感知和功能扩展。

主要功能点

  • 获取最近邮件主题: 允许 LLM 应用通过简单的工具调用,获取用户 Outlook 邮箱中最近收到的邮件主题列表。
  • 可配置的邮件数量和时间范围: 支持用户自定义获取邮件的最大数量和时间范围,以满足不同的应用场景需求。
  • 基于 Microsoft Graph API: 底层使用 Microsoft Graph API 访问 Outlook 邮箱数据,保证数据访问的安全性和可靠性(需要用户授权)。
  • 易于集成到 MCP 客户端: 遵循 MCP 协议标准,可以方便地集成到任何兼容 MCP 协议的 LLM 客户端。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/SwartzMss/McpCollection.git
    cd McpCollection/mcp_server_outlook
  2. 安装依赖: 建议使用虚拟环境。

    pip install python-dotenv httpx pytz fastmcp

    pip install -r requirements.txt # 如果仓库根目录下有 requirements.txt 文件
  3. 配置环境变量:

    • 在 'mcp_server_outlook' 目录下创建 '.env' 文件。
    • 按照 Microsoft Graph API 的要求,配置以下环境变量:
      • 'CLIENT_ID': 你的 Microsoft 应用的客户端 ID。
      • 'CLIENT_SECRET': 你的 Microsoft 应用的客户端密钥。
      • 'ACCESS_TOKEN': 用于访问 Microsoft Graph API 的访问令牌 (通常在初次使用时需要通过 OAuth 2.0 流程获取,并使用 refresh_token 进行刷新)。
      • 'REFRESH_TOKEN': 用于刷新 access_token 的刷新令牌。

    注意: 'ACCESS_TOKEN' 和 'REFRESH_TOKEN' 的获取和管理需要根据 Microsoft Graph API 的 OAuth 2.0 文档进行配置。本项目代码中包含了 refresh_token 的逻辑,但首次获取 token 需要手动完成。

服务器配置

MCP 客户端需要配置以下 JSON 信息才能连接到 'Outlook 邮件 MCP 服务器':

{
  "server_name": "outlook_mail_mcp_server",  // 服务器名称,可以自定义
  "command": "python",                      // 启动服务器的命令,这里使用 python
  "args": ["mcp_server_outlook/main.py"]   // 启动脚本的路径
}

参数注释:

  • 'server_name': MCP 服务器的名称,客户端用以标识和调用。
  • 'command': 运行服务器端代码的可执行命令,通常是 Python 解释器。
  • 'args': 传递给 'command' 的参数列表,这里指定了服务器主程序的路径。

基本使用方法

  1. 启动 MCP 服务器: 在 'mcp_server_outlook' 目录下运行:

    python main.py

    服务器将会在本地启动,并等待 MCP 客户端的连接和请求。

  2. 配置 MCP 客户端: 在你的 MCP 客户端应用中,根据上述 服务器配置 的 JSON 信息,配置并连接到 'Outlook 邮件 MCP 服务器'。

  3. 调用 'list_recent_emails' 工具: 在 MCP 客户端中,你可以调用名为 'list_recent_emails' 的工具,并可以传递以下参数:

    • 'max_count' (整数): 可选参数,指定返回邮件主题的最大数量,范围 1-50,默认为 5。
    • 'max_days' (整数): 可选参数,指定搜索邮件的时间范围,最近多少天内的邮件,范围 1-30 天,默认为 2 天。

    例如,客户端可以发送请求调用 'list_recent_emails' 工具,不带参数则获取最近 5 封邮件的主题;或者指定参数 '{"max_count": 10, "max_days": 7}' 获取最近 7 天内的最多 10 封邮件的主题。

  4. 接收响应: MCP 客户端将收到服务器返回的 JSON-RPC 响应,其中包含邮件主题列表或错误信息。邮件主题列表将以字符串形式返回,每行一个主题,并带有序号。

注意: 首次运行可能需要配置 Microsoft Graph API 的应用,并获取必要的 'ACCESS_TOKEN' 和 'REFRESH_TOKEN'。请参考 Microsoft Graph API 的开发者文档完成应用注册和授权流程。

信息

分类

通信与社交