Skip to main content
Glama
SuperAngryMonkey

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

Python 3.10+.

설정

자체 Entra 애플리케이션을 반드시 등록해야 합니다. 공유 앱 등록도 호스팅 서비스도 없습니다. iris는 사용자 머신에서 테넌트로 직접 통신합니다. 이것은 의도적인 설계입니다. 공유 앱은 다른 사람의 클라이언트 ID를 신뢰하여 내 메일에 접근하게 하는 것을 의미하기 때문입니다.

  1. Entra 관리 센터 → 앱 등록(App registrations)새 등록(New registration). 단일 테넌트(single tenant)로 충분합니다. 리디렉션 URI는 필요 없습니다.

  2. 인증(Authentication) → 설정(Settings) → **공용 클라이언트 흐름 허용(Allow public client flows)**을 활성화합니다. 기기 코드 로그인(device code sign-in)에 필요합니다. 클라이언트 비밀(client secret)은 어디에서도 사용되지 않습니다.

  3. API 권한(API permissions) → Microsoft Graph → 위임됨(Delegated)**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를 호출합니다. 토큰 캐시는 서버 옆에 mode 600으로 기록됩니다.

도구

도구

기능

iris_login

기기 코드 로그인을 시작하고 URL과 코드를 반환합니다

iris_login_finish

로그인을 완료합니다. 코드를 입력하는 동안 반복 호출해도 안전합니다

iris_auth_status

로그인된 사용자, 보유 범위, Graph 연결 가능 여부를 표시합니다

iris_create_draft

초안을 작성합니다(to/cc/bcc, 제목, 본문 또는 HTML, 선택적 reply-to)

iris_list_drafts

초안 폴더에 대기 중인 항목을 나열합니다

iris_update_draft

기존 초안을 수정합니다

iris_delete_draft

초안을 삭제합니다. confirm=true가 필요합니다

초안이 저장되는 위치

전용 최상위 메일 폴더에 저장되며, 기본 폴더 이름은 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를 참조하세요.

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