mcpField
O
Outlook Meetings Scheduler MCP Server

Outlook Meetings Scheduler MCP Server

本地服务
github.com/anoopt通信协作1656 周前更新

关于 Outlook Meetings Scheduler MCP Server

Outlook Meetings Scheduler MCP Server 通过 Microsoft Graph 管理 Outlook 日历事件,适用于安排会议和参会者,并提供多种身份验证模式及人员查找功能。

主要功能

  1. 01按姓名查找人员
  2. 02创建含参会者的事件
  3. 03列出并筛选事件
  4. 04更新事件和参会者
  5. 05删除事件
  6. 06三种身份验证模式

适用场景

  1. 01安排含指定参会者的会议
  2. 02邀请前查找人员邮箱
  3. 03查看或修改日历事件
  4. 04创建 GitHub 议题后安排会议

MCP 相关

该 MCP 服务通过 Microsoft Graph 提供查找人员以及创建、列出、获取、更新和删除 Outlook 事件的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.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": "<CLIENT_ID>",
"CLIENT_SECRET": "<CLIENT_SECRET>",
"TENANT_ID": "<TENANT_ID>",
"USER_EMAIL": "<USER_EMAIL>"
}
}
}
}
启动命令docker run -i --rm -e CLIENT_ID -e CLIENT_SECRET -e TENANT_ID -e USER_EMAIL mcp/outlook-meetings-scheduler
需要配置的环境变量
CLIENT_ID
CLIENT_SECRET密钥
TENANT_ID
USER_EMAIL

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocimcp/outlook-meetings-scheduler

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai Security Assessment Badge

Outlook 会议日程安排 MCP 服务

使用 Microsoft Graph API 在 Microsoft Outlook 中安排会议的 MCP 服务。

此 MCP 服务可让你创建日历事件、创建包含与会者的事件(包括查找其电子邮件地址)。 它可与其他 MCP 服务(例如 GitHub MCP 服务)无缝集成,提升你的工作流效率。

Outlook Meetings Scheduler Server MCP server

示例查询

  • 安排明天下午 3 点与 Sarah 开会。
  • 创建一个名为“Project Kickoff”的会议,时间为明天下午 2 点。将 Megan 和 John 添加为必需与会者。
与 GitHub MCP 服务搭配使用
  • 在 organization/repo 仓库中创建一个标题为“Fix pagination bug in user dashboard”、描述为“Users report seeing duplicate entries when navigating between pages.” 的问题。然后为我安排一个日历提醒,提醒我明天下午 3 点查看此问题。

演示

Demo

