Outlook MCP server for AI agents
Read, search, send, reply to and file Outlook email, and list, create, update and answer calendar events, through Microsoft Graph.
Runs with your users' own Outlook accounts. Credentials stay on prompt-tm.com.
20 tools · 0 triggers
- Auth
- OAuth 2.0 (sign in with the app)
- Tools
- 20
- Triggers
- 0
- Category
- Communication, Productivity
Tools and triggers
Get the signed-in user
OUTLOOK_GET_PROFILE
Returns the signed-in user's name, email address and user ID.read-only
List mail folders
OUTLOOK_LIST_MAIL_FOLDERS
Lists the top-level mail folders with their IDs and unread and total counts.read-only
List messages
OUTLOOK_LIST_MESSAGES
Lists messages in the whole mailbox or one folder. Use `search` for a keyword search (KQL, such as `from:ada subject:invoice`) or `filter` for exact conditions; Graph doesn't allow `search` together with `orderby`.read-only
Get a message
OUTLOOK_GET_MESSAGE
Returns one message with its sender, recipients, body and flags.read-only
Send an email
OUTLOOK_SEND_MAIL
Sends a new message right away. It is saved in Sent Items unless `save_to_sent_items` is false.
Create a draft
OUTLOOK_CREATE_DRAFT
Saves a new message in Drafts without sending it. Send it later with Send a draft.
Send a draft
OUTLOOK_SEND_DRAFT
Sends a message saved in Drafts.
Reply to a message
OUTLOOK_REPLY
Replies to the sender, or to everyone on the message when `reply_all` is true. The comment goes above the quoted original.
Forward a message
OUTLOOK_FORWARD
Forwards a message to new recipients, with an optional comment above it.
Update a message
OUTLOOK_UPDATE_MESSAGE
Marks a message read or unread, sets its categories, importance or follow-up flag.
Move a message
OUTLOOK_MOVE_MESSAGE
Moves a message to another folder and returns it with its new ID.
Delete a message
OUTLOOK_DELETE_MESSAGE
Deletes a message. To keep a copy the user can restore, move it to `deleteditems` instead.destructive
List calendars
OUTLOOK_LIST_CALENDARS
Lists the user's calendars with their IDs, owners and whether the user can edit them.read-only
List events in a time range
OUTLOOK_LIST_EVENTS_IN_RANGE
Lists the events between two times in the default calendar or one calendar, with each occurrence of a recurring series on its own. This is the call for questions like "what's on tomorrow".read-only
List events
OUTLOOK_LIST_EVENTS
Lists events as stored: single events and recurring series masters, not their occurrences. For a day or week view use List events in a time range.read-only
Get an event
OUTLOOK_GET_EVENT
Returns one event with its time, location, attendees and their responses, and the online meeting link.read-only
Create an event
OUTLOOK_CREATE_EVENT
Creates an event in the main calendar or another one. With attendees, Outlook sends them invitations.
Update an event
OUTLOOK_UPDATE_EVENT
Changes an event's fields. Only the fields given change; `attendees` replaces the whole attendee list.
Delete an event
OUTLOOK_DELETE_EVENT
Deletes an event. Deleting a meeting on the organizer's calendar sends the attendees a cancellation.destructive
Respond to an invitation
OUTLOOK_RESPOND_TO_EVENT
Accepts, tentatively accepts or declines a meeting invitation, with an optional note to the organizer.
Try Outlook now
Sign in, connect your account and run any of these in the playground, or ask your agent through the router.
- “Get the signed-in user”OUTLOOK_GET_PROFILE
- “List mail folders”OUTLOOK_LIST_MAIL_FOLDERS
- “List messages”OUTLOOK_LIST_MESSAGES
Connect via MCP
Create an MCP server for Outlook in the dashboard, then add its URL to your client. This is the Claude Code command; the client guide has the others.
claude mcp add --transport http outlook \
"https://www.prompt-tm.com/mcp/<server id>?user_id=<your user>" \
--header "x-api-key: ptm_…"Connect via REST
Run a tool with one request. The response is { data, error, successful, log_id } for every tool.
curl -X POST https://www.prompt-tm.com/api/v3/tools/execute/OUTLOOK_GET_PROFILE \
-H "x-api-key: $PROMPT_TM_KEY" -H "content-type: application/json" \
-d '{ "user_id": "alice", "arguments": {} }'