NestDaddy

Iris

io.github.SuperAngryMonkey/iris ยท v0.3.0

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

Connect Runs on your machine

Terminal
claude mcp add iris -e IRIS_CLIENT_ID=<IRIS_CLIENT_ID> -e IRIS_TENANT_ID=<IRIS_TENANT_ID> -e IRIS_DRAFT_FOLDER=<IRIS_DRAFT_FOLDER> -e IRIS_ALLOWLIST=<IRIS_ALLOWLIST> -e IRIS_DISABLE_READ=<IRIS_DISABLE_READ> -e IRIS_ENABLE_SEND=<IRIS_ENABLE_SEND> -- uvx iris-mcp==0.3.0
claude_desktop_config.json
{
  "mcpServers": {
    "iris": {
      "command": "uvx",
      "args": [
        "iris-mcp==0.3.0"
      ],
      "env": {
        "IRIS_CLIENT_ID": "<IRIS_CLIENT_ID>",
        "IRIS_TENANT_ID": "<IRIS_TENANT_ID>",
        "IRIS_DRAFT_FOLDER": "<IRIS_DRAFT_FOLDER>",
        "IRIS_ALLOWLIST": "<IRIS_ALLOWLIST>",
        "IRIS_DISABLE_READ": "<IRIS_DISABLE_READ>",
        "IRIS_ENABLE_SEND": "<IRIS_ENABLE_SEND>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "iris": {
      "command": "uvx",
      "args": [
        "iris-mcp==0.3.0"
      ],
      "env": {
        "IRIS_CLIENT_ID": "<IRIS_CLIENT_ID>",
        "IRIS_TENANT_ID": "<IRIS_TENANT_ID>",
        "IRIS_DRAFT_FOLDER": "<IRIS_DRAFT_FOLDER>",
        "IRIS_ALLOWLIST": "<IRIS_ALLOWLIST>",
        "IRIS_DISABLE_READ": "<IRIS_DISABLE_READ>",
        "IRIS_ENABLE_SEND": "<IRIS_ENABLE_SEND>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "iris": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "iris-mcp==0.3.0"
      ],
      "env": {
        "IRIS_CLIENT_ID": "<IRIS_CLIENT_ID>",
        "IRIS_TENANT_ID": "<IRIS_TENANT_ID>",
        "IRIS_DRAFT_FOLDER": "<IRIS_DRAFT_FOLDER>",
        "IRIS_ALLOWLIST": "<IRIS_ALLOWLIST>",
        "IRIS_DISABLE_READ": "<IRIS_DISABLE_READ>",
        "IRIS_ENABLE_SEND": "<IRIS_ENABLE_SEND>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
IRIS_CLIENT_ID
Required
Application (client) ID of YOUR OWN Entra app registration. There is no shared app; you register one.
IRIS_TENANT_ID
Optional
Directory (tenant) ID. Defaults to 'organizations'.
IRIS_DRAFT_FOLDER
Optional
Mail folder drafts are written to, created on first use. Defaults to 'AI Drafts'. Empty string uses Drafts.
IRIS_ALLOWLIST
Optional
Path to a recipient allowlist file. If absent or empty, all recipients are permitted.
IRIS_DISABLE_READ
Optional
Set to '1' to unregister the read tools (list/search/get messages and threads) for a drafts-only surface.
IRIS_ENABLE_SEND
Optional
Set to '1' to enable sending. ALSO requires Mail.Send granted on the Entra app and a fresh sign-in. Off by default; when unset, iris cannot send and the send tool is not registered.

Details

Package[email protected] (PYPI, stdio)
First published25 Sep 2026
Last updated25 Sep 2026
Registry nameio.github.SuperAngryMonkey/iris

More communication servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.