fuumiiya/outlook-mcp-server
3.2
If you are the rightful owner of outlook-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Outlook MCP Server is hosted on Azure Functions and utilizes Microsoft Graph API to access Outlook calendars, enabling event retrieval and meeting scheduling.
Tools
2
Resources
0
Prompts
0
Outlook MCP Server
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 Functions: サーバーレス実行環境
- Microsoft Graph API: Outlook カレンダーアクセス
- Python 3.x: 実装言語
- Azure AD: 認証・認可
ライセンス
MIT License
貢献
プルリクエストやイシューの報告を歓迎します!
注意事項
- このサーバーはMCP(Model Context Protocol)に対応しています
- Azure AD認証が必要です
- Microsoft Graph APIの利用制限にご注意ください
- 本番環境では適切なセキュリティ設定を行ってください
- 現時点で終日予定取得できないので、今後カスタマイズが必要
- リファクタリングの余地が多くあります(笑)