MCP.Market

Iris MCP server

by SuperAngryMonkey·io.github.SuperAngryMonkey/iris·v0.3.0

Microsoft 365 mail MCP: reads mail, drafts into Outlook; sending is opt-in (IRIS_ENABLE_SEND).

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

0 stars57 downloads/wk

Reviews

Write one

Nobody has reviewed Iris yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Iris tools (10, 4 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • iris_audit_tail

    Show the most recent send-audit entries recorded by the worker.

  • iris_auth_status

    Report whether iris is signed in, as whom, and with what scopes.

  • iris_create_draftwrite action

    Compose a message into a mail folder as an unsent draft. It is NOT sent — a human opens Outlook and presses Send.

  • iris_delete_draftwrite action

    Delete a draft. Destructive, so confirm=true is required — set it only after the human has explicitly approved deleting this specific draft.

  • iris_list_drafts

    List recent messages sitting in a draft folder. folder selects which one by display name; omit it for the configured default (IRIS_DRAFT_FOLDER), or pass "" / "Drafts" for the normal Outlook Drafts folder.

  • iris_list_folders

    List the mailbox's top-level mail folders (name, id, unread/total counts) so you can pick one to pass as the `folder` argument to iris_create_draft or iris_list_drafts.

  • iris_login

    Start a device-code sign-in for the mailbox. Returns a URL and a code for the human to enter in a browser; then call iris_login_finish() to complete. Only needed once, or after the refresh token lapses.

  • iris_login_finish

    Complete a device-code sign-in started with iris_login(). Call after entering the code in the browser. Waits up to ~60s; if the code has not been entered yet, it says so and can simply be called again.

  • iris_send_draftwrite action

    Send an existing draft. This tool exists only because IRIS_ENABLE_SEND=1; a default install cannot send at all. Requires confirm=true, set ONLY after explicit human approval of THIS message. Re-verifies the message is still an unsent draft and re-checks the recipient allowlist before sending.

  • iris_update_draftwrite action

    Revise an existing draft in place. Only the fields you pass are changed.

Public scan report

scanner v0.1.10 · 2026-10-16 · same rubric, same numbers if you re-run it

no findings
  • Code scan7 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 19 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Iris compares

Against every graded Email MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
92/100
higher than 90% of 916 Email servers
Tools
10
the typical Email server has 7
Tools that change things
40%
typical: 25%. Fewer write tools means less an agent can break
Downloads a week
57
more than 40% of 235 Email servers with a package

What its tools let an agent do: 6 read · 4 change

Release history: 2 versions in the registry since 2026-09-02, latest 2026-09-25, typically one every 23 days.

Install Iris in Claude Code, Cursor or VS Code

claude mcp add iris -- uvx iris-mcp
Add to Cursor

What the publisher says

From the Iris repository's README, as published. We do not edit it. Read it on GitHub

iris

A Microsoft 365 mail server for AI agents that does not send email — until you decide it should.

By default iris requests the delegated Graph scope Mail.ReadWrite and never Mail.Send. The access token it holds has no capability to transmit a message, so no prompt, no jailbreak and no bug in this code can make one go out. It writes drafts into a folder in your mailbox; you open Outlook and press Send.

Sending is an explicit opt-in (IRISENABLESEND=1) that requires granting the Mail.Send scope and re-consenting — and even then every send is human-confirmed and allowlist-checked. Leave it off (the default) and the no-send property is structural, as above. See Enabling send.

That is the whole design. Everything else is detail.

Why this shape

The usual worry about giving an agent your mailbox is that it will send something you did not sanction — to the wrong person, with the wrong tone, or because someone talked it into doing so. The common answer is a confirmation prompt, which is a guardrail: code that asks permission, and code can be bypassed.

iris removes the capability instead. Microsoft Graph will reject a send attempt made with this token, because the consent screen you approved never included that permission. The security boundary is Microsoft's, not this program's, and it holds even if this program is wrong.

The trade is real: a human is in the loop on every message, by construction. If you want autonomous sending, iris is the wrong tool.

Install

uvx iris-mcp        # run without installing
pip install iris-mcp

Python 3.10 or newer. macOS ships Python 3.9, which is too old — mcp requires 3.10+. Use uv (it comes with uvx and manages its own Python), or install a current Python with Homebrew (brew install python@3.12). The system python3 on macOS will not work.

Setup

You must register your own Entra application. There is no shared app registration and no hosted service — iris talks directly from your machine to your tenant. This is deliberate: a shared app would mean trusting someone else's client ID with access to your mail.

tenant is fine. No redirect URI needed.

  1. Entra admin centre → App registrations → New registration. Single

code sign-in needs this. No client secret is used anywhere.

  1. Authentication → Settings → enable Allow public client flows. Device

Mail.ReadWrite. For draft-only use (the default), add nothing else and leave Mail.Send off — that omission is what makes the no-send property structural. Add Mail.Send only if you intend to enable sending (see Enabling send).

  1. API permissions → Microsoft Graph → Delegated → add

is a secret.

  1. Copy the Application (client) ID and Directory (tenant) ID. Neither

Then add iris to your MCP client:

{
  "mcpServers": {
    "iris": {
      "command": "uvx",
      "args": ["iris-mcp"],
      "env": {
        "IRIS_CLIENT_ID": "<application (client) id>",
        "IRIS_TENANT_ID": "<directory (tenant) id>"
      }
    }
  }
}

Sign in once: call irislogin, open the URL, enter the code, then call irislogin_finish. The token cache is written next to the server, mode 600.

Deploying to a whole team? See the Administrator Deployment Guide — authorizing iris across a Microsoft 365 tenant: admin consent, per-user assignment, and why it stays the delegated model rather than application permissions.

Clients

iris is a local stdio MCP server: your MCP client launches it as a child process on the same machine. It works with any client that supports local stdio servers — Claude Desktop, Cursor, and the Grok CLI (grok mcp add iris -- uvx iris-mcp) among them.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Iris: common questions

Is Iris MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the Iris safety report
How do I install Iris?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Iris need an API key?
No secret keys are declared. It reads 6 settings from the environment.
Is Iris maintained?
The last commit was 39 days ago (2026-09-27). The latest release is v0.3.0.
What can I use instead of Iris?
Servers from other publishers that do the same job: Outlook MCP server, Fluxmail MCP server and MCPEmails MCP server.
How does Iris compare with other Email MCP servers?
safety score 92/100 (higher than 90% of 916 Email servers); tools 10 (the typical Email server has 7); tools that change things 40% (typical: 25%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Iris

Same job from other publishers: the closest match first, then the best rated.

  • Outlook MCP
    Microsoft Outlook personal accounts: mail, rules, calendar, contacts, to-do, drafts (77 tools).
    A
  • Fluxmail
    Read, search, draft, send, and organize email through Gmail, Outlook, and IMAP/SMTP mailboxes.
    B
  • MCPEmails
    Never-stored live email: read, send and triage Gmail, Outlook / Microsoft 365, or any IMAP mailbox.
    A
  • Agent Email
    Local email connectivity for AI agents — read, draft, send, and organize Outlook mail via MCP
    A
  • Microsoft 365 Mail
    Microsoft 365 Outlook mail via Graph: read, search, send, reply, forward, draft, move, delete.
    A

More from SuperAngryMonkey →