mcp-newoutlook 0.18.0 → 0.19.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/README.md +5 -3
- package/dist/tools.js +7 -7
- package/dist/tools.js.map +1 -1
- package/extension/background.js +24 -13
- package/extension/manifest.json +1 -1
- package/extension/owa.js +31 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,8 +17,8 @@ AI app ────stdio(MCP)──► mcp-newoutlook server ──ws://127.0.0.
|
|
|
17
17
|
| `get_version` | Server and extension versions, and the connection/session status. Temporarily (diagnostic for #48), `outlook.sessionRequests` lists the last 50 requests Outlook sent to `/search/`, `/searchservice/` and `/outlookgatewayb2/` since the extension's background worker started (`since`; the list is kept in memory only): time, method, Outlook host, path (no query; ids masked), request type, whether it came from a tab and from a page (`frameType`) or a worker, and whether a non-empty authorization header was sent (never its value) |
|
|
18
18
|
| `reload_extension` | Reloads the browser extension from disk after an update and waits until it is back, reporting the version before and after |
|
|
19
19
|
| `list_folders` | Every mail folder, including subfolders, with its path (`Inbox/Projects/Northwind`) and counts (`include_ids: true` adds folder ids) |
|
|
20
|
-
| `search_emails` | Lists a folder, or searches it with Outlook-style syntax (`from:alice`, `subject:report`, `cc:bob`, `hasattachment:yes`, `after:2026-09-01`, `received:today`; see below) in Outlook's full-text index, newest first or by relevance (`order`). `folder` takes a standard name (`inbox`, `sentitems`…), a path or id from `list_folders`, or `all` to search every folder. `preview: true` adds each email's To line and the start of its body |
|
|
21
|
-
| `read_email` | One email, or several at once (a list of ids): headers, recipients, body (text/html) and the attachment list. Text bodies drop the quoted history and repeated disclaimers by default (`include_quoted: true` keeps them); bodies are capped at `max_length` (20 000 characters). |
|
|
20
|
+
| `search_emails` | Lists a folder, or searches it with Outlook-style syntax (`from:alice`, `subject:report`, `cc:bob`, `hasattachment:yes`, `after:2026-09-01`, `received:today`; see below) in Outlook's full-text index, newest first or by relevance (`order`). `folder` takes a standard name (`inbox`, `sentitems`…), a path or id from `list_folders`, or `all` to search every folder. A folder is searched without its subfolders; use `all` for everything. `preview: true` adds each email's To line and the start of its body |
|
|
21
|
+
| `read_email` | One email, or several at once (a list of ids): headers, recipients, body (text/html) and the attachment list. Text bodies drop the quoted history and repeated disclaimers by default (`include_quoted: true` keeps them); bodies are capped at `max_length` (20 000 characters). `webLink` opens the email in Outlook on the web. |
|
|
22
22
|
| `read_thread` | The whole conversation an email belongs to, across folders (Sent Items included), oldest first, each message without the quoted history |
|
|
23
23
|
| `list_events` | Calendar appointments and meetings in a date range (default: the next 7 days), optionally only those whose subject, location, organizer or attendees match `query` (`searchNote` says when attendees couldn't be read), recurring meetings expanded, with location, organizer, your response and free/busy. Times in UTC and local time. |
|
|
24
24
|
| `find_meeting_times` | Suggests times when you and the attendees (addresses or names) are all free, from their free/busy and your calendar, inside working hours (default 09:00–17:00 local, weekdays). Tentative meetings count as busy unless `allow_tentative` |
|
|
@@ -38,6 +38,8 @@ AI app ────stdio(MCP)──► mcp-newoutlook server ──ws://127.0.0.
|
|
|
38
38
|
| `send_draft` | Asks to send a draft. **The user must click Send.** |
|
|
39
39
|
| `compose_and_send` | Write, attach and send in one step. **The user must click Send.** |
|
|
40
40
|
|
|
41
|
+
Email and folder ids can be Outlook's own or Microsoft Graph's (with `-` and `_` in place of `/` and `+`).
|
|
42
|
+
|
|
41
43
|
### Recipients by name
|
|
42
44
|
|
|
43
45
|
`to`, `cc` and `bcc` (in `create_draft`, `create_reply_draft`, `create_forward_draft`, `update_draft` and `compose_and_send`) take email addresses or names, e.g. `["Daniel Kowalski", "bob@example.com"]`. Each name is looked up in your contacts, the directory and your mail at once (a few seconds), and must mean exactly one person: an exact full-name match wins among several ("Kowalski, Daniel (ENG)" matches "Daniel Kowalski"). Otherwise nothing is created and the matching people are listed. The result's `resolvedRecipients` shows what each name became.
|
|
@@ -77,7 +79,7 @@ Coming from a version before 0.15 (a git clone, extension loaded from the repo's
|
|
|
77
79
|
|
|
78
80
|
## Search syntax
|
|
79
81
|
|
|
80
|
-
Searches go to Outlook's full-text index, the one its own search box uses: whole words in the subject, body, people and attachment contents (`search: "fulltext"` in the result). The index needs the search session Outlook sets up when you use its search box, so after the browser or the extension starts, **search once in Outlook** to turn it on. Until then, and in folders you made yourself, fields are matched as described under Limitations (`search: "substring"`, `searchNote` says why).
|
|
82
|
+
Searches go to Outlook's full-text index, the one its own search box uses: whole words in the subject, body, people and attachment contents (`search: "fulltext"` in the result). The index needs the search session Outlook sets up when you use its search box, so after the browser or the extension starts, **search once in Outlook** to turn it on. Until then, and in folders you made yourself, fields are matched as described under Limitations (`search: "substring"`, `searchNote` says why). When nothing is found, `emptyNote` says what wasn't searched: subfolders of the folder, folders that couldn't be searched with `all`, or attachment contents with field matching.
|
|
81
83
|
|
|
82
84
|
|
|
83
85
|
- Free words match the subject, body or sender. `"Quoted phrases"` match as a whole.
|
package/dist/tools.js
CHANGED
|
@@ -106,7 +106,7 @@ export function registerTools(server, bridge, config) {
|
|
|
106
106
|
}));
|
|
107
107
|
server.registerTool("search_emails", {
|
|
108
108
|
title: "List or search emails",
|
|
109
|
-
description: "Lists emails in a folder, newest first. With `query`, searches Outlook's full-text index (subject, body, people, attachment contents; search: 'fulltext'), or matches fields when that isn't available (search: 'substring', searchNote says why).
|
|
109
|
+
description: "Lists emails in a folder, newest first. With `query`, searches Outlook's full-text index (subject, body, people, attachment contents; search: 'fulltext'), or matches fields when that isn't available (search: 'substring', searchNote says why). A folder is searched without its subfolders; use folder 'all' to search every folder (results carry their folder). When nothing is found, emptyNote says what that doesn't rule out. Returns ids for read_email / download tools; ids from Microsoft Graph (with '-' and '_') work too.",
|
|
110
110
|
inputSchema: {
|
|
111
111
|
query: z
|
|
112
112
|
.string()
|
|
@@ -129,9 +129,9 @@ export function registerTools(server, bridge, config) {
|
|
|
129
129
|
});
|
|
130
130
|
server.registerTool("read_email", {
|
|
131
131
|
title: "Read emails",
|
|
132
|
-
description: "Reads an email: headers, recipients, body and attachment list. Pass a list of ids to read several at once. Text bodies drop the quoted history of earlier messages (body.quotedRemoved) and collapse repeated disclaimers; longer than max_length is cut (body.truncated, body.fullLength).",
|
|
132
|
+
description: "Reads an email: headers, recipients, body and attachment list. Pass a list of ids to read several at once. Text bodies drop the quoted history of earlier messages (body.quotedRemoved) and collapse repeated disclaimers; longer than max_length is cut (body.truncated, body.fullLength). webLink opens the email in Outlook on the web.",
|
|
133
133
|
inputSchema: {
|
|
134
|
-
id: oneOrMany.describe("Email id from search_emails, or a list of up to 50 ids"),
|
|
134
|
+
id: oneOrMany.describe("Email id from search_emails, or a list of up to 50 ids (Graph ids work too)"),
|
|
135
135
|
body_format: z.enum(["text", "html"]).default("text"),
|
|
136
136
|
include_quoted: z.boolean().default(false).describe("Keep the quoted history of earlier messages (text format)"),
|
|
137
137
|
max_length: z.number().int().min(500).max(1_000_000).default(20_000).describe("Maximum body length per email, in characters"),
|
|
@@ -153,7 +153,7 @@ export function registerTools(server, bridge, config) {
|
|
|
153
153
|
title: "Read a whole conversation",
|
|
154
154
|
description: "Reads the conversation an email belongs to, in every folder (Sent Items included, Deleted Items and Drafts not), oldest first. Each message's body is shortened like read_email, so the quoted history isn't repeated.",
|
|
155
155
|
inputSchema: {
|
|
156
|
-
id: z.string().describe("Id of any email in the conversation"),
|
|
156
|
+
id: z.string().describe("Id of any email in the conversation (Graph ids work too)"),
|
|
157
157
|
max_messages: z.number().int().min(1).max(100).default(20).describe("Newest messages to return; omitted says how many older ones were left out"),
|
|
158
158
|
max_length: z.number().int().min(500).max(100_000).default(5_000).describe("Maximum body length per message"),
|
|
159
159
|
body_format: z.enum(["text", "html"]).default("text"),
|
|
@@ -452,7 +452,7 @@ export function registerTools(server, bridge, config) {
|
|
|
452
452
|
title: "Download emails as .eml",
|
|
453
453
|
description: "Saves the full email (MIME, including attachments) as an .eml file. Pass a list of ids to save several emails.",
|
|
454
454
|
inputSchema: {
|
|
455
|
-
id: oneOrMany.describe("Email id, or a list of ids"),
|
|
455
|
+
id: oneOrMany.describe("Email id, or a list of ids (Graph ids work too)"),
|
|
456
456
|
dir: z.string().optional().describe("Target folder. Defaults to the configured download folder."),
|
|
457
457
|
},
|
|
458
458
|
}, safe(async ({ id, dir }) => {
|
|
@@ -473,7 +473,7 @@ export function registerTools(server, bridge, config) {
|
|
|
473
473
|
title: "Download attachments",
|
|
474
474
|
description: "Saves all file attachments of an email to disk (optionally only selected attachment ids). Pass a list of email ids to download from several emails; each email's files then go into their own subfolder named after its subject.",
|
|
475
475
|
inputSchema: {
|
|
476
|
-
id: oneOrMany.describe("Email id, or a list of ids"),
|
|
476
|
+
id: oneOrMany.describe("Email id, or a list of ids (Graph ids work too)"),
|
|
477
477
|
attachment_ids: z.array(z.string()).optional(),
|
|
478
478
|
include_inline: z.boolean().default(false).describe("Also save inline images"),
|
|
479
479
|
dir: z.string().optional(),
|
|
@@ -530,7 +530,7 @@ export function registerTools(server, bridge, config) {
|
|
|
530
530
|
return text({ totalSaved, emails });
|
|
531
531
|
}));
|
|
532
532
|
const sendNote = "A confirmation window opens in the browser showing recipients, subject, body and attachments. The email is sent ONLY if the user clicks Send there; the call waits for that decision.";
|
|
533
|
-
const ids = z.array(z.string().min(1)).min(1).max(100).describe("Email ids from search_emails");
|
|
533
|
+
const ids = z.array(z.string().min(1)).min(1).max(100).describe("Email ids from search_emails (Graph ids work too)");
|
|
534
534
|
server.registerTool("mark_emails", {
|
|
535
535
|
title: "Mark emails read/unread or flag them",
|
|
536
536
|
description: "Marks one or more emails as read or unread, and/or sets their flag (flagged, complete, none).",
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/extension/background.js
CHANGED
|
@@ -582,15 +582,20 @@ async function mailCorrespondents(words, limit) {
|
|
|
582
582
|
}
|
|
583
583
|
|
|
584
584
|
/** An email as tools return it: no change key, MIME or conversation id. */
|
|
585
|
-
function forReading({ mimeBase64: _m, changeKey: _c, conversationId: _i, ...item }) {
|
|
586
|
-
return item;
|
|
585
|
+
function forReading({ mimeBase64: _m, changeKey: _c, conversationId: _i, ...item }, origin) {
|
|
586
|
+
return origin && item.id ? { ...item, webLink: owa.webLink(origin, item.id) } : item;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
/** The Outlook site in use, for links that open an email there. */
|
|
590
|
+
async function outlookOrigin() {
|
|
591
|
+
return new URL((await findOutlookTab()).t.url).origin;
|
|
587
592
|
}
|
|
588
593
|
|
|
589
594
|
async function readDraft(id) {
|
|
590
595
|
return owa.parseItem(await owaCall("GetItem", owa.getItem(id, { bodyFormat: "text" })));
|
|
591
596
|
}
|
|
592
597
|
|
|
593
|
-
const handlers = {
|
|
598
|
+
export const handlers = {
|
|
594
599
|
|
|
595
600
|
|
|
596
601
|
async status() {
|
|
@@ -628,14 +633,19 @@ const handlers = {
|
|
|
628
633
|
const { result, reason } = await fullTextSearch({ query, folder: key, limit, offset, order });
|
|
629
634
|
if (result) {
|
|
630
635
|
const r = owa.parseSearchResults(result, { offset, folders: await getFolders() });
|
|
631
|
-
|
|
636
|
+
const emptyNote = owa.emptySearchNote({ search: "fulltext", folder: key, found: r.items.length, offset });
|
|
637
|
+
return { folder: key, search: "fulltext", ...r, items: trim(await withSmtpSenders(r.items)), ...(emptyNote ? { emptyNote } : {}) };
|
|
632
638
|
}
|
|
633
639
|
searchNote = reason;
|
|
634
640
|
} else {
|
|
635
641
|
searchNote = "full-text search covers standard folders and 'all'; folders you made are matched by field";
|
|
636
642
|
}
|
|
637
643
|
}
|
|
638
|
-
const withMode = (r) =>
|
|
644
|
+
const withMode = (r) => {
|
|
645
|
+
if (!query?.trim()) return { ...r, items: trim(r.items) };
|
|
646
|
+
const emptyNote = owa.emptySearchNote({ search: "substring", folder: r.folder, found: r.items.length, offset, foldersFailed: r.foldersFailed });
|
|
647
|
+
return { ...r, items: trim(r.items), search: "substring", searchNote, ...(emptyNote ? { emptyNote } : {}) };
|
|
648
|
+
};
|
|
639
649
|
if (key === "all") return withMode(await searchAllFolders(await getFolders(), { query, limit, offset, preview }));
|
|
640
650
|
const target = DISTINGUISHED_FOLDERS.has(key)
|
|
641
651
|
? { folder: key, label: key }
|
|
@@ -660,16 +670,17 @@ const handlers = {
|
|
|
660
670
|
|
|
661
671
|
async readEmail({ id, bodyFormat }) {
|
|
662
672
|
const item = owa.parseItem(await owaCall("GetItem", owa.getItem(id, { bodyFormat })));
|
|
663
|
-
return forReading(item);
|
|
673
|
+
return forReading(item, await outlookOrigin());
|
|
664
674
|
},
|
|
665
675
|
|
|
666
|
-
/** Several emails, 20 per call: one { item } or { id, error } per id, in order. */
|
|
667
|
-
async readEmails({ ids, bodyFormat }) {
|
|
676
|
+
/** Several emails, 20 per call: one { item } or { id, error } per id, in order. links: false leaves out webLink. */
|
|
677
|
+
async readEmails({ ids, bodyFormat, links = true }) {
|
|
668
678
|
const results = [];
|
|
679
|
+
const origin = links ? await outlookOrigin() : null;
|
|
669
680
|
for (let i = 0; i < ids.length; i += 20) {
|
|
670
681
|
const chunk = ids.slice(i, i + 20);
|
|
671
682
|
const json = await owaCall("GetItem", owa.getItems(chunk, { bodyFormat }));
|
|
672
|
-
results.push(...owa.parseItems(json, chunk).map((r) => (r.item ? { item: forReading(r.item) } : r)));
|
|
683
|
+
results.push(...owa.parseItems(json, chunk).map((r) => (r.item ? { item: forReading(r.item, origin) } : r)));
|
|
673
684
|
}
|
|
674
685
|
return { results };
|
|
675
686
|
},
|
|
@@ -682,7 +693,7 @@ const handlers = {
|
|
|
682
693
|
: [];
|
|
683
694
|
if (!ids.length) ids.push(id);
|
|
684
695
|
const wanted = ids.slice(-maxMessages);
|
|
685
|
-
const { results } = await handlers.readEmails({ ids: wanted, bodyFormat });
|
|
696
|
+
const { results } = await handlers.readEmails({ ids: wanted, bodyFormat, links: false });
|
|
686
697
|
return {
|
|
687
698
|
subject: start.subject,
|
|
688
699
|
total: ids.length,
|
|
@@ -731,7 +742,7 @@ const handlers = {
|
|
|
731
742
|
async listAttachments({ id, attachmentIds, includeInline }) {
|
|
732
743
|
const item = owa.parseItem(await owaCall("GetItem", owa.getItem(id)));
|
|
733
744
|
const wanted = item.attachments.filter((a) =>
|
|
734
|
-
attachmentIds?.length ? attachmentIds.includes(a.id) : includeInline || !a.isInline,
|
|
745
|
+
attachmentIds?.length ? attachmentIds.map(owa.ewsId).includes(a.id) : includeInline || !a.isInline,
|
|
735
746
|
);
|
|
736
747
|
return { subject: item.subject, attachments: wanted.map(({ id: aid, name, size, isItem }) => ({ id: aid, name, size, isItem })) };
|
|
737
748
|
},
|
|
@@ -747,7 +758,7 @@ const handlers = {
|
|
|
747
758
|
async getAttachments({ id, attachmentIds, includeInline }) {
|
|
748
759
|
const item = owa.parseItem(await owaCall("GetItem", owa.getItem(id)));
|
|
749
760
|
const wanted = item.attachments.filter((a) =>
|
|
750
|
-
attachmentIds?.length ? attachmentIds.includes(a.id) : includeInline || !a.isInline,
|
|
761
|
+
attachmentIds?.length ? attachmentIds.map(owa.ewsId).includes(a.id) : includeInline || !a.isInline,
|
|
751
762
|
);
|
|
752
763
|
const attachments = [];
|
|
753
764
|
for (const a of wanted) {
|
|
@@ -818,7 +829,7 @@ const handlers = {
|
|
|
818
829
|
const draft = await readDraft(draftId);
|
|
819
830
|
if (draft.isDraft === false) throw new Error("Only drafts can be edited.");
|
|
820
831
|
if (removeAttachmentIds?.length) {
|
|
821
|
-
const unknown = removeAttachmentIds.filter((a) => !draft.attachments.some((x) => x.id === a));
|
|
832
|
+
const unknown = removeAttachmentIds.filter((a) => !draft.attachments.some((x) => x.id === owa.ewsId(a)));
|
|
822
833
|
if (unknown.length) throw new Error(`Not attachments of this draft: ${unknown.join(", ")}`);
|
|
823
834
|
}
|
|
824
835
|
const hasFieldChanges = ["to", "cc", "bcc", "subject", "body"].some((k) => fields[k] !== undefined);
|
package/extension/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyYxkVrq+THOJVscuwRU4IvQ4K0VWiXVOjhDWjcwpILY3r7e/Fb+VhI813kRV149laUXLfehqI6WrQKbVs/KODArPIfiNEpm/zsb2nmgbQtoYuzMO3b5Hvsp1JNZ+IEMQGRFwHlOQt+w+qLAbSgdgLK2mtvjhGu9kWLmiK2wxKPaI0/zVAdvvthzMeGZCcC7V9tH2WX8I3RVD/PZcgmmFY38APGwgatg5AV5zz0AZEPSH7ldcAI2dHkmxuFh85k1cJJjWYEHikXc+ibTv9n1OfGbt/BzV/+QpMjbpJGmnJJrzCEqjw0WOyoabtpRKympl/jshjA5Kp+avlUvEYse12QIDAQAB",
|
|
4
4
|
"name": "mcp-newoutlook bridge",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.19.0",
|
|
6
6
|
"description": "Lets AI assistants (via the mcp-newoutlook MCP server) read, search, draft and — with your explicit confirmation — send mail in New Outlook.",
|
|
7
7
|
"minimum_chrome_version": "116",
|
|
8
8
|
"icons": {
|
package/extension/owa.js
CHANGED
|
@@ -19,7 +19,13 @@ const request = (action, body) => ({
|
|
|
19
19
|
Body: ex(`${action}Request`, body),
|
|
20
20
|
});
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Outlook's ids are standard base64; Microsoft Graph writes the same id with '-' for '/'
|
|
24
|
+
* and '_' for '+' (Outlook's own deep links do too). Ids in either form are accepted.
|
|
25
|
+
*/
|
|
26
|
+
export const ewsId = (id) => (typeof id === "string" ? id.replace(/-/g, "/").replace(/_/g, "+") : id);
|
|
27
|
+
|
|
28
|
+
const itemId = (id, changeKey) => ex("ItemId", changeKey ? { Id: ewsId(id), ChangeKey: changeKey } : { Id: ewsId(id) });
|
|
23
29
|
const folderId = (id) => ex("DistinguishedFolderId", { Id: id });
|
|
24
30
|
const mailbox = (address) => ex("EmailAddress", { EmailAddress: address, RoutingType: "SMTP" });
|
|
25
31
|
|
|
@@ -215,6 +221,24 @@ export function searchQuery({ query, folder = "inbox", limit = 25, offset = 0, o
|
|
|
215
221
|
};
|
|
216
222
|
}
|
|
217
223
|
|
|
224
|
+
/** A link that opens an email in Outlook on the web (the form Microsoft Graph's webLink has). */
|
|
225
|
+
export function webLink(origin, id) {
|
|
226
|
+
return `${origin}/owa/?ItemID=${encodeURIComponent(id)}&exvsurl=1&viewmodel=ReadMessageItem`;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* For a search that found nothing: what the empty result does not prove, so it isn't
|
|
231
|
+
* taken as "no such email". null when something was found or nothing applies.
|
|
232
|
+
*/
|
|
233
|
+
export function emptySearchNote({ search, folder, found, offset = 0, foldersFailed = 0 }) {
|
|
234
|
+
if (found || offset) return null;
|
|
235
|
+
const notes = [];
|
|
236
|
+
if (foldersFailed) notes.push(`${foldersFailed} folder${foldersFailed === 1 ? "" : "s"} couldn't be searched`);
|
|
237
|
+
if (folder !== "all") notes.push(`only ${folder} was searched, not its subfolders or other folders (try folder 'all')`);
|
|
238
|
+
if (search === "substring") notes.push("field matching misses attachment contents and other word forms");
|
|
239
|
+
return notes.length ? `Nothing found, but ${notes.join("; ")}.` : null;
|
|
240
|
+
}
|
|
241
|
+
|
|
218
242
|
/** Results in the same shape as parseFindItem, plus folder (a path when folders are given) and to. */
|
|
219
243
|
export function parseSearchResults(json, { offset = 0, folders = [] } = {}) {
|
|
220
244
|
const set = json?.EntitySets?.[0]?.ResultSets?.[0];
|
|
@@ -250,7 +274,7 @@ export function findItem({ folder = "inbox", folderId: id, query, limit = 25, of
|
|
|
250
274
|
// Default shape omits the received date in OWA's JSON service.
|
|
251
275
|
AdditionalProperties: [field("DateTimeReceived"), field("Flag"), ...(preview ? [field("Preview"), field("DisplayTo")] : [])],
|
|
252
276
|
}),
|
|
253
|
-
ParentFolderIds: [id ? ex("FolderId", { Id: id }) : folderId(folder)],
|
|
277
|
+
ParentFolderIds: [id ? ex("FolderId", { Id: ewsId(id) }) : folderId(folder)],
|
|
254
278
|
Traversal: "Shallow",
|
|
255
279
|
Paging: ex("IndexedPageView", { BasePoint: "Beginning", Offset: offset, MaxEntriesReturned: limit }),
|
|
256
280
|
SortOrder: [ex("SortResults", { Order: "Descending", Path: field("DateTimeReceived") })],
|
|
@@ -302,7 +326,7 @@ export function getConversationItems(conversationId, { max = 100 } = {}) {
|
|
|
302
326
|
FoldersToIgnore: [folderId("deleteditems"), folderId("drafts")],
|
|
303
327
|
MaxItemsToReturn: max,
|
|
304
328
|
SortOrder: "DateOrderAscending",
|
|
305
|
-
Conversations: [ex("ConversationRequestType", { ConversationId: ex("ItemId", { Id: conversationId }) })],
|
|
329
|
+
Conversations: [ex("ConversationRequestType", { ConversationId: ex("ItemId", { Id: ewsId(conversationId) }) })],
|
|
306
330
|
});
|
|
307
331
|
}
|
|
308
332
|
|
|
@@ -396,7 +420,7 @@ export function createAttachment(parentId, { name, contentType, contentBase64 })
|
|
|
396
420
|
* available; buildEml assembles it.
|
|
397
421
|
*/
|
|
398
422
|
export function getAttachment(attachmentId) {
|
|
399
|
-
return request("GetAttachment", { AttachmentIds: [ex("AttachmentId", { Id: attachmentId })] });
|
|
423
|
+
return request("GetAttachment", { AttachmentIds: [ex("AttachmentId", { Id: ewsId(attachmentId) })] });
|
|
400
424
|
}
|
|
401
425
|
|
|
402
426
|
/**
|
|
@@ -578,7 +602,7 @@ export function markItems(ids, { read, flag } = {}) {
|
|
|
578
602
|
/** Moves items to a distinguished folder ("deleteditems") or a folder id. */
|
|
579
603
|
export function moveItems(ids, { folder, folderId: id }) {
|
|
580
604
|
return request("MoveItem", {
|
|
581
|
-
ToFolderId: ex("TargetFolderId", { BaseFolderId: id ? ex("FolderId", { Id: id }) : folderId(folder) }),
|
|
605
|
+
ToFolderId: ex("TargetFolderId", { BaseFolderId: id ? ex("FolderId", { Id: ewsId(id) }) : folderId(folder) }),
|
|
582
606
|
ItemIds: ids.map((i) => itemId(i)),
|
|
583
607
|
ReturnNewItemIds: true,
|
|
584
608
|
});
|
|
@@ -606,7 +630,7 @@ export function updateDraft(id, { to, cc, bcc, subject, body, bodyFormat = "text
|
|
|
606
630
|
}
|
|
607
631
|
|
|
608
632
|
export function deleteAttachments(attachmentIds) {
|
|
609
|
-
return request("DeleteAttachment", { AttachmentIds: attachmentIds.map((a) => ex("AttachmentId", { Id: a })) });
|
|
633
|
+
return request("DeleteAttachment", { AttachmentIds: attachmentIds.map((a) => ex("AttachmentId", { Id: ewsId(a) })) });
|
|
610
634
|
}
|
|
611
635
|
|
|
612
636
|
// ---------------------------------------------------------------- calendar
|
|
@@ -967,7 +991,7 @@ export function parseFolders(json) {
|
|
|
967
991
|
export function resolveFolder(folders, wanted) {
|
|
968
992
|
const w = wanted.replace(/^\/+|\/+$/g, "").toLowerCase();
|
|
969
993
|
const hit =
|
|
970
|
-
folders.find((f) => f.id === wanted) ?? folders.find((f) => f.path.toLowerCase() === w);
|
|
994
|
+
folders.find((f) => f.id === ewsId(wanted)) ?? folders.find((f) => f.path.toLowerCase() === w);
|
|
971
995
|
if (hit) return hit;
|
|
972
996
|
const byName = folders.filter((f) => f.name.toLowerCase() === w);
|
|
973
997
|
if (byName.length === 1) return byName[0];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-newoutlook",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "MCP server that lets AI assistants work with New Outlook (web) through a Chrome/Edge extension bridge",
|
|
5
5
|
"keywords": ["mcp", "model-context-protocol", "outlook", "office365", "email", "calendar", "claude", "chrome-extension"],
|
|
6
6
|
"repository": {
|