工具

  1. find-person

    • 根据姓名查找某人的电子邮箱地址
    • 输入:name(字符串)
    • 返回:匹配人员列表,包含姓名和电子邮箱地址
  2. create-event

    • 使用 Microsoft Graph API 创建日历事件
    • 输入:
      • subject(字符串):日历事件的主题
      • body(字符串):日历事件的内容/正文
      • start(可选):ISO 格式的日期时间(例如,2025-04-20T12:00:00)
      • end(可选):ISO 格式的日期时间(例如,2025-04-20T13:00:00)
      • timeZone(可选):事件的时区(默认值:"GMT Standard Time")
    • 返回:事件详情,包括 URL 和 ID
  3. create-event-with-attendees

    • 使用 Microsoft Graph API 创建包含与会者的日历事件
    • 输入:
      • subject(字符串):日历事件的主题
      • body(字符串):日历事件的内容/正文
      • start(可选):ISO 格式的日期时间(例如,2025-04-20T12:00:00)
      • end(可选):ISO 格式的日期时间(例如,2025-04-20T13:00:00)
      • timeZone(可选):事件的时区(默认值:"GMT Standard Time")
      • location(可选):事件地点
      • attendees:{ email、name(可选)、type(可选)} 数组
    • 返回:事件详情,包括 URL、ID 和与会者列表
  4. get-event

    • 根据事件 ID 获取日历事件详情
    • 输入:
      • eventId(字符串):要检索的事件 ID
    • 返回:详细的事件信息,包括主题、时间、与会者和 URL
  5. list-events

    • 列出日历事件,可选择筛选条件
    • 输入:
      • subject(可选):筛选主题包含此文本的事件
      • startDate(可选):ISO 格式的开始日期(例如,2025-04-20T00:00:00),用于筛选此日期之后的事件
      • endDate(可选):ISO 格式的结束日期(例如,2025-04-20T23:59:59),用于筛选此日期之前的事件
      • maxResults(可选):要返回的事件数量上限
    • 返回:日历事件列表,包含基本信息和 ID
  6. delete-event

    • 删除日历事件
    • 输入:
      • eventId(字符串):要删除的事件 ID
    • 返回:事件删除确认信息
  7. update-event

    • 更新现有日历事件
    • 输入:
      • eventId(字符串):要更新的事件 ID
      • subject(可选):日历事件的新主题
      • body(可选):日历事件的新内容/正文
      • start(可选):ISO 格式的新开始时间(例如,2025-04-20T12:00:00)
      • end(可选):ISO 格式的新结束时间(例如,2025-04-20T13:00:00)
      • timeZone(可选):事件的新时区
      • location(可选):事件的新地点
      • attendees(可选):{ email、name(可选)、type(可选)} 数组
    • 返回:显示变更内容的更新后事件详情
  8. update-event-attendees

    • 添加或移除日历事件的与会者
    • 输入:
      • eventId(字符串):要更新的事件 ID
      • addAttendees(可选):要添加的与会者数组:{ email、name(可选)、type(可选)}
      • removeAttendees(可选):要从事件中移除的电子邮箱地址数组
    • 返回:更新后的事件与会者信息

设置

身份验证模式

此 MCP 服务支持三种身份验证模式:

1. 交互式(委派)

感谢 Lokka

适用于:用户模拟场景、访问用户专属数据

  • 提示用户进行交互式登录
  • 使用委派权限
  • 以已登录用户的身份进行身份验证
2. 客户端凭据(仅应用)

适用于:服务间场景、自动化流程

  • 使用 Azure AD 应用程序凭据
  • 需要应用程序权限
  • 无需用户交互即可运行
3. 客户端提供的令牌

适用于:自定义令牌管理、预先获取的令牌

  • 使用客户端提供的令牌
  • 需要在外部管理令牌刷新
Microsoft Graph API 设置
交互式(委派)模式
  1. 在 Microsoft Azure Portal 中注册应用(或使用现有应用)
  2. 添加重定向 URI:http://localhost(移动和桌面应用程序平台)
  3. 启用公共客户端流:前往 Authentication > Advanced settings > “Allow public client flows” = YES
  4. 授予所需的委派权限:Microsoft Graph API > Delegated permissions > Calendars.ReadWrite、People.Read、User.Read
  5. 记下 Client ID 和 Tenant ID(使用自定义应用进行交互式模式时,无需 Client Secret)

**注意:**服务默认使用内置的多租户应用,因此可选配置自定义应用。需要身份验证时,设备代码和登录 URL 会直接显示在 MCP 客户端聊天界面中。

客户端凭据(仅应用)模式
  1. 在 Microsoft Azure Portal 中注册应用
  2. 创建客户端密钥
  3. 授予所需的应用程序权限:Microsoft Graph API > Application permissions > Calendars.ReadWrite、People.Read.All、User.ReadBasic.All
  4. 为组织授予管理员同意
  5. 记下 Client ID、Client Secret 和 Tenant ID
在 VS Code 中使用
身份验证模式配置

MCP 服务支持通过 AUTH_MODE 环境变量设置不同的身份验证模式:

  • interactive(默认)- 通过浏览器或设备代码流进行用户身份验证
  • client_credentials - 使用客户端密钥进行仅应用身份验证
  • client_provided_token - 使用预先获取的令牌

