@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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +25 -7
- package/dist/bundle.js +1282 -167
- package/dist/index.js +4 -0
- package/dist/tools/_body.js +50 -0
- package/dist/tools/drafts.js +264 -0
- package/dist/tools/export.js +29 -15
- package/dist/tools/folders.js +279 -0
- package/dist/tools/mail.js +22 -8
- package/dist/tools/rules.js +3 -3
- package/dist/tools/writes.js +152 -52
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/server.json +2 -2
|
@@ -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
|
+
"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.
|
|
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.
|
|
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
|
|
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
|
|
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.
|