使用说明
Outlook MCP服务器
Azure Functions招待MCP服务器。Microsoft Graph API来修改标记元素的显示属性Outlook可以访问日历,获取约会和预约会议。
机能
- 予定取得:获取指定用户最近30天的计划
- 会议予约: 新しい会議予定を作成(参加者、場所、Teams会議対応)
- 日本时间对应: JST(日本标准时间)的时刻处理
- Azure认证: Azure AD通过认证安全访问
可用工具
get_user_outlook_events
指定用户的Outlook获取计划。
参数:
userPrincipalName(必需):要获取计划的用户的UPN(示例:user@example.com)
响应示例:
{
"user": {
"userPrincipalName": "user@example.com"
},
"value": [
{
"subject": "チーム会議",
"start": "2025-01-15T09:00:00",
"end": "2025-01-15T10:00:00",
"isAllDay": false
}
]
}
create_simple_event
指定用户的Outlook中所述修改相应参数的值。
参数:
userPrincipalName(必需):创建计划的用户的UPNsubject(必需):计划主题start(必须):开始时刻(ISO形式)end(必须):终了时刻(ISO形式)attendees(可选):参与者的电子邮件地址(逗号分隔)isOnlineMeeting(任意):Teams会议の有无(boolean)location(任意):会议场所body(任意):预定正文
响应示例:
{
"created": {
"id": "event-id",
"subject": "新しい会議",
"start": "2025-01-15T09:00:00",
"end": "2025-01-15T10:00:00",
"webLink": "https://outlook.office.com/...",
"attendees": ["user1@example.com", "user2@example.com"],
"location": "会議室A",
"isOnlineMeeting": true
}
}
使用例
创建者在此MCP打开服务器responsesAPI中所述修改相应参数的值。
MCP客户端使用
计划检索示例
{
"tool": "get_user_outlook_events",
"arguments": {
"userPrincipalName": "user@company.com"
}
}
会议预约示例
{
"tool": "create_simple_event",
"arguments": {
"userPrincipalName": "user@company.com",
"subject": "プロジェクト会議",
"start": "2025-01-20T14:00:00",
"end": "2025-01-20T15:00:00",
"attendees": "colleague1@company.com,colleague2@company.com",
"isOnlineMeeting": true,
"location": "会議室A",
"body": "プロジェクトの進捗について話し合います。"
}
}
响应示例
计划捕获成功响应
{
"user": {
"userPrincipalName": "user@company.com"
},
"value": [
{
"subject": "チーム会議",
"start": "2025-01-15T09:00:00",
"end": "2025-01-15T10:00:00",
"isAllDay": false
},
{
"subject": "プロジェクトレビュー",
"start": "2025-01-16T14:00:00",
"end": "2025-01-16T15:30:00",
"isAllDay": false
}
]
}
错误响应
{
"error": "userPrincipalName is required."
}
安装,安装
1. Azure Functions 创建项目
func init outlook-mcp-server --python
cd outlook-mcp-server
2.安装相关性
pip install -r requirements.txt
3.环境设定
local.settings.json 添加以下设置:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"AzureWebJobsStorage": "",
"AZURE_TENANT_ID": "your-tenant-id",
"AZURE_CLIENT_ID": "your-client-id",
"AZURE_CLIENT_SECRET": "your-client-secret"
}
}
注意:实际值为Azure AD替换为在应用程序注册中获取的值。
4. Azure AD 应用程序设置
- Azure Portal 在中注册应用程序
- Microsoft Graph API 的权限:
Calendars.ReadCalendars.ReadWrite
- 生成客户端密码
- Azure Functions 在设置中添加凭据
5.部署
func azure functionapp publish <your-function-app-name>
技术栈
- Azure功能:无服务器运行环境
- Microsoft Graph API: Outlook 日历访问
- Python 3.x:実装言语
- Azure AD:认证・认可
许可证
MIT许可证
貢献
欢迎普鲁特和伊修的报告!
注意事项
- 这个服务器MCP(Model Context Protocol)对较大场景进行渲染期间已观察到该故障
- Azure AD需要认证
- Microsoft Graph API使用限制
- 请在生产环境中进行适当的安全设置
- 因为现在一整天都不能取得预定,所以今后需要定制
- 有很多重构的余地(笑)