ms-graph-mcp
@developer.k/ms-graph-mcp
Microsoft Graph 및 Microsoft 365를 위한 모듈식 Model Context Protocol 서버입니다.
위임된 디바이스 코드 인증을 사용하며 Teams, Outlook 메일, Calendar, Microsoft To Do, Contacts, 사서함 설정, Outlook 범주용 도구를 제공합니다.
릴리스 노트와 업그레이드 요구 사항은 변경 로그에서 확인하세요.
기능
모듈 | 기능 |
Graph | 디바이스 코드 인증, 인증 상태, 로그인 사용자 프로필 |
Teams | Teams, 채널, 채널 메시지, 채팅, 채팅 멤버, 나와의 채팅 메시지 |
폴더, 메시지 검색, 첨부 파일, 초안, 보내기/답장/전달, 플래그, 범주, 이동/삭제, 받은 편지함 규칙 | |
Calendar | 일정, 날짜 범위 이벤트 보기, 이벤트, 온라인 모임, 초대, 사용 가능/사용 중, 회의 추천 |
To Do | 작업 목록, 작업, 반복 일정, 미리 알림, 완료, 체크리스트 항목, 연결된 리소스 |
Contacts | 연락처 폴더 및 일반 개인·업무 필드를 포함한 연락처 |
Outlook | 사서반 설정, 근무 시간, 자동 회신, 마스터 범주 |
요구 사항
Node.js 18 이상
공용 클라이언트 흐름이 활성화된 Microsoft Entra 앱 등록
사용 중인 모듈에 필요한 Microsoft Graph 위임 권한
Mail, Calendar, Contacts 및 사서함 설정 기능을 위한 Exchange Online 또는 Outlook.com 사서함
Teams 채팅 및 채널 API를 위한 Teams가 포함된 Microsoft 365 또는 Office 365 라이선스
calendar_get_schedule와 calendar_find_meeting_times는 회사 또는 학교 계정용이며 개인 Microsoft 계정에서는 지원되지 않습니다.
개인 Outlook.com 계정을 사용하는 경우 개인 Microsoft 계정을 지원하는 앱을 등록하고 MS_TENANT_ID를 common으로 설정하세요.
앱을 등록하고, 권한을 추가하고, 공용 클라이언트 흐름을 사용하도록 설정하려면 스크린슷 기반의 Microsoft Graph API 설정 가이드를 참조하세요.
위임된 권한
기본 범위 집합은 포함된 모든 모듈에 필요한 권한을 요청합니다.
모듈 | 권한 |
Core |
|
Teams |
|
| |
Calendar |
|
To Do |
|
Contacts |
|
Outlook 설정, 범주 및 규칙 |
|
일부 테넛트 정책은 관리자 동의가 필요합니다. 선택한 모듈만 필요한 경우 MS_GRAPH_SCOPES로 더 작은 권한 집합을 요청하세요.
빠른 시작
npx 조동 게시된 패키지를 실행하도록 MCP 클라이언트를 설정하세요. 구성 값은 MCP 클라이언트의 env 블록에 바로 넣을 수 있으며, 별도의 셸 환경 변수는 필요하지 않습니다.
{
"mcpServers": {
"ms-graph": {
"command": "npx",
"args": ["-y", "@developer.k/ms-graph-mcp"],
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_TENANT_ID": "organizations"
}
}
}
}device_auth_device_code를 호출하고, 반환된 로그인 URL을 열어 디바이스 코드를 입력한 후 graph_auth_status를 호출하세요. 권한을 추가했거나 이전 디바이스 코드 흐름이 만료된 경우에는 force: true를 사용하세요.
구성
필수:
MS_CLIENT_ID: Microsoft Entra Application(클라이언트) ID.
선택:
MS_TENANT_ID:organizations,common또는 Directory(테넛트) ID. 기본값:organizations.MS_GRAPH_SCOPES: 기본 범위 집합을 대체하는 쉼표 또는 공백으로 구분된 위임된 범위입니다.MS_GRAPH_TOKEN_CACHE_PATH: 로컬 MSAL 토큰 캐시 경로입니다.MS_GRAPH_ACCOUNT_USERNAME: 캐시된 계정이 여러 개일 때 선택할 캐시된 계정입니다.
읽기에 적합한 사용자 지정 범위 집합 예:
{
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_TENANT_ID": "organizations",
"MS_GRAPH_SCOPES": "User.Read Mail.Read Calendars.Read Tasks.Read Contacts.Read MailboxSettings.Read offline_access"
}
}도구
Graph:
graph_auth_device_code
graph_auth_status
graph_get_meTeams:
teams_list_joined_teams
teams_list_channels
teams_list_channel_messages
teams_send_channel_message
teams_list_chats
teams_list_chat_messages
teams_list_chat_members
teams_find_self_chat
teams_send_chat_message
teams_send_self_messageMail:
mail_list_folders
mail_list_messages
mail_get_message
mail_list_attachments
mail_get_attachment
mail_add_attachment
mail_create_draft
mail_update_draft
mail_create_reply_draft
mail_create_forward_draft
mail_send_draft
mail_send_message
mail_reply
mail_reply_all
mail_forward
mail_update_message
mail_move_message
mail_delete_message
mail_list_rules
mail_create_rule
mail_update_rule
mail_delete_ruleCalendar:
calendar_list_calendars
calendar_get_calendar
calendar_create_calendar
calendar_update_calendar
calendar_delete_calendar
calendar_list_events
calendar_get_event
calendar_create_event
calendar_update_event
calendar_delete_event
calendar_cancel_event
calendar_respond_event
calendar_get_schedule
calendar_find_meeting_timesMicrosoft To Do:
todo_list_task_lists
todo_get_task_list
todo_create_task_list
todo_update_task_list
todo_delete_task_list
todo_list_tasks
todo_get_task
todo_create_task
todo_update_task
todo_complete_task
todo_delete_task
todo_list_checklist_items
todo_create_checklist_item
todo_update_checklist_item
todo_delete_checklist_item
todo_list_linked_resources
todo_create_linked_resource
todo_delete_linked_resourceContacts:
contacts_list_folders
contacts_get_folder
contacts_create_folder
contacts_update_folder
contacts_delete_folder
contacts_list
contacts_get
contacts_create
contacts_update
contacts_deleteOutlook 설정 및 범주:
outlook_get_mailbox_settings
outlook_update_mailbox_settings
outlook_set_automatic_replies
outlook_list_categories
outlook_get_category
outlook_create_category
outlook_update_category
outlook_delete_category예시 프롬프트
Show the 10 most recent unread messages in my Inbox.
Find messages containing "quarterly report" and summarize their subjects and senders.
Create a draft reply to this message, but do not send it.
Create a draft email to user@example.com with the subject "Project update".
Send draft MESSAGE_ID after showing me its current recipients and subject.
Move message MESSAGE_ID to folder FOLDER_ID.Show my calendar events for next week in Asia/Seoul.
Find a 30-minute time when all three attendees are available.
Create a Teams online meeting tomorrow at 2 PM.
Accept event EVENT_ID and send a response.List my Microsoft To Do task lists.
Add a high-priority task due Friday with a reminder one day earlier.
Add three checklist items to task TASK_ID.
Mark task TASK_ID as completed.Find the contact with email user@example.com.
Create a business contact in folder FOLDER_ID.
Schedule automatic replies from Monday morning through Friday evening.
Create an Outlook category named "Customer" using preset7.수신자와 내용을 검토할 수 있도록 메일 보내기 도구보다 초안(draft) 도구를 먼저 사용하세요. 보내기, 답장, 전달, 취소, 이동, 삭제 도구는 실제 Microsoft 365 데이터를 변경합니다.
로컬 개발
이 섹션은 로컬 저장소에서 실행하는 경우에만 사용하세요.
npm install
npm test{
"mcpServers": {
"ms-graph": {
"command": "node",
"args": ["/path/to/ms-graph-mcp/build/index.js"],
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_TENANT_ID": "organizations"
}
}
}
}프로젝트 구조
src/
|-- auth/
| +-- msal.ts
|-- graph/
| +-- client.ts
|-- modules/
| |-- calendar.ts
| |-- contacts.ts
| |-- mail.ts
| |-- outlook.ts
| |-- shared.ts
| |-- teams.ts
| +-- todo.ts
|-- config.ts
|-- index.ts
|-- tools.ts
+-- types.ts현재 제한 사항
도구는 로그인한 사용자의
/me리소스에 대해 동작합니다. 공유 사서함과 위임된 공유 폴더는 아직 사용할 수 없습니다.웹훅 구독은 포함되지 않고, 표준 stdio MCP 서버에는 영구 공용 콜백 엔드포인트가 없습니다.
일반 파일 첨부는 3 MiB로 제한됩니다. 큰 첨부에는 Microsoft Graph 업로드 세션이 필요합니다.
연락처 필터링은 이메일 주소 정확히 일치를 지원합니다. Microsoft Graph는 연락처 컬렉션에 대한 일반 이름 검색을 제공하지 않습니다.
이벤트 및 메시지 본문에는 Microsoft Graph가 제공하는 외부 HTML이 포함될 수 있습니다.
이 패키지에는 자격 증명, 테넌트 식별자, 계정 식별자 또는 기타 개인 설정이 포함되어 있지 않습니다.
This server cannot be installed
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 Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Official Microsoft MCP Server to query Microsoft Entra data using natural language
A Model Context Protocol server for Wix AI tools
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/CodyBuilder-dev/ms-graph-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server