README
🚀 MCP Outlook 工具
MCP Outlook 工具是一个基于模型上下文协议(MCP)的服务器实现,它让 AI 助手能够与 Microsoft Outlook 进行交互,实现日历管理、邮件操作和搜索功能。
✨ 主要特性
-
📅 日历管理
- 获取指定日期范围内的日历项。
- 添加包含完整详细信息的新预约。
- 支持分类和忙碌状态设置。
-
📧 邮件操作
- 向收件人及抄送对象发送邮件。
- 发送前显示确认信息。
- 支持完整的邮件正文格式设置。
-
🔍 邮件搜索
- 按日期和关键词搜索邮件。
- 从地址中提取用户信息。
- 支持日文文本编码。
📦 安装指南
环境要求
- Windows 操作系统(pywin32 依赖)。
- 已安装并配置好 Microsoft Outlook。
- Python 3.10 或更高版本。
- 兼容 MCP 的 AI 助手(如 Claude Desktop)。
安装步骤
- 克隆仓库:
git clone https://github.com/wmoto-ai/mcp-outlook-tools.git
cd mcp-outlook-tools
- 使用 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 小时)。
贡献
欢迎贡献代码!请随时提交拉取请求。
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
致谢
- 基于 FastMCP 框架构建。
- 使用 pywin32 实现 Outlook COM 接口。
Scan to contact