Skip to main content
Glama
README.md
# Outlook MCP Tool

This is a Model Context Protocol (MCP) tool that allows your AI Assistant to interact with Microsoft Outlook for macOS.

<a href="https://glama.ai/mcp/servers/0j71n92wnh">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/0j71n92wnh/badge" alt="Outlook Tool MCP server" />
</a>

## Features

- Mail:
  - Read unread and regular emails
  - Search emails by keywords
  - Send emails with to, cc, and bcc recipients
  - **Send HTML-formatted emails**
  - **Attach files to emails**
  - List mail folders
- Calendar:
  - View today's events
  - View upcoming events
  - Search for events
  - Create new calendar events
- Contacts:
  - List contacts
  - Search contacts by name
- Local AI Assistant (Ollama):
  - Summarize unread emails, specific emails, or search results locally
  - Extract action items locally
  - Draft professional email replies locally
  - Fully private processing (no email contents sent to cloud APIs)

## Prerequisites

- macOS with Apple Silicon (M1/M2/M3) or Intel chip
- [Microsoft Outlook for Mac](https://apps.apple.com/us/app/microsoft-outlook/id985367838) installed and configured
- [Bun](https://bun.sh/) installed
- An MCP Client (e.g., Cursor or an Ollama frontend)
- [Ollama](https://ollama.com/) installed and running locally with at least one text model (e.g., `llama3`) for local AI assistant tasks

## Installation

1. Clone this repository:

```bash
git clone https://github.com/syedazharmbnr1/outlook-mcp.git
cd outlook-mcp
```

2. Install dependencies:

```bash
bun install
```

3. Make sure the script is executable:

```bash
chmod +x index.ts
```

4. Update your MCP Client configuration:

Add the following to your MCP client configuration file (e.g. for a custom UI, specify your configuration):

```json
{
  "mcpServers": {
    "outlook-mcp": {
      "command": "/Users/YOURUSERNAME/.bun/bin/bun",
      "args": ["run", "/path/to/outlook-mcp/index.ts"]
    }
  }
}
```

Make sure to replace `YOURUSERNAME` with your actual macOS username and adjust the path to where you cloned this repository.

5. Restart your MCP Client

6. Grant permissions:
   - Go to System Preferences > Privacy & Security > Privacy
   - Give Terminal (or your preferred terminal/client app) access to Accessibility features
   - You may see permission prompts when the tool is first used

## Usage

Once installed, you can use the Outlook tool directly from your AI Assistant by asking questions like:

- "Can you check my unread emails in Outlook?"
- "Search my Outlook emails for the quarterly report"
- "Send an email to john@example.com with the subject 'Meeting Tomorrow'"
- "What's on my calendar today?"
- "Create a meeting for tomorrow at 2pm"
- "Find the contact information for Jane Smith"
- "Use the local assistant to summarize my unread emails"

## Examples

### Email Operations

```
Check my unread emails in Outlook
```

```
Send an email to alex@example.com with subject "Project Update" and the following body: Here's the latest update on our project. We've completed phase 1 and are moving on to phase 2.
```

```
Send an HTML email to team@example.com with subject "Weekly Report" and attach the quarterly_results.pdf file
```

```
Search my emails for "budget meeting"
```

### Calendar Operations

```
What events do I have today?
```

```
Create a calendar event for a team meeting tomorrow from 2pm to 3pm
```

```
Show me my upcoming events for the next 2 weeks
```

### Contact Operations

```
List all my Outlook contacts
```

```
Search for contact information for Jane Smith
```

### Local AI Assistant (Ollama) Operations

Make sure Ollama is running in the background before using these commands (e.g., run `ollama serve` and `ollama run llama3`).

```
Use the local assistant to summarize my unread emails
```

```
Search my emails for "project meeting" and use local Ollama to extract the action items
```

```
Use local Ollama to draft a reply to the unread project emails
```

## Advanced Features

### HTML Email Support

You can send rich HTML-formatted emails by setting the `isHtml` parameter to true:

```
Send an HTML email to john@example.com with the subject "Project Update" and body "<h1>Project Update</h1><p>We've made <b>significant progress</b> on the project.</p>"
```

### File Attachments

You can attach files to your emails by providing the file paths in the `attachments` parameter:

```
Send an email to jane@example.com with subject "Monthly Report" and attach the reports/march_2025.pdf file
```

For best results with attachments:
- Use absolute file paths when possible
- Make sure the files are accessible to the process running the MCP tool
- Attachments will automatically be handled with robust error detection

## Troubleshooting

If you encounter issues with attachments:
- Check if the file exists and is readable
- Use absolute file paths instead of relative paths
- Make sure the user running the process has permission to read the file

If you encounter the error `Cannot find module '@modelcontextprotocol/sdk/server/index.js'`:

1. Make sure you've run `bun install` to install all dependencies
2. Try installing the MCP SDK explicitly:
   ```bash
   bun add @modelcontextprotocol/sdk@^1.5.0
   ```
3. Check if the module exists in your node_modules directory:
   ```bash
   ls -la node_modules/@modelcontextprotocol/sdk/server/
   ```

If the error persists, try creating a new project with Bun:

```bash
mkdir -p ~/yourpath/outlook-mcp
cd ~/yourpath/outlook-mcp
bun init -y
```

Then copy the package.json and index.ts files to the new directory and run:

```bash
bun install
bun run index.ts
```

Update your MCP client configuration to point to the new location.

## License

MIT