MCP Uptime
← MCP Reliability Index  /  Databases
M

M365 Graph MCP

work.mcps/m365-graph
Manage Microsoft 365 email, calendar, contacts and inbox rules via the Graph API with OAuth 2.0.
healthy
status
34
tools exposed
995ms
connect latency
33779e3bd4ee
schema fingerprint

Tools (34)

m365_list_messages
List messages from a user or shared mailbox folder. Supports search, OData filtering, folder scoping, and pagination. Args: mailbox: Target mailbox UPN/ID. folder_id: Folder ID or well-known name. search: Free-text search string. filt
m365_get_message
Retrieve the full content of a single message by ID. Args: message_id: The message ID. mailbox: Target mailbox UPN/ID. response_format: 'markdown' or 'json'. Returns: str: Markdown rendering or full JSON message resource.
m365_send_mail
Send a new e-mail from a user or shared mailbox. In test mode (GRAPH_TEST_MODE=true) all recipients are redirected to the approved test address. Graph sends only from M365 mailboxes; a Gmail address cannot be a sender. Args: subject: Message subject.
m365_reply_message
Reply (or reply-all) to an existing message. Args: message_id: ID of the message to reply to. comment: Reply text to prepend. reply_all: Reply to all recipients. mailbox: Target mailbox UPN/ID. Returns: str: Confirmation s
m365_create_draft
Create a draft message without sending it. Args: subject: Draft subject. body: Draft body content. to_recipients: Recipient addresses. body_type: Body type: 'HTML' or 'Text'. mailbox: Target mailbox UPN/ID. Returns:
m365_move_message
Move a message to a different mail folder. Args: message_id: ID of the message to move. destination_folder_id: Destination folder ID or well-known name. mailbox: Target mailbox UPN/ID. Returns: str: JSON with the new message id, or "E
m365_delete_message
Delete a message (moves it to Deleted Items). Args: message_id: ID of the message to delete. mailbox: Target mailbox UPN/ID. Returns: str: Confirmation string or "Error: <message>".
m365_list_mail_folders
List mail folders in a user or shared mailbox. Supports three modes: - Top-level folders (default) - Direct children of a specific parent (parent_folder_id) - Full recursive subfolder tree (recursive=true) Args: mailbox: Target mailbox UPN/ID.
m365_create_mail_folder
Create a mail folder, optionally nested under a parent folder. Args: display_name: Folder name to create. parent_folder_id: Parent folder ID or well-known name (e.g. 'inbox'). Omit for mailbox root. mailbox: Target mailbox UPN/ID. Returns:
m365_rename_mail_folder
Rename an existing mail folder. Args: folder_id: ID of the folder to rename. display_name: New folder name. mailbox: Target mailbox UPN/ID. Returns: str: JSON with folder id and new displayName, or "Error: <message>".
m365_delete_mail_folder
Delete a mail folder and all messages it contains. This is destructive: deleting a folder removes its contents. Args: folder_id: ID of the folder to delete. mailbox: Target mailbox UPN/ID. Returns: str: Confirmation string or "Error: <me
m365_list_events
List calendar events, optionally within a date range. When both start and end are supplied, uses Graph calendarView to expand recurring events across the window. Args: mailbox (Optional[str]): Target mailbox UPN/ID. start_datetime (Optional[str]): IS
m365_get_event
Retrieve full detail of a single event by ID. Args: event_id (str): The event ID. mailbox (Optional[str]): Target mailbox UPN/ID. response_format (str): 'markdown' or 'json'. Returns: str: Markdown detail or full JSON event resource.
m365_create_event
Create a calendar event, optionally as a Teams online meeting. Attendee addresses are redirected to the approved test recipient in test mode (GRAPH_TEST_MODE=true). Args: subject (str): Event subject. start_datetime (str): ISO 8601 start (e.g. '2026-
m365_update_event
Update fields on an existing event. Only supplied fields change. Args: event_id (str): The event ID. subject (Optional[str]): New subject. start_datetime (Optional[str]): New ISO 8601 start. end_datetime (Optional[str]): New ISO 8601 end.
m365_delete_event
Delete (cancel) a calendar event. Args: event_id (str): The event ID. mailbox (Optional[str]): Target mailbox UPN/ID. Returns: str: Confirmation string or "Error: <message>".
m365_get_free_busy
Query free/busy availability for one or more mailboxes. Args: schedules (List[str]): Mailbox addresses to check. start_datetime (str): ISO 8601 window start. end_datetime (str): ISO 8601 window end. time_zone (str): Time zone for the window.
m365_list_contacts
List contacts in a user or shared mailbox. Args: mailbox (Optional[str]): Target mailbox UPN/ID. search (Optional[str]): displayName prefix filter. top (int): Max contacts to return. skip (int): Contacts to skip (pagination). respo
m365_get_contact
Retrieve a single contact by ID. Args: contact_id (str): The contact ID. mailbox (Optional[str]): Target mailbox UPN/ID. response_format (str): Output format: 'markdown' or 'json'. Returns: str: Markdown detail or full JSON contact re
m365_create_contact
Create a new contact. Args: given_name (str): First name. surname (Optional[str]): Last name. email_addresses (Optional[List[str]]): E-mail addresses. mobile_phone (Optional[str]): Mobile number. business_phones (Optional[List[str]
m365_update_contact
Update fields on a contact. Only supplied fields change. Note: email_addresses replaces the entire existing list. Args: contact_id (str): The contact ID. given_name (Optional[str]): First name. surname (Optional[str]): Last name. emai
m365_delete_contact
Delete a contact. Args: contact_id (str): The contact ID. mailbox (Optional[str]): Target mailbox UPN/ID. Returns: str: Confirmation string or "Error: <message>".
m365_discover_mailboxes
Discover mailboxes in the directory (users and shared mailboxes). Useful to find the address of a shared mailbox before targeting it with Mail, Calendar, or Contacts tools via their `mailbox` parameter. Requires the User.Read.All application permission. Args:
m365_get_mailbox_settings
Read a mailbox's settings, including time zone and auto-replies. Requires MailboxSettings.Read (or ReadWrite) application permission. Args: mailbox (str): Target mailbox UPN/ID. response_format: 'json' (default) or 'markdown'. Returns: s
m365_set_auto_reply
Configure automatic replies (out-of-office) on a mailbox. Requires MailboxSettings.ReadWrite application permission. Args: mailbox (str): Target mailbox UPN/ID. internal_message (str): Reply for internal senders. status: 'disabled' | 'alwaysEnabl
m365_list_rules
List all inbox rules for a user or shared mailbox. Args: mailbox (Optional[str]): Target mailbox UPN/ID. response_format (str): 'markdown' or 'json'. Returns: str: Markdown summary or JSON with schema: {"items": [rule...], "count"
m365_get_rule
Retrieve a single inbox rule by ID. Args: rule_id (str): The rule ID. mailbox (Optional[str]): Target mailbox UPN/ID. response_format (str): 'json' (default) or 'markdown'. Returns: str: Full JSON rule resource or Markdown summary.
m365_create_rule
Create an inbox rule from common conditions and actions. At least one action must be supplied. Forward targets are redirected to the approved test address in test mode. Args: display_name (str): Rule name. sequence (int): Execution order among rules
m365_update_rule
Update an inbox rule. Only supplied fields change. Supplying any condition field replaces the rule's conditions block; supplying any action field replaces the actions block. Metadata (name, sequence, enabled) is patched independently. Args: rule_id (str)
m365_delete_rule
Delete an inbox rule. Args: rule_id (str): The rule ID. mailbox (Optional[str]): Target mailbox UPN/ID. Returns: str: Confirmation string or "Error: <message>".
sap_get_business_partners
Query Business Partners from SAP B1.
sap_get_items
Query Items and stock levels from SAP B1.
sap_get_sales_orders
Query Sales Orders from SAP B1.
sap_query_entity
Query any authorised SAP B1 entity (e.g., Invoices, PurchaseOrders).

Endpoint

https://mcps.work/mcp
Category: Databases · Last checked: 2026-07-30T14:04:21Z

Monitor your own MCP server

Get alerted the moment yours goes down, a tool schema drifts, or an upstream silently breaks.

Get early access
How we measure →
What this means. This server responded to the MCP handshake and listed its tools without authentication. The schema fingerprint lets us flag if tool signatures silently change (schema drift) between checks.