Outlook MCP logo

Outlook MCP

Unclaimed

by mpalermiti

MCP server for Microsoft Outlook personal accounts via Microsoft Graph API. 62 tools across 13 categories — mail, calendar, contacts, tasks, drafts, attachments, delta queries, digest, bulk read. Community project, not affiliated with Microsoft.

Set up this server

01 / Choose your client

02 / Before you connect

Authentication is not specified. Check the project instructions before connecting.

Install the runtime required by the project and make it available to your client.

Project instructions

Use names from the project instructions, separated by commas. Enter names only, never secret values.

03 / Add the configuration

Source: generated from public install instructions

claude mcp add --transport stdio 'mpalermiti-outlook-mcp' -- 'uvx' 'outlook-graph-mcp'

Run in your terminal after replacing any placeholders.

04 / Check it in your client

Open your client’s MCP settings and confirm the server connects and lists its tools. A copied configuration does not confirm a working connection.

calendaremailmcpmicrosoft-graphopenclawoutlook

More in Communication

Browse the full directory

Unclaimed listing

Is this your MCP server?

This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.

Claim this server

Security profile

Claimed and verified servers get a weekly static scan that shows what the code can reach: external services, environment variables, shell commands, agent configuration folders, plus any dependencies with known advisories. Claim this listing to get one. How the security profile works

40 of 40 tools

Documented tools (40)

From project documentation. A server handshake does not verify each tool’s description or behavior.

outlook_auth_status

Check if authenticated and whether read-only mode is active.

outlook_categorize_message

Set categories on a message.

outlook_changes_since

One structured "since last call" digest composing mail/events/contacts deltas. Returns counts + urgentflagged mail + top-5 bysender + new/cancelled events. Each resource has an independent deltatoken; stale-token recovery (HTTP 410) auto-resyncs that resource and surfaces meta.resync. First-call sna

outlook_complete_task

Mark task as completed.

outlook_create_contact

Create a new contact.

outlook_create_event

Create event with location, attendees, recurrence, online meeting support.

outlook_create_task

Create task with due date, importance, recurrence.

outlook_delete_contact

Delete a contact.

outlook_delete_event

Delete a calendar event.

outlook_delete_inbox_override

Delete a Focused Inbox override by ID.

outlook_delete_message

Delete a message. Soft delete (Deleted Items) by default. permanent: true for hard delete.

outlook_delete_task

Delete a task.

outlook_flag_message

Set follow-up flag: flagged, complete, or notFlagged.

outlook_forward

Forward a message to one or more recipients with optional comment.

outlook_get_contact

Get full contact details by ID.

outlook_get_event

Get full event details: attendees, body, online meeting URL, recurrence.

outlook_list_contacts

List contacts with cursor pagination.

outlook_list_contacts_delta

List only contact changes since the last call. Deletes come back as {id, isdeleted: True}. Cursor is stateless.

outlook_list_events

List events in a date range. Expands recurring events. Configurable via days, after, before.

outlook_list_events_delta

List only event changes inside a window since the last call. start and end (ISO 8601) required on the first call (Graph constraint — no whole-calendar sync). Deletes come back as {id, isdeleted: True}. Cursor is stateless.

outlook_list_folders

List mail folders with counts, parentid, and childcount. Pass recursive=true to walk the full folder tree (subfolders included).

outlook_list_inbox

List messages in a folder. folder accepts display names, well-known names, or Graph IDs. Filter by read status, sender, date range, Focused Inbox classification. Pagination via skip.

outlook_list_inbox_delta

List only inbox changes since the last call. First call returns a full snapshot plus a deltatoken; subsequent calls (token passed back) return only added/updated/deleted items. Deletes come back as {id, isdeleted: True}. Cursor is stateless — agent persists and replays.

outlook_list_inbox_overrides

List Focused Inbox per-sender override rules.

outlook_list_task_lists

List To Do lists.

outlook_list_tasks

List tasks with status filter and pagination.

outlook_mark_read

Mark a message as read or unread.

outlook_move_message

Move a message to a folder by name or ID.

outlook_read_message

Get full message by ID. Format: text, html, or full (both). Pass includedeferredsend=True to also surface the draft's scheduled delivery time.

outlook_read_messages

Bulk read up to 20 messages by ID via Graph $batch in one round-trip. Per-message shape matches outlookreadmessage byte-for-byte for the same (format, concise, includedeferredsend). Partial-failure tolerant: 404s on some IDs surface in failures[] without failing the whole call. Use NOT N outlookread

outlook_reclassify_message

Move a message between Focused Inbox and Other (focused / other).

outlook_reply

Reply or reply-all to a message.

outlook_rsvp

RSVP to an event: accept, decline, or tentative. Optionally include a message.

outlook_search_contacts

Search contacts by name or email.

outlook_search_mail

Search mail using KQL query. Optionally scope to a folder by name or ID.

outlook_send_message

Send email. Supports TO/CC/BCC, HTML body, importance level.

outlook_set_inbox_override

Upsert a per-sender Focused Inbox override (focused / other). Case-insensitive sender matching; PATCH-if-exists, else POST.

outlook_update_contact

Update contact fields.

outlook_update_event

Update event fields (subject, time, location, body). Only patches changed fields.

outlook_update_task

Update task fields.

Tool change history

Compared across complete checks of the same configuration. Tools were listed, not invoked. Input-schema changes are not measured here.

No complete tool checks yet.

FAQ

Questions about Outlook MCP Server

How do I connect Outlook MCP Server to Claude?
Run `claude mcp add mpalermiti-outlook-mcp -- uvx outlook-graph-mcp` in Claude Code, or add the same command and arguments under mcpServers in Cursor's mcp.json or Claude Desktop's claude_desktop_config.json, then restart the client. The blocks above are ready to paste.
Is Outlook MCP Server free?
The listed licence is MIT. Check the upstream terms for permitted use and commercial requirements; a public repository does not by itself mean the software is free or open source. Connected APIs and hosted services may have separate charges.
What can Outlook MCP Server do?
Outlook MCP Server documents 40 tools to the agent, including outlook_auth_status, outlook_categorize_message, outlook_changes_since. The descriptions above come from project documentation. A live handshake does not test individual tool behavior.