Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MICROSOFT_SCOPESNoSpace-separated delegated permissions (default: User.Read Mail.ReadWrite Mail.Send Calendars.ReadWrite Calendars.ReadWrite.Shared People.Read)
MICROSOFT_CLIENT_IDYesAzure app registration client ID (required)
MICROSOFT_TENANT_IDNoTenant ID: 'organizations', 'common', or a specific tenant GUID (default: common)
MAX_ATTACHMENT_INLINE_SIZENoMax attachment size (bytes) for inline base64 (default: 1572864)
MICROSOFT_TOKEN_CACHE_PATHNoPath to the local MSAL token cache (default: .data/msal_token_cache.json)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
auth_statusA

Show current Microsoft auth configuration and cached accounts.

When running inside the MCP Lambda wrapper framework, reports framework-managed authentication status instead of local MSAL state.

start_authA

Start Microsoft authentication.

In Lambda mode, returns an OAuth authorization URL. In local mode, starts the device-code flow.

finish_authA

Complete Microsoft authentication after user approval.

In Lambda mode, this is not needed — call auth_status instead. In local mode, completes the device-code flow.

list_foldersA

List mail folders. Pass parent_folder_id to list subfolders (check child_folder_count to know if subfolders exist).

list_messagesA

List recent mail messages from a folder, newest first.

Pass since (ISO-8601) to filter server-side to messages received at or after that time. Pass fields to override the selected columns (id is always included) for a leaner or extended payload. Each summary includes conversation_id for threading without a follow-up fetch.

get_messageB

Get a full read-only view of a specific mail message.

update_messageB

Update message properties: read/unread, follow-up flag (flagged/complete/notFlagged), or color categories.

move_messageC

Move a message to another folder. Requires Mail.ReadWrite permission.

delete_messageC

Delete a message or move it to Deleted Items. Requires Mail.ReadWrite permission.

search_messagesC

Search messages using Microsoft Graph message search.

bulk_manage_messagesA

Bulk-manage messages with filtering. Supports dry-run, delete, move, and mark-read actions.

By default (limit=None) this scans the entire folder newest-first, so "find/act on all messages matching X" sees the whole folder, not a window. Pass limit only to cap how many messages are scanned (e.g. limit=200 scans at most the newest 200); the value is honored exactly, never silently clamped. Filtering is client-side.

The response reports coverage honestly: truncated is False only when the scan reached the end of the folder (stop_reason="folder_exhausted"), so a match count is a true total; if limit cut the scan short it is True. The mailbox is live, so counts are a point-in-time snapshot. Collection and action are separate phases; messages moved or deleted between them are reported as already_gone, not errors.

list_calendarsB

List readable calendars. Pass user_id for shared calendars (e.g. another user's email or object ID).

list_eventsC

List events from a calendar in a time range. Pass user_id for shared calendars.

get_eventB

Get full details for a specific calendar event. Pass user_id for shared calendars.

send_messageA

Compose and send an email (no attachments). Defaults to dry-run (preview only). Set dry_run=False to actually send. To send with attachments, use create_draft + add_attachment_to_draft + manage_draft instead.

reply_to_messageA

Reply to a message. Defaults to dry-run (preview only). Set dry_run=False to actually send.

forward_messageA

Forward a message. Defaults to dry-run (preview only). Set dry_run=False to actually send.

create_draftB

Create a draft email (saved to Drafts folder). Use this when you need to add attachments before sending, or want to build a message over multiple steps. Then use manage_draft to send.

manage_draftA

Update and/or send a previously created draft. Provide fields to update, set send=True to send. Use after create_draft and optionally add_attachment_to_draft.

get_attachmentsA

Get attachments for a message. Without attachment_id: list all metadata. With attachment_id: download that attachment (base64 if under 1.5 MB).

add_attachment_to_draftC

Attach a file (base64-encoded) to a draft message.

create_folderB

Create a new mail folder, optionally under a parent folder.

list_aliasesC

List email aliases (send-from addresses) for the authenticated user.

create_eventB

Create a new calendar event. Pass user_id for shared calendars.

update_eventC

Update an existing calendar event. Pass user_id for shared calendars.

delete_eventB

Delete or cancel a calendar event. Pass user_id for shared calendars.

respond_to_eventC

Respond to a meeting invite. Pass user_id for shared calendars.

check_availabilityB

Check calendar availability. mode='free_busy': get free/busy schedule. mode='suggest': suggest meeting times.

search_peopleB

Search for people by name to find their email addresses.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/jspv/msgraph-email-calendar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server