What's Changed
Critical Bug Fixes
- All
me/endpoints replaced withusers/{mailbox}/—me/is invalid with client credentials (app-only) auth and returnedcpim_sts_Unsupported_endpointfor every single API call. The server was effectively non-functional. - Permission checks always blocked writes —
getCurrentUserEmail()calledGET /mewhich silently failed, returning an empty string, causing every send/archive/delete/rules operation to be rejected regardless of mailbox. Removed and replaced with an explicitmailboxparameter. - Double URL-encoding of email IDs —
encodeURIComponent(emailId)in handlers conflicted with path-segment encoding ingraph-api.ts, corrupting URLs for any email ID containing special characters. $search+$orderbyrejected by Graph API — cannot be combined on mail endpoints; removed$orderbywhen$searchis active.$search+$filterrejected by Graph API — cannot be combined on mail endpoints;addBooleanFiltersno longer called when$searchis set.
New: mailbox Parameter
All tools that access Outlook data now require a mailbox parameter (e.g., chi@desertservices.net). This is required for app-only auth, where there is no "signed-in user" — the server must be told which mailbox to operate on.
Other Fixes & Improvements
- Calendar
list-eventsswitched fromme/eventstocalendarViewendpoint — correctly expands recurring event instances within a 30-day window accept-eventtool handler was never wired up — now correctly registeredfallbackRequestHandlerreplaced with proper SDKsetRequestHandlercallsisError: trueadded to all error return pathsadditionalProperties: falseadded to all tool input schemas- SDK updated to
@modelcontextprotocol/sdkv1.26.0
Removed
outlook-auth-server.tsandbun run auth-serverscript — delegated OAuth server, not needed with client credentials- One-off root-level dev scripts and shell scripts
package-lock.json(project uses Bun)- Unused
zoddependency
Azure Permission Requirements
Ensure your app registration has these Application permissions (admin consent required):
| Permission | Purpose |
|---|---|
Mail.Read |
Read emails |
Mail.ReadWrite |
Move, archive, update emails |
Mail.Send |
Send emails |
Calendars.ReadWrite |
Calendar operations |
MailboxSettings.ReadWrite |
Inbox rules (NOT covered by Mail.ReadWrite) |
Tests
114 passing tests across 4 test files covering mailbox permissions, tool schemas, error paths, and mock-mode integration.
Full Changelog: v2.0.0...v2.1.0