@agenticmail/mcp 0.9.1 → 0.9.2
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/index.js +11 -6
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -22627,11 +22627,11 @@ async function apiRequest(method, path, body, useMasterKey = false, timeoutMs =
|
|
|
22627
22627
|
var toolDefinitions = [
|
|
22628
22628
|
{
|
|
22629
22629
|
name: "send_email",
|
|
22630
|
-
description: 'Send an email from the agent\'s mailbox.
|
|
22630
|
+
description: 'Send an email from the agent\'s mailbox. The PRIMARY primitive for multi-agent coordination. **Use `to` and `cc` as the email standard intends** \u2014 `to` is the actor(s) the message is addressed to (one or two recipients in most cases); `cc` is everyone else on the thread for awareness. Lumping every participant on `to` is wrong and defeats the wake gating. WAKE SEMANTICS (0.9.0+): by default only local @localhost recipients on `to:` get a Claude wake; CC\'d local agents receive the mail but don\'t wake \u2014 they see it on their next natural wake. To override: pass `wake: ["alice","bob"]` for specific agents regardless of To/CC, or `wake: "all"` for the pre-0.9.0 "wake every recipient" behaviour, or `wake: []` to deliver silently. External emails are scanned for sensitive content; HIGH severity detections are BLOCKED for owner approval.',
|
|
22631
22631
|
inputSchema: {
|
|
22632
22632
|
type: "object",
|
|
22633
22633
|
properties: {
|
|
22634
|
-
to: { type: "string", description: "
|
|
22634
|
+
to: { type: "string", description: "Primary actor \u2014 the agent(s) you want to act on this message. Usually one address; rarely two. **Everyone else on the thread goes on `cc`, NOT here.** Lumping all participants on `to` defeats the wake gating: every local @localhost recipient on `to` gets a Claude turn, so a 5-agent thread = 5 Claude turns per round. Comma-separated supported but use sparingly." },
|
|
22635
22635
|
subject: { type: "string", description: "Email subject line" },
|
|
22636
22636
|
text: { type: "string", description: "Plain text body" },
|
|
22637
22637
|
html: { type: "string", description: "HTML body (optional)" },
|
|
@@ -22726,7 +22726,7 @@ var toolDefinitions = [
|
|
|
22726
22726
|
},
|
|
22727
22727
|
{
|
|
22728
22728
|
name: "reply_email",
|
|
22729
|
-
description: "Reply to an email. Fetches the original message, auto-fills To, Subject (Re:), In-Reply-To, and References, then sends with quoted body. **For multi-agent thread coordination, pass `replyAll: true`** so every
|
|
22729
|
+
description: "Reply to an email. Fetches the original message, auto-fills To, Subject (Re:), In-Reply-To, and References, then sends with quoted body. **For multi-agent thread coordination, pass `replyAll: true`** \u2014 the original sender lands on To: (so they wake, by default), every other thread participant lands on Cc: (so they see it without waking). This is the correct shape; the tool builds it for you. **Pass `wake` to override** the default wake target (e.g. you want to wake a specific CC'd participant). Outbound guard applies \u2014 HIGH severity content is held for review.",
|
|
22730
22730
|
inputSchema: {
|
|
22731
22731
|
type: "object",
|
|
22732
22732
|
properties: {
|
|
@@ -23785,9 +23785,13 @@ Connected account (${result.relayResults[0].account}): ${result.relayResults.len
|
|
|
23785
23785
|
On ${original.date}, ${replyTo} wrote:
|
|
23786
23786
|
${quotedBody}`;
|
|
23787
23787
|
let to = replyTo;
|
|
23788
|
+
let cc;
|
|
23788
23789
|
if (args2.replyAll) {
|
|
23789
|
-
const
|
|
23790
|
-
|
|
23790
|
+
const norm = (a) => (typeof a === "string" ? a : a?.address ?? "").trim().toLowerCase();
|
|
23791
|
+
const replyToLower = norm(replyTo);
|
|
23792
|
+
const others = [...original.to || [], ...original.cc || []].map((a) => a?.address).filter((v) => !!v).filter((v) => norm(v) !== replyToLower).filter((v, i, a) => a.findIndex((x) => norm(x) === norm(v)) === i);
|
|
23793
|
+
to = replyTo;
|
|
23794
|
+
cc = others.length > 0 ? others.join(", ") : void 0;
|
|
23791
23795
|
}
|
|
23792
23796
|
const replySendBody = {
|
|
23793
23797
|
to,
|
|
@@ -23795,7 +23799,8 @@ ${quotedBody}`;
|
|
|
23795
23799
|
text: fullText,
|
|
23796
23800
|
html: args2.html,
|
|
23797
23801
|
inReplyTo: original.messageId,
|
|
23798
|
-
references: refs
|
|
23802
|
+
references: refs,
|
|
23803
|
+
...cc !== void 0 ? { cc } : {}
|
|
23799
23804
|
};
|
|
23800
23805
|
if (args2.wake !== void 0) {
|
|
23801
23806
|
replySendBody.wake = args2.wake;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticmail/mcp",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"mcpName": "io.github.agenticmail/mcp",
|
|
5
5
|
"description": "MCP server for AgenticMail — give any AI client real email and SMS capabilities",
|
|
6
6
|
"type": "module",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
32
32
|
"zod": "^3.24.0",
|
|
33
|
-
"@agenticmail/core": "^0.9.
|
|
33
|
+
"@agenticmail/core": "^0.9.2"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"tsup": "^8.4.0",
|