MCP ExplorerExplorer

Mcp Outlook

@kacaseon 10 months ago
2 MIT
FreeCommunity
AI Systems
An MCP Server for Microsoft Outlook using GraphAPI

Overview

What is Mcp Outlook

mcp-outlook is an MCP Server designed to integrate with Microsoft Outlook using the Microsoft Graph API. It enables large language models (LLMs) like Claude to interact with calendar events, manage emails, and send messages.

Use cases

Use cases for mcp-outlook include automating email responses, scheduling meetings based on availability, and providing insights into calendar events for better time management.

How to use

To use mcp-outlook, you need to set up an application in Azure Active Directory, configure API permissions for Microsoft Graph, and register the MCP server in your Claude configuration. Ensure you have Node.js 18+ and a Microsoft 365 account.

Key features

Key features include calendar integration for managing events, email integration for reading and sending emails, adherence to Model Context Protocol standards, and full TypeScript implementation with Zod validation for type safety.

Where to use

mcp-outlook can be used in various fields such as personal productivity, business communication, and any application requiring integration with Microsoft Outlook for managing schedules and emails.

Content

Outlook MCP (Model Context Protocol) Server

A Model Context Protocol server that integrates with Microsoft Outlook through Microsoft Graph API, allowing Claude and other LLMs to check calendar events, schedule new ones, read emails, and send messages.

Features

  • 📅 Calendar Integration: View, list, create, update, and delete calendar events
  • 📧 Email Integration: Read, send, draft, and manage emails from your Outlook account
  • 🔁 Model Context Protocol: Follows MCP standards for LLM tool integration
  • 🛡️ Type Safety: Full TypeScript implementation with Zod validation

Prerequisites

  • Node.js 18+
  • Microsoft 365 account with appropriate permissions
  • Microsoft Azure App Registration with Graph API permissions (Calendar and Mail)

Setup

  1. Register an application in Azure Active Directory:

    • Go to Azure Portal

    • Navigate to “App registrations”

    • Create a new registration with a redirect URI of type “Public client/native (mobile & desktop)”

      • Register http://localhost as the redirect URI
    • Configure API permissions:

      • Choose Microsoft Graph and type delegated, as we will act on the users behalf
      • For Calendar: “Calendars.Read” and “Calendars.ReadWrite”
      • For Email: “Mail.Read”, “Mail.ReadWrite” and “Mail.Send”
      • For People: “People.Read”
  2. Note the values from your Azure app registration (Overview) to use for the MCP config as environment variables:

  • Client ID (Application (client) ID)
  • Authority ID (Directory (tenant) ID)
  1. Register the MCP server
    For Claude Desktop, create or update your configuration in ~/.claude/config.json:
{
  "mcpServers": {
    "outlook": {
      "command": "npx",
      "args": [
        "mcp_outlook"
      ],
      "env": {
        "AUTHORITY": "your-authority-id",
        "CLIENT_ID": "your-client-id",
        "MCP_SERVER_NAME": "outlook-mcp",
        "MCP_SERVER_VERSION": "1.0.0"
      }
    }
  }
}

Make sure to replace the path and environment variables with your actual values.

Available Tools

Calendar Tools

  • listCalendarEvents: Lists the user’s calendar events for a specified time range
  • createCalendarEvent: Creates a new calendar event
  • getCalendarEvent: Gets details of a specific calendar event
  • updateCalendarEvent: Updates an existing calendar event
  • deleteCalendarEvent: Deletes a calendar event

Email Tools

  • listEmails: Lists emails from a specified folder (inbox, sent, drafts, etc.)
  • getEmail: Gets details of a specific email message
  • sendEmail: Sends a new email message
  • createDraft: Creates a draft email message without sending it
  • markEmailAsRead: Marks an email message as read
  • markEmailAsUnread: Marks an email message as unread
  • deleteEmail: Deletes an email message

People Tools

  • searchPeople Find a person in the organisation or your recent contacts
  • getPerson Get information on a person

Resources

  • calendar: Resource containing calendar events data
  • inbox: Resource containing inbox messages data

Development

Run in development mode with live reloading:

npm run dev

Run linting:

npm run lint

Configure your MCP locally

{
  "mcpServers": {
    "outlook": {
      "command": "node",
      "args": [
        "/ABSOLUTE/PATH/TO/outlook_mcp/build/index.js"
      ],
      "env": {
        "AUTHORITY": "your-authority-id",
        "CLIENT_ID": "your-client-id",
        "MCP_SERVER_NAME": "outlook-mcp",
        "MCP_SERVER_VERSION": "1.0.0"
      }
    }
  }
}

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers