使用说明
MCP电子邮件服务器
一个MCP(模型上下文协议)服务器,通过Microsoft Graph API为人工智能模型提供访问Microsoft Outlook电子邮件的权限。
概述
该项目通过两种方式实现了AI模型的电子邮件访问:
- FastAPI服务器 (
server.py)-用于Ollama测试的HTTP/REST端点 - MCP服务器 (
mcp_server.py)-Claude Desktop和其他MCP客户端的官方MCP协议实施
建筑
AI Model → MCP Server → Microsoft Graph API → Outlook
这两种实现都包装了相同的Microsoft Graph API调用,并将其公开为人工智能模型可以使用的可发现工具。
特性
- 获取电子邮件 -从收件箱检索最近的电子邮件
- send_邮件 -向收件人发送电子邮件
- 带有令牌缓存的OAuth2设备代码身份验证
设置
- 安装依赖项:
pip install -r requirements.txt
-
配置Azure应用程序:
- 创建Azure AD应用程序注册
- 添加API权限:
Mail.Read,Mail.Send(委托) - 复制客户端ID和租户ID
-
设置环境变量:
# .env file
AZURE_CLIENT_ID=your-client-id
AZURE_TENANT_ID=your-tenant-id
- 身份验证:
python authenticate.py
遵循设备代码流。令牌缓存在 ~/.email_mcp_token_cache.bin
用法
使用FastAPI+Ollama进行测试
# Start HTTP server
python server.py
# Run Ollama test
python test_ollama.py
与MCP检查器一起使用
npx @modelcontextprotocol/inspector python mcp_server.py
导航到web界面以:
- 查看可用工具
- 测试工具执行
- 检查请求/响应流
与Claude Desktop一起使用
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"email": {
"command": "python",
"args": ["/path/to/mcp_server.py"]
}
}
}
文件
authenticate.py-一次性身份验证脚本server.py-FastAPI HTTP服务器mcp_server.py-MCP协议服务器test_ollama.py-Ollama集成测试
认证
该项目使用OAuth2设备代码流:
- 跑
authenticate.py一次获得代币 - 令牌由两台服务器缓存和重用
- 令牌过期时重新进行身份验证(通常为1小时)
检查令牌状态:
python authenticate.py check
运作原理
- 工具定义:两个服务器都使用描述参数的模式公开相同的工具
- 人工智能发现:AI模型查询可用工具及其模式
- 工具执行:AI生成正确的工具调用,服务器根据Microsoft Graph API执行
- 响应:将真实电子邮件数据返回给AI模型