better-email-mcp 0.2.0 → 0.3.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 CHANGED
@@ -5,7 +5,7 @@ An MCP server that gives LLM tools access to your email, calendar, and contacts
5
5
  ## Why "better"?
6
6
 
7
7
  - **Virtually zero dependencies.** The only runtime dependency is the MCP SDK itself. IMAP, SMTP, CalDAV, and CardDAV clients are implemented from scratch using Node built-ins — no third-party libraries in your supply chain.
8
- - **Works with any provider.** Supports IMAP/SMTP (Gmail, Outlook, self-hosted, etc.), Fastmail JMAP, and any CalDAV/CardDAV server (Fastmail, iCloud, Nextcloud, Radicale, etc.).
8
+ - **Works with any provider.** Supports IMAP/SMTP (Gmail, Outlook, self-hosted, etc.), Fastmail JMAP (email + contacts), and any CalDAV/CardDAV server (Fastmail, iCloud, Nextcloud, Radicale, etc.).
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
 
@@ -90,9 +90,11 @@ Calendar tools activate when `CALDAV_URL` is set. Works alongside any email back
90
90
  | `CALDAV_PASSWORD` | Yes | HTTP Basic auth password |
91
91
  | `CALDAV_DEFAULT_CALENDAR` | No | Default calendar name — when set, tools scope to this calendar automatically |
92
92
 
93
- ### CardDAV (contacts)
93
+ ### Contacts
94
94
 
95
- Contact tools activate when `CARDDAV_URL` is set. Works alongside any email backend.
95
+ When using the JMAP backend, contact tools activate automatically via JMAP Contacts (RFC 9610) — no extra configuration needed. To use CardDAV instead (or with the IMAP backend), set `CARDDAV_URL`:
96
+
97
+ #### CardDAV (optional override)
96
98
 
97
99
  | Variable | Required | Description |
98
100
  |----------|----------|-------------|
@@ -113,7 +115,7 @@ This is useful for enforcing read-only access or reducing context for the LLM. W
113
115
 
114
116
  ## Usage with MCP clients
115
117
 
116
- ### JMAP (Fastmail)
118
+ ### JMAP (Fastmail) — email + contacts
117
119
 
118
120
  ```json
119
121
  {
@@ -130,6 +132,8 @@ This is useful for enforcing read-only access or reducing context for the LLM. W
130
132
  }
131
133
  ```
132
134
 
135
+ Contact tools are included automatically via JMAP — no CardDAV setup needed.
136
+
133
137
  ### IMAP
134
138
 
135
139
  ```json
@@ -152,7 +156,7 @@ This is useful for enforcing read-only access or reducing context for the LLM. W
152
156
  }
153
157
  ```
154
158
 
155
- ### JMAP + CalDAV + CardDAV (Fastmail, all features)
159
+ ### JMAP + CalDAV (Fastmail, all features)
156
160
 
157
161
  ```json
158
162
  {
@@ -163,18 +167,17 @@ This is useful for enforcing read-only access or reducing context for the LLM. W
163
167
  "env": {
164
168
  "EMAIL_BACKEND": "jmap",
165
169
  "JMAP_TOKEN": "your-fastmail-api-token",
166
- "CALDAV_URL": "https://caldav.fastmail.com/dav/calendars",
170
+ "CALDAV_URL": "https://caldav.fastmail.com/",
167
171
  "CALDAV_USERNAME": "you@fastmail.com",
168
- "CALDAV_PASSWORD": "your-app-password",
169
- "CARDDAV_URL": "https://carddav.fastmail.com/dav/addressbooks",
170
- "CARDDAV_USERNAME": "you@fastmail.com",
171
- "CARDDAV_PASSWORD": "your-app-password"
172
+ "CALDAV_PASSWORD": "your-app-password"
172
173
  }
173
174
  }
174
175
  }
175
176
  }
176
177
  ```
177
178
 
179
+ Email and contacts use JMAP (automatic), calendar uses CalDAV. To use CardDAV for contacts instead, set `CARDDAV_URL` (this overrides JMAP contacts).
180
+
178
181
  ## Tools
179
182
 
180
183
  ### Email
