useful-outlook-mcp
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のセットアップ
Azure Portal → Microsoft Entra ID → アプリの登録 → 新規登録
委任されたアクセス許可を追加:
User.Read,Mail.Read,Mail.ReadWrite,Mail.Send,Calendars.Read,Calendars.ReadWrite,Calendars.Read.Shared,Place.Read.All,People.Read,offline_accessリダイレクトURIを追加:
http://localhost:6274/oauth/callback(MCP Inspector用)証明書とシークレット → 新しいクライアント シークレット → 値をコピー
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アプリのアクセス許可に追加)
設定
変数 | デフォルト | 説明 |
| 必須 | Azure ADクライアントID |
| - | クライアントシークレット(オプション) |
|
| テナントID |
|
| サーバーポート |
|
| 書き込み操作を無効化 |
| すべて | カンマ区切りのツール許可リスト |
|
| CORSオリジン |
|
| ウィンドウあたりのリクエスト数 |
|
| ウィンドウサイズ(ms) |
| - | 特定のテナントに制限 |
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エンドポイント
エンドポイント | 説明 |
| MCPプロトコル |
| ヘルスチェック |
| RFC 9728 |
| RFC 8414 |
| OAuth(Microsoftへのプロキシ) |
| トークン交換(Microsoftへのプロキシ) |
| 動的クライアント登録 |
テスト
npm run dev
npx @modelcontextprotocol/inspector # Connect to http://localhost:3000/mcp設計ノート
既存サーバーの問題点
レガシーアーキテクチャ: HTTPを後付けたstdioとして構築されています。本サーバーはHTTPネイティブです。
誤ったOAuth実装: ほとんどのサーバーはトークンをサーバー側に保存します。本サーバーはステートレスです—トークンはAuthorizationヘッダーでリクエストごとに渡され、保存されることはありません。
考慮を欠いたツール: 一般的なサーバーは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
This server cannot be installed
Maintenance
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
- AlicenseAqualityAmaintenanceMCP server that provides 62 tools to manage Outlook mail, calendar, contacts, and tasks for personal Microsoft accounts via Microsoft Graph API.6222MIT
- AlicenseNot gradedqualityCmaintenanceA secure remote MCP server that integrates Microsoft 365 services with AI assistants, enabling email, calendar, Teams, and contact operations via the Microsoft Graph API.2MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for sending and managing Microsoft Outlook email via the Microsoft Graph API, including drafts, replies, contacts, and directory search.114MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that uses Microsoft Entra OAuth 2.0 On-Behalf-Of flow to access Microsoft Graph for Outlook data, enabling email, calendar, and contacts interactions via MCP tools.
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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