向后兼容性:如果未指定 AUTH_MODE,服务会自动检测模式:

  • 存在 CLIENT_SECRET → client_credentials 模式
  • 存在 ACCESS_TOKEN → client_provided_token 模式
  • 两者均不存在 → interactive 模式(默认)
本地 Node.js

你可以直接使用 Node.js 从本地构建版本运行 MCP 服务:

  1. 克隆代码仓库并构建项目:
git clone https://github.com/anoopt/outlook-meetings-scheduler-mcp-server.git
cd outlook-meetings-scheduler-mcp-server
npm install
npm run build
  1. 若要手动安装,请将以下 JSON 代码块添加到 VS Code 的 User Settings (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"
      ]
    }
  }
}

使用自定义应用的交互式模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "node",
      "args": [
        "/path/to/outlook-meetings-scheduler-mcp-server/build/index.js"
      ],
      "env": {
        "AUTH_MODE": "interactive",
        "CLIENT_ID": "<YOUR_CLIENT_ID>",
        "TENANT_ID": "<YOUR_TENANT_ID>"
      }
    }
  }
}

客户端凭据模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "node",
      "args": [
        "/path/to/outlook-meetings-scheduler-mcp-server/build/index.js"
      ],
      "env": {
        "AUTH_MODE": "client_credentials",
        "CLIENT_ID": "<YOUR_CLIENT_ID>",
        "CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
        "TENANT_ID": "<YOUR_TENANT_ID>",
        "USER_EMAIL": "<YOUR_EMAIL>"
      }
    }
  }
}

客户端提供令牌模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "node",
      "args": [
        "/path/to/outlook-meetings-scheduler-mcp-server/build/index.js"
      ],
      "env": {
        "AUTH_MODE": "client_provided_token",
        "ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>",
        "TOKEN_EXPIRES_ON": "2025-10-03T12:00:00Z",
        "USER_EMAIL": "<YOUR_EMAIL>"
      }
    }
  }
}

注意:

  • 使用内置的多租户 Azure AD 应用(适用于任何组织)
  • USER_EMAIL 会根据已登录用户自动确定
  • 用户会看到一次性同意提示(无需管理员批准)
  • 无需任何配置,开箱即用

使用自定义应用的交互式模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "node",
      "args": [
        "/path/to/outlook-meetings-scheduler-mcp-server/build/index.js"
      ],
      "env": {
        "AUTH_MODE": "interactive",
        "CLIENT_ID": "<YOUR_CLIENT_ID>",
        "TENANT_ID": "<YOUR_TENANT_ID>"
      }
    }
  }
}

如果需要特定品牌标识或租户限制,请使用自定义应用。

将 /path/to/outlook-meetings-scheduler-mcp-server 替换为克隆代码仓库的绝对路径。

Docker

在本地使用 Docker 运行 MCP 服务。使用以下命令构建 Docker 镜像:

docker build -t mcp/outlook-meetings-scheduler .

若要手动安装,请将以下 JSON 代码块添加到 VS Code 的 User Settings (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"
      ]
    }
  }
}

使用自定义应用的交互式模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "npx",
      "args": [
        "-y",
        "outlook-meetings-scheduler"
      ],
      "env": {
        "AUTH_MODE": "interactive",
        "CLIENT_ID": "<YOUR_CLIENT_ID>",
        "TENANT_ID": "<YOUR_TENANT_ID>"
      }
    }
  }
}

客户端凭据模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "npx",
      "args": [
        "-y",
        "outlook-meetings-scheduler"
      ],
      "env": {
        "AUTH_MODE": "client_credentials",
        "CLIENT_ID": "<YOUR_CLIENT_ID>",
        "CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
        "TENANT_ID": "<YOUR_TENANT_ID>",
        "USER_EMAIL": "<YOUR_EMAIL>"
      }
    }
  }
}