@@ -0,0 +1,20 @@
1
+ import { ContactsBackend, AddressBookInfo, Contact, ListContactsOptions, SearchContactsOptions } from "../types.js";
2
+ import { JmapBackend } from "./jmap.js";
3
+ export declare class JmapContactsBackend implements ContactsBackend {
4
+ private jmapBackend;
5
+ private token;
6
+ private session;
7
+ private addressBooks;
8
+ private addressBookIdToName;
9
+ constructor(jmapBackend: JmapBackend, token: string);
10
+ connect(): Promise<void>;
11
+ listAddressBooks(): Promise<AddressBookInfo[]>;
12
+ listContacts(options?: ListContactsOptions): Promise<Contact[]>;
13
+ getContact(href: string): Promise<Contact | null>;
14
+ searchContacts(options: SearchContactsOptions): Promise<Contact[]>;
15
+ private mapContactCard;
16
+ private findAddressBookId;
17
+ private jmapRequest;
18
+ private findResponse;
19
+ }
20
+ //# sourceMappingURL=jmap-contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jmap-contacts.d.ts","sourceRoot":"","sources":["../../src/backends/jmap-contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,OAAO,EACP,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAA0B,MAAM,WAAW,CAAC;AAuBhE,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,mBAAmB,CAA6B;gBAE5C,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM;IAK7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCxB,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAI9C,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyC/D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAoBjD,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA0CxE,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,iBAAiB;YAOX,WAAW;IAgCzB,OAAO,CAAC,YAAY;CAQrB"}
@@ -0,0 +1,322 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JmapContactsBackend = void 0;
4
+ const jmap_js_1 = require("./jmap.js");
5
+ const USING = [
6
+ "urn:ietf:params:jmap:core",
7
+ "urn:ietf:params:jmap:contacts",
8
+ ];
9
+ const CONTACT_LIST_PROPERTIES = [
10
+ "id",
11
+ "name",
12
+ "emails",
13
+ "phones",
14
+ "organizations",
15
+ "titles",
16
+ "addressBookIds",
17
+ ];
18
+ const CONTACT_FULL_PROPERTIES = [
19
+ ...CONTACT_LIST_PROPERTIES,
20
+ "addresses",
21
+ "notes",
22
+ ];
23
+ class JmapContactsBackend {
24
+ jmapBackend;
25
+ token;
26
+ session;
27
+ addressBooks = [];
28
+ addressBookIdToName = new Map();
29
+ constructor(jmapBackend, token) {
30
+ this.jmapBackend = jmapBackend;
31
+ this.token = token;
32
+ }
33
+ async connect() {
34
+ const session = this.jmapBackend.getSession();
35
+ if (!session) {
36
+ throw new Error("JMAP email backend must be connected before JMAP contacts");
37
+ }
38
+ this.session = session;
39
+ // Fetch address books
40
+ const responses = await this.jmapRequest([
41
+ [
42
+ "AddressBook/get",
43
+ {
44
+ accountId: this.session.accountId,
45
+ properties: ["id", "name", "description", "isDefault"],
46
+ },
47
+ "0",
48
+ ],
49
+ ]);
50
+ const abResponse = this.findResponse(responses, "AddressBook/get");
51
+ this.addressBooks = [];
52
+ this.addressBookIdToName.clear();
53
+ for (const raw of abResponse.list) {
54
+ const info = {
55
+ href: raw.id,
56
+ name: raw.name ?? raw.id,
57
+ };
58
+ if (raw.description)
59
+ info.description = raw.description;
60
+ this.addressBooks.push(info);
61
+ this.addressBookIdToName.set(raw.id, info.name);
62
+ }
63
+ }
64
+ async listAddressBooks() {
65
+ return this.addressBooks;
66
+ }
67
+ async listContacts(options) {
68
+ const limit = options?.limit ?? 50;
69
+ const filter = {};
70
+ if (options?.addressBook) {
71
+ const bookId = this.findAddressBookId(options.addressBook);
72
+ if (bookId) {
73
+ filter.inAddressBook = bookId;
74
+ }
75
+ }
76
+ const responses = await this.jmapRequest([
77
+ [
78
+ "ContactCard/query",
79
+ {
80
+ accountId: this.session.accountId,
81
+ filter,
82
+ sort: [{ property: "name/full", isAscending: true }],
83
+ limit,
84
+ },
85
+ "0",
86
+ ],
87
+ [
88
+ "ContactCard/get",
89
+ {
90
+ accountId: this.session.accountId,
91
+ "#ids": {
92
+ name: "ContactCard/query",
93
+ path: "/ids",
94
+ resultOf: "0",
95
+ },
96
+ properties: CONTACT_LIST_PROPERTIES,
97
+ },
98
+ "1",
99
+ ],
100
+ ]);
101
+ const getResponse = this.findResponse(responses, "ContactCard/get");
102
+ return getResponse.list.map((raw) => this.mapContactCard(raw, false));
103
+ }
104
+ async getContact(href) {
105
+ const responses = await this.jmapRequest([
106
+ [
107
+ "ContactCard/get",
108
+ {
109
+ accountId: this.session.accountId,
110
+ ids: [href],
111
+ properties: CONTACT_FULL_PROPERTIES,
112
+ },
113
+ "0",
114
+ ],
115
+ ]);
116
+ const getResponse = this.findResponse(responses, "ContactCard/get");
117
+ if (getResponse.notFound?.includes(href))
118
+ return null;
119
+ if (getResponse.list.length === 0)
120
+ return null;
121
+ return this.mapContactCard(getResponse.list[0], true);
122
+ }
123
+ async searchContacts(options) {
124
+ const limit = options.limit ?? 50;
125
+ const filter = { name: options.query };
126
+ if (options.addressBook) {
127
+ const bookId = this.findAddressBookId(options.addressBook);
128
+ if (bookId) {
129
+ filter.inAddressBook = bookId;
130
+ }
131
+ }
132
+ const responses = await this.jmapRequest([
133
+ [
134
+ "ContactCard/query",
135
+ {
136
+ accountId: this.session.accountId,
137
+ filter,
138
+ limit,
139
+ },
140
+ "0",
141
+ ],
142
+ [
143
+ "ContactCard/get",
144
+ {
145
+ accountId: this.session.accountId,
146
+ "#ids": {
147
+ name: "ContactCard/query",
148
+ path: "/ids",
149
+ resultOf: "0",
150
+ },
151
+ properties: CONTACT_LIST_PROPERTIES,
152
+ },
153
+ "1",
154
+ ],
155
+ ]);
156
+ const getResponse = this.findResponse(responses, "ContactCard/get");
157
+ return getResponse.list.map((raw) => this.mapContactCard(raw, false));
158
+ }
159
+ // --- Private helpers ---
160
+ mapContactCard(raw, full) {
161
+ const addressBookId = Object.keys(raw.addressBookIds ?? {})[0];
162
+ const addressBook = addressBookId
163
+ ? this.addressBookIdToName.get(addressBookId) ?? addressBookId
164
+ : "";
165
+ const contact = {
166
+ id: raw.id,
167
+ href: raw.id,
168
+ addressBook,
169
+ name: extractName(raw.name),
170
+ };
171
+ const emails = extractMapValues(raw.emails, "address");
172
+ if (emails.length > 0)
173
+ contact.emails = emails;
174
+ const phones = extractMapValues(raw.phones, "phone");
175
+ if (phones.length > 0)
176
+ contact.phones = phones;
177
+ const org = extractFirstOrganization(raw.organizations);
178
+ if (org)
179
+ contact.organization = org;
180
+ const title = extractFirstTitle(raw.titles);
181
+ if (title)
182
+ contact.title = title;
183
+ if (full) {
184
+ const address = extractFirstAddress(raw.addresses);
185
+ if (address)
186
+ contact.address = address;
187
+ const notes = extractNotes(raw.notes);
188
+ if (notes)
189
+ contact.notes = notes;
190
+ }
191
+ return contact;
192
+ }
193
+ findAddressBookId(name) {
194
+ for (const [id, bookName] of this.addressBookIdToName) {
195
+ if (bookName === name)
196
+ return id;
197
+ }
198
+ return undefined;
199
+ }
200
+ async jmapRequest(methodCalls) {
201
+ const res = await fetch(this.session.apiUrl, {
202
+ method: "POST",
203
+ headers: {
204
+ "Content-Type": "application/json",
205
+ Authorization: `Bearer ${this.token}`,
206
+ },
207
+ body: JSON.stringify({
208
+ using: USING,
209
+ methodCalls,
210
+ }),
211
+ });
212
+ if (!res.ok) {
213
+ throw new Error(`JMAP request failed: ${res.status} ${res.statusText}`);
214
+ }
215
+ const data = await res.json();
216
+ const methodResponses = data.methodResponses;
217
+ for (const response of methodResponses) {
218
+ if (response[0] === "error") {
219
+ throw new jmap_js_1.JmapError(response[1].type ?? "unknown", response[1].description ?? "Unknown JMAP error");
220
+ }
221
+ }
222
+ return methodResponses;
223
+ }
224
+ findResponse(responses, methodName) {
225
+ for (const response of responses) {
226
+ if (response[0] === methodName) {
227
+ return response[1];
228
+ }
229
+ }
230
+ throw new Error(`Expected ${methodName} response not found`);
231
+ }
232
+ }
233
+ exports.JmapContactsBackend = JmapContactsBackend;
234
+ // --- JSContact mapping helpers ---
235
+ /**
236
+ * Extract display name from a JSContact Name object.
237
+ * Prefers `full`, falls back to assembling from components.
238
+ */
239
+ function extractName(name) {
240
+ if (!name)
241
+ return "";
242
+ if (name.full)
243
+ return name.full;
244
+ // Assemble from components
245
+ if (name.components && Array.isArray(name.components)) {
246
+ const parts = name.components
247
+ .sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0))
248
+ .map((c) => c.value)
249
+ .filter(Boolean);
250
+ return parts.join(" ");
251
+ }
252
+ return "";
253
+ }
254
+ /**
255
+ * Extract values from a JSContact Id-keyed map (e.g., emails, phones).
256
+ * Each entry has a property like "address" for emails or "phone" for phones.
257
+ */
258
+ function extractMapValues(map, valueKey) {
259
+ if (!map || typeof map !== "object")
260
+ return [];
261
+ return Object.values(map)
262
+ .map((entry) => entry[valueKey])
263
+ .filter(Boolean);
264
+ }
265
+ /**
266
+ * Extract the first organization name from JSContact organizations map.
267
+ */
268
+ function extractFirstOrganization(orgs) {
269
+ if (!orgs || typeof orgs !== "object")
270
+ return undefined;
271
+ const first = Object.values(orgs)[0];
272
+ return first?.name || undefined;
273
+ }
274
+ /**
275
+ * Extract the first title from JSContact titles map.
276
+ */
277
+ function extractFirstTitle(titles) {
278
+ if (!titles || typeof titles !== "object")
279
+ return undefined;
280
+ const first = Object.values(titles)[0];
281
+ return first?.name || undefined;
282
+ }
283
+ /**
284
+ * Format the first address from JSContact addresses map.
285
+ */
286
+ function extractFirstAddress(addresses) {
287
+ if (!addresses || typeof addresses !== "object")
288
+ return undefined;
289
+ const first = Object.values(addresses)[0];
290
+ if (!first)
291
+ return undefined;
292
+ // JSContact addresses have components or full
293
+ if (first.full)
294
+ return first.full;
295
+ if (first.components && Array.isArray(first.components)) {
296
+ const parts = first.components
297
+ .map((c) => c.value)
298
+ .filter(Boolean);
299
+ return parts.join(", ");
300
+ }
301
+ // Fallback: assemble from legacy-style fields
302
+ const parts = [
303
+ first.street,
304
+ first.locality,
305
+ first.region,
306
+ first.postcode,
307
+ first.country,
308
+ ].filter(Boolean);
309
+ return parts.length > 0 ? parts.join(", ") : undefined;
310
+ }
311
+ /**
312
+ * Extract notes text from JSContact notes map.
313
+ */
314
+ function extractNotes(notes) {
315
+ if (!notes || typeof notes !== "object")
316
+ return undefined;
317
+ const parts = Object.values(notes)
318
+ .map((entry) => entry.note)
319
+ .filter(Boolean);
320
+ return parts.length > 0 ? parts.join("\n") : undefined;
321
+ }
322
+ //# sourceMappingURL=jmap-contacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jmap-contacts.js","sourceRoot":"","sources":["../../src/backends/jmap-contacts.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,10 @@ export interface JmapConfig {
3
3
  token: string;
