mcpField
O
Owa Exchange Mcp

Owa Exchange Mcp

ローカル
github.com/nhypeコミュニケーション1136 週間前に更新

Owa Exchange Mcp について

OWA Exchange MCPは、Microsoft Exchange / OWA環境にAIエージェントを接続するMCPサーバーです。メール、カレンダー、ディレクトリ検索、空き時間、会議分析のツールを備え、認証情報とセッションCookieを暗号化します。

主な機能

  1. 01メールの閲覧・送信・整理
  2. 02カレンダーと会議の管理
  3. 03Active Directoryの人物検索
  4. 04個人または複数人の空き時間検索
  5. 05会議統計と連絡先分析
  6. 06認証情報とセッションCookieの暗号化

活用シーン

  1. 01Exchangeメールの検索・返信・整理
  2. 02会議を設定し参加者の空き時間を確認
  3. 03ディレクトリ内の人物を検索
  4. 04チームの会議頻度や関係を分析

MCP 対応

メール、カレンダー、ディレクトリ、フォルダー、空き時間、会議分析を扱う30個のExchange / OWAツールをMCPクライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"owa-exchange": {
"command": "uvx",
"args": [
"exchange-mcp-server"
],
"env": {
"EXCHANGE_OWA_URL": "<EXCHANGE_OWA_URL>",
"EXCHANGE_COOKIE_FILE": "<EXCHANGE_COOKIE_FILE>"
}
}
}
}
起動コマンドuvx exchange-mcp-server
設定が必要な環境変数
EXCHANGE_OWA_URLBase URL of your OWA instance (e.g. https://owa.example.com)
EXCHANGE_COOKIE_FILEPath to session cookies file (default: session-cookies.txt)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiexchange-mcp-server1.0.1

ツール

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

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

詳細

OWA Exchange MCP サーバー

あらゆる Microsoft Exchange/OWA(Outlook Web Access)環境に対応した MCP(Model Context Protocol)サーバーです。LLM エージェントが、30 個のツールを通じてメール、カレンダー、ディレクトリ検索、フォルダー、空き状況、会議分析を利用できるようにします。

OWA を公開しているオンプレミスまたはホスト型の Exchange サーバーであれば、どのサーバーでも動作します。

クイックスタート

# Copy and edit the MCP config with your OWA URL
cp .mcp.json.example .mcp.json

# One-time: set up encrypted credentials
python3 login.py --setup

# Login (opens headless browser, 2FA approval required)
python3 login.py

# Install the MCP server
pip install -e .

インストール

MCP クライアントの設定に追加します。https://owa.example.com を OWA の URL に置き換えてください。

Claude Desktop(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "exchange": {
      "command": "uvx",
      "args": ["exchange-mcp-server"],
      "env": {
        "EXCHANGE_OWA_URL": "https://owa.example.com"
      }
    }
  }
}

Cursor(.cursor/mcp.json):

{
  "mcpServers": {
    "exchange": {
      "command": "uvx",
      "args": ["exchange-mcp-server"],
      "env": {
        "EXCHANGE_OWA_URL": "https://owa.example.com"
      }
    }
  }
}

Claude Code(.mcp.json):

{
  "mcpServers": {
    "exchange": {
      "command": "uvx",
      "args": ["exchange-mcp-server"],
      "env": {
        "EXCHANGE_OWA_URL": "https://owa.example.com"
      }
    }
  }
}

設定

変数必須説明
EXCHANGE_OWA_URLはいOWA インスタンスのベース URL
EXCHANGE_COOKIE_FILEいいえセッション Cookie ファイルのパス(デフォルト:session-cookies.txt)

ログイン

オプション A:MCP ツール経由(推奨)

login ツールを使うと、MCP セッション内で認証情報の設定と認証を行えるため、別途ターミナルを使う必要はありません。

初回(設定とログイン):

login(master_password="...", username="[email protected]", password="...")

2 回目以降のログイン(保存済みの認証情報を復号):

