Skip to main content
Glama
SuperAngryMonkey

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-mcp

Python 3.10以上。

セットアップ

独自のEntraアプリケーションを登録する必要があります。 共有アプリ登録やホスト型サービスはありません。irisはお使いのマシンからテナントに直接通信します。これは意図的です。共有アプリでは、メールへのアクセス権を持つ他者のクライアントIDを信頼することになるからです。

  1. Entra管理センター → アプリの登録新規登録。シングルテナントで問題ありません。リダイレクトURIは不要です。

  2. 認証 → 設定 → パブリッククライアントフローを許可を有効にします。デバイスコードサインインにはこれが必要です。クライアントシークレットはどこにも使用されません。

  3. APIのアクセス許可 → Microsoft Graph → 委任されたアクセス許可Mail.ReadWrite を追加します。他には何も追加しないでください。Mail.Sendを追加しないでください。存在する場合、上記の保証は無効になります。

  4. アプリケーション (クライアント) 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で書き込まれます。

ツール

ツール

機能

iris_login

デバイスコードサインインを開始し、URLとコードを返します

iris_login_finish

サインインを完了します。コードを入力している間、繰り返し呼び出しても安全です

iris_auth_status

サインインしているユーザー、スコープ、Graphへの到達可能性を表示します

iris_create_draft

下書きを作成します(宛先/CC/BCC、件名、本文またはHTML、返信用の任意指定)

iris_list_drafts

下書きフォルダにあるものを一覧表示します

iris_update_draft

下書きをその場で修正します

iris_delete_draft

下書きを削除します。confirm=trueが必要です

下書きの保存先

専用のトップレベルメールフォルダ(デフォルトではAI DraftsIRIS_DRAFT_FOLDER)に保存されます。初回使用時に作成されます。変数を空文字列に設定すると、通常の下書きフォルダが使用されます。

これらは実際の下書きであり、Outlookは通常どおり送信します。ただし、専用フォルダにあるため、下書きビューには表示されません。それがポイントです。エージェントが作成したメールは、自分で途中まで書いたメッセージに混ざるのではなく、わざわざ見に行かなければならない場所に置かれます。

1つ注意点があります。GraphのcreateReplyは常に返信を下書きフォルダに置くため、irisはその後で移動します。移動すると新しいメッセージIDが割り当てられます。

その他の制御

  • 受信者許可リストrecipients.allowに、1行に1つのアドレスまたはドメインを指定します。存在しない場合や空の場合は、すべての受信者が許可されます。必要に応じてIRIS_ALLOWLISTを別の場所に指定します。

  • キルスイッチ — サーバーの隣にDISABLEDファイルを作成するか、IRIS_DISABLED=1を設定すると、すべてのツールが拒否されます。

  • 監査ログ — すべての呼び出しがaudit.logIRIS_AUDIT_LOG)に追記されます。

制限

添付ファイルはありません。共有メールボックスや委任メールボックスはありません。/meのみです。parentFolderIdによるフォルダの入れ子はありません。サインインはパブリッククライアントとしての委任デバイスコードであるため、影響範囲は正確に1つのメールボックス、つまり自分のみです。

セキュリティ

送信しないという保証、自分で検証する方法、そして同様に重要なこととして、irisがMail.ReadWriteで何に到達できるかについては、SECURITY.mdを参照してください。

ライセンス

MIT — LICENSE を参照してください。

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (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
    Not graded
    quality
    C
    maintenance
    Enables AI agents to interact with Microsoft 365 Outlook Mail, allowing email operations via natural language.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to manage Microsoft Outlook emails through the Microsoft Graph API, supporting operations like listing, reading, sending, and moving emails.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to read and manage Microsoft 365/Outlook email and calendar, with destructive actions (send email, create event) requiring human approval.
    8
    MIT

View all related MCP servers

Related MCP Connectors

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/SuperAngryMonkey/iris'

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