@zyx1121/apple-mail-mcp 0.1.4 → 0.2.1
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/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/accounts.js +25 -0
- package/dist/tools/accounts.js.map +1 -1
- package/dist/tools/compose.d.ts +2 -0
- package/dist/tools/compose.js +52 -0
- package/dist/tools/compose.js.map +1 -0
- package/dist/tools/messages.js +66 -4
- package/dist/tools/messages.js.map +1 -1
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -2,6 +2,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { registerAccountTools } from "./tools/accounts.js";
|
|
3
3
|
import { registerMessageTools } from "./tools/messages.js";
|
|
4
4
|
import { registerSearchTools } from "./tools/search.js";
|
|
5
|
+
import { registerComposeTools } from "./tools/compose.js";
|
|
5
6
|
export function createServer() {
|
|
6
7
|
const server = new McpServer({
|
|
7
8
|
name: "apple-mail",
|
|
@@ -10,6 +11,7 @@ export function createServer() {
|
|
|
10
11
|
registerAccountTools(server);
|
|
11
12
|
registerMessageTools(server);
|
|
12
13
|
registerSearchTools(server);
|
|
14
|
+
registerComposeTools(server);
|
|
13
15
|
return server;
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7B,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/tools/accounts.js
CHANGED
|
@@ -17,6 +17,31 @@ export function registerAccountTools(server) {
|
|
|
17
17
|
}
|
|
18
18
|
return success(accounts);
|
|
19
19
|
}));
|
|
20
|
+
server.tool("mail_list_mailboxes", "List mailboxes for an account with unread counts", {
|
|
21
|
+
account: z.string().describe("Account name"),
|
|
22
|
+
}, withErrorHandling(async ({ account }) => {
|
|
23
|
+
const script = `
|
|
24
|
+
tell application "Mail"
|
|
25
|
+
set output to ""
|
|
26
|
+
repeat with mb in (every mailbox of account "${account}")
|
|
27
|
+
set mbName to name of mb
|
|
28
|
+
set unread to unread count of mb
|
|
29
|
+
set output to output & mbName & "\\t" & unread & "\\n"
|
|
30
|
+
end repeat
|
|
31
|
+
return output
|
|
32
|
+
end tell`;
|
|
33
|
+
const raw = await runAppleScript(script);
|
|
34
|
+
if (!raw)
|
|
35
|
+
return success([]);
|
|
36
|
+
const mailboxes = [];
|
|
37
|
+
for (const line of raw.split("\n")) {
|
|
38
|
+
if (!line)
|
|
39
|
+
continue;
|
|
40
|
+
const [name, unread] = line.split("\t");
|
|
41
|
+
mailboxes.push({ name, unread: parseInt(unread, 10) });
|
|
42
|
+
}
|
|
43
|
+
return success(mailboxes);
|
|
44
|
+
}));
|
|
20
45
|
server.tool("mail_count_unread", "Count unread messages in a mailbox", {
|
|
21
46
|
account: z.string().optional().describe("Account name (e.g. 'iCloud', 'Gmail'). Omit for all accounts."),
|
|
22
47
|
mailbox: z.string().optional().describe("Mailbox name (e.g. 'INBOX'). Omit for inbox."),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/tools/accounts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAS,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,4CAA4C,EAC5C,EAAE,EACF,iBAAiB,CAAC,KAAK,IAAI,EAAE;QAC3B,MAAM,YAAY,GAAG,MAAM,cAAc,CACvC,sDAAsD,CACvD,CAAC;QAEF,IAAI,CAAC,YAAY;YAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,cAAc,CACpC,oEAAoE,IAAI,GAAG,CAC5E,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;aAClD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,oCAAoC,EACpC;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QACxG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACxF,EACD,iBAAiB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,OAAO;gBACpB,CAAC,CAAC,YAAY,OAAO,iBAAiB,OAAO,GAAG;gBAChD,CAAC,CAAC,OAAO,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,cAAc,CAChC,kDAAkD,MAAM,EAAE,CAC3D,CAAC;YACF,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,eAAe;QACf,MAAM,YAAY,GAAG,MAAM,cAAc,CACvC,sDAAsD,CACvD,CAAC;QACF,IAAI,CAAC,YAAY;YAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG;;yBAEE,IAAI;;;;;;;;;SASpB,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/tools/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { runAppleScript, escapeForAppleScript } from "../applescript.js";
|
|
3
|
+
import { success, withErrorHandling } from "../helpers.js";
|
|
4
|
+
export function registerComposeTools(server) {
|
|
5
|
+
server.tool("mail_send", "Send a new email or reply to an existing message", {
|
|
6
|
+
to: z.string().optional().describe("Recipient email (required for new message)"),
|
|
7
|
+
subject: z.string().optional().describe("Subject (required for new message)"),
|
|
8
|
+
body: z.string().describe("Email body (plain text)"),
|
|
9
|
+
cc: z.string().optional().describe("CC email address"),
|
|
10
|
+
from_account: z.string().optional().describe("Account name to send from"),
|
|
11
|
+
reply_to_id: z.number().int().optional().describe("Message ID to reply to"),
|
|
12
|
+
reply_to_account: z.string().optional().describe("Account of message being replied to"),
|
|
13
|
+
reply_to_mailbox: z.string().optional().describe("Mailbox of message being replied to (default: INBOX)"),
|
|
14
|
+
}, withErrorHandling(async ({ to, subject, body, cc, from_account, reply_to_id, reply_to_account, reply_to_mailbox }) => {
|
|
15
|
+
const esc = escapeForAppleScript;
|
|
16
|
+
if (reply_to_id) {
|
|
17
|
+
// Reply mode
|
|
18
|
+
const acct = reply_to_account || "";
|
|
19
|
+
const mbox = reply_to_mailbox || "INBOX";
|
|
20
|
+
const target = acct
|
|
21
|
+
? `mailbox "${esc(mbox)}" of account "${esc(acct)}"`
|
|
22
|
+
: "inbox";
|
|
23
|
+
await runAppleScript(`
|
|
24
|
+
tell application "Mail"
|
|
25
|
+
set orig to first message of ${target} whose id is ${reply_to_id}
|
|
26
|
+
set r to reply orig reply to all false
|
|
27
|
+
set content of r to "${esc(body)}" & return & return & content of r
|
|
28
|
+
send r
|
|
29
|
+
end tell`);
|
|
30
|
+
return success({ replied_to: reply_to_id, sent: true });
|
|
31
|
+
}
|
|
32
|
+
// New message mode
|
|
33
|
+
if (!to || !subject)
|
|
34
|
+
throw new Error("to and subject are required for new messages");
|
|
35
|
+
const ccLine = cc
|
|
36
|
+
? `\n make new cc recipient at end of cc recipients with properties {address: "${esc(cc)}"}`
|
|
37
|
+
: "";
|
|
38
|
+
const senderLine = from_account
|
|
39
|
+
? `\n set sender to "${esc(from_account)}"`
|
|
40
|
+
: "";
|
|
41
|
+
await runAppleScript(`
|
|
42
|
+
tell application "Mail"
|
|
43
|
+
set newMsg to make new outgoing message with properties {subject: "${esc(subject)}", content: "${esc(body)}", visible: false}
|
|
44
|
+
tell newMsg${senderLine}
|
|
45
|
+
make new to recipient at end of to recipients with properties {address: "${esc(to)}"}${ccLine}
|
|
46
|
+
end tell
|
|
47
|
+
send newMsg
|
|
48
|
+
end tell`);
|
|
49
|
+
return success({ to, subject, sent: true });
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=compose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/tools/compose.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,IAAI,CACT,WAAW,EACX,kDAAkD,EAClD;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACpD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACtD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACzE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC3E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACvF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;KACzG,EACD,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,EAAE;QACnH,MAAM,GAAG,GAAG,oBAAoB,CAAC;QAEjC,IAAI,WAAW,EAAE,CAAC;YAChB,aAAa;YACb,MAAM,IAAI,GAAG,gBAAgB,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,gBAAgB,IAAI,OAAO,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI;gBACjB,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,GAAG;gBACpD,CAAC,CAAC,OAAO,CAAC;YAEZ,MAAM,cAAc,CAAC;;iCAEI,MAAM,gBAAgB,WAAW;;yBAEzC,GAAG,CAAC,IAAI,CAAC;;SAEzB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAErF,MAAM,MAAM,GAAG,EAAE;YACf,CAAC,CAAC,kFAAkF,GAAG,CAAC,EAAE,CAAC,IAAI;YAC/F,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,UAAU,GAAG,YAAY;YAC7B,CAAC,CAAC,wBAAwB,GAAG,CAAC,YAAY,CAAC,GAAG;YAC9C,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,cAAc,CAAC;;uEAE4C,GAAG,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC;eAC7F,UAAU;+EACsD,GAAG,CAAC,EAAE,CAAC,KAAK,MAAM;;;SAGxF,CAAC,CAAC;QACL,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/dist/tools/messages.js
CHANGED
|
@@ -71,7 +71,7 @@ end tell`;
|
|
|
71
71
|
return success(parseMessages(raw));
|
|
72
72
|
}));
|
|
73
73
|
server.tool("mail_read_message", "Read the full content of a specific message", {
|
|
74
|
-
message_id: z.number().int().describe("Message ID"),
|
|
74
|
+
message_id: z.coerce.number().int().describe("Message ID"),
|
|
75
75
|
account: z.string().optional().describe("Account name (speeds up lookup)"),
|
|
76
76
|
mailbox: z.string().optional().describe("Mailbox name (speeds up lookup)"),
|
|
77
77
|
}, withErrorHandling(async ({ message_id, account, mailbox }) => {
|
|
@@ -93,7 +93,7 @@ tell application "Mail"
|
|
|
93
93
|
return subj & "\\n===FIELD===\\n" & sndr & "\\n===FIELD===\\n" & rcvd & "\\n===FIELD===\\n" & isRead & "\\n===FIELD===\\n" & cnt & "\\n===FIELD===\\n" & toStr & "\\n===FIELD===\\n" & ccStr
|
|
94
94
|
end tell`;
|
|
95
95
|
const raw = await runAppleScript(script);
|
|
96
|
-
const fields = raw.split(
|
|
96
|
+
const fields = raw.split(/\n===FIELD===\n?/);
|
|
97
97
|
return success({
|
|
98
98
|
id: message_id,
|
|
99
99
|
subject: fields[0] || "",
|
|
@@ -124,7 +124,7 @@ tell application "Mail"
|
|
|
124
124
|
return subj & "\\n===FIELD===\\n" & sndr & "\\n===FIELD===\\n" & rcvd & "\\n===FIELD===\\n" & isRead & "\\n===FIELD===\\n" & cnt & "\\n===FIELD===\\n" & toStr & "\\n===FIELD===\\n" & ccStr
|
|
125
125
|
end tell`;
|
|
126
126
|
const raw = await runAppleScript(script);
|
|
127
|
-
const fields = raw.split(
|
|
127
|
+
const fields = raw.split(/\n===FIELD===\n?/);
|
|
128
128
|
return success({
|
|
129
129
|
id: message_id,
|
|
130
130
|
account: acctName,
|
|
@@ -144,7 +144,7 @@ end tell`;
|
|
|
144
144
|
return error(`Message ${message_id} not found in any inbox.`);
|
|
145
145
|
}));
|
|
146
146
|
server.tool("mail_mark_read", "Mark a message as read", {
|
|
147
|
-
message_id: z.number().int().describe("Message ID"),
|
|
147
|
+
message_id: z.coerce.number().int().describe("Message ID"),
|
|
148
148
|
account: z.string().optional().describe("Account name"),
|
|
149
149
|
mailbox: z.string().optional().describe("Mailbox name"),
|
|
150
150
|
}, withErrorHandling(async ({ message_id, account, mailbox }) => {
|
|
@@ -160,5 +160,67 @@ tell application "Mail"
|
|
|
160
160
|
end tell`);
|
|
161
161
|
return success({ message_id, marked_read: true });
|
|
162
162
|
}));
|
|
163
|
+
server.tool("mail_mark_unread", "Mark a message as unread", {
|
|
164
|
+
message_id: z.coerce.number().int().describe("Message ID"),
|
|
165
|
+
account: z.string().optional().describe("Account name"),
|
|
166
|
+
mailbox: z.string().optional().describe("Mailbox name"),
|
|
167
|
+
}, withErrorHandling(async ({ message_id, account, mailbox }) => {
|
|
168
|
+
const target = account
|
|
169
|
+
? (mailbox
|
|
170
|
+
? `mailbox "${escapeForAppleScript(mailbox)}" of account "${escapeForAppleScript(account)}"`
|
|
171
|
+
: `mailbox "INBOX" of account "${escapeForAppleScript(account)}"`)
|
|
172
|
+
: "inbox";
|
|
173
|
+
await runAppleScript(`
|
|
174
|
+
tell application "Mail"
|
|
175
|
+
set m to first message of ${target} whose id is ${message_id}
|
|
176
|
+
set read status of m to false
|
|
177
|
+
end tell`);
|
|
178
|
+
return success({ message_id, marked_unread: true });
|
|
179
|
+
}));
|
|
180
|
+
server.tool("mail_flag", "Flag or unflag a message", {
|
|
181
|
+
message_id: z.coerce.number().int().describe("Message ID"),
|
|
182
|
+
account: z.string().optional().describe("Account name"),
|
|
183
|
+
mailbox: z.string().optional().describe("Mailbox name"),
|
|
184
|
+
flagged: z.boolean().default(true).describe("true to flag, false to unflag"),
|
|
185
|
+
}, withErrorHandling(async ({ message_id, account, mailbox, flagged }) => {
|
|
186
|
+
const target = account
|
|
187
|
+
? (mailbox
|
|
188
|
+
? `mailbox "${escapeForAppleScript(mailbox)}" of account "${escapeForAppleScript(account)}"`
|
|
189
|
+
: `mailbox "INBOX" of account "${escapeForAppleScript(account)}"`)
|
|
190
|
+
: "inbox";
|
|
191
|
+
await runAppleScript(`
|
|
192
|
+
tell application "Mail"
|
|
193
|
+
set m to first message of ${target} whose id is ${message_id}
|
|
194
|
+
set flagged status of m to ${flagged}
|
|
195
|
+
end tell`);
|
|
196
|
+
return success({ message_id, flagged });
|
|
197
|
+
}));
|
|
198
|
+
server.tool("mail_move", "Move a message to another mailbox", {
|
|
199
|
+
message_id: z.coerce.number().int().describe("Message ID"),
|
|
200
|
+
account: z.string().describe("Account name"),
|
|
201
|
+
from_mailbox: z.string().default("INBOX").describe("Source mailbox name"),
|
|
202
|
+
to_mailbox: z.string().describe("Destination mailbox name"),
|
|
203
|
+
}, withErrorHandling(async ({ message_id, account, from_mailbox, to_mailbox }) => {
|
|
204
|
+
const esc = escapeForAppleScript;
|
|
205
|
+
await runAppleScript(`
|
|
206
|
+
tell application "Mail"
|
|
207
|
+
set m to first message of mailbox "${esc(from_mailbox)}" of account "${esc(account)}" whose id is ${message_id}
|
|
208
|
+
move m to mailbox "${esc(to_mailbox)}" of account "${esc(account)}"
|
|
209
|
+
end tell`);
|
|
210
|
+
return success({ message_id, moved_to: to_mailbox });
|
|
211
|
+
}));
|
|
212
|
+
server.tool("mail_delete", "Delete a message (moves to Deleted Messages / Trash)", {
|
|
213
|
+
message_id: z.coerce.number().int().describe("Message ID"),
|
|
214
|
+
account: z.string().describe("Account name"),
|
|
215
|
+
mailbox: z.string().default("INBOX").describe("Mailbox containing the message"),
|
|
216
|
+
}, withErrorHandling(async ({ message_id, account, mailbox }) => {
|
|
217
|
+
const esc = escapeForAppleScript;
|
|
218
|
+
await runAppleScript(`
|
|
219
|
+
tell application "Mail"
|
|
220
|
+
set m to first message of mailbox "${esc(mailbox)}" of account "${esc(account)}" whose id is ${message_id}
|
|
221
|
+
delete m
|
|
222
|
+
end tell`);
|
|
223
|
+
return success({ message_id, deleted: true });
|
|
224
|
+
}));
|
|
163
225
|
}
|
|
164
226
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/tools/messages.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/tools/messages.ts"],"names":[],"mappings":"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"}
|