Skip to main content
Glama
oliverhruby

Microsoft Graph MCP Server

by oliverhruby

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoHTTP bind host127.0.0.1
MCP_PORTNoHTTP bind port3000
MCP_API_KEYNoBearer token required for HTTP transport
MCP_TRANSPORTNostdio or streamable-httpstdio
MSGRAPH_CLOUDNoSovereign cloud: global, us_gov_l4, us_gov_l5, china, germanyglobal
MSGRAPH_SCOPESNoComma-separated extra scopes(built-in defaults)
MSGRAPH_BASE_URLNoOverride Graph base URL(from cloud)
MSGRAPH_TOOLSETSNoReserved for future per-workload gatingcore
MSGRAPH_AUTH_MODENoAuthentication mode. One of: interactive, device_code, client_secret, certificate, obo, managed_identity, managed_identity_user, pre_token.interactive
MSGRAPH_CERT_PATHNoPath to PEM cert (certificate mode)
MSGRAPH_CLIENT_IDNoEntra app (client) ID
MSGRAPH_LOG_LEVELNoPython log levelWARNING
MSGRAPH_MAX_PAGESNoMax pages auto-paginated per collection50
MSGRAPH_READ_ONLYNotrue disables every write toolfalse
MSGRAPH_TENANT_IDNoEntra tenant IDcommon
MSGRAPH_API_VERSIONNov1.0 or betav1.0
MSGRAPH_ACCESS_TOKENNoPre-acquired token (pre_token)
MSGRAPH_CERT_PASSWORDNoOptional cert password
MSGRAPH_CLIENT_SECRETNoApp secret (client_secret / obo)
MSGRAPH_TOKEN_CACHE_PATHNoToken cache location~/.msgraph-mcp/token_cache.json

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_sign_in_logsD
get_sign_in_logD
list_directory_audit_logsD
list_provisioning_logsD
batch_requestA

Execute up to 20 Graph requests in one round trip. requests_json: JSON array of {id, method, url, body?, headers?}. Relative URLs like '/me/messages' are relative to the selected API version.

list_upcoming_eventsC

List upcoming events from the user's default calendar.

list_events_in_rangeB

List events in a date range. Dates in ISO 8601 format.

get_eventD
list_event_instancesB

List instances of a recurring event in a date range.

list_event_attachmentsD
list_calendarsD
list_calendars_in_groupD
list_roomsD
find_meeting_timesC

Find meeting slots. attendees: semicolon-separated email addresses.

get_scheduleC

Get free/busy schedule. availability_views: semicolon-separated email addresses.

create_eventB

Create a calendar event. Dates in ISO 8601. attendees: semicolon-separated emails.

update_eventD
cancel_eventD
respond_to_eventC

Respond to event. response: 'tentativelyAccept', 'accept', 'decline'.

create_subscriptionC

Create a webhook subscription for a resource. resource: e.g. 'me/messages', 'me/events', 'me/drive/root'.

list_subscriptionsD
reauthorize_subscriptionB

Reauthorize an expiring subscription.

delete_subscriptionD
delta_queryC

Execute a delta query on a resource. resource: 'me/messages', 'me/events', 'me/contacts', 'me/drive/root'.

list_chatsD
get_chatD
list_chat_messagesD
list_chat_membersD
send_chat_messageC

Send a message to a chat. content_type: 'text' or 'html'.

create_chatA

Create a chat. chat_type: 'group' or 'oneOnOne'. members: semicolon-separated UPNs.

search_messagesC

Search Teams messages using Microsoft Search KQL.

list_contactsD
get_contactD
list_contact_foldersD
list_folder_contactsD
create_contactD
update_contactD
delete_contactD
list_managed_devicesD
get_managed_deviceD
list_directory_devicesA

List directory (Entra) devices, not Intune-managed devices.

list_device_configurationsD
list_compliance_policiesD
list_mobile_appsD
get_mobile_appD
get_organizationD
list_directory_rolesD
list_directory_role_membersD
list_administrative_unitsD
get_administrative_unitD
list_administrative_unit_membersD
list_org_contactsD
get_org_contactD
get_objects_by_idsC

Resolve multiple object IDs in one call. ids: comma-separated GUIDs.

list_worksheetsB

List worksheets in an Excel workbook stored in OneDrive/SharePoint.

get_used_rangeC

Get the used (data) range of a worksheet.

read_rangeB

Read cell values from a range. address: e.g. 'A1:C10' or 'A1'.

list_tablesD
list_table_rowsD
write_rangeC

Write values to a range. values_json: JSON 2D array, e.g. '[["A",1],["B",2]]'.

append_table_rowB

Append a row to a table. values_json: JSON 1D array of cell values.

update_table_rowC

Update a table row. index: 0-based row index.

create_tableC

Create a table from a range. address: e.g. 'A1:D10'.

create_sessionA

Create a persistent Excel session for batch operations. Returns session ID.

list_recent_filesD
list_shared_with_meD
list_root_filesD
get_fileD
get_file_contentB

Get file content (returns base64-encoded).

list_folder_childrenD
list_file_versionsD
list_permissionsD
search_filesD
create_folderD
upload_fileC

Upload a file. content_base64: base64-encoded file content.

create_upload_sessionB

Create an upload session for large files (>4MB). Returns upload URL.

update_fileD
delete_fileD
copy_fileD
move_fileD
create_sharing_linkB

