Skip to main content
Glama

useful-outlook-mcp

適切なOAuth2とエージェント向けに最適化されたツールを備えた、Microsoft Outlook用のリモートMCPサーバー。

機能

  • 仕様準拠: RFC 9728/8414 OAuthメタデータ、RFC 7591動的クライアント登録

  • ステートレスOAuth: トークンはサーバーではなくクライアントが管理します—OAuthの意図どおり

  • エージェント最適化ツール: ツールの説明における広範なプロンプトエンジニアリング

  • 動的スコープ: OAuthスコープは有効なツールに自動調整されます

  • 本番対応: Docker、レート制限、読み取り専用モード、ツールフィルタリング

Related MCP server: M365 MCP Server

クイックスタート

npm install
npm run build
npm start  # Server at http://localhost:3000

必要な環境:

MS365_MCP_CLIENT_ID=your-azure-ad-client-id
MS365_MCP_CLIENT_SECRET=your-azure-ad-client-secret
MS365_MCP_TENANT_ID=your-tenant-id  # or 'common'

Azure ADのセットアップ

  1. Azure Portal → Microsoft Entra ID → アプリの登録 → 新規登録

  2. 委任されたアクセス許可を追加: User.Read, Mail.Read, Mail.ReadWrite, Mail.Send, Calendars.Read, Calendars.ReadWrite, Calendars.Read.Shared, Place.Read.All, People.Read, offline_access

  3. リダイレクトURIを追加: http://localhost:6274/oauth/callback(MCP Inspector用)

  4. 証明書とシークレット → 新しいクライアント シークレット → 値をコピー

  5. Client ID、Client Secret、Tenant IDを.envにコピーします

ツール

メール

list-mail-folders · list-mail-messages · search-mail · get-mail-message · send-mail · create-draft-mail · reply-mail · reply-all-mail · create-reply-draft · create-reply-all-draft · delete-mail-message · move-mail-message

カレンダー

list-calendars · list-calendar-events · search-calendar-events · find-meeting-times · get-calendar-event · get-calendar-view · create-calendar-event · update-calendar-event · delete-calendar-event

連絡先

lookup-contact-emal

会議室の検索

対面会議の場合、find-meeting-timesは自動的に:

  • 組織全体で利用可能なすべての会議室を取得します

  • 出席者とともに空き状況の確認対象に含めます

  • 空き会議室を場所(都市/建物)ごとにグループ化します

  • 予約用のメールアドレスを持つ利用可能な会議室のみを返します

isOnlineMeeting: falseを設定すると、会議室の検索が有効になります。オンライン会議(デフォルト: true)の場合、Teamsの会議リンクが自動的に生成されます。

必要なスコープ: Place.Read.All(Azure ADアプリのアクセス許可に追加)

設定

変数

デフォルト

説明

MS365_MCP_CLIENT_ID

必須

Azure ADクライアントID

MS365_MCP_CLIENT_SECRET

-

クライアントシークレット(オプション)

MS365_MCP_TENANT_ID

common

テナントID

MS365_MCP_PORT

3000

サーバーポート

MS365_MCP_READ_ONLY_MODE

false

書き込み操作を無効化

MS365_MCP_ENABLED_TOOLS

すべて

カンマ区切りのツール許可リスト

MS365_MCP_CORS_ORIGIN

*

CORSオリジン

MS365_MCP_RATE_LIMIT_REQUESTS

30

ウィンドウあたりのリクエスト数

MS365_MCP_RATE_LIMIT_WINDOW_MS

60000

ウィンドウサイズ(ms)

MS365_MCP_ALLOWED_TENANTS

-

特定のテナントに制限

Docker

GitHub Container Registryから:

docker run -p 3000:3000 \
  -e MS365_MCP_CLIENT_ID=xxx \
  -e MS365_MCP_CLIENT_SECRET=xxx \
  -e MS365_MCP_TENANT_ID=xxx \
  ghcr.io/Leonine-Studios/useful-outlook-mcp:latest

またはローカルでビルド:

docker build -t useful-outlook-mcp .
docker run -p 3000:3000 \
  -e MS365_MCP_CLIENT_ID=xxx \
  -e MS365_MCP_CLIENT_SECRET=xxx \
  -e MS365_MCP_TENANT_ID=xxx \
  useful-outlook-mcp

エンドポイント

エンドポイント

説明

POST /mcp

MCPプロトコル

GET /health

ヘルスチェック

GET /.well-known/oauth-protected-resource

RFC 9728

GET /.well-known/oauth-authorization-server

RFC 8414

GET /authorize

OAuth(Microsoftへのプロキシ)

POST /token

トークン交換(Microsoftへのプロキシ)

POST /register

動的クライアント登録

テスト

npm run dev
npx @modelcontextprotocol/inspector  # Connect to http://localhost:3000/mcp

設計ノート

既存サーバーの問題点

  1. レガシーアーキテクチャ: HTTPを後付けたstdioとして構築されています。本サーバーはHTTPネイティブです。

  2. 誤ったOAuth実装: ほとんどのサーバーはトークンをサーバー側に保存します。本サーバーはステートレスです—トークンはAuthorizationヘッダーでリクエストごとに渡され、保存されることはありません。

  3. 考慮を欠いたツール: 一般的なサーバーはAPIエンドポイントをガイダンスなしに1:1でマッピングします。エージェントはAPIの癖や複数ステップのワークフローを知らないため、実際の使用で失敗します。

何が違うのか

すべてのツールには以下が含まれます:

  • いつ使用するか、代替手段との比較

  • 既知のGraph APIの癖(多数あります)

  • 複数ステップのタスクのためのワークフローガイダンス

  • 失敗するパラメータの組み合わせ

例: find-meeting-timesは、メールアドレスが必要であること(名前では機能しない)、search-mailを使用して名前からメールアドレスを検索する方法、OrganizerUnavailableの意味、そしてisOrganizerOptional=trueにはユーザーの確認が必要であることを説明しています。

既知のGraph APIの癖

  • メール送信者のフィルタリング: from/emalAddress/addressに対するeqは信頼できません—startswith()を使用します

  • メール受信者のフィルタリング: $filterではto/cc/bccをフィルタリングできません—$searchを使用する必要があります

  • カレンダー開催者のフィルタリング: 開催者のメールに対する$filterは500を返します—クライアント側でフィルタリングされます

  • 並行処理: 並列呼び出しはMailboxConcurrencyエラーを返すことがあります

  • 検索 + 並び替え: $search$orderbyと組み合わせることができません

ライセンス

MIT

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server that provides 62 tools to manage Outlook mail, calendar, contacts, and tasks for personal Microsoft accounts via Microsoft Graph API.
    62
    22
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for sending and managing Microsoft Outlook email via the Microsoft Graph API, including drafts, replies, contacts, and directory search.
    114
    MIT

View all related MCP servers

Related MCP Connectors

  • The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.

  • An authenticated remote MCP server for user-owned devices and one-shot capability invocation.

  • A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Andersia7/MCP-outlook'

If you have feedback or need assistance with the MCP directory API, please join our Discord server