@chrischall/office-outlook-mcp 0.10.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "metadata": {
9
9
  "description": "MCP server for Outlook / Microsoft 365 — mail, calendar, contacts and tasks via natural language",
10
- "version": "0.10.1"
10
+ "version": "0.12.0"
11
11
  },
12
12
  "plugins": [
13
13
  {
@@ -15,7 +15,7 @@
15
15
  "displayName": "Outlook (Microsoft 365)",
16
16
  "source": "./",
17
17
  "description": "MCP server for Outlook / Microsoft 365 — triage unread mail, reply, answer meeting invites and schedule meetings, plus folders, calendar, contacts and tasks, with confirmation before anything is sent",
18
- "version": "0.10.1",
18
+ "version": "0.12.0",
19
19
  "author": {
20
20
  "name": "Chris Hall"
21
21
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "office-outlook-mcp",
3
3
  "displayName": "Outlook (Microsoft 365)",
4
- "version": "0.10.1",
4
+ "version": "0.12.0",
5
5
  "description": "Outlook / Microsoft 365 for Claude — triage unread mail, reply, answer meeting invites and schedule meetings, plus folders, calendar, contacts and tasks, with confirmation before anything is sent, using your signed-in browser session",
6
6
  "author": {
7
7
  "name": "Chris Hall",
package/README.md CHANGED
@@ -134,14 +134,16 @@ Everything is optional — with nothing set, the server captures from the browse
134
134
  `outlook_list_categories`, `outlook_list_tasks`, `outlook_list_rules`
135
135
 
136
136
  **Write** (ask you to confirm first — see [Confirmations](#confirmations)) —
137
- `outlook_send_message`, `outlook_create_draft`, `outlook_mark_read`,
137
+ `outlook_send_message`, `outlook_create_draft`, `outlook_update_draft`, `outlook_send_draft`, `outlook_mark_read`,
138
138
  `outlook_update_message`, `outlook_move_message`, `outlook_create_event`,
139
139
  `outlook_update_event`, `outlook_respond_to_invite`, `outlook_delete_event`,
140
140
  `outlook_reply`, `outlook_create_rule`, `outlook_update_rule`,
141
- `outlook_delete_rule`, `outlook_set_auto_reply`.
141
+ `outlook_delete_rule`, `outlook_set_auto_reply`, `outlook_create_folder`,
142
+ `outlook_update_folder` (rename or move), `outlook_delete_folder`
143
+ (permanent: the folder does not go to Deleted Items).
142
144
  Some skip the confirmation because nothing reaches anyone else:
143
- `outlook_create_draft` (the draft stays in Drafts until you send it from
144
- Outlook), `outlook_reply` with `draftOnly: true` (the reply stays in Drafts),
145
+ `outlook_create_draft` (the draft stays in Drafts until you send it with
146
+ `outlook_send_draft` or from Outlook), `outlook_create_folder` (an empty folder is easily deleted), `outlook_reply` with `draftOnly: true` (the reply stays in Drafts),
145
147
  `outlook_respond_to_invite` with `sendResponse: false`, and
146
148
  `outlook_delete_event` on your own appointment with no attendees or on a
147
149
  meeting the organizer already cancelled (in each, only your calendar
@@ -270,7 +272,10 @@ An agent can work through new mail end to end without opening Outlook:
270
272
  id, so an answered invite is already filed — skip steps 3 and 4 for it
271
273
  (its old id would 404);
272
274
  - a message that needs an answer: `outlook_reply` (`reply`, `replyAll` or
273
- `forward`), or `draftOnly: true` to leave it in Drafts for you to review;
275
+ `forward`), or `draftOnly: true` to leave it in Drafts for you to review.
276
+ `cc` / `bcc` add people in the same call — on `replyAll` the thread's
277
+ existing Cc is kept, not replaced. To change an existing draft's Cc
278
+ without retyping it, use `outlook_update_draft` with `addCc` / `removeCc`;
274
279
  - a request for a meeting: `outlook_find_meeting_times` for the attendees,
275
280
  then pass the chosen slot's `createEventArgs` to `outlook_create_event`;
276
281
  - an attachment to read: `outlook_get_attachment`.
@@ -330,7 +335,8 @@ are, their sizes, the record and attachment counts, the date span, and
330
335
  your response, show-as, categories, the join link and the full plain-text
331
336
  body.
332
337
  `format: "markdown"` writes `part-0001.md`, a readable transcript (one
333
- section per message or event), instead.
338
+ section per message or event), instead; its bodies are read as HTML and
339
+ converted to Markdown, so lists, tables, emphasis and links survive.
334
340
  `manifest.json` lists the counts and any errors, and the files: on disk
335
341
  every part's files (it is rewritten as each part finishes); in a blob zip
336
342
  the files in that zip.
@@ -387,7 +393,19 @@ a fresh preview.
387
393
  - Fields are **PascalCase** (`ReceivedDateTime`, `IsRead`). This is the Outlook
388
394
  REST API, not Graph — a Graph snippet silently returns nothing.
389
395
  - `outlook_get_message` returns a **plain-text** body by default, measured 9.4×
390
- smaller than the HTML; pass `html: true` for the original.
396
+ smaller than the HTML. `format: "markdown"` keeps the structure (lists,
397
+ tables, emphasis, links with their text) at about the same size — on a live
398
+ Jira notification, 5.2 KB of Markdown against 5.9 KB of plain text and
399
+ 14.5 KB of HTML — and `format: "html"` returns sanitised HTML. Both drop
400
+ text the sender hid (`display:none` preheaders and the like). `html: true`
401
+ still returns the HTML exactly as Outlook stores it, and `view: "raw"` is
402
+ Outlook's untouched record. `outlook_list_unread_messages`
403
+ takes `bodyFormat: "markdown"` too.
404
+ - Writing, pass `format: "markdown"` to `outlook_send_message`,
405
+ `outlook_create_draft`, `outlook_update_draft` or `outlook_reply`: the text
406
+ is sent as formatted HTML (bold, lists, links, headings, quotes, code), and
407
+ is cheaper for an agent to write than HTML. Raw HTML in it is escaped. A
408
+ formatted reply is drafted, filled in and sent in the same one call.
391
409
  - `outlook_list_events` uses the calendar *view*, which expands recurring
392
410
  series. `/me/events` does not, which is why it is not exposed as-is.
393
411
  - Time zones are **Windows** names (`Eastern Standard Time`), not IANA.