Labsco
MCP SERVER

Graph MCP

by JustStas

Microsoft 365 from your coding assistant — Teams chats and channels, Outlook mail and calendar, meetings, OneDrive, presence and tasks.

Office Suites & Cloud File StorageVerified
Summary
The Microsoft 365 surface an assistant needs, running locally under your own account.

The details show someone who used it: delta sync so a second mail call returns only changes, bulk actions reported per message so a partial failure is legible, and cancel_event distinguished from delete_event because one notifies attendees and the other quietly does not. The setup cost is real — an Entra app registration and a long scope list, some of which needs admin consent.

What it is

A local MCP server over Microsoft Graph. It runs over stdio using delegated user authentication — you sign in through a browser and it acts as you — covering Teams messaging, mail, calendar, online meetings with their transcripts and recordings, OneDrive and SharePoint files, contacts, presence and tasks.

What you get
  • graph_auth_status, graph_auth_login and graph_auth_logout — sign in through the browser, check the session, and clear stored tokens
  • graph_list_chats, graph_get_chat_messages, graph_send_chat_message, graph_create_chat, graph_update_chat_message and graph_react_to_message — Teams chats end to end, with a compact mode that narrows messages to identifying fields
  • graph_list_teams, graph_list_channels, graph_get_channel_messages, graph_send_channel_message, graph_reply_to_channel_message and graph_get_channel_files_folder — teams and channels, and the bridge from a channel to its SharePoint folder
  • graph_list_mail, graph_read_mail, graph_search_mail, graph_send_mail, graph_reply_mail, graph_forward_mail and graph_get_mail_delta — the mailbox, including delta sync so a follow-up call returns only what changed
  • graph_move_mail, graph_delete_mail, graph_mark_mail_read, graph_flag_mail and graph_categorize_mail — bulk actions over 1 to 50 messages, reported per message so a partial failure still tells you what moved
  • graph_create_mail_draft, graph_add_mail_attachment and graph_send_mail_draft — build a draft, attach a file up to 3MB, then send it
  • graph_list_message_rules, graph_create_message_rule and graph_delete_message_rule — inbox rules Exchange runs on incoming mail
  • graph_list_events, graph_create_event, graph_update_event, graph_cancel_event, graph_respond_to_event and graph_list_event_instances — calendar events including recurrence, with cancel notifying attendees where delete does not
  • graph_get_schedule, graph_find_meeting_times and graph_list_rooms — free/busy for people or rooms, scored time suggestions, and bookable rooms
  • graph_create_online_meeting, graph_list_meeting_transcripts, graph_get_meeting_transcript_content, graph_list_meeting_recordings and graph_get_meeting_attendance — a Teams meeting with its join link, the transcript as timestamped VTT with speaker attribution, recordings, and who actually joined and for how long
  • graph_list_files, graph_search_files, graph_get_file_content, graph_upload_file, graph_share_file, graph_invite_to_file, graph_list_file_permissions and graph_list_file_versions — OneDrive and SharePoint content, sharing and version history
  • graph_get_worksheet_range and graph_update_worksheet_range — read and write Excel cell ranges in .xlsx workbooks
  • graph_search_all, graph_search_messages, graph_search_people and graph_search_users — one relevance-ranked query across mail, calendar, files and Teams, or targeted search per object
  • graph_get_my_presence, graph_set_my_presence, graph_get_presences_by_user_ids and graph_set_status_message — presence for yourself or up to 650 people in one round trip
  • graph_list_todo_tasks, graph_create_todo_task, graph_update_todo_task and graph_list_my_planner_tasks — Microsoft To Do lists and tasks, and Planner tasks assigned to you
  • graph_get_mailbox_settings, graph_set_automatic_replies and graph_update_mailbox_settings — out-of-office, time zone and working hours
Requirements

Node.js 22 or newer, and a Microsoft Entra ID app registration set up as a public client on the Mobile and desktop applications platform with redirect URI http://localhost:3000/auth/callback. No client secret — authentication is delegated, so it acts with your own permissions. The delegated scopes it needs are listed in the repository and range from User.Read to Files.ReadWrite.All; several, including TeamMember.Read.All, require administrator consent in most organizations.

Setup effort

One command plus a key — npm install --global @juststas/graph-mcp, then supply credentials