Outlook会议安排器MCP服务器
允许通过 Microsoft Graph API 在 Microsoft Outlook 中安排会议,具有创建日历事件和通过查找电子邮件地址添加与会者等功能。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"github": {
"args": [
"-y",
"@modelcontextprotocol/github-mcp"
],
"command": "npx",
"env": {
"GITHUB_TOKEN": "\u003cYOUR_GITHUB_TOKEN\u003e"
}
},
"outlook-meetings-scheduler": {
"args": [
"-y",
"outlook-meetings-scheduler"
],
"command": "npx",
"env": {
"CLIENT_ID": "\u003cYOUR_CLIENT_ID\u003e",
"CLIENT_SECRET": "\u003cYOUR_CLIENT_SECRET\u003e",
"TENANT_ID": "\u003cYOUR_TENANT_ID\u003e",
"USER_EMAIL": "\u003cYOUR_EMAIL\u003e"
}
}
}
}
该服务需要配置环境变量:CLIENT_ID、CLIENT_SECRET、TENANT_ID、USER_EMAIL
服务介绍
Outlook 会议调度 MCP 服务器
使用 Microsoft Graph API 在 Microsoft Outlook 中调度会议的 MCP 服务器。
此 MCP 服务器允许您创建日历事件、创建带有参与者的事件(包括查找他们的电子邮件地址)。它与其他 MCP 服务器(如 GitHub MCP 服务器)无缝集成,以增强您的工作流程。
示例查询
- 为明天下午3点与 Sarah 安排一个会议。
- 为明天下午2点创建一个名为 "Project Kickoff" 的会议。将 Megan 和 John 添加为必需的参与者。
与 GitHub MCP 服务器结合使用
- 在 organization/repo 仓库中创建一个标题为 "Fix pagination bug in user dashboard" 的问题,描述为 "用户报告在页面之间导航时看到重复条目。" 然后为我安排一个日历提醒,让我明天下午3点审查这个问题。
工具
# Outlook 会议调度 MCP 服务器
使用 Microsoft Graph API 在 Microsoft Outlook 中调度会议的 MCP 服务器。
此 MCP 服务器允许您创建日历事件、创建带有参与者的事件(包括查找他们的电子邮件地址)。它与其他 MCP 服务器(如 GitHub MCP 服务器)无缝集成,以增强您的工作流程。
## 示例查询
- 为明天下午3点与 Sarah 安排一个会议。
- 为明天下午2点创建一个名为 "Project Kickoff" 的会议。将 Megan 和 John 添加为必需的参与者。
### 与 GitHub MCP 服务器结合使用
- 在 organization/repo 仓库中创建一个标题为 "Fix pagination bug in user dashboard" 的问题,描述为 "用户报告在页面之间导航时看到重复条目。" 然后为我安排一个日历提醒,让我明天下午3点审查这个问题。
## 工具
请注意,原文档中的“工具”部分没有具体内容,因此翻译中也保留了这一状态。如果有更多关于工具的具体信息,请提供以便进一步翻译。
-
find-person- Find a person's email address by their name
- Input:
name(string) - Returns: List of matching people with names and email addresses
-
create-event- Create a calendar event using Microsoft Graph API
- Inputs:
subject(string): Subject of the calendar eventbody(string): Content/body of the calendar eventstart(optional): ISO format datetime (e.g., 2025-04-20T12:00:00)end(optional): ISO format datetime (e.g., 2025-04-20T13:00:00)timeZone(optional): Time zone for the event (default: "GMT Standard Time")
- Returns: Event details including URL and ID
-
create-event-with-attendees- Create a calendar event with attendees using Microsoft Graph API
- Inputs:
subject(string): Subject of the calendar eventbody(string): Content/body of the calendar eventstart(optional): ISO format datetime (e.g., 2025-04-20T12:00:00)end(optional): ISO format datetime (e.g., 2025-04-20T13:00:00)timeZone(optional): Time zone for the event (default: "GMT Standard Time")location(optional): Location of the eventattendees: Array of { email, name (optional), type (optional) }
- Returns: Event details including URL, ID, and attendees list
-
get-event- Get details of a calendar event by its ID
- Input:
eventId(string): ID of the event to retrieve
- Returns: Detailed event information including subject, time, attendees, and URL
-
list-events- List calendar events with optional filtering
- Inputs:
subject(optional): Filter events by subject containing this textstartDate(optional): Start date in ISO format (e.g., 2025-04-20T00:00:00) to filter events fromendDate(optional): End date in ISO format (e.g., 2025-04-20T23:59:59) to filter events untilmaxResults(optional): Maximum number of events to return
- Returns: List of calendar events with basic information and IDs
-
delete-event- Delete a calendar event
- Input:
eventId(string): ID of the event to delete
- Returns: Confirmation of event deletion
-
update-event- Update an existing calendar event
- Inputs:
eventId(string): ID of the event to updatesubject(optional): New subject for the calendar eventbody(optional): New content/body for the calendar eventstart(optional): New start time in ISO format (e.g., 2025-04-20T12:00:00)end(optional): New end time in ISO format (e.g., 2025-04-20T13:00:00)timeZone(optional): New time zone for the eventlocation(optional): New location for the eventattendees(optional): Array of { email, name (optional), type (optional) }
- Returns: Updated event details showing changes
-
update-event-attendees- Add or remove attendees from a calendar event
- Inputs:
eventId(string): ID of the event to updateaddAttendees(optional): Array of attendees to add: { email, name (optional), type (optional) }removeAttendees(optional): Array of email addresses to remove from the event
- Returns: Updated event attendee information
设置
Microsoft Graph API 设置
- 在 Microsoft Azure 门户 注册一个应用程序。
- 创建客户端密钥。
- 授予必要的权限(Microsoft Graph API > 应用程序权限 > Calendars.ReadWrite, People.Read.All, User.ReadBasic.All)。
- 记录您的客户端 ID、客户端密钥和租户 ID。
使用 VS Code
本地 Node.js
您可以直接从本地构建中使用 Node.js 运行 MCP 服务器:
- 克隆仓库并构建项目:
git clone https://github.com/anoopt/outlook-meetings-scheduler-mcp-server.git
cd outlook-meetings-scheduler-mcp-server
npm install
npm run build
- 对于手动安装,将以下 JSON 块添加到 VS Code 中的用户设置(JSON)文件中。您可以通过按下
Ctrl + Shift + P并键入 Preferences:Open User Settings (JSON)来完成此操作。
或者,您可以将其添加到工作区中的 .vscode/mcp.json 文件中。这将允许您与他人共享配置:
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "node",
"args": [
"/path/to/outlook-meetings-scheduler-mcp-server/build/index.js"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}
将 /path/to/outlook-meetings-scheduler-mcp-server 替换为您克隆的存储库的绝对路径。
Docker
使用 Docker 本地运行 MCP 服务器。使用以下命令构建 Docker 镜像:
docker build -t mcp/outlook-meetings-scheduler .
对于手动安装,将以下 JSON 块添加到 VS Code 中的用户设置(JSON)文件中。您可以通过按下 Ctrl + Shift + P 并键入 Preferences: Open User Settings (JSON) 来完成此操作。
或者,您可以将其添加到工作区中的 .vscode/mcp.json 文件中。这将允许您与他人共享配置。
{
"inputs": [
{
"type": "promptString",
"id": "client_secret",
"description": "Enter the client secret",
"password": true
}
],
"servers": {
"outlook-meetings-scheduler": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CLIENT_ID",
"-e",
"CLIENT_SECRET",
"-e",
"TENANT_ID",
"-e",
"USER_EMAIL",
"mcp/outlook-meetings-scheduler"
],
"env": {
"USER_EMAIL": "<YOUR_EMAIL>",
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "${input:client_secret}",
"TENANT_ID": "<YOUR_TENANT_ID>"
}
}
}
}
NPX
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "npx",
"args": [
"-y",
"outlook-meetings-scheduler"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}
使用 Claude Desktop
Docker
- 使用 Docker 本地运行 MCP 服务器。使用以下命令构建 Docker 镜像:
docker build -t mcp/outlook-meetings-scheduler .
- 将以下内容添加到您的
claude_desktop_config.json中:
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CLIENT_ID",
"-e",
"CLIENT_SECRET",
"-e",
"TENANT_ID",
"-e",
"USER_EMAIL",
"mcp/outlook-meetings-scheduler"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}
NPX
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "npx",
"args": [
"-y",
"outlook-meetings-scheduler"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
}
}
}
示例场景
与 GitHub MCP 服务器集成
您可以将此 MCP 服务器与其他 MCP 服务器(如 GitHub MCP 服务器)结合使用,以实现强大的工作流程。
创建问题并安排后续审查
Create an issue in the organization/repo repository titled "Fix pagination bug in user dashboard" with the description "Users report seeing duplicate entries when navigating between pages." Then schedule a calendar reminder for me to review this issue tomorrow at 3 PM.
这将:
- 使用 GitHub MCP 服务器创建问题。
- 使用 Outlook 会议调度 MCP 服务器为审查创建日历事件。
根据拉取请求安排代码审查会议
Find the open PR about the authentication feature in the organization/app-backend repository and schedule a code review meeting with the contributors for tomorrow morning.
这将:
- 使用 GitHub MCP 服务器查找拉取请求并确定贡献者。
- 使用 Outlook 会议调度 MCP 服务器与这些团队成员安排会议。
多 MCP 设置的配置
要同时使用 GitHub 和 Outlook MCP 服务器:
{
"mcpServers": {
"outlook-meetings-scheduler": {
"command": "npx",
"args": [
"-y",
"outlook-meetings-scheduler"
],
"env": {
"CLIENT_ID": "<YOUR_CLIENT_ID>",
"CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TENANT_ID": "<YOUR_TENANT_ID>",
"USER_EMAIL": "<YOUR_EMAIL>"
}
},
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/github-mcp"
],
"env": {
"GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>"
}
}
}
}
直接使用
查找同事的电子邮件
I need to schedule a meeting with John Smith. Can you find his email address?
创建简单的日历事件
Schedule a meeting titled "Weekly Team Sync" for next Monday at 10 AM with the following agenda:
- Project updates
- Resource allocation
- Questions and concerns
安排与单个参与者的会议
Schedule a 1:1 meeting with Sarah for tomorrow at 3 PM.
这将找到 Sarah 的电子邮件地址并创建一个日历事件。
为了找到 Sarah 的电子邮件地址,MCP 服务器将使用 find-person 工具——该工具使用 Microsoft Graph API 为 USER_EMAIL 查找相关联系人或在组织中搜索姓名。
安排与多位参会者的会议
Create a meeting called "Project Kickoff" for tomorrow at 2 PM.
Add sarah.jones@example.com and mike.thompson@example.com as required attendees.
The agenda is:
1. Project overview
2. Timeline discussion
3. Role assignments
4. Next steps
构建
# Install dependencies
npm install
# Build the project
npm run build
# Docker build
docker build -t mcp/outlook-meetings-scheduler .
许可证
此MCP服务器根据ISC许可协议授权。更多详情,请参阅项目仓库中的LICENSE文件。
免责声明
此MCP服务器与Microsoft或Microsoft Graph API无关。使用风险自负。请确保在使用此工具时遵守您组织的政策和指南。