← Microsoft Outlook MCP

Microsoft Outlook MCP 1.0.1

npm · microsoft-outlook-mcp · current release

14
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-22T18:33:12.549Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools 14

ToolCategoryAnnotationsRisk
create_email_draftCreate a new, standalone draft email that can be edited and sent later. Use this only for starting a fresh message — to draft a reply within an existing conversation thread, use create_reply_draft instead.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "to": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Email address"
      },
      "description": "Recipient email addresses"
    },
    "subject": {
      "type": "string",
      "description": "Email subject"
    },
    "body": {
      "type": "string",
      "description": "Email body"
    },
    "body_type": {
      "description": "Body content type. Defaults to text.",
      "type": "string",
      "enum": [
        "text",
        "html"
      ]
    },
    "cc": {
      "description": "CC recipients",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Email address"
      }
    },
    "bcc": {
      "description": "BCC recipients",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Email address"
      }
    },
    "attachments": {
      "description": "File attachments",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Filename"
          },
          "contentType": {
            "type": "string",
            "description": "MIME type, e.g. 'application/pdf'"
          },
          "contentBytes": {
            "type": "string",
            "description": "Base64-encoded file content"
          }
        },
        "required": [
          "name",
          "contentType",
          "contentBytes"
        ]
      }
    }
  },
  "required": [
    "to",
    "subject",
    "body"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true
}
Writes · Destructive
create_reply_draftDraft a reply to an existing email, kept inside the original conversation thread. Produces an editable draft (in Drafts) that inherits the conversation, the 'RE:' subject, threading headers, and quoted history — review and send it later with send_email or via Outlook. Use this instead of create_email_draft whenever responding to a message.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email_id": {
      "type": "string",
      "description": "Message ID being replied to"
    },
    "body": {
      "type": "string",
      "description": "Your reply text, inserted above the quoted original message"
    },
    "reply_all": {
      "description": "Reply to all recipients of the original (sender + to + cc) instead of just the sender. Defaults to false.",
      "type": "boolean"
    },
    "cc": {
      "description": "Additional CC recipients to add to the reply",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Email address"
      }
    }
  },
  "required": [
    "email_id",
    "body"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true
}
Writes · Destructive
delete_emailPermanently delete an email message.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email_id": {
      "type": "string",
      "description": "Message ID to delete"
    }
  },
  "required": [
    "email_id"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true
}
Writes · Destructive
get_attachmentGet an email attachment's content (returned as base64 in contentBytes).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email_id": {
      "type": "string",
      "description": "Message ID"
    },
    "attachment_id": {
      "type": "string",
      "description": "Attachment ID"
    }
  },
  "required": [
    "email_id",
    "attachment_id"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false
}
Read only · Non-destructive
get_emailGet a single email message by ID with full body and headers.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email_id": {
      "type": "string",
      "description": "Message ID"
    },
    "include_body": {
      "description": "Include message body. Defaults to true.",
      "type": "boolean"
    },
    "body_max_length": {
      "description": "Max characters of body content to return. Defaults to 50000.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "include_attachments": {
      "description": "Include attachment metadata. Defaults to true.",
      "type": "boolean"
    }
  },
  "required": [
    "email_id"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false
}
Read only · Non-destructive
list_emailsList emails from a mailbox folder ordered by date descending.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "folder": {
      "description": "Folder name: inbox, sent, drafts, deleted, junk, archive, or a folder ID. Defaults to inbox.",
      "type": "string"
    },
    "limit": {
      "description": "Number of messages to return (1–100). Defaults to 10.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "include_body": {
      "description": "Include message body. Defaults to true.",
      "type": "boolean"
    }
  }
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false
}
Read only · Non-destructive
meGet the signed-in user's profile (id, displayName, mail).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false
}
Read only · Non-destructive
move_emailMove an email to a different folder.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email_id": {
      "type": "string",
      "description": "Message ID to move"
    },
    "destination_folder": {
      "type": "string",
      "description": "Destination folder name (inbox, sent, drafts, deleted, junk, archive) or folder ID"
    }
  },
  "required": [
    "email_id",
    "destination_folder"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true
}
Writes · Destructive
reply_all_emailReply to all recipients of an email.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email_id": {
      "type": "string",
      "description": "Message ID to reply-all to"
    },
    "body": {
      "type": "string",
      "description": "Reply body"
    },
    "body_type": {
      "description": "Body content type. Defaults to text.",
      "type": "string",
      "enum": [
        "text",
        "html"
      ]
    }
  },
  "required": [
    "email_id",
    "body"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true
}
Writes · Destructive
reply_to_emailReply to an email (sender only).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email_id": {
      "type": "string",
      "description": "Message ID to reply to"
    },
    "body": {
      "type": "string",
      "description": "Reply body"
    },
    "body_type": {
      "description": "Body content type. Defaults to text.",
      "type": "string",
      "enum": [
        "text",
        "html"
      ]
    }
  },
  "required": [
    "email_id",
    "body"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true
}
Writes · Destructive
search_emailsSearch emails by keyword across all folders or within a specific folder (KQL syntax supported).
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query string"
    },
    "limit": {
      "description": "Max results. Defaults to 50.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "folder": {
      "description": "Limit search to this folder (inbox, sent, etc.)",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false
}
Read only · Non-destructive
send_emailSend an email immediately.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "to": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Email address"
      },
      "description": "Recipient email addresses"
    },
    "subject": {
      "type": "string",
      "description": "Email subject"
    },
    "body": {
      "type": "string",
      "description": "Email body"
    },
    "body_type": {
      "description": "Body content type. Defaults to text.",
      "type": "string",
      "enum": [
        "text",
        "html"
      ]
    },
    "cc": {
      "description": "CC recipients",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Email address"
      }
    },
    "bcc": {
      "description": "BCC recipients",
      "type": "array",
      "items": {
        "type": "string",
        "description": "Email address"
      }
    },
    "attachments": {
      "description": "File attachments",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Filename"
          },
          "contentType": {
            "type": "string",
            "description": "MIME type, e.g. 'application/pdf'"
          },
          "contentBytes": {
            "type": "string",
            "description": "Base64-encoded file content"
          }
        },
        "required": [
          "name",
          "contentType",
          "contentBytes"
        ]
      }
    }
  },
  "required": [
    "to",
    "subject",
    "body"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true
}
Writes · Destructive
unified_searchSearch across multiple Microsoft 365 content types (email, calendar events, files) in one query.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query string"
    },
    "entity_types": {
      "description": "Entity types to search. Defaults to [message, event, driveItem].",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "message",
          "event",
          "driveItem",
          "site",
          "listItem"
        ]
      }
    },
    "limit": {
      "description": "Max total results. Defaults to 50.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "query"
  ]
}
Annotations
{
  "readOnlyHint": true,
  "destructiveHint": false
}
Read only · Non-destructive
update_emailUpdate email properties such as read status, categories, or flag.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email_id": {
      "type": "string",
      "description": "Message ID to update"
    },
    "updates": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Properties to update, e.g. {\"isRead\": true, \"categories\": [\"work\"]}"
    }
  },
  "required": [
    "email_id",
    "updates"
  ]
}
Annotations
{
  "readOnlyHint": false,
  "destructiveHint": true
}
Writes · Destructive

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.