客户端提供令牌模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "npx",
      "args": [
        "-y",
        "outlook-meetings-scheduler"
      ],
      "env": {
        "AUTH_MODE": "client_provided_token",
        "ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>",
        "TOKEN_EXPIRES_ON": "2025-10-03T12:00:00Z",
        "USER_EMAIL": "<YOUR_EMAIL>"
      }
    }
  }
}
在 Claude Desktop 中使用
Docker
  1. 使用 Docker 在本地运行 MCP 服务。使用以下命令构建 Docker 镜像:
docker build -t mcp/outlook-meetings-scheduler .
  1. 将以下内容添加到 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"
      ]
    }
  }
}

使用自定义应用的交互模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "npx",
      "args": [
        "-y",
        "outlook-meetings-scheduler"
      ],
      "env": {
        "AUTH_MODE": "interactive",
        "CLIENT_ID": "<YOUR_CLIENT_ID>",
        "TENANT_ID": "<YOUR_TENANT_ID>"
      }
    }
  }
}

客户端凭据模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "npx",
      "args": [
        "-y",
        "outlook-meetings-scheduler"
      ],
      "env": {
        "AUTH_MODE": "client_credentials",
        "CLIENT_ID": "<YOUR_CLIENT_ID>",
        "CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
        "TENANT_ID": "<YOUR_TENANT_ID>",
        "USER_EMAIL": "<YOUR_EMAIL>"
      }
    }
  }
}

客户端提供令牌模式:

