Outlook MCP 服务器

一个通过Microsoft Graph API与Microsoft Outlook集成的模型上下文协议服务器,允许Claude和其他LLMs检查日历事件、安排新事件、阅读邮件和发送消息。

  • by kacase
  • TypeScript
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 kacase/mcp-outlook

使用说明

Outlook MCP(模型上下文协议)服务器

模型上下文协议服务器,通过Microsoft Graph API与Microsoft Outlook集成,允许Claude和其他LLM检查日历事件、安排新事件、阅读电子邮件和发送消息。

特性

  • 📅 日历集成:查看、列出、创建、更新和删除日历事件
  • 📧 电子邮件集成:从Outlook帐户读取、发送、起草和管理电子邮件
  • 🔁 模型上下文协议:遵循MCP标准进行LLM工具集成
  • 🛡️ 类型安全:带Zod验证的完整TypeScript实现

先决条件

  • Node.js 18+
  • 具有适当权限的Microsoft 365帐户
  • 使用Graph API权限注册Microsoft Azure应用程序(日历和邮件)

设置

  1. 在Azure Active Directory中注册应用程序:

    • 首选 Azure门户

    • 导航到“应用程序注册”

    • 使用“公共客户端/本地(移动和桌面)”类型的重定向URI创建新注册

      • 注册 http://localhost 作为重定向URI
    • 配置API权限:

      • 选择Microsoft Graph并键入委派,因为我们将代表用户行事
      • 日历:“日历.阅读”和“日历.读写”
      • 对于电子邮件:“Mail.Read”、“Mail.ReadWrite”和“Mail.Send”
      • 为人民:“人民。阅读”
  2. 请注意Azure应用程序注册(概述)中的值,以用作MCP配置的环境变量:

  • 客户端ID(应用程序(客户端)ID)
  • 权限ID(目录(租户)ID)
  1. 注册MCP服务器 对于Claude Desktop,请在中创建或更新您的配置 ~/.claude/config.json:
{
  "mcpServers": {
    "outlook": {
      "command": "npx",
      "args": [
        "mcp_outlook"
      ],
      "env": {
        "AUTHORITY": "your-authority-id",
        "CLIENT_ID": "your-client-id",
        "MCP_SERVER_NAME": "outlook-mcp",
        "MCP_SERVER_VERSION": "1.0.0"
      }
    }
  }
}

确保用实际值替换路径和环境变量。

可用工具

日历工具

  • list日历活动:列出指定时间范围内用户的日历事件
  • createCalendarEvent:创建新的日历事件
  • getCalendarEvent:获取特定日历事件的详细信息
  • updateCalendarEvent:更新现有日历事件
  • 删除日历事件:删除日历事件

电子邮件工具

  • 电子邮件列表:列出指定文件夹(收件箱、已发送、草稿等)中的电子邮件
  • 获取电子邮件:获取特定电子邮件的详细信息
  • send电子邮件:发送新电子邮件
  • 创建草稿:创建电子邮件草稿而不发送
  • markEmailAs阅读:将电子邮件标记为已读
  • markEmailAs未读:将电子邮件标记为未读
  • 删除电子邮件:删除电子邮件

人员工具

  • 搜索人物 查找组织中的人员或您最近的联系人
  • getPerson 获取某人的信息

资源

  • 日历:包含日历事件数据的资源
  • 收件箱:包含收件箱邮件数据的资源

发展

在开发模式下运行并实时重新加载:

npm run dev

运行linting:

npm run lint

在本地配置MCP

{
  "mcpServers": {
    "outlook": {
      "command": "node",
      "args": [
        "/ABSOLUTE/PATH/TO/outlook_mcp/build/index.js"
      ],
      "env": {
        "AUTHORITY": "your-authority-id",
        "CLIENT_ID": "your-client-id",
        "MCP_SERVER_NAME": "outlook-mcp",
        "MCP_SERVER_VERSION": "1.0.0"
      }
    }
  }
}