Because mail, calendar, contacts and tasks are separate servers, an assistant that should read your calendar but never touch your inbox is a matter of which entries you add — no scopes to negotiate afterwards. The setup cost is the Microsoft side: registering an app in Entra ID and granting Graph permissions is the part that takes real time, and it is the same work whether you run one server or all six.
A set of MCP servers over Microsoft Graph, one per Outlook area: mail, calendar, contacts, to-do, mailbox settings and categories. Each runs independently, so you register only the ones you want an assistant to reach.
- Mail — advanced search, retrieve conversations, read full messages with attachments, mark read or unread, move, copy, delete and manage flags
- Composing — create and edit drafts, handle attachments, send, reply and forward
- Folders and rules — view and navigate the folder hierarchy, create, edit and delete folders, and manage mail rules
- Calendar — retrieve, create, update and delete events, accept, decline or tentatively answer invitations, cancel events, add and remove attachments
- Calendars and groups themselves — list, create, update and delete, plus free/busy lookup
- Contacts — search folders and contacts, read details, create, update and delete
- Tasks — retrieve, create and delete task lists; retrieve, create, update and delete tasks
- Categories — create, edit, delete, apply predefined colours, and assign them to emails and events
- Mailbox settings — read and update automatic replies, time zone and working hours
Python 3.11 or higher and uv. Published as aisecretary version 0.1.0. Microsoft Graph API access has to be configured first, following the repository's Microsoft setup guide. Each server is a separate Python file: `uv run mcp install server.py` registers one with Claude Desktop, or `uv run python claude_setup.py` registers all of them at once. For OpenWebUI and similar platforms, `uvx mcpo --port 9000 -- uv run mcp run server.py` exposes it over HTTP at `http://127.0.0.1:9000`.
