Skip to content

Microsoft 365 MCP

Microsoft 365 연동을 통해 KIRA가 Outlook, OneDrive, SharePoint, Calendar에 접근할 수 있습니다.

MS365 MCP

Interactive OAuth 방식으로 간편하게 인증할 수 있습니다.

📋 준비물

  • Microsoft 365 계정
  • Azure Portal 접근 권한 (앱 등록용)

🔑 1단계: Azure App 등록

1. Azure Portal 접속

  1. Azure Portal 접속
  2. 로그인

2. App Registration 생성

  1. 검색창에서 "Azure Active Directory" 검색
  2. 왼쪽 메뉴에서 "App registrations" 클릭
  3. "New registration" 클릭

3. 앱 등록 설정

  • Name: KIRA Bot (원하는 이름)
  • Supported account types:
    • 조직 내부만: "Accounts in this organizational directory only"
    • 모든 계정: "Accounts in any organizational directory"
  • Redirect URI:
    • Public client/native: http://localhost
  • "Register" 클릭

4. Application (client) ID 복사

  • 생성된 앱의 "Application (client) ID" 복사
  • 나중에 사용

5. Tenant ID 복사

  • "Directory (tenant) ID" 복사
  • 나중에 사용

6. 인증 설정 (중요!)

  1. 왼쪽 메뉴에서 "Authentication" 클릭
  2. "Advanced settings" 섹션 찾기
  3. "Allow public client flows""Yes" 로 설정
  4. "Save" 클릭

Interactive OAuth

MS365 MCP는 Interactive OAuth를 사용하므로 Client Secret이 필요 없습니다. 대신 "Allow public client flows"를 활성화해야 합니다.

7. API Permissions 설정

  1. 왼쪽 메뉴에서 "API permissions" 클릭

  2. "Add a permission" 클릭

  3. "Microsoft Graph" 선택

  4. "Delegated permissions" 선택

  5. 다음 권한 추가:

    Mail (Outlook)

    • Mail.Read - 메일 읽기
    • Mail.ReadWrite - 메일 읽기/쓰기
    • Mail.Send - 메일 전송

    Files (OneDrive/SharePoint)

    • Files.Read - 파일 읽기
    • Files.Read.All - 모든 파일 읽기
    • Files.ReadWrite - 파일 읽기/쓰기
    • Files.ReadWrite.All - 모든 파일 읽기/쓰기
    • Sites.Read.All - SharePoint 사이트 읽기
    • Sites.ReadWrite.All - SharePoint 사이트 읽기/쓰기

    Calendar

    • Calendars.Read - 캘린더 읽기
    • Calendars.ReadWrite - 캘린더 읽기/쓰기

    User

    • User.Read - 사용자 정보 읽기
  6. "Add permissions" 클릭

Admin Consent

조직 계정인 경우 관리자 승인이 필요할 수 있습니다. "Grant admin consent" 버튼을 클릭하여 승인하세요.


⚙️ 2단계: KIRA 설정

1. KIRA 앱 실행

환경변수 설정 탭을 엽니다.

2. Microsoft 365 섹션 찾기

MCP 설정 > Microsoft 365 (Outlook, OneDrive, SharePoint)

3. 설정 활성화

  • 토글 스위치를 켜기로 변경

4. Azure 정보 입력

  • MS365_CLIENT_ID: Application (client) ID
  • MS365_TENANT_ID: Directory (tenant) ID

Client Secret 불필요

MS365 MCP는 Interactive OAuth를 사용하므로 Client Secret이 필요하지 않습니다.

5. 설정 저장

  • "설정 저장" 버튼 클릭
  • 서버 재시작

✅ 3단계: 테스트 질문으로 인증 완료

설정을 저장하고 서버를 시작한 후, 테스트 질문을 통해 인증을 완료하세요.

테스트 질문 예시

Slack에서 KIRA에게 다음과 같이 질문하세요:

최근 받은 이메일 3개 보여줘

인증 과정

  1. KIRA가 Microsoft 365에 처음 접근할 때 브라우저가 자동으로 열립니다
  2. Microsoft 로그인 페이지에서 계정으로 로그인
  3. 권한 승인 화면에서 "Accept" 클릭
  4. 인증 완료 후 브라우저를 닫아도 됩니다
  5. Slack으로 돌아가면 KIRA가 결과를 응답합니다

