outlook-mcp-gdpr
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REDACT_NAMES | No | Additional names that should always be redacted, for example from a customer register export, one per line. | |
| REDACT_USE_NER | No | Set to `1` to enable spaCy NER. Requires `pip install 'outlook-mcp-gdpr[ner]'` and `python -m spacy download sv_core_news_sm`. | |
| REDACT_ALLOWLIST | No | Terms that should not be redacted, such as company names, cities, and products. | |
| REDACT_NAMES_FILE | No | File containing additional names that should always be redacted, for example from a customer register export, one per line. | |
| OUTLOOK_MCP_CACHE_DIR | No | Directory where the token cache is stored. | |
| OUTLOOK_MCP_CLIENT_ID | Yes | Required. Client ID from the app registration. | |
| OUTLOOK_MCP_TENANT_ID | No | Tenant ID. Default is `organizations`. | |
| REDACT_ALLOWLIST_FILE | No | File containing terms that should not be redacted, such as company names, cities, and products. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_foldersA | Lista mappar i brevlådan med antal (olästa) meddelanden. |
| list_messagesC | Lista meddelanden i en mapp, nyast först. folder: mapp-id eller välkänt namn (inbox, drafts, sentitems, archive, deleteditems, junkemail). |
| search_messagesB | Fritextsök i hela brevlådan. Tokens som [[PERSON_1]] får användas i söksträngen. |
| read_messageB | Läs ett helt meddelande (pseudonymiserat). Bilagornas innehåll hämtas inte. |
| mark_readC | Markera ett meddelande som läst eller oläst. |
| flag_messageC | Flagga eller avflagga ett meddelande för uppföljning. |
| set_categoriesB | Sätt Outlook-kategorier på ett meddelande (ersätter befintliga). |
| move_messageB | Flytta ett meddelande. destination: mapp-id eller välkänt namn (archive, deleteditems, inbox …). |
| create_draftB | Skapa ett nytt utkast i Utkast-mappen. Skickas INTE. Använd tokens (t.ex. [[EMAIL_1]], [[PERSON_2_FIRST]]) ordagrant – de ersätts med riktiga värden. |
| create_reply_draftB | Skapa ett svarsutkast på ett befintligt meddelande. Skickas INTE. |
| update_draftB | Uppdatera ett befintligt utkast. Fält som utelämnas lämnas orörda. |
| delete_draftA | Radera ett utkast. Fungerar bara på utkast, aldrig på mottagna mejl. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Each tool targets a distinct action or resource: folder listing, message listing/searching/reading, status changes, moving, categorizing, and draft lifecycle. Overlaps such as list_messages vs. search_messages are clearly differentiated by scope, and draft creation vs. reply-draft creation is explicit.
All tool names use consistent snake_case with a predictable verb_noun pattern (list_folders, read_message, create_draft, update_draft, delete_draft). Minor variations like mark_read and create_reply_draft remain readable and follow the same convention.
Twelve tools are well-scoped for an Outlook/GDPR email client, covering reading, organizing, and draft management without excessive fragmentation. Each tool appears to earn its place.
The surface covers core mailbox reading, search, organization, flagging, categorization, and draft create/reply/update/delete workflows. Gaps include sending messages, deleting received messages, and attachment content access, though some omissions may be intentional under GDPR constraints.