4
4
  sessionUrl?: string;
5
5
  }
6
+ export interface JmapSession {
7
+ apiUrl: string;
8
+ accountId: string;
9
+ }
6
10
  export declare class JmapError extends Error {
7
11
  readonly type: string;
8
12
  readonly description: string;
@@ -15,6 +19,8 @@ export declare class JmapBackend implements EmailBackend {
15
19
  private mailboxCache;
16
20
  private mailboxNameToId;
17
21
  constructor(config: JmapConfig);
22
+ getSession(): JmapSession | null;
23
+ getToken(): string;
18
24
  connect(): Promise<void>;
19
25
  disconnect(): Promise<void>;
20
26
  listFolders(): Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"jmap.d.ts","sourceRoot":"","sources":["../../src/backends/jmap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoBD,qBAAa,SAAU,SAAQ,KAAK;aAEhB,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,MAAM;gBADnB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM;CAKtC;AA2BD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,eAAe,CAA6B;gBAExC,MAAM,EAAE,UAAU;IAIxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgExB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhC,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA4CpE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAuCpD,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA0C/D,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAoFvE,OAAO,CAAC,eAAe;YAOT,WAAW;IAmCzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,YAAY;CAwBrB"}
1
+ {"version":3,"file":"jmap.d.ts","sourceRoot":"","sources":["../../src/backends/jmap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD,qBAAa,SAAU,SAAQ,KAAK;aAEhB,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,MAAM;gBADnB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM;CAKtC;AA2BD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,eAAe,CAA6B;gBAExC,MAAM,EAAE,UAAU;IAI9B,UAAU,IAAI,WAAW,GAAG,IAAI;IAIhC,QAAQ,IAAI,MAAM;IAIZ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgExB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhC,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA4CpE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAuCpD,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA0C/D,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAoFvE,OAAO,CAAC,eAAe;YAOT,WAAW;IAmCzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,YAAY;CAwBrB"}
@@ -45,6 +45,12 @@ class JmapBackend {
45
45
  constructor(config) {
46
46
  this.config = config;
47
47
  }
48
+ getSession() {
49
+ return this.session;
50
+ }
51
+ getToken() {
52
+ return this.config.token;
53
+ }
48
54
  async connect() {
49
55
  // 1. Discover session
50
56
  const sessionUrl = this.config.sessionUrl ?? DEFAULT_SESSION_URL;
@@ -1 +1 @@
1
- {"version":3,"file":"jmap.js","sourceRoot":"","sources":["../../src/backends/jmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jmap.js","sourceRoot":"","sources":["../../src/backends/jmap.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
5
5
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
6
  const jmap_js_1 = require("./backends/jmap.js");
7
+ const jmap_contacts_js_1 = require("./backends/jmap-contacts.js");
7
8
  const imap_js_1 = require("./backends/imap.js");
8
9
  const backend_js_1 = require("./caldav/backend.js");
9
10
  const backend_js_2 = require("./carddav/backend.js");
@@ -58,7 +59,7 @@ function createBackend() {
58
59
  }
59
60
  const server = new mcp_js_1.McpServer({
60
61
  name: "better-email-mcp",
61
- version: "0.2.0",
62
+ version: "0.3.0",
62
63
  });
63
64
  const backend = createBackend();
64
65
  (0, register_js_1.registerEmailTools)(server, backend);
@@ -77,7 +78,7 @@ if (process.env.CALDAV_URL) {
77
78
  });
78
79
  (0, calendar_js_1.registerCalendarTools)(server, calendarBackend);
79
80
  }
80
- // CardDAVactivates when CARDDAV_URL is set
81
+ // ContactsCardDAV when CARDDAV_URL is set, otherwise JMAP contacts when using JMAP backend
81
82
  let contactsBackend = null;
82
83
  if (process.env.CARDDAV_URL) {
83
84
  const username = process.env.CARDDAV_USERNAME;
@@ -92,6 +93,11 @@ if (process.env.CARDDAV_URL) {
92
93
  });
93
94
  (0, contacts_js_1.registerContactTools)(server, contactsBackend);
94
95
  }
96
+ else if (backend instanceof jmap_js_1.JmapBackend) {
97
+ // JMAP contacts activate automatically — no extra config needed
98
+ contactsBackend = new jmap_contacts_js_1.JmapContactsBackend(backend, backend.getToken());
99
+ (0, contacts_js_1.registerContactTools)(server, contactsBackend);
100
+ }
95
101
  async function main() {
96
102
  await backend.connect();
97
103
  if (calendarBackend)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-email-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "MCP server for email, calendar, and contacts via IMAP, JMAP, CalDAV, and CardDAV",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",