iris
iris
メールを送信できないAIエージェントのためのMicrosoft 365メールサーバー。
「送信しない」のではありません。「送信できない」のです。irisは委任されたGraphスコープMail.ReadWriteを要求し、Mail.Sendは決して要求しません。保持するアクセストークンにはメッセージを送信する能力がありません。したがって、プロンプトや脱獄、このコードのバグによっても、メールが送信されることはありません。irisはメールボックス内のフォルダに下書きを書き込みます。あなたはOutlookを開いて送信ボタンを押します。
それが設計のすべてです。他はすべて詳細にすぎません。
なぜこの形か
エージェントにメールボックスを渡す際のよくある懸念は、意図しないメールを送信してしまうことです。間違った相手に、間違ったトーンで、あるいは誰かに送るよう誘導されて。一般的な答えは確認プロンプトです。これはガードレール、つまり許可を求めるコードであり、コードはバイパスされる可能性があります。
irisは代わりに能力そのものを取り除きます。Microsoft Graphは、このトークンを使った送信試行を拒否します。承認した同意画面にその権限が含まれていないからです。セキュリティ境界はこのプログラムのものではなくMicrosoftのものであり、このプログラムが誤っていても機能します。
トレードオフは現実的です。設計上、すべてのメッセージに人間が関与します。自動送信が必要な場合、irisは適切なツールではありません。
Related MCP server: mcp-outlook-mail
インストール
uvx iris-mcp # run without installing
pip install iris-mcpPython 3.10以上。
セットアップ
独自のEntraアプリケーションを登録する必要があります。 共有アプリ登録やホスト型サービスはありません。irisはお使いのマシンからテナントに直接通信します。これは意図的です。共有アプリでは、メールへのアクセス権を持つ他者のクライアントIDを信頼することになるからです。
Entra管理センター → アプリの登録 → 新規登録。シングルテナントで問題ありません。リダイレクトURIは不要です。
認証 → 設定 → パブリッククライアントフローを許可を有効にします。デバイスコードサインインにはこれが必要です。クライアントシークレットはどこにも使用されません。
APIのアクセス許可 → Microsoft Graph → 委任されたアクセス許可 →
Mail.ReadWriteを追加します。他には何も追加しないでください。Mail.Sendを追加しないでください。存在する場合、上記の保証は無効になります。アプリケーション (クライアント) ID とディレクトリ (テナント) IDをコピーします。どちらもシークレットではありません。
次に、irisをMCPクライアントに追加します:
{
"mcpServers": {
"iris": {
"command": "uvx",
"args": ["iris-mcp"],
"env": {
"IRIS_CLIENT_ID": "<application client id>",
"IRIS_TENANT_ID": "<directory tenant id>"
}
}
}
}一度サインインします:iris_loginを呼び出し、URLを開いてコードを入力し、iris_login_finishを呼び出します。トークンキャッシュはサーバーの隣にモード600で書き込まれます。
ツール
ツール | 機能 |
| デバイスコードサインインを開始し、URLとコードを返します |
| サインインを完了します。コードを入力している間、繰り返し呼び出しても安全です |
| サインインしているユーザー、スコープ、Graphへの到達可能性を表示します |
| 下書きを作成します(宛先/CC/BCC、件名、本文またはHTML、返信用の任意指定) |
| 下書きフォルダにあるものを一覧表示します |
| 下書きをその場で修正します |
| 下書きを削除します。 |
下書きの保存先
専用のトップレベルメールフォルダ(デフォルトではAI Drafts、IRIS_DRAFT_FOLDER)に保存されます。初回使用時に作成されます。変数を空文字列に設定すると、通常の下書きフォルダが使用されます。
これらは実際の下書きであり、Outlookは通常どおり送信します。ただし、専用フォルダにあるため、下書きビューには表示されません。それがポイントです。エージェントが作成したメールは、自分で途中まで書いたメッセージに混ざるのではなく、わざわざ見に行かなければならない場所に置かれます。
1つ注意点があります。GraphのcreateReplyは常に返信を下書きフォルダに置くため、irisはその後で移動します。移動すると新しいメッセージIDが割り当てられます。
その他の制御
受信者許可リスト —
recipients.allowに、1行に1つのアドレスまたはドメインを指定します。存在しない場合や空の場合は、すべての受信者が許可されます。必要に応じてIRIS_ALLOWLISTを別の場所に指定します。キルスイッチ — サーバーの隣に
DISABLEDファイルを作成するか、IRIS_DISABLED=1を設定すると、すべてのツールが拒否されます。監査ログ — すべての呼び出しが
audit.log(IRIS_AUDIT_LOG)に追記されます。
制限
添付ファイルはありません。共有メールボックスや委任メールボックスはありません。/meのみです。parentFolderIdによるフォルダの入れ子はありません。サインインはパブリッククライアントとしての委任デバイスコードであるため、影響範囲は正確に1つのメールボックス、つまり自分のみです。
セキュリティ
送信しないという保証、自分で検証する方法、そして同様に重要なこととして、irisがMail.ReadWriteで何に到達できるかについては、SECURITY.mdを参照してください。
ライセンス
MIT — LICENSE を参照してください。
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
- AlicenseCqualityDmaintenanceEnables AI agents to create Gmail drafts safely using the Gmail API, without sending emails.11MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with Microsoft 365 Outlook Mail, allowing email operations via natural language.10MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Microsoft Outlook emails through the Microsoft Graph API, supporting operations like listing, reading, sending, and moving emails.MIT
- AlicenseAqualityAmaintenanceEnables AI agents to read and manage Microsoft 365/Outlook email and calendar, with destructive actions (send email, create event) requiring human approval.8MIT
Related MCP Connectors
Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified.
Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified.
Governed email for AI agents (Mailbuttons / mbag.ai): sandbox inboxes, policy gate, audit log.
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/SuperAngryMonkey/iris'
If you have feedback or need assistance with the MCP directory API, please join our Discord server