iris
iris
이메일을 보낼 수 없는, AI 에이전트를 위한 Microsoft 365 메일 서버입니다.
'보내지 않을 것'이 아닙니다. 보낼 수 없습니다. iris는 위임된 Graph 범위 Mail.ReadWrite를 요청하며 Mail.Send는 절대 요청하지 않습니다. 이 서버가 보유한 액세스 토큰에는 메시지를 전송할 수 있는 능력이 없으므로, 어떤 프롬프트, 어떤 탈옥(jailbreak) 공격, 이 코드의 어떤 버그도 메시지 하나를 내보낼 수 없습니다. 대신 사서함의 폴더에 초안을 작성합니다. Outlook을 열고 보내기(Send)를 누르면 됩니다.
그것이 설계의 전부입니다. 나머지는 모두 세부 사항입니다.
왜 이런 형태인가
에이전트에게 사서함을 맡길 때 흔한 걱정은 승인하지 않은 무언가를 보내게 될까 봐입니다. 엉뚱한 사람에게, 엉뚱한 어조로, 또는 누군가가 그렇게 하도록 설득해서 말이죠. 일반적인 해결책은 확인 프롬프트, 즉 가드레일입니다. 허락을 묻는 코드는 우회될 수 있습니다.
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 관리 센터 → 앱 등록(App registrations) → 새 등록(New registration). 단일 테넌트(single tenant)로 충분합니다. 리디렉션 URI는 필요 없습니다.
인증(Authentication) → 설정(Settings) → **공용 클라이언트 흐름 허용(Allow public client flows)**을 활성화합니다. 기기 코드 로그인(device code sign-in)에 필요합니다. 클라이언트 비밀(client secret)은 어디에서도 사용되지 않습니다.
API 권한(API permissions) → Microsoft Graph → 위임됨(Delegated) → **
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를 호출합니다. 토큰 캐시는 서버 옆에 mode 600으로 기록됩니다.
도구
도구 | 기능 |
| 기기 코드 로그인을 시작하고 URL과 코드를 반환합니다 |
| 로그인을 완료합니다. 코드를 입력하는 동안 반복 호출해도 안전합니다 |
| 로그인된 사용자, 보유 범위, Graph 연결 가능 여부를 표시합니다 |
| 초안을 작성합니다(to/cc/bcc, 제목, 본문 또는 HTML, 선택적 reply-to) |
| 초안 폴더에 대기 중인 항목을 나열합니다 |
| 기존 초안을 수정합니다 |
| 초안을 삭제합니다. |
초안이 저장되는 위치
전용 최상위 메일 폴더에 저장되며, 기본 폴더 이름은 AI Drafts입니다(IRIS_DRAFT_FOLDER). 이 폴더는 처음 사용할 때 생성됩니다. 이 변수를 빈 문자열로 설정하면 일반적인 Drafts 폴더를 대신 사용합니다.
이것들은 실제 초안이며 Outlook에서 정상적으로 전송됩니다. 그러나 자체 폴더에 있기 때문에 Drafts 보기에는 나타나지 않습니다. 그것이 바로 핵심입니다. 에이전트가 작성한 메일은 직접 찾아가서 확인해야 하는 곳에 따로 있으며, 직접 작성하던 미완성 메시지와 섞이지 않습니다.
알아둘 만한 점이 하나 있습니다. Graph의 createReply는 항상 회신을 먼저 Drafts에 넣으므로, iris는 이후에 그 회신을 이동하며, 이동 시 새 메시지 ID가 할당됩니다.
기타 제어
받는 사람 허용 목록(Recipient allowlist) —
recipients.allow, 줄마다 주소 또는 도메인 하나. 파일이 없거나 비어 있으면 모든 받는 사람이 허용됩니다. 원한다면IRIS_ALLOWLIST를 다른 위치를 가리키도록 설정할 수 있습니다.킬 스위치(Kill switch) — 서버 옆에
DISABLED파일을 만들거나IRIS_DISABLED=1을 설정하면 모든 도구가 작동을 거부합니다.감사 로그(Audit log) — 모든 호출이
audit.log에 추가됩니다(IRIS_AUDIT_LOG).
제한 사항
첨부 파일은 지원하지 않습니다. 공유 사서함이나 위임된 사서함은 지원하지 않으며 /me만 사용합니다. parentFolderId를 통한 폴더 중첩은 지원하지 않습니다. 로그인은 공용 클라이언트(public client)로서의 위임된 기기 코드(delegated device-code) 방식이므로, 피해 범위(blast radius)는 정확히 하나의 사서함, 즉 사용자의 사서함입니다.
보안
메시지를 보낼 수 없다는 보장, 직접 검증하는 방법, 그리고 그에 못지않게 중요한 Mail.ReadWrite로 iris가 도달할 수 있는 범위는 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