mcp-twake-mail 1.0.0 → 2.0.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
@@ -23,6 +23,8 @@ mcp-twake-mail is a Model Context Protocol (MCP) server that connects any MCP-co
23
23
 
24
24
  ## Features
25
25
 
26
+ ### 29 MCP Tools
27
+
26
28
  **Email Read Tools:**
27
29
  - `list_emails` - List emails with filtering, search, and pagination
28
30
  - `get_email` - Get full email content including body and headers
@@ -32,27 +34,43 @@ mcp-twake-mail is a Model Context Protocol (MCP) server that connects any MCP-co
32
34
  **Email Compose Tools:**
33
35
  - `send_email` - Compose and send a new email (plain text and/or HTML)
34
36
  - `reply_email` - Reply to an email with proper threading (In-Reply-To, References)
37
+ - `forward_email` - Forward an email with attachments and personal note
35
38
  - `create_draft` - Create a draft email for later editing or sending
39
+ - `update_draft` - Update an existing draft (subject, body, recipients)
40
+ - `send_draft` - Send a previously saved draft
36
41
 
37
42
  **Email Management Tools:**
38
- - `mark_as_read` - Mark an email as read
39
- - `mark_as_unread` - Mark an email as unread
43
+ - `mark_as_read` / `mark_as_unread` - Mark email read status
40
44
  - `delete_email` - Move to trash or permanently delete
41
45
  - `move_email` - Move an email to a different mailbox
42
- - `add_label` - Add a label/mailbox to an email
43
- - `remove_label` - Remove a label/mailbox from an email
46
+ - `add_label` / `remove_label` - Add or remove labels/mailboxes
47
+
48
+ **Batch Operations (up to 50 emails at once):**
49
+ - `batch_mark_read` / `batch_mark_unread` - Mark multiple emails
50
+ - `batch_delete` - Delete multiple emails
51
+ - `batch_move` - Move multiple emails to a mailbox
52
+ - `batch_add_label` / `batch_remove_label` - Add/remove labels from multiple emails
44
53
 
45
54
  **Mailbox Tools:**
46
55
  - `list_mailboxes` - List all mailboxes (Inbox, Sent, Drafts, etc.)
56
+ - `get_mailbox` - Get mailbox details by ID
57
+ - `create_mailbox` - Create a new folder with optional nesting
58
+ - `rename_mailbox` - Rename an existing folder (system folders protected)
59
+ - `delete_mailbox` - Delete an empty folder with safety checks
47
60
 
48
61
  **Attachment Tools:**
49
62
  - `get_attachments` - List attachment metadata for an email
50
- - `download_attachment` - Download attachment content (auto-saves large files to disk)
63
+ - `download_attachment` - Download attachment content (auto-saves large files)
64
+
65
+ ### Advanced Features
51
66
 
52
- **Advanced Features:**
53
67
  - **Auto-discovery** — Configure with just your email address (DNS SRV + .well-known/jmap)
54
68
  - **Email signatures** — Markdown signature files automatically appended to emails
55
69
  - **Default sender identity** — Configure default "from" address
70
+ - **Batch operations** — Process up to 50 emails in a single request
71
+ - **Draft workflow** — Create, update, and send drafts with atomic transitions
72
+ - **Folder management** — Create, rename, and delete custom folders
73
+ - **System folder protection** — Cannot modify Inbox, Sent, Drafts, Trash
56
74
  - OIDC authentication with PKCE (S256) for enterprise SSO
57
75
  - Automatic token refresh for OIDC sessions
58
76
  - Thread-based email grouping
@@ -72,6 +90,11 @@ mcp-twake-mail is a Model Context Protocol (MCP) server that connects any MCP-co
72
90
 
73
91
  ## Installation
74
92
 
93
+ **From npm (recommended):**
94
+ ```bash
95
+ npx mcp-twake-mail setup
96
+ ```
97
+
75
98
  **From source:**
76
99
  ```bash
77
100
  git clone https://github.com/linagora/mcp-twake-mail.git
@@ -96,9 +119,9 @@ The wizard will:
96
119
  5. Test the connection to your JMAP server
97
120
  6. Generate and optionally write the configuration to your Claude Desktop config file
98
121
 
99
- ### Auto-Discovery Mode (New!)
122
+ ### Auto-Discovery Mode
100
123
 
101
- The setup wizard now supports **auto-discovery** — just provide your email address and the system will automatically find your JMAP server:
124
+ The setup wizard supports **auto-discovery** — just provide your email address and the system will automatically find your JMAP server:
102
125
 
103
126
  ```
104
127
  === MCP Twake Mail Setup Wizard ===
@@ -124,7 +147,7 @@ The auto-discovery uses:
124
147
 