login(master_password="...")
オプション B:CLI 経由
python3 login.py --setup   # First time: save encrypted credentials
python3 login.py            # Login with 2FA

どちらの方法でも、次の処理が行われます。

  1. OWA URL をヘッドレスブラウザーで開きます
  2. 認証情報を送信します
  3. 2FA の承認を待機します(最大 90 秒)
  4. 暗号化されたセッション Cookie を session-cookies.txt に保存します

認証情報とセッション Cookie は、AES-256(PBKDF2 によるキー導出、480k 回の反復処理)で保存時に暗号化されます。

ツール(30)

メール(10)
ツール説明
get_emailsフィルターを指定してフォルダー内のメールを一覧表示します
get_emailID を指定してメールの全文を取得します
send_email新しいメールを送信します
reply_emailメールに返信します
forward_emailメールを転送します
delete_emailメールを削除します
move_emailメールを別のフォルダーに移動します
mark_email_readメールを既読または未読にします
download_attachmentsメールの添付ファイルをダウンロードします
get_email_linksメール本文からハイパーリンクを抽出します
カレンダー(7)
ツール説明
get_calendar_events指定した期間内の予定を取得します(繰り返し予定の展開に対応)
create_meeting参加者を指定して会議を作成します
update_meeting既存の会議を更新します
cancel_meeting会議をキャンセルし、参加者に通知します
respond_to_meeting承諾、辞退、または仮承諾します
download_event_attachmentsカレンダーの予定から添付ファイルをダウンロードします
get_event_links予定の説明からハイパーリンクを抽出します
ディレクトリ(1)
ツール説明
find_personActive Directory でユーザーを検索します
フォルダー(7)
ツール説明
get_folders未読数とともにメールフォルダーを一覧表示します
create_folder新しいメールフォルダーを作成します
rename_folder既存のフォルダーの名前を変更します
empty_folderフォルダー内のすべてのアイテムを空にします
delete_folderメールフォルダーを削除します
move_folderフォルダーを別の親フォルダーに移動します
check_sessionOWA セッションが認証済みかどうかを確認します
空き状況(2)
ツール説明
find_free_timeカレンダーの空き時間を検索します
find_meeting_time複数の人に共通する空き時間を検索します
分析(2)
ツール説明
get_meeting_stats複数の人の会議件数を集計します
get_meeting_contacts交流マトリックス — 誰と最も多く会議をしているかを表示します
認証(1)
ツール説明
loginOWA に認証します(認証情報の設定と 2FA ログイン)

ファイル

login.py                  # Browser-based 2FA login (standalone CLI)
exchange_mcp/
  server.py               # FastMCP server entry point
  owa_client.py           # OWA HTTP client
  auth.py                 # Async login logic (shared by MCP tool)
  tools/
    email.py              # Email tools
    calendar.py           # Calendar tools
    people.py             # Directory search
    folders.py            # Folder management & session check
    availability.py       # Free time / meeting time
    analytics.py          # Meeting stats & contacts
    auth.py               # Login tool
pyproject.toml            # Package config

警告

Exchange/OWA の環境ごとに認証の設定は異なります。2FA(プッシュ通知、TOTP、SMS)が必要な環境もあれば、単要素認証や SSO を使用する環境もあります。このプロジェクトのログイン処理(login.py と exchange_mcp/auth.py)は、特定の 2FA フロー(モバイルプッシュ承認)を想定して記述されています。OWA サーバーが異なる 2FA 方式を使用している場合、または 2FA を使用していない場合は、環境に合わせてログイン処理を変更または削除する必要があります。

セキュリティ

  • 認証情報とセッション Cookie は AES-256-Fernet で暗号化されます
  • マスターパスワードは保存されません
  • 鍵の導出には、480,000 回の反復処理を行う PBKDF2 を使用します
  • 認証情報ファイルと Cookie ファイルの権限は 0600 です
  • Cookie はメモリ上でのみ復号され、平文としてディスクに書き込まれることはありません(MCP ツール経由)
  • セッション Cookie は OWA サーバー以外に送信されません

コメント

MCP は初めてですか?

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

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