KIRA가 실행 중인 컴퓨터에서 인증

브라우저는 KIRA가 실행 중인 컴퓨터에서 열립니다. 본인 컴퓨터에서 실행 중이라면 바로 인증하면 됩니다.

한 번만 인증하면 됩니다

인증 토큰은 안전하게 저장되며, 다음부터는 자동으로 인증됩니다. 토큰 만료 시 자동으로 갱신됩니다.


🎯 사용 예시

📧 Outlook - 이메일

이메일 읽기

사용자: 최근 받은 이메일 5개 보여줘
KIRA: [Outlook 조회]
      1. [중요] 프로젝트 미팅 - 홍길동
      2. 주간 리포트 - 김철수
      ...

이메일 검색

사용자: "invoice" 키워드로 이메일 검색해줘
KIRA: [Outlook 검색]
      1. Invoice #1234 - Accounting
      2. Payment Invoice - Finance

이메일 전송

사용자: john@company.com에게 이메일 보내줘
      제목: 미팅 일정
      내용: 내일 오후 2시에 미팅 가능하신가요?
KIRA: [Outlook 전송] 이메일을 전송했습니다.

이메일 답장

사용자: 가장 최근 이메일에 답장해줘: "확인했습니다"
KIRA: [Outlook 답장] 답장을 전송했습니다.

📁 OneDrive - 파일 관리

파일 목록

사용자: OneDrive 루트 폴더 파일 목록 보여줘
KIRA: [OneDrive 조회]
      1. 프로젝트_계획서.docx
      2. 예산안.xlsx
      3. 발표자료.pptx

파일 검색

사용자: OneDrive에서 "회의록" 파일 찾아줘
KIRA: [OneDrive 검색]
      1. 2024_Q1_회의록.docx
      2. 임원_회의록_0315.pdf

파일 다운로드

사용자: OneDrive에서 "계약서.pdf" 다운로드해줘
KIRA: [OneDrive 다운로드] 계약서.pdf를 다운로드했습니다.

📄 SharePoint - 협업 문서

SharePoint 사이트 목록

사용자: SharePoint 사이트 목록 보여줘
KIRA: [SharePoint 조회]
      1. Team Site - https://blueholestudio.sharepoint.com/team
      2. Project Site - https://blueholestudio.sharepoint.com/project

SharePoint 파일 검색

사용자: SharePoint에서 "분기 보고서" 찾아줘
KIRA: [SharePoint 검색]
      1. Q1_보고서_최종.docx - Team Site
      2. 분기별_실적_보고서.xlsx - Project Site

📅 Calendar - 일정 관리

일정 조회

사용자: 오늘 일정 보여줘
KIRA: [Calendar 조회]
      1. 10:00 - 팀 미팅 (회의실 A)
      2. 14:00 - 클라이언트 미팅 (Zoom)
      3. 16:00 - 1:1 면담

일정 생성

사용자: 내일 오후 3시에 프로젝트 킥오프 미팅 일정 잡아줘
KIRA: [Calendar 생성] 일정을 추가했습니다.

🔧 문제해결

"Authentication failed"

  • Client ID와 Tenant ID 확인
  • Azure Portal에서 앱이 활성화되었는지 확인
  • "Allow public client flows"가 Yes로 설정되었는지 확인

"Insufficient permissions"

  • Azure Portal > API Permissions 확인
  • 필요한 권한이 모두 추가되었는지 확인
  • Admin Consent가 승인되었는지 확인

OAuth 브라우저가 열리지 않음

  • 방화벽에서 localhost 차단 확인
  • 브라우저 팝업 차단 해제
  • 로그에서 에러 메시지 확인

"Redirect URI mismatch"

  • Azure App Registration의 Redirect URI 확인
  • http://localhost 정확히 입력
  • Platform이 "Public client/native"인지 확인

💡 팁

보안 강화

  • 최소 권한 원칙 적용
  • 필요한 권한만 부여
  • 정기적으로 권한 검토

효율적인 사용

  • SharePoint URL을 미리 저장해두기
    • 예: https://blueholestudio-my.sharepoint.com/
  • 이메일 검색 시 키워드 명확히 지정
  • OneDrive 폴더 구조 정리
  • 자동 분류 기능 활용

조직 계정 사용

  • IT 관리자에게 앱 승인 요청
  • 조직 정책 확인
  • Multi-factor Authentication 설정

🔗 관련 문서