@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 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
@@ -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;AAExD,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;IAE5B,OAAO,MAAM,CAAC;AAChB,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"}
@@ -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,2 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerComposeTools(server: McpServer): void;
@@ -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"}
@@ -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("\n===FIELD===\n");
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("\n===FIELD===\n");
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zyx1121/apple-mail-mcp",
3
- "version": "0.1.4",
3
+ "version": "0.2.1",
4
4
  "description": "MCP server for Apple Mail — read, search, and manage emails via Claude Code",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",