outlook-mcp

outlook-mcp

MCP server for Microsoft Outlook that enables searching, sending, and managing mail and calendar via the OWA REST API using browser-session authentication, with no Azure AD app registration required.

Category
Visit Server

README

Microsoft Outlook MCP Server

MCP server for Microsoft Outlook — search, send, and manage mail and calendar with browser-session auth; no Azure AD app registration.

Clone the repo, build it, point your AI tool at dist/index.js. Uses the same OWA REST API that Outlook Web App calls internally. Auth is your normal Outlook browser login; access matches what your account can already do.

Prerequisites

  • Node.js 18+
  • Microsoft 365 / Outlook.com account
  • Chrome (macOS/Linux) or Edge (Windows)

Setup

git clone https://github.com/hickeroar/outlook-mcp.git
cd outlook-mcp
npm install
npm run build

Register as a local stdio MCP server:

{
  "mcpServers": {
    "Outlook": {
      "command": "node",
      "args": ["/absolute/path/to/outlook-mcp/dist/index.js"]
    }
  }
}

Session files: ~/.outlook-mcp-server/ (macOS/Linux) or %APPDATA%\outlook-mcp-server\ (Windows).

First login

Call outlook_login (use forceNew: true if session is dead). Browser opens for Microsoft sign-in. After that, tools use cached OWA tokens with automatic refresh.

Commands

npm run build
npm run typecheck
npm run cli -- status
npm run cli -- login
npm run cli -- inbox
npm run cli -- search "quarterly report"
npm run cli -- calendar

MCP Resources

URI Description
outlook://me/profile Signed-in user profile
outlook://status Token and session status
outlook://me/inbox Recent inbox messages (last 10)

Tools

Authentication

Tool Description
outlook_login Login via browser (headless SSO first)
outlook_status Auth and token diagnostics

Mail

Tool Description
outlook_list_folders List mail folders
outlook_list_messages List messages in a folder
outlook_search_messages Search mail by keyword
outlook_get_message Get full message by ID
outlook_send_message Send email immediately
outlook_create_draft Create draft without sending
outlook_create_reply_draft Create reply draft (set send=true to send)
outlook_create_reply_all_draft Create reply-all draft
outlook_create_forward_draft Create forward draft
outlook_update_message Update draft or message properties
outlook_mark_read Mark read/unread
outlook_send_draft Send existing draft
outlook_move_message Move to another folder
outlook_delete_message Delete (moves to Deleted Items)

Calendar

Tool Description
outlook_list_calendars List calendars
outlook_get_calendar_view Events in date range
outlook_get_event Single event by ID
outlook_create_event Create event
outlook_update_event Update event
outlook_delete_event Delete event
outlook_cancel_event Cancel meeting (organiser)
outlook_respond_event Accept/decline/tentative RSVP
outlook_list_event_instances Recurring event instances

Write tools (send, reply, delete, cancel, etc.) execute immediately. Confirm with the user before calling.

Architecture

src/
├── auth/           # Token extraction, refresh, encryption
├── browser/        # Playwright login (persistent profile)
├── api/            # OWA REST clients (mail, calendar, service.svc)
├── tools/          # MCP tool handlers
├── utils/          # HTTP, parsers, api-config
└── server.ts       # OutlookServer MCP class

See docs/API-REFERENCE.md and docs/SESSION-DATA-REFERENCE.md for API and session details.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured