1. Conduid
  2. Productivity
  3. Outlookmcp
MCP server · Productivity

Outlookmcp

MCP server for accessing Outlook Calendar events via API

Unclaimed last commit a year ago productivity
41Fair

Scored 3 months ago · breakdown

About Outlookmcp

Outlookmcp is an MCP server published by kgatilin in the Productivity category: mCP server for accessing Outlook Calendar events via API. It has been installed 0 times through Conduid.

The repository has 2 stars and 0 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx outlookmcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Outlookmcp

Powered by Claude · Grounded in docs

I know everything about Outlookmcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

Outlook Calendar MCP Server

This is an MCP (Model Context Protocol) server that provides read-only access to your Outlook/Microsoft 365 calendar.

Prerequisites

  • Go 1.21 or higher
  • Microsoft 365 account with calendar access
  • Registered application in Azure AD with appropriate permissions

Project Structure

  • outlook/outlook_api.go - Internal API for interacting with Outlook calendar
  • cmd/mcp/main.go - MCP server implementation for use with AI assistants
  • cmd/cli/main.go - Command-line interface for testing
  • config.example.yaml - Example configuration file

Installation

git clone https://github.com/your-username/outlookmcp.git
cd outlookmcp
go mod download

Building the Application

Building the MCP Server

# Build for the current platform
go build -o outlook-mcp ./cmd/mcp

# Cross-compile for Windows
GOOS=windows GOARCH=amd64 go build -o outlook-mcp.exe ./cmd/mcp

# Cross-compile for macOS
GOOS=darwin GOARCH=amd64 go build -o outlook-mcp-mac ./cmd/mcp

# Cross-compile for Linux
GOOS=linux GOARCH=amd64 go build -o outlook-mcp-linux ./cmd/mcp

Building the CLI Client

# Build for the current platform
go build -o outlook-cli ./cmd/cli

# Cross-compile for Windows
GOOS=windows GOARCH=amd64 go build -o outlook-cli.exe ./cmd/cli

# Cross-compile for macOS
GOOS=darwin GOARCH=amd64 go build -o outlook-cli-mac ./cmd/cli

# Cross-compile for Linux
GOOS=linux GOARCH=amd64 go build -o outlook-cli-linux ./cmd/cli

Configuration

There are two ways to configure the application:

  1. Using a YAML config file (see config.example.yaml)
  2. Using environment variables

Config File

Create a config.yaml file based on the example:

outlook:
  me: "John Doe"
  max_attendees: 10
  max_event_count: 50
  skip_all_day_events: true

Environment Variables

Create a .env file with your Azure AD application credentials:

OUTLOOK_TENANT_ID=your-tenant-id
OUTLOOK_CLIENT_ID=your-client-id
OUTLOOK_CLIENT_SECRET=your-client-secret

Running the Applications

Both the MCP server and CLI application accept optional command-line arguments:

  • First argument: Path to the config file (optional)
  • Second argument: Path to the .env file (optional)

Running from Source

Running the MCP Server

# With default configuration
go run cmd/mcp/main.go

# With custom config file
go run cmd/mcp/main.go config.yaml

# With custom config and env file
go run cmd/mcp/main.go config.yaml .env.production

Running the CLI Client

# With default configuration
go run cmd/cli/main.go

# With custom config file
go run cmd/cli/main.go config.yaml

# With custom config and env file
go run cmd/cli/main.go config.yaml .env.production

Running the Built Binaries

Running the MCP Server Binary

# With default configuration
./outlook-mcp

# With custom config file
./outlook-mcp config.yaml

# With custom config and env file
./outlook-mcp config.yaml .env.production

Running the CLI Client Binary

# With default configuration
./outlook-cli

# With custom config file
./outlook-cli config.yaml

# With custom config and env file
./outlook-cli config.yaml .env.production

Authentication

The server implements on-demand authentication:

  1. When a calendar tool is called, it checks if you're already authenticated
  2. If not authenticated, it returns an error with an authentication URL
  3. You must first call the get_auth_url tool to start the auth flow
  4. The authentication URL opens in your browser
  5. After successful auth, the callback is captured and the token is stored

Available Tools

get_auth_url

Initiates the authentication flow with Microsoft.

Parameters: None

Returns: Authentication URL to open in browser

get_calendar_events

Retrieves events from your Outlook calendar for a specified time period.

Parameters:

  • start_date (optional): Start date in format YYYY-MM-DD. If not provided, defaults to today.
  • end_date (optional): End date in format YYYY-MM-DD. If not provided, defaults to today.

Returns: A JSON array of calendar events with the following properties:

  • subject: The event title
  • startTime: Event start time
  • endTime: Event end time
  • isAllDay: Whether the event is an all-day event
  • isAccepted: Whether the event is accepted
  • isCancelled: Whether the event is cancelled
  • location: Event location (if available)
  • organizer: Name of the event organizer (if available)
  • description: Brief description/preview of the event body (if available)
  • attendees: List of attendees

Example Usage

First authenticate:

{
  "tool": "get_auth_url",
  "params": {}
}

Then retrieve calendar events:

{
  "tool": "get_calendar_events",
  "params": {
    "start_date": "2023-11-01",
    "end_date": "2023-11-07"
  }
}

CLI Usage

The CLI application provides a simple interactive interface:

  1. Select get_auth_url to authenticate
  2. Open the provided URL in your browser to authorize the application
  3. After authorization, use get_calendar_events to retrieve calendar data

Security Considerations

  • Store your client secret securely (use environment variables)
  • The server only provides read-only access to calendar data
  • No write operations are implemented
  • Token is stored in memory only for the duration of the server's execution

Azure AD Application Setup

  1. Register a new application in the Azure portal
  2. Add the following permissions:
    • Calendars.Read
    • Calendars.Read.Shared
    • Calendars.ReadBasic
  3. Set up a redirect URI to http://localhost:1111/callback
  4. Create a client secret and update the configuration

README mirrored from the source repository 3 months ago. The original is authoritative.

Questions

About Outlookmcp

How do I install Outlookmcp?

Run npx outlookmcp, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Outlookmcp safe to use with an AI agent?

Its trust score is 41 out of 100 (fair). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Outlookmcp still maintained?

The last commit was a year ago, with 0 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.