LeashIndex Get the report

Index / messaging

Outlook MCP

io-github-mpalermiti-outlook-mcp declares 71 capabilities across 71 tools, with 2 critical issues. One of them, no-revocation, is recorded for every server in the index because MCP has no field in which to declare a way to switch a tool off; a missing declaration is not evidence that the control is missing.

100/100 exposureHigh exposure

Manifest recorded 2026-11-03 from tools/list answered by the PyPI package outlook-graph-mcp==1.31.4 (published to PyPI as outlook-graph-mcp, listed in the official MCP registry as io.github.mpalermiti/outlook-mcp 1.31.4), run in an isolated container with no network access and no credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 71 tools

71 of 71 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 26 of 71 tools

26 tools are classified as irreversible or destructive and declare no limit. 20 of them are counted only because the server annotated them destructiveHint. In MCP that annotation marks a tool that may make destructive changes rather than only additive ones; it does not say the change cannot be undone.

high · no-expiry · All 71 tools

71 of 71 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 71 tools

71 of 71 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 16 of 71 tools

16 tools can modify data and declare no limit.

low · uncapped-read · 29 of 71 tools

29 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
outlook_auth_statusread declared
outlook_list_inboxread declared
outlook_read_messageread declared
outlook_read_messagesread declared
outlook_search_mailread declared
outlook_list_foldersread declared
outlook_list_inbox_deltaread declared
outlook_send_messagedestructive declared
outlook_replydestructive declared
outlook_forwarddestructive declared
outlook_move_messagesend inferred
outlook_delete_messagedestructive declared
outlook_flag_messagesend inferred
outlook_categorize_messagesend inferred
outlook_mark_readread inferred
outlook_reclassify_messagesend inferred
outlook_list_inbox_overridesread declared
outlook_set_inbox_overridewrite inferred
outlook_delete_inbox_overridedestructive declared
outlook_list_eventsread declared
outlook_get_eventread declared
outlook_find_event_by_keyread declared
outlook_list_events_deltaread declared
outlook_create_eventdestructive declared
outlook_update_eventdestructive declared
outlook_delete_eventdestructive declared
outlook_rsvpdestructive declared
outlook_attach_to_eventdestructive declared
outlook_remove_event_attachmentdestructive declared
outlook_list_contactsread declared
outlook_search_contactsread declared
outlook_get_contactread declared
outlook_create_contactwrite inferred
outlook_update_contactwrite inferred
outlook_delete_contactdestructive declared
outlook_list_contacts_deltaread declared
outlook_changes_sinceread declared
outlook_list_task_listsread declared
outlook_list_tasksread declared
outlook_get_taskread declared
outlook_create_taskwrite inferred
outlook_update_taskwrite inferred
outlook_complete_taskwrite assumed
outlook_delete_taskdestructive declared
outlook_add_checklist_itemwrite inferred
outlook_update_checklist_itemwrite inferred
outlook_delete_checklist_itemdestructive declared
outlook_list_task_attachmentsread declared
outlook_download_task_attachmentwrite assumed
outlook_upload_task_attachmentwrite inferred
outlook_delete_task_attachmentdestructive declared
outlook_list_draftsread declared
outlook_create_draftwrite inferred
outlook_update_draftwrite inferred
outlook_send_draftdestructive declared
outlook_delete_draftdestructive declared
outlook_list_attachmentsread declared
outlook_download_attachmentwrite assumed
outlook_send_with_attachmentsdestructive declared
outlook_attach_to_draftwrite inferred
outlook_remove_draft_attachmentdestructive declared
outlook_create_folderwrite inferred
outlook_rename_folderwrite inferred
outlook_delete_folderdestructive declared
outlook_list_threadread declared
outlook_copy_messagesend inferred
outlook_batch_triagesend inferred
outlook_whoamiread declared
outlook_list_calendarsread declared
outlook_list_categoriesread declared
outlook_get_mail_tipsread declared

Record history

Earlier records for this server. A correction is added here, never written over the record it corrects.

RecordedExposureSource
2026-10-29100 tools/list answered by the PyPI package outlook-graph-mcp==1.30.1 (published to PyPI as outlook-graph-mcp, listed in the official MCP registry as io.github.mpalermiti/outlook-mcp 1.30.1), run in an isolated container with no network access and no credentials
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.