better-email-mcp 0.6.0 → 0.6.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/README.md CHANGED
@@ -9,6 +9,33 @@ An MCP server that gives LLM tools access to your email, calendar, tasks, and co
9
9
  - **You control what the LLM can do.** Disable any tool with a single environment variable — enforce read-only access, hide search, or strip it down to just what you need. Less tool clutter means better LLM performance.
10
10
  - **Token-efficient.** List and search responses return only essential fields by default. Pass `verbose: true` for full details when needed.
11
11
 
12
+
13
+ ### Token efficiency
14
+
15
+ All tool responses use compact JSON (no pretty-printing). List and search tools (`list_messages`, `search_messages`, `list_events`, `search_events`, `list_tasks`, `search_tasks`, `list_contacts`, `search_contacts`) return a lean field set by default — just enough to identify and triage each item. Pass `verbose: true` to get the full response with all fields.
16
+
17
+ **Tool definition token cost** (schema tokens consumed per request, estimated at ~3.5 chars/token):
18
+
19
+ | Configuration | Tools | Est. tokens |
20
+ |---------------|-------|-------------|
21
+ | Email only (IMAP or JMAP) | 6 | ~380 |
22
+ | Email + Calendar + Tasks | 16 | ~943 |
23
+ | Email + Contacts (JMAP) | 10 | ~585 |
24
+ | Full suite (JMAP + CalDAV + Contacts) | 20 | ~1,148 |
25
+
26
+ Run `npm run count-tokens` for a per-tool breakdown. Use `DISABLED_TOOLS` to trim tools you don't need.
27
+
28
+ **Default fields by tool type:**
29
+
30
+ | Tool type | Default fields | Additional with `verbose: true` |
31
+ |-----------|---------------|--------------------------------|
32
+ | Email list/search | `id`, `from`, `subject`, `date`, `snippet` | `to`, `cc`, `isRead`, `folder` |
33
+ | Calendar list/search | `id`, `href`, `title`, `start`, `end`, `location`, `allDay` | `description`, `organizer`, `attendees`, `status`, `recurrence`, `calendar` |
34
+ | Task list/search | `id`, `href`, `title`, `status`, `due`, `priority` | `description`, `categories`, `start`, `completed`, `percentComplete`, `recurrence`, `calendar` |
35
+ | Contact list/search | `id`, `href`, `name`, `emails`, `phones` | `organization`, `title`, `address`, `notes`, `addressBook` |
36
+
37
+ The `folder`, `calendar`, and `addressBook` fields are automatically included in lean responses when no filter is applied (listing across all), and omitted when filtering by a specific one (since it's redundant).
38
+
12
39
  ## Setup
13
40
 
14
41
  Install and run directly with npx — no clone needed:
@@ -113,6 +140,14 @@ DISABLED_TOOLS=send_message,search_messages
113
140
 
114
141
  This is useful for enforcing read-only access or reducing context for the LLM. When using `CALDAV_DEFAULT_CALENDAR` or `CARDDAV_DEFAULT_ADDRESS_BOOK`, you can also disable `list_calendars` or `list_address_books` since the LLM no longer needs to discover them.
115
142
 
143
+ ### Attachment downloads
144
+
145
+ The `get_attachment` tool supports a `saveTo` parameter that writes the file to disk instead of returning base64 content. For security, `saveTo` paths are restricted to a base directory:
146
+
147
+ ```bash
148
+ ATTACHMENT_DIR=~/Downloads # default; set to change the allowed directory
149
+ ```
150
+
116
151
  ## Usage with MCP clients
117
152
 
118
153
  ### JMAP (Fastmail) — email + contacts
@@ -218,30 +253,4 @@ Email and contacts use JMAP (automatic), calendar uses CalDAV. To use CardDAV fo
218
253
  | `list_address_books` | List all address books |
219
254
  | `list_contacts` | List contacts with optional address book filter and limit |
220
255
  | `get_contact` | Get a single contact by href, including full details |
221
- | `search_contacts` | Search contacts by name, email, phone, or organization |
222
-
223
- ## Token efficiency
224
-
225
- All tool responses use compact JSON (no pretty-printing). List and search tools (`list_messages`, `search_messages`, `list_events`, `search_events`, `list_tasks`, `search_tasks`, `list_contacts`, `search_contacts`) return a lean field set by default — just enough to identify and triage each item. Pass `verbose: true` to get the full response with all fields.
226
-
227
- **Default fields by tool type:**
228
-
229
- | Tool type | Default fields | Additional with `verbose: true` |
230
- |-----------|---------------|--------------------------------|
231
- | Email list/search | `id`, `from`, `subject`, `date`, `snippet` | `to`, `cc`, `isRead`, `folder` |
232
- | Calendar list/search | `id`, `href`, `title`, `start`, `end`, `location`, `allDay` | `description`, `organizer`, `attendees`, `status`, `recurrence`, `calendar` |
233
- | Task list/search | `id`, `href`, `title`, `status`, `due`, `priority` | `description`, `categories`, `start`, `completed`, `percentComplete`, `recurrence`, `calendar` |
234
- | Contact list/search | `id`, `href`, `name`, `emails`, `phones` | `organization`, `title`, `address`, `notes`, `addressBook` |
235
-
236
- The `folder`, `calendar`, and `addressBook` fields are automatically included in lean responses when no filter is applied (listing across all), and omitted when filtering by a specific one (since it's redundant).
237
-
238
- **Tool definition token cost** (schema tokens consumed per request, estimated at ~3.5 chars/token):
239
-
240
- | Configuration | Tools | Est. tokens |
241
- |---------------|-------|-------------|
242
- | Email only (IMAP or JMAP) | 6 | ~380 |
243
- | Email + Calendar + Tasks | 16 | ~943 |
244
- | Email + Contacts (JMAP) | 10 | ~585 |
245
- | Full suite (JMAP + CalDAV + Contacts) | 20 | ~1,148 |
246
-
247
- Run `npm run count-tokens` for a per-tool breakdown. Use `DISABLED_TOOLS` to trim tools you don't need.
256
+ | `search_contacts` | Search contacts by name, email, phone, or organization |
package/dist/index.js CHANGED
@@ -60,7 +60,7 @@ function createBackend() {
60
60
  }
61
61
  const server = new mcp_js_1.McpServer({
62
62
  name: "better-email-mcp",
63
- version: "0.6.0",
63
+ version: "0.6.1",
64
64
  });
65
65
  const backend = createBackend();
66
66
  (0, register_js_1.registerEmailTools)(server, backend);
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AA2BzD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,GACpB,IAAI,CAwMN"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AAyCzD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,GACpB,IAAI,CAyMN"}
@@ -2,10 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerEmailTools = registerEmailTools;
4
4
  const promises_1 = require("node:fs/promises");
5
+ const node_os_1 = require("node:os");
5
6
  const node_path_1 = require("node:path");
6
7
  const zod_1 = require("zod");
7
8
  const helpers_js_1 = require("./helpers.js");
8
9
  const MAX_ATTACHMENT_SIZE = 10 * 1024 * 1024; // 10 MB
10
+ const ATTACHMENT_DIR = (0, node_path_1.resolve)(process.env.ATTACHMENT_DIR || (0, node_path_1.join)((0, node_os_1.homedir)(), "Downloads"));
11
+ function validateSavePath(saveTo) {
12
+ const resolved = (0, node_path_1.resolve)(saveTo);
13
+ const rel = (0, node_path_1.relative)(ATTACHMENT_DIR, resolved);
14
+ if (rel.startsWith("..") || (0, node_path_1.resolve)(ATTACHMENT_DIR, rel) !== resolved) {
15
+ throw new Error(`saveTo must be within ${ATTACHMENT_DIR} (set ATTACHMENT_DIR to change)`);
16
+ }
17
+ return resolved;
18
+ }
9
19
  function toLeanMessages(messages, opts) {
10
20
  return messages.map(({ id, from, subject, date, snippet, folder }) => {
11
21
  const lean = { id, from, subject, date, snippet };
@@ -161,17 +171,18 @@ function registerEmailTools(server, backend) {
161
171
  saveTo: zod_1.z
162
172
  .string()
163
173
  .optional()
164
- .describe("File path to save attachment to disk instead of returning base64 content"),
174
+ .describe("File path to save attachment to disk instead of returning base64 content. Must be within ATTACHMENT_DIR (defaults to ~/Downloads)"),
165
175
  }, async ({ id, partId, saveTo }) => {
166
176
  try {
167
177
  const result = await getAttachmentFn(id, partId, MAX_ATTACHMENT_SIZE);
168
178
  if (saveTo) {
179
+ const safePath = validateSavePath(saveTo);
169
180
  const buffer = Buffer.from(result.content, "base64");
170
- await (0, promises_1.mkdir)((0, node_path_1.dirname)(saveTo), { recursive: true });
171
- await (0, promises_1.writeFile)(saveTo, buffer);
181
+ await (0, promises_1.mkdir)((0, node_path_1.dirname)(safePath), { recursive: true });
182
+ await (0, promises_1.writeFile)(safePath, buffer, { flag: "wx" });
172
183
  return (0, helpers_js_1.jsonResult)({
173
184
  saved: true,
174
- path: saveTo,
185
+ path: safePath,
175
186
  filename: result.filename,
176
187
  mimeType: result.mimeType,
177
188
  size: buffer.length,
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":";;AA8CA,gDA4MC;AA1PD,+CAA4D;AAC5D,qCAAkC;AAClC,yCAA6D;AAE7D,6BAAwB;AAExB,6CAKsB;AAEtB,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AACtD,MAAM,cAAc,GAAG,IAAA,mBAAO,EAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,WAAW,CAAC,CAC3D,CAAC;AAEF,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,MAAM,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAA,oBAAQ,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAA,mBAAO,EAAC,cAAc,EAAE,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,yBAAyB,cAAc,iCAAiC,CACzE,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CACrB,QAAwB,EACxB,IAAgC;IAEhC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACnE,MAAM,IAAI,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3E,IAAI,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvE,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,kBAAkB,CAChC,MAAiB,EACjB,OAAqB;IAErB,MAAM,QAAQ,GAAG,IAAA,+BAAkB,GAAE,CAAC;IAEtC,IAAI,IAAA,wBAAW,EAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CACT,cAAc,EACd,kCAAkC,EAClC,EAAE,EACF,KAAK,IAAI,EAAE;YACT,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC5C,OAAO,IAAA,uBAAU,EAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,wBAAW,EAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CACT,eAAe,EACf,2DAA2D,EAC3D;YACE,MAAM,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yCAAyC,CAAC;YACtD,KAAK,EAAE,OAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,qCAAqC,CAAC;YAClD,MAAM,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;YACxD,OAAO,EAAE,OAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,oGAAoG,CAAC;SAClH,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvE,IAAI,OAAO;oBAAE,OAAO,IAAA,uBAAU,EAAC,QAAQ,CAAC,CAAC;gBACzC,OAAO,IAAA,uBAAU,EAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,wBAAW,EAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CACT,aAAa,EACb,gEAAgE,EAChE;YACE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAC1C,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;wBAC/D,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAA,uBAAU,EAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,wBAAW,EAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,qCAAqC,EACrC;YACE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/C,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACjE,KAAK,EAAE,OAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0BAA0B,CAAC;YACvC,OAAO,EAAE,OAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,oGAAoG,CAAC;SAClH,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxE,IAAI,OAAO;oBAAE,OAAO,IAAA,uBAAU,EAAC,QAAQ,CAAC,CAAC;gBACzC,OAAO,IAAA,uBAAU,EAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,IAAA,wBAAW,EAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAC;QAEvC,MAAM,UAAU,GAA8B;YAC5C,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC7D,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC3E,GAAG,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC7E,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC7C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC7D,SAAS,EAAE,OAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uCAAuC,CAAC;SACrD,CAAC;QAEF,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,UAAU,CAAC,QAAQ,GAAG,OAAC;iBACpB,MAAM,EAAE;iBACR,QAAQ,CAAC,yFAAyF,CAAC,CAAC;QACzG,CAAC;QAED,MAAM,CAAC,IAAI,CACT,cAAc,EACd,uBAAuB,EACvB,UAAU,EACV,KAAK,EAAE,IAA6B,EAAE,EAAE;YACtC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,EAAE,EAAE,IAAI,CAAC,EAAc;oBACvB,EAAE,EAAE,IAAI,CAAC,EAA0B;oBACnC,GAAG,EAAE,IAAI,CAAC,GAA2B;oBACrC,OAAO,EAAE,IAAI,CAAC,OAAiB;oBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAkB;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAA8B;oBAC7C,SAAS,EAAE,IAAI,CAAC,SAA+B;iBAChD,CAAC,CAAC;gBACH,OAAO,IAAA,uBAAU,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,IAAA,wBAAW,EAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC;QACrE,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,sJAAsJ,EACtJ;YACE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACzC,MAAM,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CACP,6EAA6E,CAC9E;YACH,MAAM,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mIAAmI,CACpI;SACJ,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;YAC/B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;gBACtE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACrD,MAAM,IAAA,gBAAK,EAAC,IAAA,mBAAO,EAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACpD,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClD,OAAO,IAAA,uBAAU,EAAC;wBAChB,KAAK,EAAE,IAAI;wBACX,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,IAAI,EAAE,MAAM,CAAC,MAAM;qBACpB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-email-mcp",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "MCP server for email, calendar, tasks, and contacts via IMAP, JMAP, CalDAV, and CardDAV",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",