mcpField
O
Outlook Calendar MCP Server

Outlook Calendar MCP Server

ローカル
github.com/kgatilin生産性281 週間前に更新

Outlook Calendar MCP Server について

Outlook と Microsoft 365 の予定を読み取り専用で取得する MCP サーバーです。AI アシスタント向けに、必要時の Microsoft 認証とテスト用 CLI を備えています。

主な機能

  1. 01日付範囲を指定した予定の取得
  2. 02必要時の Microsoft 認証
  3. 03予定の詳細と参加者の返却
  4. 04テスト用の対話型 CLI

活用シーン

  1. 01指定期間の予定を確認
  2. 02予定の状態、場所、主催者を確認

MCP 対応

MCP クライアントに `get_auth_url` と `get_calendar_events` ツールを提供します。カレンダーへのアクセスは読み取り専用です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Outlook Calendar MCP サーバー

これは、Outlook/Microsoft 365 カレンダーへの読み取り専用アクセスを提供する MCP(Model Context Protocol)サーバーです。

前提条件

  • Go 1.21 以降
  • カレンダーにアクセスできる Microsoft 365 アカウント
  • 適切な権限を設定した Azure AD の登録済みアプリケーション

プロジェクト構成

  • outlook/outlook_api.go - Outlook カレンダーと連携する内部 API
  • cmd/mcp/main.go - AI アシスタントで使用する MCP サーバーの実装
  • cmd/cli/main.go - テスト用のコマンドラインインターフェイス
  • config.example.yaml - 設定ファイルのサンプル

インストール

git clone https://github.com/your-username/outlookmcp.git
cd outlookmcp
go mod download

アプリケーションのビルド

MCP サーバーのビルド
# Build for the current platform
go build -o outlook-mcp ./cmd/mcp

# Cross-compile for Windows
GOOS=windows GOARCH=amd64 go build -o outlook-mcp.exe ./cmd/mcp

# Cross-compile for macOS
GOOS=darwin GOARCH=amd64 go build -o outlook-mcp-mac ./cmd/mcp

# Cross-compile for Linux
GOOS=linux GOARCH=amd64 go build -o outlook-mcp-linux ./cmd/mcp
CLI クライアントのビルド
# Build for the current platform
go build -o outlook-cli ./cmd/cli

# Cross-compile for Windows
GOOS=windows GOARCH=amd64 go build -o outlook-cli.exe ./cmd/cli

# Cross-compile for macOS
GOOS=darwin GOARCH=amd64 go build -o outlook-cli-mac ./cmd/cli

# Cross-compile for Linux
GOOS=linux GOARCH=amd64 go build -o outlook-cli-linux ./cmd/cli

設定

アプリケーションは次の 2 つの方法で設定できます。

  1. YAML 設定ファイルを使用する(config.example.yaml を参照)
  2. 環境変数を使用する
設定ファイル

サンプルに基づいて config.yaml ファイルを作成します。

outlook:
  me: "John Doe"
  max_attendees: 10
  max_event_count: 50
  skip_all_day_events: true
環境変数

Azure AD アプリケーションの認証情報を含む .env ファイルを作成します。

OUTLOOK_TENANT_ID=your-tenant-id
OUTLOOK_CLIENT_ID=your-client-id
OUTLOOK_CLIENT_SECRET=your-client-secret

アプリケーションの実行

MCP サーバーと CLI アプリケーションは、どちらも省略可能なコマンドライン引数を受け付けます。

  • 第 1 引数:設定ファイルのパス(省略可能)
  • 第 2 引数:.env ファイルのパス(省略可能)
ソースから実行
MCP サーバーの実行
# With default configuration
go run cmd/mcp/main.go

# With custom config file
go run cmd/mcp/main.go config.yaml

# With custom config and env file
go run cmd/mcp/main.go config.yaml .env.production
CLI クライアントの実行
# With default configuration
go run cmd/cli/main.go

# With custom config file
go run cmd/cli/main.go config.yaml

# With custom config and env file
go run cmd/cli/main.go config.yaml .env.production
ビルド済みバイナリの実行
MCP サーバーのバイナリを実行
# With default configuration
./outlook-mcp

# With custom config file
./outlook-mcp config.yaml

# With custom config and env file
./outlook-mcp config.yaml .env.production
CLI クライアントのバイナリを実行
# With default configuration
./outlook-cli

# With custom config file
./outlook-cli config.yaml

# With custom config and env file
./outlook-cli config.yaml .env.production

認証

このサーバーでは、必要に応じて認証を行います。

  1. カレンダーツールが呼び出されると、認証済みかどうかを確認します
  2. 未認証の場合、認証 URL を含むエラーを返します
  3. 認証フローを開始するには、まず get_auth_url ツールを呼び出す必要があります
  4. 認証 URL をブラウザーで開きます
  5. 認証に成功すると、コールバックが取得され、トークンが保存されます

利用可能なツール

get_auth_url

Microsoft で認証フローを開始します。

パラメーター: なし

戻り値: ブラウザーで開く認証 URL

get_calendar_events

指定した期間の Outlook カレンダーの予定を取得します。

パラメーター:

  • start_date(省略可能):YYYY-MM-DD 形式の開始日。指定しない場合は今日になります。
  • end_date(省略可能):YYYY-MM-DD 形式の終了日。指定しない場合は今日になります。

戻り値: 次のプロパティを含むカレンダーイベントの JSON 配列:

  • subject:イベントのタイトル
  • startTime:イベントの開始時刻
  • endTime:イベントの終了時刻
  • isAllDay:終日のイベントかどうか
  • isAccepted:イベントが承諾済みかどうか
  • isCancelled:イベントがキャンセル済みかどうか
  • location:イベントの場所(取得可能な場合)
  • organizer:イベントの開催者名(取得可能な場合)
  • description:イベント本文の簡単な説明/プレビュー(取得可能な場合)
  • attendees:出席者の一覧

使用例

まず認証します。

{
  "tool": "get_auth_url",
  "params": {}
}

次にカレンダーの予定を取得します。

{
  "tool": "get_calendar_events",
  "params": {
    "start_date": "2023-11-01",
    "end_date": "2023-11-07"
  }
}

CLI の使用方法

CLI アプリケーションでは、シンプルな対話型インターフェイスを利用できます。

  1. get_auth_url を選択して認証します
  2. 表示された URL をブラウザーで開き、アプリケーションを承認します
  3. 承認後、get_calendar_events を使用してカレンダーデータを取得します

セキュリティに関する考慮事項

  • クライアントシークレットは安全に保管してください(環境変数の使用を推奨)
  • サーバーが提供するのは、カレンダーデータへの読み取り専用アクセスのみです
  • 書き込み操作は実装されていません
  • トークンは、サーバーの実行中のみメモリに保存されます

Azure AD アプリケーションの設定

  1. Azure ポータルで新しいアプリケーションを登録します
  2. 次のアクセス許可を追加します。
    • Calendars.Read
    • Calendars.Read.Shared
    • Calendars.ReadBasic
  3. http://localhost:1111/callback へのリダイレクト URI を設定します
  4. クライアントシークレットを作成し、設定を更新します

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。