{
  "mcpServers": {
    "outlook-meetings-scheduler": {
      "command": "npx",
      "args": [
        "-y",
        "outlook-meetings-scheduler"
      ],
      "env": {
        "AUTH_MODE": "client_provided_token",
        "ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>",
        "TOKEN_EXPIRES_ON": "2025-10-03T12:00:00Z",
        "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.

这将:

  1. 使用 GitHub MCP 服务创建问题
  2. 使用 Outlook Meetings Scheduler 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.

这将:

  1. 使用 GitHub MCP 服务查找拉取请求并确定贡献者
  2. 使用 Outlook Meetings Scheduler 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 [email protected] and [email protected] as required attendees.
The agenda is:
1. Project overview
2. Timeline discussion
3. Role assignments
4. Next steps

环境变量

交互模式(默认)
变量说明必填默认值
AUTH_MODE身份验证模式否interactive
CLIENT_IDAzure AD 应用程序(客户端)ID否内置多租户应用
TENANT_IDAzure AD 租户 ID否common(多租户)
USER_EMAIL用户的电子邮件地址否根据已登录用户自动检测
REDIRECT_URI自定义重定向 URI否http://localhost
客户端凭据模式
变量说明必填
AUTH_MODE身份验证模式是
CLIENT_IDAzure AD 应用程序(客户端)ID是
CLIENT_SECRETAzure AD 应用程序客户端密钥是
TENANT_IDAzure AD 租户 ID是
USER_EMAIL要访问其日历的用户的电子邮件地址是
客户端提供令牌模式
变量说明必填默认值
AUTH_MODE身份验证模式是-
ACCESS_TOKEN预先获取的访问令牌是-
USER_EMAIL用户的电子邮件地址是-
TOKEN_EXPIRES_ON令牌过期日期(ISO 格式)否从开始时间起 1 小时
如何获取访问令牌

你可以通过多种方式获取访问令牌:

1. Azure CLI(适用于 Microsoft Graph——推荐用于测试):

# Login to Azure
az login

# Get token specifically for Microsoft Graph with correct scopes
az account get-access-token --resource=https://graph.microsoft.com --query accessToken --output tsv

注意: Azure CLI 令牌拥有广泛权限,但可能不包含特定的日历范围(Calendars.ReadWrite)。用于生产环境时,请考虑使用以下第 3 或第 4 种方法,并明确配置范围。

2. PowerShell REST API(推荐用于 Windows):

# For client credentials flow (app-only) - most reliable method
$clientId = "your-client-id"
$clientSecret = "your-client-secret" 
$tenantId = "your-tenant-id"

$body = @{
    grant_type = "client_credentials"
    client_id = $clientId
    client_secret = $clientSecret
    scope = "https://graph.microsoft.com/.default"
}

$response = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -Method Post -Body $body
$token = $response.access_token
Write-Host "Access Token: $token"

3. 从你自己的应用程序获取(最可靠):

// Using @azure/identity with specific scopes
import { ClientSecretCredential } from '@azure/identity';

const credential = new ClientSecretCredential(
  'your-tenant-id',
  'your-client-id', 
  'your-client-secret'
);

// Request token with specific Microsoft Graph scopes
const token = await credential.getToken([
  'https://graph.microsoft.com/Calendars.ReadWrite',
  'https://graph.microsoft.com/People.Read', 
  'https://graph.microsoft.com/User.Read'
]);

// Use token.token as your ACCESS_TOKEN
console.log(token.token);

4. 使用 OAuth2 设备代码流(交互式):

# For personal Microsoft accounts or when you need user consent
curl -X POST \
  https://login.microsoftonline.com/common/oauth2/v2.0/devicecode \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'client_id={your-client-id}&scope=https://graph.microsoft.com/Calendars.ReadWrite https://graph.microsoft.com/People.Read https://graph.microsoft.com/User.Read'

# Follow the device code instructions, then exchange for token
curl -X POST \
  https://login.microsoftonline.com/common/oauth2/v2.0/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=urn:ietf:params:oauth:grant-type:device_code&client_id={your-client-id}&device_code={device-code-from-step-1}'

5. 客户端凭据流(仅应用程序):

curl -X POST \
  https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=client_credentials&client_id={client-id}&client_secret={client-secret}&scope=https://graph.microsoft.com/.default'

重要提示:确保你的 Azure AD 应用注册具有所需的委托或应用程序权限:

  • 委托: Calendars.ReadWrite、People.Read、User.Read
  • 应用程序: Calendars.ReadWrite、People.Read.All、User.ReadBasic.All(需要管理员同意)
身份验证模式详情
client_credentials
  • 最适用于: 自动化场景、服务器到服务器的通信
  • 需要: CLIENT_ID、CLIENT_SECRET、TENANT_ID、USER_EMAIL
  • 权限: 应用程序权限(例如,Calendars.ReadWrite)
  • 注意: 需要管理员同意应用程序
interactive(默认)
  • 最适用于: 用户模拟场景、委派访问(最常见的用例)
  • 设置: 无需配置——开箱即用
  • 需要: 无(使用内置的多租户应用)
  • 可选: 自定义应用可使用 CLIENT_ID 和 TENANT_ID
  • 权限: 委派权限(例如,Calendars.ReadWrite)
  • 身份验证流程:
    • 首先尝试基于浏览器的交互式登录
    • 如果浏览器身份验证失败,则回退到设备代码流程
    • 设备代码和 URL 会显示在 MCP 客户端聊天中,方便访问
    • 系统会提示用户在浏览器中进行身份验证
  • 注意: 使用内置的多租户应用(适用于任何组织)
client_provided_token
  • 最适用于: 自定义令牌管理、与现有身份验证系统集成
  • 需要: ACCESS_TOKEN、USER_EMAIL
  • 可选: TOKEN_EXPIRES_ON(如果未提供,则假设从开始时间起有效期为 1 小时)
  • 令牌来源: Microsoft Graph PowerShell、自定义应用、OAuth2 流程、Azure CLI(有限制)
  • 用例: 使用特定范围进行测试、与现有身份验证流程集成、CI/CD 管道、开发/调试
  • 注意: 必须在外部处理令牌刷新

构建

# 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 没有关联。使用风险自负。使用此工具时,请确保遵守组织的政策和指南。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。