125
148
  See [docs/auto-discovery.md](docs/auto-discovery.md) for details.
126
149
 
127
- ### Email Signature Support (New!)
150
+ ### Email Signature Support
128
151
 
129
152
  Configure an optional Markdown signature file that will be automatically appended to all emails:
130
153
 
@@ -142,6 +165,8 @@ Software Engineer
142
165
 
143
166
  The signature is automatically converted to HTML for rich emails and plain text for simple emails.
144
167
 
168
+ See [docs/signature.md](docs/signature.md) for details.
169
+
145
170
  ### CLI Commands
146
171
 
147
172
  | Command | Description |
@@ -269,14 +294,30 @@ Once configured, you can ask Claude natural language questions about your email:
269
294
  **Email composition:**
270
295
  - "Send an email to pierre@example.com about the meeting tomorrow"
271
296
  - "Reply to this email thanking them for the information"
297
+ - "Forward this email to the team with a note"
272
298
  - "Create a draft email to the team about the project update"
273
299
 
300
+ **Draft management:**
301
+ - "Update the draft to change the subject line"
302
+ - "Add Marie to the CC list on that draft"
303
+ - "Send the draft I was working on"
304
+
274
305
  **Email management:**
275
306
  - "Mark this email as read"
276
307
  - "Move this email to the Archive folder"
277
308
  - "Delete all spam emails"
278
309
  - "Add the 'Important' label to this email"
279
310
 
311
+ **Batch operations:**
312
+ - "Mark all emails from last week as read"
313
+ - "Move all newsletters to the Archive folder"
314
+ - "Delete all emails older than 30 days in Trash"
315
+
316
+ **Folder management:**
317
+ - "Create a new folder called 'Projects'"
318
+ - "Rename the 'Old Stuff' folder to 'Archive 2025'"
319
+ - "Delete the empty 'Temp' folder"
320
+
280
321
  **Attachments:**
281
322
  - "What attachments are in this email?"
282
323
  - "Download the PDF attachment"
@@ -284,28 +325,42 @@ Once configured, you can ask Claude natural language questions about your email:
284
325
  ## Documentation
285
326
 
286
327
  - [Auto-Discovery](docs/auto-discovery.md) — How JMAP and OIDC auto-discovery works
328
+ - [Email Signatures](docs/signature.md) — Configure Markdown email signatures
287
329
  - [OIDC Configuration](docs/oidc-configuration.md) — Detailed OIDC/OAuth setup guide
288
330
 
289
331
  ## Available Tools
290
332
 
291
- | Tool Name | Description |
292
- |-----------|-------------|
293
- | `list_emails` | List emails with optional filters (mailbox, limit, search) |
294
- | `get_email` | Get full email content by ID |
295
- | `search_emails` | Search emails by keywords |
296
- | `get_thread` | Get all emails in a thread |
297
- | `send_email` | Send a new email |
298
- | `reply_email` | Reply to an email with threading |
299
- | `create_draft` | Create a draft email |
300
- | `mark_as_read` | Mark email as read |
301
- | `mark_as_unread` | Mark email as unread |
302
- | `delete_email` | Delete or trash an email |
303
- | `move_email` | Move email to another mailbox |
304
- | `add_label` | Add mailbox/label to email |
305
- | `remove_label` | Remove mailbox/label from email |
306
- | `list_mailboxes` | List all mailboxes |
307
- | `get_attachments` | List attachment metadata |
308
- | `download_attachment` | Download attachment content |
333
+ | Tool Name | Description | Category |
334
+ |-----------|-------------|----------|
335
+ | `list_emails` | List emails with optional filters (mailbox, limit, search) | Read |
336
+ | `get_email` | Get full email content by ID | Read |
337
+ | `search_emails` | Search emails by keywords | Read |
338
+ | `get_thread` | Get all emails in a thread | Read |
339
+ | `send_email` | Send a new email | Compose |
340
+ | `reply_email` | Reply to an email with threading | Compose |
341
+ | `forward_email` | Forward an email with attachments | Compose |
342
+ | `create_draft` | Create a draft email | Compose |
343
+ | `update_draft` | Update an existing draft | Compose |
344
+ | `send_draft` | Send a saved draft | Compose |
345
+ | `mark_as_read` | Mark email as read | Manage |
346
+ | `mark_as_unread` | Mark email as unread | Manage |
347
+ | `delete_email` | Delete or trash an email | Manage |
348
+ | `move_email` | Move email to another mailbox | Manage |
349
+ | `add_label` | Add mailbox/label to email | Manage |
350
+ | `remove_label` | Remove mailbox/label from email | Manage |
351
+ | `batch_mark_read` | Mark multiple emails as read | Batch |
352
+ | `batch_mark_unread` | Mark multiple emails as unread | Batch |
353
+ | `batch_delete` | Delete multiple emails | Batch |
354
+ | `batch_move` | Move multiple emails | Batch |
355
+ | `batch_add_label` | Add label to multiple emails | Batch |
356
+ | `batch_remove_label` | Remove label from multiple emails | Batch |
357
+ | `list_mailboxes` | List all mailboxes | Mailbox |
358
+ | `get_mailbox` | Get mailbox details | Mailbox |
359
+ | `create_mailbox` | Create a new folder | Mailbox |
360
+ | `rename_mailbox` | Rename a folder | Mailbox |
361
+ | `delete_mailbox` | Delete an empty folder | Mailbox |
362
+ | `get_attachments` | List attachment metadata | Attachment |
363
+ | `download_attachment` | Download attachment content | Attachment |
309
364
 
