hypermail-mcp 0.7.3 → 0.7.4
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 +7 -2
- package/dist/cli.js +5 -3
- package/dist/cli.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
A **Model Context Protocol** server that lets an agent operate any of the user's
|
|
4
4
|
inboxes through a single, unified tool surface.
|
|
5
5
|
|
|
6
|
+
> **v0.7.4** — `inReplyTo` is now a required parameter on `send_email` and
|
|
7
|
+
> `draft_email` (was optional). Set it to `false` for a new email, or pass a
|
|
8
|
+
> message ID to thread a reply. This forces the agent to make an explicit choice
|
|
9
|
+
> instead of silently treating replies as new conversations.
|
|
10
|
+
>
|
|
6
11
|
> **v0.7.3** — `edit_draft` now preserves the quoted thread history when editing
|
|
7
12
|
> Outlook reply/forward drafts. Previously, editing a draft body would overwrite
|
|
8
13
|
> the entire content — including the quoted thread. Now only the answer part
|
|
@@ -232,8 +237,8 @@ account store.
|
|
|
232
237
|
| `archive_email` | `account`, `id` | Move a message to the Archive folder. Disabled under `--read-only`. |
|
|
233
238
|
| `trash_email` | `account`, `id` | Move a message to Deleted Items (trash). Disabled under `--read-only`. |
|
|
234
239
|
| `move_email` | `account`, `id`, `destination` | Move to any folder by well-known name (`inbox`, `drafts`, etc.) or custom folder ID. Disabled under `--read-only`. |
|
|
235
|
-
| `send_email` | `account`, `to[]`, `cc?`, `bcc?`, `subject`, `body`, `format`, `include_signature
|
|
236
|
-
| `draft_email` | `account`, `to[]`, `cc?`, `bcc?`, `subject`, `body`, `format`, `include_signature
|
|
240
|
+
| `send_email` | `account`, `to[]`, `cc?`, `bcc?`, `subject`, `body`, `format`, `include_signature`, `inReplyTo`, `replyAll?`, `forwardMessageId?` | Send an email. `format` (`"html"` or `"markdown"`) controls body format — Markdown is converted to HTML via `marked`. Appends signature when `include_signature` is true. `inReplyTo` sends as threaded reply; `forwardMessageId` sends as forward. `inReplyTo` is required — set to `false` for new emails. Disabled under `--read-only`. |
|
|
241
|
+
| `draft_email` | `account`, `to[]`, `cc?`, `bcc?`, `subject`, `body`, `format`, `include_signature`, `inReplyTo`, `replyAll?`, `forwardMessageId?` | Save as draft instead of sending. `format` (`"html"` or `"markdown"`) controls body format — Markdown is converted to HTML via `marked`. Returns the draft message ID and HTML body (`draftHtml`). `inReplyTo` is required — set to `false` for new emails. Disabled under `--read-only`. |
|
|
237
242
|
| `edit_draft` | `account`, `id`, `to?`, `cc?`, `bcc?`, `subject?`, `body?`, `format?`, `include_signature?` | Edit an existing draft by ID. Only provided fields are updated. `format` only meaningful when `body` is provided. Returns the updated draft ID and HTML body (`draftHtml`). Disabled under `--read-only`. |
|
|
238
243
|
| `send_draft` | `account`, `id` | Send an existing draft email by ID. Use with draft IDs returned by `draft_email` or `edit_draft`. Disabled under `--read-only`. |
|
|
239
244
|
| `add_attachment_to_draft` | `account`, `id`, `name?`, `contentBytes?`, `filePath?`, `contentType?` | Attach a file to an existing draft by ID. Provide `contentBytes` (base64) or `filePath` (absolute path — auto-encodes). Disabled under `--read-only`. |
|
package/dist/cli.js
CHANGED
|
@@ -2191,6 +2191,7 @@ async function updateDraft2(clients, account, id, update) {
|
|
|
2191
2191
|
subject: update.subject ?? origSubject,
|
|
2192
2192
|
body: update.body ?? "",
|
|
2193
2193
|
isHtml: update.isHtml,
|
|
2194
|
+
inReplyTo: false,
|
|
2194
2195
|
cc: existingCc.length > 0 ? existingCc : void 0,
|
|
2195
2196
|
bcc: existingBcc.length > 0 ? existingBcc : void 0
|
|
2196
2197
|
});
|
|
@@ -3318,8 +3319,8 @@ function registerComposeTools(server, ctx) {
|
|
|
3318
3319
|
include_signature: z6.boolean().describe(
|
|
3319
3320
|
"Whether to append the account's saved HTML signature to the email. If true, don't include a signature in the body param to avoid double signature. Returns an error if true but no signature is configured for this account."
|
|
3320
3321
|
),
|
|
3321
|
-
inReplyTo: z6.string().
|
|
3322
|
-
"Message ID to reply to. When set, sends as a threaded reply which includes the quoted thread history automatically."
|
|
3322
|
+
inReplyTo: z6.union([z6.string(), z6.literal(false)]).describe(
|
|
3323
|
+
"Message ID to reply to. When set, sends as a threaded reply which includes the quoted thread history automatically. Set to `false` for a new email (not a reply)."
|
|
3323
3324
|
),
|
|
3324
3325
|
replyAll: z6.boolean().default(false).optional().describe(
|
|
3325
3326
|
"When true and `inReplyTo` is set, reply to all recipients instead of just the sender."
|
|
@@ -3628,7 +3629,7 @@ function registerTools(server, opts) {
|
|
|
3628
3629
|
// package.json
|
|
3629
3630
|
var package_default = {
|
|
3630
3631
|
name: "hypermail-mcp",
|
|
3631
|
-
version: "0.7.
|
|
3632
|
+
version: "0.7.4",
|
|
3632
3633
|
description: "Unified email MCP server \u2014 operate any inbox (Outlook now, IMAP/Gmail later) by passing an email address.",
|
|
3633
3634
|
type: "module",
|
|
3634
3635
|
bin: {
|
|
@@ -3689,6 +3690,7 @@ var package_default = {
|
|
|
3689
3690
|
"@types/isomorphic-fetch": "^0.0.39",
|
|
3690
3691
|
"@types/node": "^22.10.2",
|
|
3691
3692
|
"@types/nodemailer": "^8.0.0",
|
|
3693
|
+
"@types/turndown": "^5.0.6",
|
|
3692
3694
|
tsup: "^8.3.5",
|
|
3693
3695
|
typescript: "^5.7.2",
|
|
3694
3696
|
vitest: "^2.1.8"
|