mcp-outlook mcp

v1.1.0 · MCP Tool · communication · registry.pascalai.org

Microsoft Graph API — Outlook Mail + Calendar. Mail: messages (list with filter/search), get_message, send, reply, forward, move_message, delete_message, mark_message, folders. Calendar: calendars, events, get_event, create_event, update_event, delete_event. Auth via access_token or MSGRAPH_ACCESS_TOKEN env var; auto-refresh with refresh_token+client_id+client_secret.

outlookmicrosoftoffice365emailcalendargraph-apicommunicationproductivity

Input Parameters

ParameterTypeDescription
operationrequired string Operation to perform. One of: messages, get_message, send, reply, forward, move_message, delete_message, mark_message, folders, calendars, events, get_event, create_event, update_event, delete_event.
accessTokenoptional string OAuth2 access token. Can also be set via MSGRAPH_ACCESS_TOKEN env var.
refreshTokenoptional string OAuth2 refresh token for auto-refresh. Can also be set via MSGRAPH_REFRESH_TOKEN env var.
clientIdoptional string Azure app client ID. Can also be set via MSGRAPH_CLIENT_ID env var.
clientSecretoptional string Azure app client secret. Can also be set via MSGRAPH_CLIENT_SECRET env var.
tenantoptional string Azure AD tenant ID or 'common'. Default: common. Can also be set via MSGRAPH_TENANT env var. Default: common.
messageIdoptional string Message ID — required for get_message, reply, forward, move_message, delete_message, mark_message.
eventIdoptional string Event ID — required for get_event, update_event, delete_event.
folderIdoptional string Folder name or ID to list from for messages operation. Default: inbox. Default: inbox.
destFolderoptional string Destination folder ID for move_message operation.
toAddroptional string Recipient(s), comma-separated email addresses. Required for send and forward.
cCAddroptional string CC addresses, comma-separated.
bCCAddroptional string BCC addresses, comma-separated.
subjectoptional string Email or event subject. Required for send and create_event.
bodyoptional string Plain text body for send.
htmlBodyoptional string HTML body (overrides body for send).
commentoptional string Reply or forward comment text.
filteroptional string OData $filter for messages or events. E.g. 'isRead eq false', 'start/dateTime ge 2024-03-01T00:00:00'.
searchoptional string Full-text search string for messages or events.
topoptional integer Max results to return. Default: 20. Default: 20.
skipoptional integer Skip N results for pagination.
calendarIdoptional string Calendar ID for events/create_event. Default: primary calendar.
startDToptional string Event start datetime (ISO 8601, e.g. '2024-03-15T10:00:00'). Required for create_event.
endDToptional string Event end datetime (ISO 8601, e.g. '2024-03-15T11:00:00').
timeZoneoptional string IANA timezone for event start/end. Default: UTC. Default: UTC.
locationoptional string Event location display name.
attendeesoptional string Event attendees, comma-separated email addresses.
descriptionoptional string Event description/body (HTML supported).
markAsReadoptional boolean For mark_message: true = mark as read, false = mark as unread.

Output Fields

FieldTypeDescription
value array[object]
id string
subject string
ok boolean
event_id string

Examples

List unread emails from inbox

// Input
{
  "operation": "messages",
  "accessToken": "eyJ...",
  "filter": "isRead eq false",
  "top": 10
}

// Output
{
  "value": []
}

Send an email

// Input
{
  "operation": "send",
  "accessToken": "eyJ...",
  "toAddr": "colleague@company.com",
  "subject": "Meeting Tomorrow",
  "body": "Hi, can we meet at 10am?"
}

// Output
{
  "ok": true
}

Reply to a message

// Input
{
  "operation": "reply",
  "accessToken": "eyJ...",
  "messageId": "AAMkAGI2...",
  "comment": "Thanks for the update!"
}

// Output
{
  "ok": true
}

Create a calendar event

// Input
{
  "operation": "create_event",
  "accessToken": "eyJ...",
  "subject": "Team standup",
  "startDT": "2024-03-15T09:00:00",
  "endDT": "2024-03-15T09:30:00",
  "timeZone": "America/New_York",
  "attendees": "alice@company.com,bob@company.com",
  "location": "Conference Room A"
}

// Output
{
  "id": "AAMkAGI2...",
  "subject": "Team standup"
}

List upcoming events

// Input
{
  "operation": "events",
  "accessToken": "eyJ...",
  "top": 5
}

// Output
{
  "value": []
}

Install & Discovery

Install

ppm install mcp-outlook

Get JSON Schema

GET /v1/packages/mcp-outlook/1.1.0/schema

Discover by keyword

GET /v1/mcp/discover?q=outlook
Discovery hint: Install with ppm install mcp-outlook or invoke remotely via POST /v1/invoke/mcp-outlook on the MCP Service.