{"name":"io.github.mpalermiti/outlook-mcp","slug":"mpalermiti-outlook-mcp","title":"Outlook MCP","description":"Microsoft Outlook personal accounts: mail, calendar, contacts, to-do, drafts (62 tools).","url":"https://mcp.market/server/mpalermiti-outlook-mcp","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"email","tags":["email","productivity"],"presence":{"score":33,"stars":32,"forks":7,"downloads_week":null,"last_push_at":"2026-09-17T20:26:37.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/mpalermiti/outlook-mcp","website":"https://github.com/mpalermiti/outlook-mcp","version":"1.22.0","remotes":[],"packages":[{"registryType":"pypi","identifier":"outlook-graph-mcp","version":"1.22.0","transport":{"type":"stdio"}}],"tools":[{"name":"main","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_attach_to_draft","description":"Add attachments to an existing draft; auto-switches to upload-session for files >3MB.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_auth_status","description":"Check authentication status. Run `outlook-mcp auth` on the host if needed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_batch_triage","description":"Triage up to 20 messages in one $batch call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_categorize_message","description":"Set categories on a message (replaces the full list).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_changes_since","description":"One structured \"since last call\" digest across mail, events, and contacts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_complete_task","description":"Mark a To Do task as completed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_copy_message","description":"Copy a message to another folder (duplicates; source is unchanged).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_create_contact","description":"Create a new contact with name and optional email, phone, company, title.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_create_draft","description":"Create a draft email for later review/send (pair with outlook_send_draft).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_create_event","description":"Create a calendar event with optional attendees, recurrence, and Teams online meeting.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_create_folder","description":"Create a mail folder; pass `parent_folder` (name or ID) to nest under an existing folder.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_create_task","description":"Create a Microsoft To Do task with optional due date, importance, body, and recurrence.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_delete_contact","description":"Delete a contact by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_delete_draft","description":"Delete a draft message by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_delete_event","description":"Delete a calendar event by ID (cancels and notifies attendees if you're the organizer).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_delete_folder","description":"Delete a user-created mail folder by ID; refuses well-known folders (inbox, sentitems).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_delete_inbox_override","description":"Delete a Focused Inbox per-sender override rule by its ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_delete_message","description":"Delete a message — soft delete (to Deleted Items) by default; permanent=True to hard-delete.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_delete_task","description":"Delete a task from a Microsoft To Do list.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_download_attachment","description":"Download an attachment and write the decoded bytes to `save_path` on the host.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_flag_message","description":"Set the follow-up flag on a message. `status` is \"flagged\", \"complete\", or \"notFlagged\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_forward","description":"Forward an existing message to new recipients, with optional comment.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_get_contact","description":"Get one full contact by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_get_event","description":"Get one full calendar event by ID: body, attendees, organizer, recurrence, type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_get_mail_tips","description":"Pre-send check for recipients: out-of-office, delivery limits, mailbox-full warnings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_accounts","description":"List all configured Outlook accounts and their authentication status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_attachments","description":"List attachments on a message — returns IDs, names, sizes, and content types.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_calendars","description":"List all calendars available to the authenticated user (primary + secondary).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_categories","description":"List the user's master category definitions (names + colors).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_contacts","description":"List contacts with cursor pagination.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_contacts_delta","description":"List only contact changes since the last call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_drafts","description":"List messages in the Drafts folder with cursor pagination.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_events","description":"List calendar events in a date range (expands recurring instances).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_events_delta","description":"List only calendar event changes within a window since the last call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_folders","description":"List mail folders with message counts, parent_id, and child count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_inbox","description":"List messages in one folder with structured filters (read, sender, date, category, Focused).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_inbox_delta","description":"List only inbox changes since the last call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_inbox_overrides","description":"List the user's Focused Inbox per-sender override rules.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_task_lists","description":"List all Microsoft To Do task lists for the current user.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_tasks","description":"List tasks in a To Do list with optional `status` filter.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_list_thread","description":"List all messages in a conversation thread, chronological order.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_mark_read","description":"Mark a single message as read or unread (set is_read=True or False).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_move_message","description":"Move a message to another folder (removes from source).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_read_message","description":"Get one full message by ID. `format` is \"text\", \"html\", or \"full\" (both).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_read_messages","description":"Bulk read up to 20 messages by ID via $batch — use NOT N outlook_read_message calls.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_reclassify_message","description":"Reclassify ONE message's Focused/Other placement. `classification` is \"focused\" or \"other\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_remove_draft_attachment","description":"Remove a single attachment from a draft message by attachment ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_rename_folder","description":"Rename a user-created mail folder by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_reply","description":"Reply (or reply-all) to an email message.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_rsvp","description":"RSVP to a calendar meeting invite. `response` is \"accept\", \"decline\", or \"tentative\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_search_contacts","description":"Search contacts by name or email using KQL query syntax.","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_search_mail","description":"Full-text search mail with KQL across all folders (or one, if `folder` is set).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_send_draft","description":"Send an existing draft (pair with outlook_create_draft for human-review send flow).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_send_message","description":"Send an email immediately, no human review.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_send_with_attachments","description":"Send an email with file attachments; auto-switches to upload-session for files >3MB.","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_set_inbox_override","description":"Create or update a sticky Focused/Other rule for a sender (upsert, case-insensitive).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_switch_account","description":"Switch the active Outlook account by configured `name` (from outlook_list_accounts).","write_action":false,"price_micros":0,"input_schema":null},{"name":"outlook_update_contact","description":"Update an existing contact (partial patch — only provided fields change).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_update_draft","description":"Update an existing draft (partial patch).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_update_event","description":"Update fields on an existing event (partial patch — only provided fields change).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_update_task","description":"Update fields on a To Do task (partial patch — only provided fields change).","write_action":true,"price_micros":0,"input_schema":null},{"name":"outlook_whoami","description":"Get the authenticated user's profile (display name, email, ID).","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":89,"grade":"A","scanned_at":"2026-09-19T20:08:25.803Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:08:25.795Z","components":{"code":{"score":25,"max":25,"notes":["36 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"outlook-graph-mcp","version":"1.22.0","found":true,"license":"MIT","dependencyCount":9,"publishedAt":"2026-09-12T04:55:48.941705Z","repositoryUrl":"https://github.com/mpalermiti/outlook-mcp"}],"repo":{"found":true,"owner":"mpalermiti","repo":"outlook-mcp","archived":false,"pushedAt":"2026-09-17T20:26:37Z","stars":32,"forks":7,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/253352132?v=4","ownerCreatedAt":"2026-01-06T18:48:37Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/253352132?v=4&s=128","source":"registry"},"presence":{"stars":32,"forks":7,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-17T20:26:37.000Z","score":33}}}},"grade_history":[],"reviews":[]}