Helix
FreeNot checkedOpen-source MCP server for Microsoft 365 — Mail, Calendar, SharePoint, and OneDrive via the Model Context Protocol
About
Open-source MCP server for Microsoft 365 — Mail, Calendar, SharePoint, and OneDrive via the Model Context Protocol
README
An open-source Model Context Protocol (MCP) server for Microsoft 365, built with .NET 10.
Overview
Helix is an MCP server that bridges AI agents with Microsoft 365. It exposes M365 services as MCP tools so AI models like Claude can read your email, send messages, manage attachments, and more — all through the standardized Model Context Protocol.
Built by SAIB Inc.
Install
One-line installer (macOS & Linux)
curl -fsSL https://raw.githubusercontent.com/SAIB-Inc/Helix/main/install.sh | bash
This downloads a self-contained binary to ~/.helix/bin/helix — no .NET SDK required.
To install a specific version:
HELIX_VERSION=0.1.0 curl -fsSL https://raw.githubusercontent.com/SAIB-Inc/Helix/main/install.sh | bash
Verify
helix --version
Prerequisites
You need an Azure AD app registration to authenticate with Microsoft 365.
- Go to Azure Portal > App registrations and create a new registration
- Set Supported account types to your preference (single tenant or multi-tenant)
- Under Authentication, enable Allow public client flows (required for device code auth)
- Under API permissions, add the following delegated permissions:
User.ReadMail.Read,Mail.ReadWrite,Mail.SendCalendars.Read,Calendars.ReadWriteSites.Read.All,Sites.ReadWrite.All
- Note your Application (client) ID and Directory (tenant) ID
Configure
Set your Azure app credentials via environment variables:
export HELIX__ClientId="your-client-id"
export HELIX__TenantId="your-tenant-id" # optional, defaults to "common"
Or create a .env file in your working directory:
HELIX__ClientId=your-client-id
HELIX__TenantId=your-tenant-id
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"helix": {
"command": "helix",
"env": {
"HELIX__ClientId": "your-client-id",
"HELIX__TenantId": "your-tenant-id"
}
}
}
}
If
helixis not on your PATH, use the full path:~/.helix/bin/helix
Available Tools
Authentication
| Tool | Description |
|---|---|
login |
Start device code authentication flow |
login-status |
Check if authentication is complete |
logout |
Sign out and clear cached tokens |
get-current-user |
Get the authenticated user's profile |
| Tool | Description |
|---|---|
list-mail-messages |
List messages with filtering, search (KQL), and paging |
get-mail-message |
Get a full message by ID |
send-mail |
Send an email (supports file attachments) |
delete-mail-message |
Delete a message (moves to Deleted Items) |
move-mail-message |
Move a message to a different folder |
update-mail-message |
Update read status, importance, categories, or subject |
Mail Drafts
| Tool | Description |
|---|---|
create-draft-message |
Create a draft email in the Drafts folder |
send-draft-message |
Send an existing draft by ID |
Mail Attachments
| Tool | Description |
|---|---|
list-mail-attachments |
List attachments on a message |
get-mail-attachment |
Download an attachment to disk |
add-mail-attachment |
Attach a file from disk to a draft |
delete-mail-attachment |
Remove an attachment |
Mail Folders
| Tool | Description |
|---|---|
list-mail-folders |
List all mail folders with unread counts |
list-mail-folder-messages |
List messages in a specific folder |
Calendar
| Tool | Description |
|---|---|
list-calendars |
List all calendars |
get-calendar-online-meeting-settings |
Get allowed/default online meeting providers for diagnostics |
list-calendar-events |
List events with filtering and paging |
get-calendar-event |
Get a full event by ID |
list-calendar-view |
List events in a date/time range (expands recurring events) |
create-calendar-event |
Create a new event with attendees, location, online meeting |
update-calendar-event |
Update an existing event |
delete-calendar-event |
Delete an event |
respond-calendar-event |
Accept, decline, or tentatively accept an invitation |
SharePoint — Sites
| Tool | Description |
|---|---|
search-sites |
Search for SharePoint sites by keyword |
get-site |
Get a site by ID |
list-site-lists |
List all lists in a site |
get-site-list |
Get a list with column definitions |
SharePoint — List Items
| Tool | Description |
|---|---|
list-list-items |
List items with field values, filtering, and paging |
get-list-item |
Get a specific item with all fields |
create-list-item |
Create a new item with field values (JSON) |
update-list-item |
Update item fields |
delete-list-item |
Delete an item |
SharePoint — Files
| Tool | Description |
|---|---|
list-site-drives |
List document libraries in a site |
list-drive-children |
List files and folders (root or subfolder) |
search-drive-items |
Search files by name or content across a drive |
get-drive-item |
Get file/folder metadata |
create-drive-folder |
Create a new folder in a document library |
upload-drive-item |
Upload a file (from disk or base64) |
download-drive-item |
Download a file to disk |
Roadmap
| Service | Status |
|---|---|
| Available | |
| Calendar | Available |
| SharePoint | Available |
| Contacts | Planned |
| OneDrive | Planned |
| Teams | Planned |
| Planner / To Do | Planned |
Build from Source
If you prefer to build from source instead of using the installer:
git clone https://github.com/SAIB-Inc/Helix.git
cd Helix
dotnet build
dotnet run --project src/Helix.Stdio
Requires .NET 10 SDK.
Contributing
See docs/CONTRIBUTING.md for branch workflow, commit conventions, and design principles.
License
MIT — see LICENSE.
Built and maintained by SAIB Inc.
Installing Helix
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/SAIB-Inc/HelixFAQ
Is Helix MCP free?
Yes, Helix MCP is free — one-click install via Unyly at no cost.
Does Helix need an API key?
No, Helix runs without API keys or environment variables.
Is Helix hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Helix in Claude Desktop, Claude Code or Cursor?
Open Helix on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Gmail
Read, send and search emails from Claude
by GoogleSlack
Send, search and summarize Slack messages
by SlackRunbear
No-code MCP client for team chat platforms, such as Slack, Microsoft Teams, and Discord.
Discord Server
A community discord server dedicated to MCP by [Frank Fiegel](https://github.com/punkpeye)
Compare Helix with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All communication MCPs
