Skip to main content
Glama
access-ctrl

@lnwebworks/outlook-mcp-server

by access-ctrl

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AZURE_CLIENT_IDYesYour Azure AD client (application) ID
AZURE_TENANT_IDYesYour Azure AD tenant ID
OUTLOOK_USER_EMAILYesThe mailbox this server acts on by default
AZURE_CLIENT_SECRETYesYour Azure AD client secret
OUTLOOK_SIGNOFF_NAMENoOptional: signoff name
OUTLOOK_EXCLUDED_FOLDER_IDSNoOptional: folder IDs to exclude
OUTLOOK_SKIP_EXCLUDED_FOLDERSNoOptional: whether to skip excluded folders

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_recent_emailsC

Fetch recently received emails from Outlook inbox

get_recent_emails_all_foldersA

Fetch recently received emails across the entire mailbox (all folders, not just Inbox), excluding Deleted Items (and its subfolders), Junk, Junk Emails, and Drafts. Returns bodyPreview (short text snippet) instead of full HTML body to keep payload small.

get_unread_emailsB

Fetch all unread emails from Outlook inbox for triage

get_conversation_threadB

Retrieve full email conversation history by conversation ID

search_emailsB

Search emails by keyword, sender, subject or topic

get_sent_emailsA

Fetch sent emails to track outbox and detect missing replies

get_email_foldersA

List all Outlook mail folders with unread counts

triage_emailC

Classify an email for urgency, category and suggest a reply

create_email_draftA

Create a standalone draft email in Outlook Drafts folder for review before sending. Supports file attachments up to 25MB combined.

create_reply_draftA

Create an unsent draft reply attached to an existing email thread using Microsoft Graph createReply API (POST /messages/{id}/createReply). Supports file attachments up to 25MB combined.

update_email_draftA

Update/edit an existing email draft subject, body, or recipient before sending (PATCH /messages/{draftId})

reply_to_emailA

Reply to an existing email thread. Requires prior approval. Supports file attachments up to 25MB combined (over 3MB sends via an internal draft-then-send step — same result, no different usage).

send_emailA

Send an approved email. Requires explicit approval from the client first. Supports file attachments up to 25MB combined (over 3MB sends via an internal draft-then-send step — same result, no different usage).

move_emailC

Move an email to a specific folder

get_email_attachmentsA

Fetches the content of all the file attachments for a given Outlook messageId. Returns array [{id, name, contentType, size, isInline, contentBytes}].

mark_email_readC

Mark an email as read or unread

get_upcoming_eventsC

Get upcoming calendar events for the next N days

get_calendar_eventsA

Get calendar events between two datetimes

create_calendar_eventA

Create a new calendar event. Requires approval. Automatically checks for conflicting events in that time range first and refuses (returning conflict:true and the conflicting events) unless force:true is passed — only pass force:true after the user has explicitly approved double-booking.

update_calendar_eventA

Update an existing calendar event. If both startTime and endTime are being changed, automatically checks for conflicting events in the new time range first and refuses (returning conflict:true and the conflicting events) unless force:true is passed — only pass force:true after the user has explicitly approved double-booking.

cancel_calendar_eventA

Cancel a calendar event and notify attendees

get_todays_briefingB

Get today's unread emails and calendar events in one call

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 22 tools

Disambiguation3/5

There is a cluster of email retrieval tools—get_recent_emails, get_recent_emails_all_folders, get_unread_emails, and get_todays_briefing—that overlap in function and could lead an agent to pick the wrong one by name alone. Most other tools are clearly separated by resource/action, and the descriptions resolve the ambiguity if read carefully.

Naming Consistency5/5

All tools use snake_case verb_noun names (get_, create_, update_, cancel_, send_, reply_to_, move_, mark_) with no camelCase or inconsistent style. Even phrase-based names like get_todays_briefing still follow the get_<thing> convention, so the pattern is predictable.

Tool Count3/5

22 tools is on the heavy side for a mail/calendar server, and the four overlapping email-fetch variants add redundancy rather than distinct capabilities. A tighter set closer to 15-16 tools would be easier to navigate, though the count is not extreme.

Completeness4/5

Email covers fetch, search, triage, drafts, replies, send, move, mark-read, and attachments; calendar covers create/read/update/cancel with conflict checks. The main gaps are no email deletion or forwarding and no direct send for an existing draft, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues