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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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