返回市场
麦普 Outlook 工具

麦普 Outlook 工具

作者:wmoto-ai7 星标更新:2025-07-03

项目介绍

MCP Outlook 工具

一个实现了模型上下文协议(MCP)服务器的功能,使AI助手能够与Microsoft Outlook进行日历管理、邮件操作和搜索功能的交互。

功能

  • 📅 日历管理

    • 获取指定日期范围内的日历项目
    • 添加带有详细信息的新预约
    • 支持类别和忙碌状态
  • 📧 邮件操作

    • 发送带有收件人和抄送人的电子邮件
    • 发送前显示确认提示
    • 完整支持邮件正文格式
  • 🔍 邮件搜索

    • 按日期和关键词搜索邮件
    • 从地址中提取用户信息
    • 支持日文文本编码

要求

  • Windows操作系统(用于pywin32)
  • 已安装并配置好的Microsoft Outlook
  • Python 3.10或更高版本
  • 兼容MCP的AI助手(例如,Claude Desktop)

安装

  1. 克隆仓库:
git clone https://github.com/wmoto-ai/mcp-outlook-tools.git
cd mcp-outlook-tools
  1. 使用uv安装依赖项:
uv pip install -e .

或者使用pip:

pip install -e .

配置

对于Claude Desktop

在你的Claude Desktop配置文件中添加以下内容:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "outlook-tools": {
      "command": "uv",
      "args": [
        "--directory",
        "C:/path/to/mcp-outlook-tools",
        "run",
        "--with-editable",
        ".",
        "-m",
        "outlook_tools.server"
      ],
      "cwd": "C:/path/to/mcp-outlook-tools",
      "env": {
        "PYTHONIOENCODING": "utf-8"
      }
    }
  }
}

使用

配置完成后,以下工具将在你的AI助手中可用:

add_appointment

向Outlook日历添加新的预约
参数:
- subject: 预约标题
- start_time: 开始时间(YYYY-MM-DD HH:MM)
- end_time: 结束时间(YYYY-MM-DD HH:MM)
- location: 会议地点(可选)
- description: 详细描述(可选)
- categories: 逗号分隔的类别(可选)
- busy_status: 0=空闲, 1=暂定, 2=忙碌, 3=外出(默认:1)

get_calendar

获取指定日期范围的日历项目
参数:
- start_date: 开始日期(YYYY-MM-DD)
- end_date: 结束日期(YYYY-MM-DD)

send_email

通过Outlook发送电子邮件
参数:
- to: 收件人电子邮件地址(分号分隔)
- cc: 抄送人(分号分隔)
- subject: 邮件主题
- body: 邮件正文文本

项目结构

mcp-outlook-tools/
├── src/
│   └── outlook_tools/
│       ├── __init__.py
│       ├── server.py           # MCP服务器实现
│       ├── calendar_service.py # 日历操作
│       └── search_service.py   # 邮件搜索操作
├── test/                       # 测试文件
├── pyproject.toml             # 项目配置
└── README.md                  # 本文件

开发

运行测试

pytest test/

类型检查

pyright src/

代码检查

ruff check src/

安全说明

  • 此工具需要访问本地的Outlook安装
  • 发送前会显示邮件供用户确认
  • 不会在代码中存储任何凭据
  • 所有操作均使用Windows COM接口和现有的Outlook身份验证

局限性

  • 仅适用于Windows(由于依赖pywin32)
  • 需要已安装并配置好的Outlook
  • 时间处理假设为JST(+9小时)

贡献

欢迎贡献!请随时提交Pull Request。

许可证

此项目采用MIT许可证 - 详情见LICENSE文件。

致谢

  • 使用FastMCP框架构建
  • 使用pywin32进行Outlook COM接口操作