outlook-personal-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OUTLOOK_MCP_DEBUG | No | Set to true to log each Graph request's method, URL, and HTTP status code to stderr. Never logs tokens or message content. | false |
| OUTLOOK_MCP_AUTHORITY | No | MSAL authority URL (change only if you move to a work/school tenant) | https://login.microsoftonline.com/consumers |
| OUTLOOK_MCP_CLIENT_ID | Yes | Azure app's Application (client) ID | |
| OUTLOOK_MCP_FILE_ROOT | No | Only files under this directory can be read by add_attachment or written by download_attachment | ~/.local/share/outlook-personal-mcp/files |
| OUTLOOK_MCP_TOKEN_CACHE | No | Path to the MSAL token cache file | ~/.config/outlook-personal-mcp/token_cache.bin |
| OUTLOOK_MCP_MAX_FILE_BYTES | No | Maximum bytes allowed for local attachment reads and attachment downloads | 3145728 |
| OUTLOOK_MCP_ALLOW_PERMANENT_DELETE | No | Set to true to enable the permanent_delete tool (irreversible) | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Return the signed-in user's Microsoft account profile. |
| list_foldersA | List mail folders with unread/total counts. |
| create_folderA | Create a mail folder, optionally nested under parent_folder_id. |
| rename_folderC | Rename a mail folder. |
| delete_folderA | Delete a mail folder (moves it to Deleted Items). |
| list_messagesA | List messages (newest first). Optionally restrict to a folder or unread only. |
| search_messagesB | Full-text search across the mailbox (Graph $search). |
| get_messageA | Get a single message; include_body returns the full body text/HTML. |
| list_attachmentsA | List a message's attachments (id, name, size, contentType). |
| download_attachmentA | Download an attachment to a local file path. |
| send_mailC | Send an email. Set save_to_sent=False to skip saving to Sent Items. |
| replyC | Reply to a message (set reply_all to reply to everyone). |
| forwardA | Forward a message to recipients with an optional comment. |
| move_messageB | Move a message to another folder. |
| copy_messageC | Copy a message to another folder. |
| mark_readA | Mark a message read (read=True) or unread (read=False). |
| flag_messageB | Flag or unflag a message. |
| delete_messageA | Delete a message (moves it to Deleted Items; reversible). |
| create_draftC | Create a draft message (not sent). |
| update_draftB | Update a draft's subject and/or body. |
| add_attachmentA | Attach a local file to a draft. |
| send_draftB | Send an existing draft. |
| list_calendarsA | List the user's calendars. |
| list_eventsB | List events. If start and end (ISO 8601) are given, returns that window via calendarView. |
| search_eventsB | Search events by free text. |
| get_eventA | Get one event including body and attendees. |
| create_eventA | Create a calendar event. Times are ISO 8601 in the given time_zone. |
| update_eventA | Update fields on an existing event (only provided fields change). |
| delete_eventB | Delete/cancel a calendar event. |
| respond_eventA | Respond to a meeting invite. response is one of: accept, decline, tentative. |
| find_availabilityB | Free/busy across the given people for a time window (Graph getSchedule). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/salahawad/outlook-personal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server