使用说明
Outlook MCP服务器
此存储库包含一个用于Microsoft Outlook的MCP(模型上下文协议)服务器,该服务器使用Spring Boot和Microsoft Graph API构建。它允许AI代理使用以下方式与您的电子邮件进行交互 可流式HTTP传输.
特性
- 委托身份验证:使用 设备代码流,允许您使用自己的Microsoft帐户安全登录。
- 苏格兰和南方能源公司运输:通过HTTP公开MCP工具,与标准MCP客户端兼容。
- 丰富的电子邮件工具:
get_recent_emails:获取上周的消息。get_email_by_id:查看完整的消息内容和元数据。delete_email_by_id:删除不需要的电子邮件。 (因不安全而暂时禁用)create_draft_response:准备答复以供审查。
建筑
- 认证:将客户端密码替换为
DeviceCodeCredential为了更好的个人安全。 - API:用途
graphClient.me()对于所有操作,确保代理充当经过身份验证的用户。 - Spring Boot:提供web服务器和生命周期管理。
如何跑步
1.Azure门户设置
要使用此服务器,您需要 应用程序注册 在 Azure门户:
- 注册应用程序:转到“应用程序注册”>“新注册”。
- 姓名:
Outlook MCP Server - 支持的帐户类型:
Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)(建议个人使用)。
- 姓名:
- API权限:转至“API权限”>“添加权限”>《Microsoft Graph》> “委托权限”.
- 搜索并添加:
Mail.Read,Mail.ReadWrite,Mail.Send. - 单击“添加权限”。
- 搜索并添加:
- 启用公共客户端流:转到“身份验证”。
- 向下滚动到“高级设置”。
- 集 “允许公共客户端流” 到 是这是设备代码流所必需的。
- 单击“保存”。
- 获取ID:从“概述”选项卡中,复制 应用程序(客户端)ID 和 目录(租户)ID.
2.配置环境
将这些值设置为环境变量:
export AZURE_CLIENT_ID="your-client-id"
export AZURE_TENANT_ID="your-tenant-id"
2.构建和启动
mvn clean package
java -jar target/outlook-mcp-1.0-SNAPSHOT.jar
3.完成登录(第一轮)
应用程序启动后,请按照终端中的说明进行操作:
- 打开 https://microsoft.com/devicelogin.
- 输入终端中显示的代码。
- 使用您的Microsoft帐户登录。
连接代理(技术细节)
服务器在端口上运行 8443 默认情况下(HTTPS),并遵循 模型上下文协议.
[!注意] 服务器使用 自签名证书.通过连接时
curl或其他工具,您必须使用-k或--insecure标记以忽略SSL警告。
1.启动会话(流式HTTP)
要启动连接,请执行 GET 请求与 Accept: text/event-stream 头球
端点: GET https://localhost:8443/mcp/
头球: Accept: text/event-stream
卷发示例
curl -kN -H "Accept: text/event-stream" https://localhost:8443/mcp/
服务器将响应一个事件,其中包含您的 sessionId.
2.初始化服务器
一旦你有了 sessionId,发送一个 initialize 请求通过 POST.
重要:您必须包括 mcp-session-id 头球
端点: POST https://localhost:8443/mcp/
标头:
Content-Type: application/jsonmcp-session-id: <YOUR_SESSION_ID>
请求正文:
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "my-client",
"version": "1.0.0"
}
}
}
2.工具使用示例
所有工具请求应通过以下方式发送 POST 到 https://localhost:8443/mcp/ 随着 mcp-session-id 头球
标头:
Content-Type: application/jsonmcp-session-id: <YOUR_SESSION_ID>
列出可用工具
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
呼叫 get_recent_emails
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_recent_emails",
"arguments": {
"limit": 5
}
}
}
呼叫 create_draft_response
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "create_draft_response",
"arguments": {
"email_id": "YOUR_EMAIL_ID",
"body": "Thank you for your email. I will look into this."
}
}
}