310
365
  ## Development
311
366
 
@@ -314,7 +369,7 @@ git clone https://github.com/linagora/mcp-twake-mail.git
314
369
  cd mcp-twake-mail
315
370
  npm install
316
371
  npm run build # compile TypeScript
317
- npm test # run tests
372
+ npm test # run tests (704 tests)
318
373
  npm run dev # watch mode (auto-rebuild on file changes)
319
374
  ```
320
375
 
@@ -325,14 +380,14 @@ The server uses the MCP stdio transport and communicates via JSON-RPC on stdin/s
325
380
  mcp-twake-mail is built with a layered architecture:
326
381
 
327
382
  1. **Configuration Layer** - Zod-based environment variable validation with fail-fast behavior
328
- 2. **Logging Layer** - Pino logger configured for stderr output (prevents stdout contamination in MCP stdio transport)
383
+ 2. **Logging Layer** - Pino logger configured for stderr output (prevents stdout contamination)
329
384
  3. **Authentication Layer** - Multi-method auth support (Basic, Bearer, OIDC with PKCE)
330
385
  4. **Token Management** - Automatic token refresh for OIDC with secure token storage
331
386
  5. **Discovery Layer** - Auto-discovery via DNS SRV, .well-known/jmap, and OAuth metadata
332
387
  6. **JMAP Client Layer** - Session management, request batching, blob download support
333
388
  7. **Signature Layer** - Markdown-to-HTML conversion for email signatures
334
389
  8. **Transformation Layer** - Email/Mailbox data transformation for AI-friendly output
335
- 9. **MCP Tool Layer** - 17 MCP tools exposing email functionality with tool annotations
390
+ 9. **MCP Tool Layer** - 29 MCP tools exposing email functionality with tool annotations
336
391
  10. **Entry Point** - MCP server initialization with stdio transport
337
392
 
338
393
  **Key design decisions:**
@@ -341,6 +396,16 @@ mcp-twake-mail is built with a layered architecture:
341
396
  - AI-friendly error formatting for troubleshooting
342
397
  - Large attachment handling (auto-save to disk for files > 750KB)
343
398
  - MCP tool annotations for AI clients (readOnlyHint, destructiveHint, idempotentHint)
399
+ - Batch operations with per-item success/failure reporting
400
+ - System folder protection for safe mailbox management
401
+
402
+ ## Version History
403
+
404
+ | Version | Release | Highlights |
405
+ |---------|---------|------------|
406
+ | v2.0 | 2026-01-31 | Draft management (update/send), Mailbox management (create/rename/delete), 29 tools total |
407
+ | v1.1 | 2026-01-31 | Email forwarding, Batch operations (6 tools) |
408
+ | v1.0 | 2026-01-30 | Initial release - 17 tools, 3 auth methods, auto-discovery, signatures |
344
409
 
345
410
  ## License
346
411
 
@@ -238,7 +238,7 @@ export class JMAPClient {
238
238
  }
239
239
  // Build download URL from template
240
240
  // Template format: {downloadUrl}/{accountId}/{blobId}/{name}?type={type}
241
- let url = session.downloadUrl
241
+ const url = session.downloadUrl
242
242
  .replace('{accountId}', encodeURIComponent(session.accountId))
243
243
  .replace('{blobId}', encodeURIComponent(blobId))
244
244
  .replace('{name}', encodeURIComponent(name || 'attachment'))
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/jmap/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/jmap/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { JMAPClient } from '../../jmap/client.js';
3
+ import type { Logger } from '../../config/logger.js';
4
+ /**
5
+ * Register batch email operation MCP tools with the server.
6
+ * @param server MCP server instance
7
+ * @param jmapClient JMAP client for API calls
8
+ * @param logger Pino logger
9
+ */
10
+ export declare function registerBatchOperationTools(server: McpServer, jmapClient: JMAPClient, logger: Logger): void;