Create a sharing link. link_type: 'view', 'edit', 'embed'. scope: 'anonymous', 'organization', 'users'.

revoke_sharing_linkD
list_group_drive_filesD
list_groupsD
get_groupD
list_group_membersD
list_group_ownersD
list_transitive_membersD
create_groupD
add_memberD
remove_memberD
delete_groupD
list_access_reviewsD
get_access_reviewD
list_access_packagesD
list_directory_role_assignmentsC

List Entra ID directory role assignments (PIM-adjacent).

list_directory_role_definitionsD
list_messagesD
get_messageD
list_attachmentsD
download_attachmentA

Get attachment content (returns base64-encoded bytes).

list_mail_foldersD
list_folder_messagesD
list_inbox_rulesD
send_mailC

Send email. to_recipients/cc_recipients: semicolon-separated email addresses.

create_draftA

Create a mail draft for user review (does not send).

send_draftD
reply_to_messageD
reply_all_to_messageD
forward_messageD
update_messageD
move_messageD
delete_messageD
get_mailbox_settingsD
update_mailbox_settingsC

Update mailbox settings. automatic_replies_status: 'enabled', 'disabled', or 'scheduled'.

delta_messagesC

Get message changes. For first call, omit delta_token. start_date_time: ISO 8601.

list_notebooksD
list_sectionsD
list_notebook_sectionsD
list_section_pagesD
list_section_groupsD
get_page_contentA

Get OneNote page content as HTML.

get_pageD
create_pageC

Create a OneNote page. html_content: HTML body content.

update_page_contentD
delete_pageD
copy_section_to_notebookC

Copy a section to a notebook.

create_online_meetingC

Create a Teams online meeting. participants: semicolon-separated emails (optional).

list_online_meetingsD
get_online_meetingD
list_transcriptsD
get_transcript_contentD
list_attendance_reportsD
list_meeting_recordingsD
list_all_transcriptsC

List all transcripts for a meeting.

people_searchB

Search people using the relevance graph (colleagues ranked by interaction).

list_trendingD
list_usedD
list_shared_insightsD
get_my_rich_profileD
list_my_planner_plansD
list_group_plansD
list_bucketsD
list_planner_tasksD
list_my_tasksD
get_task_detailsD
create_planner_taskC

Create a planner task. assignments: comma-separated user IDs to assign.

update_planner_taskA

Update a planner task. Requires If-Match header (use etag from the task).

create_planner_planD
create_planner_bucketD
delete_planner_taskD
get_my_presenceD
get_user_presenceD
get_presences_by_user_idA

Get presence for multiple users. user_ids: comma-separated GUIDs.

set_user_presenceC

Set presence. availability/activity: e.g. 'Available'/'Available', 'Busy'/'InACall'.

get_active_user_reportC

Get M365 active user detail report. period: 'D7', 'D30', 'D90', 'D180'.

get_teams_user_activityD
get_mailbox_usageD
get_onedrive_usageD
get_sharepoint_usageD
search_queryB

Unified Microsoft Search (KQL). entity_types: comma-separated (message, driveItem, site, listItem, person, event).

search_externalC

Search a specific Microsoft Graph connector (externalItem).

list_security_alertsC

List Microsoft 365 Defender alerts (v2).

get_security_alertD
list_security_incidentsD
get_security_incidentD
list_secure_scoresD
list_secure_score_controlsD
search_sitesA

Search SharePoint sites by name/description.

get_root_siteD
get_site_by_pathA

Get a site by its full path. hostname: e.g. 'contoso.sharepoint.com'. path: e.g. 'sites/marketing' or '' for root.

get_siteD
list_sub_sitesD
list_site_drivesA

List document libraries (drives) on a site.

list_listsD
get_listD
list_list_itemsC

List items in a SharePoint list. Use expand_fields=true to get column values.

list_list_items_with_fieldsA

List SharePoint list items with all column values expanded.

get_list_itemD
create_list_itemB

Create a list item. fields_json: JSON object of {columnName: value}.

update_list_itemB

Update list item fields. fields_json: JSON object of {columnName: value}.

delete_list_itemD
list_columnsB

List column schema of a SharePoint list.

list_content_typesD
list_site_pagesD
list_my_teamsD
list_all_teamsD
get_teamD
list_channelsD
get_channelD
list_channel_messagesD
get_channel_messageD
list_message_repliesD
send_channel_messageB

Send message to a Teams channel. content_type: 'text' or 'html'.

list_team_membersD
create_channelC

Create a channel. membership_type: 'standard' or 'private'.

list_installed_appsD
list_team_tabsD
list_todo_listsD
list_todo_tasksD
get_todo_taskD
create_todo_listD
create_todo_taskB

Create a To Do task. due_date: YYYY-MM-DD. importance: 'low', 'normal', 'high'.

update_todo_taskC

Update a To Do task. status: 'notStarted', 'inProgress', 'completed', 'deferred'.

delete_todo_taskD
add_checklist_itemD
list_checklist_itemsD
get_my_profileD
get_userD
list_usersD
get_user_photoC

Get user profile photo (returns metadata, not bytes).

get_direct_reportsD
get_user_managerD
get_transitive_member_ofD
get_user_licensesD
check_member_groupsC

Check if user belongs to groups. group_ids: comma-separated GUIDs.

update_userD
get_my_managerD
get_my_groupsD

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/oliverhruby/msgraph-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server