使用说明
Outlook MCP Python
基于Python的Microsoft Outlook集成,使用Microsoft Graph API,使用FastAPI和MCP框架构建。
概述
此项目使用Microsoft Graph API为Microsoft Outlook集成提供服务器实现。它包括身份验证处理、邮件操作和用于处理Outlook数据的各种实用程序功能。
特性
- Microsoft Graph API集成
- OAuth2身份验证流程
- 邮件操作(发送、读取、管理)
- 基于FastAPI的服务器实现
- 基于环境的配置
- 日志记录功能
项目结构
auth/-身份验证相关模块mail/-邮件操作模块utils/-实用功能main.py-主要应用入口点server.py-服务器配置config.py-配置设置logger.py-日志记录配置outlook_auth_server.py-Outlook身份验证服务器实现
先决条件
- Python 3.8或更高版本
- 已注册应用程序的Microsoft Azure帐户
- Microsoft Graph API访问
安装
- 克隆存储库:
git clone [repository-url]
cd mcp-outlook-python
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
Azure应用程序注册和配置
要使用此MCP服务器,您需要首先在Azure门户中注册和配置应用程序。以下步骤将引导您完成注册新应用程序、配置其权限和生成客户端密钥的过程。
应用程序注册
- 打开 Azure门户 在您的浏览器中
- 使用Microsoft工作或个人帐户登录
- 搜索或点击“应用程序注册”
- 点击“新注册”
- 输入应用程序的名称,例如“Outlook MCP服务器”
- 选择“任何组织目录中的帐户和个人Microsoft帐户”选项
- 在“重定向URI”部分,从下拉列表中选择“Web”并输入http://localhost:3333/auth/callback“在文本框中
- 点击“注册”
- 从应用程序设置页面的概述部分,复制“应用程序(客户端)ID”,并将其作为.env文件中的MS_client_ID以及claude-config-sample.json文件中的OUTLOOK_client_ID输入
应用程序权限
- 从Azure门户的应用程序设置页面中,选择“管理”部分下的“API权限”选项
- 点击“添加权限”
- 点击“Microsoft Graph”
- 选择“委派权限”
- 搜索以下权限,并选中每个权限旁边的复选框
- 离线访问
- 用户。阅读
- 邮件。阅读
- 邮件。发送
- 日历。阅读
- 日历。读写
- 联络。阅读
- 点击“添加权限”
客户端密钥
- 在Azure门户的应用程序设置页面中,选择管理部分下的“证书和机密”选项
- 切换到“客户端机密”选项卡
- 点击“新客户机密”
- 输入描述,例如“客户端密码”
- 选择最长可能的过期时间
- 点击“添加”
- 复制secret值并将其作为.env文件中的MS_CLIENT_secret以及claude-config-sample.json文件中的OUTLOOK_CLIENT_secret输入
配置
- 创建一个
.env根目录中的文件,包含以下变量:
MS_CLIENT_ID=your-ms-client-id
MS_CLIENT_SECRET=your-ms-client-secret
MS_AUTH_SERVER_URL=your-ms-auth-server-url
- 更新中的配置
config.py根据需要。
使用Claude Desktop
- 从以下位置复制示例配置
claude-config-sample.json到您的Claude Desktop配置 - 重新启动克劳德桌面
- 使用Microsoft进行身份验证
authenticate工具 - 使用电子邮件工具管理您的Outlook帐户
身份验证流程
- 在端口3333上启动本地身份验证服务器(使用
outlook-auth-server.js) - 使用
authenticate获取身份验证URL的工具 - 在浏览器中完成身份验证
- 代币存储在
~/.outlook-mcp-tokens.json
故障排除
- 身份验证问题:检查令牌文件和身份验证服务器日志
- API调用失败:检查响应中的详细错误消息
依赖项
- 快速
- 优维康
- python dotenv
- 媒染剂
- 媒染剂设置
- 请求:
- 意图tp
- 主控程序