social-mcp 2.3.0 → 2.4.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
@@ -328,7 +328,7 @@ Set `MAIL_MAILER` to select your provider (`smtp`, `sendgrid`, `mailgun`, or `se
328
328
  | `SES_SECRET_ACCESS_KEY`| AWS IAM Secret Access Key |
329
329
  | `SES_REGION` | AWS region where your SES sending identity is verified (default: `us-east-1`) |
330
330
 
331
- > **Note:** The sender address (`MAIL_FROM_ADDRESS`) must be a verified identity in your SES account. Sending uses the SES v2 REST API with AWS Signature V4 — no AWS SDK required.
331
+ > **Note:** The sender address (`MAIL_FROM_ADDRESS`) must be a verified identity in your SES account. Sending uses the SES v2 REST API with AWS Signature V4 — no AWS SDK required. On startup (and via `EmailService.verify()`), your keys are checked with a signed `GetAccount` call, the same way SMTP is checked with `transporter.verify()`. This only confirms the keys are valid — it does not report sandbox mode or sending quota; check those in the AWS console or via your own `GetAccount` call if you need them.
332
332
 
333
333
  ## Available Tools
334
334
 
@@ -469,10 +469,10 @@ Set `MAIL_MAILER` to select your provider (`smtp`, `sendgrid`, `mailgun`, or `se
469
469
 
470
470
  ### Email
471
471
 
472
- - **EMAIL_SEND** — Send an email to a single recipient (`to`, `subject`, `text`, `html`; plus optional inline credentials — see below)
473
- - **EMAIL_SEND_BULK** — Send the same email to multiple recipients (`recipients`, `subject`, `text`, `html`; plus optional inline credentials)
472
+ - **EMAIL_SEND** — Send an email to a single recipient (`to`, `subject`, `text`, `html`, `cc`, `bcc`, `replyTo`, `headers`, `attachments`; plus optional inline credentials — see below)
473
+ - **EMAIL_SEND_BULK** — Send the same email to multiple recipients (`recipients`, `subject`, `text`, `html`, `cc`, `bcc`, `replyTo`, `headers`, `attachments`; plus optional inline credentials)
474
474
 
475
- > The active mail driver is selected by `MAIL_MAILER`. Switching providers requires only changing that one variable — no code changes needed. Credentials can also be passed inline per call for multi-account / per-org use cases.
475
+ > The active mail driver is selected by `MAIL_MAILER`. Switching providers requires only changing that one variable — no code changes needed. Credentials can also be passed inline per call for multi-account / per-org use cases. `attachments` take `{ filename, content, contentType? }` with `content` as base64; for SES this transparently switches to a raw MIME message since attachments aren't supported by the plain send API.
476
476
 
477
477
  ### Dev.to
478
478
 
@@ -14,14 +14,32 @@ export interface EmailCredentials {
14
14
  sesSecretAccessKey?: string;
15
15
  sesRegion?: string;
16
16
  }
17
+ export interface EmailAttachment {
18
+ filename: string;
19
+ /** Base64-encoded file contents. */
20
+ content: string;
21
+ contentType?: string;
22
+ }
23
+ export interface EmailMessage {
24
+ to: string | string[];
25
+ subject: string;
26
+ text: string;
27
+ html?: string;
28
+ cc?: string | string[];
29
+ bcc?: string | string[];
30
+ replyTo?: string;
31
+ headers?: Record<string, string>;
32
+ attachments?: EmailAttachment[];
33
+ }
17
34
  export declare class EmailService {
18
35
  private creds;
19
36
  constructor(credentials?: EmailCredentials);
20
37
  private validateCredentials;
21
38
  private fromHeader;
22
39
  private createSMTPTransporter;
40
+ private sesRequest;
23
41
  verify(): Promise<void>;
24
- send(to: string | string[], subject: string, text: string, html?: string): Promise<void>;
42
+ send(message: EmailMessage): Promise<void>;
25
43
  private sendViaSMTP;
26
44
  private sendViaSendGrid;
27
45
  private sendViaMailgun;
@@ -1,7 +1,15 @@
1
+ import { createHash, createHmac } from "node:crypto";
1
2
  import nodemailer from "nodemailer";
2
- import { createHash, createHmac } from "crypto";
3
3
  import { config } from "../lib/config.js";
4
4
  import { CredentialsError } from "../lib/errors.js";
5
+ function toArray(value) {
6
+ return Array.isArray(value) ? value : [value];
7
+ }
8
+ function joinAddresses(value) {
9
+ if (!value)
10
+ return undefined;
11
+ return toArray(value).join(", ");
12
+ }
5
13
  function credentialsFromConfig() {
6
14
  const { mailer, fromAddress, fromName, smtp, sendgrid, mailgun, ses } = config.email;
7
15
  return {
@@ -34,6 +42,35 @@ function sesSigningKey(secretKey, dateStamp, region) {
34
42
  const kService = hmacSha256(kRegion, "ses");
35
43
  return hmacSha256(kService, "aws4_request");
36
44
  }
45
+ // Builds a raw MIME message so SES can send attachments (the v2 "Simple" content
46
+ // type has no attachment support). Bcc is deliberately left out of the headers —
47
+ // Destination.BccAddresses handles delivery without exposing the address to other recipients.
48
+ function buildRawMimeMessage(from, to, message) {
49
+ const boundaryMixed = `mixed_${Date.now()}_${Math.random().toString(36).slice(2)}`;
50
+ const boundaryAlt = `alt_${Date.now()}_${Math.random().toString(36).slice(2)}`;
51
+ const lines = [
52
+ `From: ${from}`,
53
+ `To: ${to.join(", ")}`,
54
+ `Subject: ${message.subject}`,
55
+ ];
56
+ if (message.replyTo)
57
+ lines.push(`Reply-To: ${message.replyTo}`);
58
+ if (message.cc)
59
+ lines.push(`Cc: ${toArray(message.cc).join(", ")}`);
60
+ for (const [name, value] of Object.entries(message.headers ?? {})) {
61
+ lines.push(`${name}: ${value}`);
62
+ }
63
+ lines.push("MIME-Version: 1.0", `Content-Type: multipart/mixed; boundary="${boundaryMixed}"`, "", `--${boundaryMixed}`, `Content-Type: multipart/alternative; boundary="${boundaryAlt}"`, "", `--${boundaryAlt}`, 'Content-Type: text/plain; charset="UTF-8"', "Content-Transfer-Encoding: 7bit", "", message.text);
64
+ if (message.html) {
65
+ lines.push(`--${boundaryAlt}`, 'Content-Type: text/html; charset="UTF-8"', "Content-Transfer-Encoding: 7bit", "", message.html);
66
+ }
67
+ lines.push(`--${boundaryAlt}--`);
68
+ for (const attachment of message.attachments ?? []) {
69
+ lines.push(`--${boundaryMixed}`, `Content-Type: ${attachment.contentType ?? "application/octet-stream"}; name="${attachment.filename}"`, "Content-Transfer-Encoding: base64", `Content-Disposition: attachment; filename="${attachment.filename}"`, "", attachment.content.replace(/(.{76})/g, "$1\n"));
70
+ }
71
+ lines.push(`--${boundaryMixed}--`, "");
72
+ return Buffer.from(lines.join("\r\n"), "utf8").toString("base64");
73
+ }
37
74
  export class EmailService {
38
75
  creds;
39
76
  constructor(credentials) {
@@ -93,39 +130,109 @@ export class EmailService {
93
130
  auth: { user: smtpUsername, pass: smtpPassword },
94
131
  });
95
132
  }
96
- // Verifies the SMTP connection. No-op for SendGrid/Mailgun/SES (no free verify endpoint).
133
+ // Signs and sends an SES v2 REST API request with AWS Signature V4.
134
+ async sesRequest(method, path, body) {
135
+ const { sesAccessKeyId, sesSecretAccessKey = "", sesRegion = "us-east-1", } = this.creds;
136
+ const region = sesRegion;
137
+ const host = `email.${region}.amazonaws.com`;
138
+ const now = new Date();
139
+ const amzDate = now
140
+ .toISOString()
141
+ .replace(/[:-]/g, "")
142
+ .replace(/\.\d{3}/, "");
143
+ const dateStamp = amzDate.slice(0, 8);
144
+ const bodyHash = sha256Hex(body);
145
+ const canonicalHeaders = `content-type:application/json\nhost:${host}\nx-amz-date:${amzDate}\n`;
146
+ const signedHeaders = "content-type;host;x-amz-date";
147
+ const canonicalRequest = [
148
+ method,
149
+ path,
150
+ "",
151
+ canonicalHeaders,
152
+ signedHeaders,
153
+ bodyHash,
154
+ ].join("\n");
155
+ const credentialScope = `${dateStamp}/${region}/ses/aws4_request`;
156
+ const stringToSign = [
157
+ "AWS4-HMAC-SHA256",
158
+ amzDate,
159
+ credentialScope,
160
+ sha256Hex(canonicalRequest),
161
+ ].join("\n");
162
+ const signingKey = sesSigningKey(sesSecretAccessKey, dateStamp, region);
163
+ const signature = createHmac("sha256", signingKey)
164
+ .update(stringToSign, "utf8")
165
+ .digest("hex");
166
+ const authorization = `AWS4-HMAC-SHA256 Credential=${sesAccessKeyId}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`;
167
+ return fetch(`https://${host}${path}`, {
168
+ method,
169
+ headers: {
170
+ "Content-Type": "application/json",
171
+ "X-Amz-Date": amzDate,
172
+ Authorization: authorization,
173
+ },
174
+ ...(method === "GET" ? {} : { body }),
175
+ });
176
+ }
177
+ // Verifies credentials. SMTP: opens a connection. SES: signs a GetAccount call
178
+ // (free, read-only). No-op for SendGrid/Mailgun (no free verify endpoint).
97
179
  async verify() {
98
180
  if (this.creds.mailer === "smtp") {
99
181
  const transporter = this.createSMTPTransporter();
100
182
  await transporter.verify();
101
183
  }
184
+ else if (this.creds.mailer === "ses") {
185
+ const response = await this.sesRequest("GET", "/v2/email/account", "");
186
+ if (!response.ok) {
187
+ const error = await response.text();
188
+ throw new Error(`SES error (${response.status}): ${error}`);
189
+ }
190
+ }
102
191
  }
103
- async send(to, subject, text, html) {
192
+ async send(message) {
104
193
  switch (this.creds.mailer) {
105
194
  case "smtp":
106
- return this.sendViaSMTP(to, subject, text, html);
195
+ return this.sendViaSMTP(message);
107
196
  case "sendgrid":
108
- return this.sendViaSendGrid(to, subject, text, html);
197
+ return this.sendViaSendGrid(message);
109
198
  case "mailgun":
110
- return this.sendViaMailgun(to, subject, text, html);
199
+ return this.sendViaMailgun(message);
111
200
  case "ses":
112
- return this.sendViaSES(to, subject, text, html);
201
+ return this.sendViaSES(message);
113
202
  }
114
203
  }
115
- async sendViaSMTP(to, subject, text, html) {
204
+ async sendViaSMTP(message) {
116
205
  const transporter = this.createSMTPTransporter();
117
206
  await transporter.sendMail({
118
207
  from: this.fromHeader(),
119
- to: Array.isArray(to) ? to.join(", ") : to,
120
- subject,
121
- text,
122
- html,
208
+ to: joinAddresses(message.to),
209
+ cc: joinAddresses(message.cc),
210
+ bcc: joinAddresses(message.bcc),
211
+ replyTo: message.replyTo,
212
+ subject: message.subject,
213
+ text: message.text,
214
+ html: message.html,
215
+ headers: message.headers,
216
+ attachments: message.attachments?.map((attachment) => ({
217
+ filename: attachment.filename,
218
+ content: attachment.content,
219
+ encoding: "base64",
220
+ contentType: attachment.contentType,
221
+ })),
123
222
  });
124
223
  }
125
- async sendViaSendGrid(to, subject, text, html) {
126
- const recipients = Array.isArray(to) ? to : [to];
224
+ async sendViaSendGrid(message) {
225
+ const recipients = toArray(message.to);
226
+ const ccList = message.cc
227
+ ? toArray(message.cc).map((email) => ({ email }))
228
+ : undefined;
229
+ const bccList = message.bcc
230
+ ? toArray(message.bcc).map((email) => ({ email }))
231
+ : undefined;
127
232
  const personalizations = recipients.map((email) => ({
128
233
  to: [{ email }],
234
+ ...(ccList ? { cc: ccList } : {}),
235
+ ...(bccList ? { bcc: bccList } : {}),
129
236
  }));
130
237
  const body = {
131
238
  personalizations,
@@ -133,11 +240,23 @@ export class EmailService {
133
240
  email: this.creds.fromAddress,
134
241
  ...(this.creds.fromName ? { name: this.creds.fromName } : {}),
135
242
  },
136
- subject,
243
+ subject: message.subject,
137
244
  content: [
138
- { type: "text/plain", value: text },
139
- ...(html ? [{ type: "text/html", value: html }] : []),
245
+ { type: "text/plain", value: message.text },
246
+ ...(message.html ? [{ type: "text/html", value: message.html }] : []),
140
247
  ],
248
+ ...(message.replyTo ? { reply_to: { email: message.replyTo } } : {}),
249
+ ...(message.headers ? { headers: message.headers } : {}),
250
+ ...(message.attachments
251
+ ? {
252
+ attachments: message.attachments.map((attachment) => ({
253
+ content: attachment.content,
254
+ filename: attachment.filename,
255
+ type: attachment.contentType,
256
+ disposition: "attachment",
257
+ })),
258
+ }
259
+ : {}),
141
260
  };
142
261
  const response = await fetch("https://api.sendgrid.com/v3/mail/send", {
143
262
  method: "POST",
@@ -152,15 +271,30 @@ export class EmailService {
152
271
  throw new Error(`SendGrid error (${response.status}): ${error}`);
153
272
  }
154
273
  }
155
- async sendViaMailgun(to, subject, text, html) {
274
+ async sendViaMailgun(message) {
156
275
  const { mailgunApiKey, mailgunDomain } = this.creds;
157
276
  const formData = new FormData();
158
277
  formData.append("from", this.fromHeader());
159
- formData.append("to", Array.isArray(to) ? to.join(",") : to);
160
- formData.append("subject", subject);
161
- formData.append("text", text);
162
- if (html)
163
- formData.append("html", html);
278
+ formData.append("to", joinAddresses(message.to) ?? "");
279
+ if (message.cc)
280
+ formData.append("cc", joinAddresses(message.cc) ?? "");
281
+ if (message.bcc)
282
+ formData.append("bcc", joinAddresses(message.bcc) ?? "");
283
+ if (message.replyTo)
284
+ formData.append("h:Reply-To", message.replyTo);
285
+ formData.append("subject", message.subject);
286
+ formData.append("text", message.text);
287
+ if (message.html)
288
+ formData.append("html", message.html);
289
+ for (const [name, value] of Object.entries(message.headers ?? {})) {
290
+ formData.append(`h:${name}`, value);
291
+ }
292
+ for (const attachment of message.attachments ?? []) {
293
+ const buffer = Buffer.from(attachment.content, "base64");
294
+ formData.append("attachment", new Blob([buffer], {
295
+ type: attachment.contentType || "application/octet-stream",
296
+ }), attachment.filename);
297
+ }
164
298
  const credentials = Buffer.from(`api:${mailgunApiKey}`).toString("base64");
165
299
  const response = await fetch(`https://api.mailgun.net/v3/${mailgunDomain}/messages`, {
166
300
  method: "POST",
@@ -172,46 +306,45 @@ export class EmailService {
172
306
  throw new Error(`Mailgun error (${response.status}): ${error}`);
173
307
  }
174
308
  }
175
- async sendViaSES(to, subject, text, html) {
176
- const { sesAccessKeyId, sesSecretAccessKey = "", sesRegion = "us-east-1", fromAddress, fromName } = this.creds;
177
- const region = sesRegion;
178
- const host = `email.${region}.amazonaws.com`;
179
- const path = "/v2/email/outbound-emails";
180
- const toAddresses = Array.isArray(to) ? to : [to];
181
- const body = JSON.stringify({
182
- FromEmailAddress: fromName ? `"${fromName}" <${fromAddress}>` : fromAddress,
183
- Destination: { ToAddresses: toAddresses },
184
- Content: {
309
+ async sendViaSES(message) {
310
+ const toAddresses = toArray(message.to);
311
+ const destination = { ToAddresses: toAddresses };
312
+ if (message.cc)
313
+ destination.CcAddresses = toArray(message.cc);
314
+ if (message.bcc)
315
+ destination.BccAddresses = toArray(message.bcc);
316
+ const content = message.attachments?.length
317
+ ? {
318
+ Raw: {
319
+ Data: buildRawMimeMessage(this.fromHeader(), toAddresses, message),
320
+ },
321
+ }
322
+ : {
185
323
  Simple: {
186
- Subject: { Data: subject, Charset: "UTF-8" },
324
+ Subject: { Data: message.subject, Charset: "UTF-8" },
187
325
  Body: {
188
- Text: { Data: text, Charset: "UTF-8" },
189
- ...(html ? { Html: { Data: html, Charset: "UTF-8" } } : {}),
326
+ Text: { Data: message.text, Charset: "UTF-8" },
327
+ ...(message.html
328
+ ? { Html: { Data: message.html, Charset: "UTF-8" } }
329
+ : {}),
190
330
  },
331
+ ...(message.headers
332
+ ? {
333
+ Headers: Object.entries(message.headers).map(([Name, Value]) => ({
334
+ Name,
335
+ Value,
336
+ })),
337
+ }
338
+ : {}),
191
339
  },
192
- },
193
- });
194
- const now = new Date();
195
- const amzDate = now.toISOString().replace(/[:-]/g, "").replace(/\.\d{3}/, "");
196
- const dateStamp = amzDate.slice(0, 8);
197
- const bodyHash = sha256Hex(body);
198
- const canonicalHeaders = `content-type:application/json\nhost:${host}\nx-amz-date:${amzDate}\n`;
199
- const signedHeaders = "content-type;host;x-amz-date";
200
- const canonicalRequest = ["POST", path, "", canonicalHeaders, signedHeaders, bodyHash].join("\n");
201
- const credentialScope = `${dateStamp}/${region}/ses/aws4_request`;
202
- const stringToSign = ["AWS4-HMAC-SHA256", amzDate, credentialScope, sha256Hex(canonicalRequest)].join("\n");
203
- const signingKey = sesSigningKey(sesSecretAccessKey, dateStamp, region);
204
- const signature = createHmac("sha256", signingKey).update(stringToSign, "utf8").digest("hex");
205
- const authorization = `AWS4-HMAC-SHA256 Credential=${sesAccessKeyId}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`;
206
- const response = await fetch(`https://${host}${path}`, {
207
- method: "POST",
208
- headers: {
209
- "Content-Type": "application/json",
210
- "X-Amz-Date": amzDate,
211
- Authorization: authorization,
212
- },
213
- body,
340
+ };
341
+ const body = JSON.stringify({
342
+ FromEmailAddress: this.fromHeader(),
343
+ Destination: destination,
344
+ Content: content,
345
+ ...(message.replyTo ? { ReplyToAddresses: [message.replyTo] } : {}),
214
346
  });
347
+ const response = await this.sesRequest("POST", "/v2/email/outbound-emails", body);
215
348
  if (!response.ok) {
216
349
  const error = await response.text();
217
350
  throw new Error(`SES error (${response.status}): ${error}`);
@@ -1 +1 @@
1
- {"version":3,"file":"email-service.js","sourceRoot":"","sources":["../../src/services/email-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email-service.js","sourceRoot":"","sources":["../../src/services/email-service.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,15 @@ declare const sendBulkEmailParams: z.ZodObject<{
27
27
  subject: z.ZodString;
28
28
  text: z.ZodString;
29
29
  html: z.ZodOptional<z.ZodString>;
30
+ cc: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
31
+ bcc: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
32
+ replyTo: z.ZodOptional<z.ZodString>;
33
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
34
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
35
+ filename: z.ZodString;
36
+ content: z.ZodString;
37
+ contentType: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strip>>>;
30
39
  }, z.core.$strip>;
31
40
  type SendBulkEmailParams = z.infer<typeof sendBulkEmailParams>;
32
41
  export declare const sendBulkEmailTool: {
@@ -60,6 +69,15 @@ export declare const sendBulkEmailTool: {
60
69
  subject: z.ZodString;
61
70
  text: z.ZodString;
62
71
  html: z.ZodOptional<z.ZodString>;
72
+ cc: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
73
+ bcc: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
74
+ replyTo: z.ZodOptional<z.ZodString>;
75
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
76
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
77
+ filename: z.ZodString;
78
+ content: z.ZodString;
79
+ contentType: z.ZodOptional<z.ZodString>;
80
+ }, z.core.$strip>>>;
63
81
  }, z.core.$strip>;
64
82
  readonly execute: (params: SendBulkEmailParams) => Promise<string>;
65
83
  };
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { CredentialsError } from "../../lib/errors.js";
3
- import { EmailService, getEmailService, } from "../../services/email-service.js";
3
+ import { EmailService, getEmailService } from "../../services/email-service.js";
4
4
  const sendBulkEmailParams = z.object({
5
5
  // ── Inline credentials (all optional — omit to use env var config) ──────
6
6
  mailer: z
@@ -72,6 +72,30 @@ const sendBulkEmailParams = z.object({
72
72
  .string()
73
73
  .optional()
74
74
  .describe("Optional HTML body. Falls back to text if omitted."),
75
+ cc: z
76
+ .union([z.string().email(), z.array(z.string().email())])
77
+ .optional()
78
+ .describe("Cc recipient(s). With mailer=sendgrid each recipient gets a separate message, so Cc receives one copy per recipient; with other mailers all recipients share one message and Cc receives it once."),
79
+ bcc: z
80
+ .union([z.string().email(), z.array(z.string().email())])
81
+ .optional()
82
+ .describe("Bcc recipient(s). With mailer=sendgrid each recipient gets a separate message, so Bcc receives one copy per recipient; with other mailers all recipients share one message and Bcc receives it once."),
83
+ replyTo: z.string().email().optional().describe("Reply-To address."),
84
+ headers: z
85
+ .record(z.string(), z.string())
86
+ .optional()
87
+ .describe('Custom email headers, e.g. { "X-Campaign-Id": "123" }.'),
88
+ attachments: z
89
+ .array(z.object({
90
+ filename: z.string().describe("Attachment file name."),
91
+ content: z.string().describe("Base64-encoded file contents."),
92
+ contentType: z
93
+ .string()
94
+ .optional()
95
+ .describe("MIME type, e.g. application/pdf."),
96
+ }))
97
+ .optional()
98
+ .describe("File attachments."),
75
99
  });
76
100
  export const sendBulkEmailTool = {
77
101
  name: "EMAIL_SEND_BULK",
@@ -97,7 +121,17 @@ export const sendBulkEmailTool = {
97
121
  sesRegion: params.sesRegion,
98
122
  })
99
123
  : getEmailService();
100
- await service.send(params.recipients, params.subject, params.text, params.html);
124
+ await service.send({
125
+ to: params.recipients,
126
+ subject: params.subject,
127
+ text: params.text,
128
+ html: params.html,
129
+ cc: params.cc,
130
+ bcc: params.bcc,
131
+ replyTo: params.replyTo,
132
+ headers: params.headers,
133
+ attachments: params.attachments,
134
+ });
101
135
  return `Email sent successfully to ${params.recipients.length} recipient(s): ${params.recipients.join(", ")}.`;
102
136
  }
103
137
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"send-bulk-email.js","sourceRoot":"","sources":["../../../src/tools/email-tools/send-bulk-email.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-bulk-email.js","sourceRoot":"","sources":["../../../src/tools/email-tools/send-bulk-email.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,15 @@ declare const sendEmailParams: z.ZodObject<{
27
27
  subject: z.ZodString;
28
28
  text: z.ZodString;
29
29
  html: z.ZodOptional<z.ZodString>;
30
+ cc: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
31
+ bcc: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
32
+ replyTo: z.ZodOptional<z.ZodString>;
33
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
34
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
35
+ filename: z.ZodString;
36
+ content: z.ZodString;
37
+ contentType: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strip>>>;
30
39
  }, z.core.$strip>;
31
40
  type SendEmailParams = z.infer<typeof sendEmailParams>;
32
41
  export declare const sendEmailTool: {
@@ -60,6 +69,15 @@ export declare const sendEmailTool: {
60
69
  subject: z.ZodString;
61
70
  text: z.ZodString;
62
71
  html: z.ZodOptional<z.ZodString>;
72
+ cc: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
73
+ bcc: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
74
+ replyTo: z.ZodOptional<z.ZodString>;
75
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
76
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
77
+ filename: z.ZodString;
78
+ content: z.ZodString;
79
+ contentType: z.ZodOptional<z.ZodString>;
80
+ }, z.core.$strip>>>;
63
81
  }, z.core.$strip>;
64
82
  readonly execute: (params: SendEmailParams) => Promise<string>;
65
83
  };
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { CredentialsError } from "../../lib/errors.js";
3
- import { EmailService, getEmailService, } from "../../services/email-service.js";
3
+ import { EmailService, getEmailService } from "../../services/email-service.js";
4
4
  const sendEmailParams = z.object({
5
5
  // ── Inline credentials (all optional — omit to use env var config) ──────
6
6
  mailer: z
@@ -69,6 +69,30 @@ const sendEmailParams = z.object({
69
69
  .string()
70
70
  .optional()
71
71
  .describe("Optional HTML body. Falls back to text if omitted."),
72
+ cc: z
73
+ .union([z.string().email(), z.array(z.string().email())])
74
+ .optional()
75
+ .describe("Cc recipient(s)."),
76
+ bcc: z
77
+ .union([z.string().email(), z.array(z.string().email())])
78
+ .optional()
79
+ .describe("Bcc recipient(s)."),
80
+ replyTo: z.string().email().optional().describe("Reply-To address."),
81
+ headers: z
82
+ .record(z.string(), z.string())
83
+ .optional()
84
+ .describe('Custom email headers, e.g. { "X-Campaign-Id": "123" }.'),
85
+ attachments: z
86
+ .array(z.object({
87
+ filename: z.string().describe("Attachment file name."),
88
+ content: z.string().describe("Base64-encoded file contents."),
89
+ contentType: z
90
+ .string()
91
+ .optional()
92
+ .describe("MIME type, e.g. application/pdf."),
93
+ }))
94
+ .optional()
95
+ .describe("File attachments."),
72
96
  });
73
97
  export const sendEmailTool = {
74
98
  name: "EMAIL_SEND",
@@ -94,7 +118,17 @@ export const sendEmailTool = {
94
118
  sesRegion: params.sesRegion,
95
119
  })
96
120
  : getEmailService();
97
- await service.send(params.to, params.subject, params.text, params.html);
121
+ await service.send({
122
+ to: params.to,
123
+ subject: params.subject,
124
+ text: params.text,
125
+ html: params.html,
126
+ cc: params.cc,
127
+ bcc: params.bcc,
128
+ replyTo: params.replyTo,
129
+ headers: params.headers,
130
+ attachments: params.attachments,
131
+ });
98
132
  return `Email sent successfully to ${params.to}.`;
99
133
  }
100
134
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"send-email.js","sourceRoot":"","sources":["../../../src/tools/email-tools/send-email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACN,YAAY,EACZ,eAAe,GACf,MAAM,iCAAiC,CAAC;AAEzC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,2EAA2E;IAC3E,MAAM,EAAE,CAAC;SACP,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;SAC5C,QAAQ,EAAE;SACV,QAAQ,CACR,uEAAuE,CACvE;IACF,WAAW,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,KAAK,EAAE;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAChE,OAAO;IACP,QAAQ,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC9D,QAAQ,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC7D,YAAY,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC5D,YAAY,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC5D,cAAc,EAAE,CAAC;SACf,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC5B,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACnE,WAAW;IACX,cAAc,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC9D,UAAU;IACV,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC5D,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACnE,aAAa;IACb,cAAc,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC9D,kBAAkB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IAClE,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAE3E,4EAA4E;IAC5E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC3D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACjE,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;CAChE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,IAAI,EAAE,YAAY;IAClB,WAAW,EACV,yJAAyJ;IAC1J,UAAU,EAAE,eAAe;IAC3B,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAE,EAAE;QAC1C,IAAI,CAAC;YACJ,MAAM,OAAO,GACZ,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW;gBAClC,CAAC,CAAC,IAAI,YAAY,CAAC;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC3B,CAAC;gBACH,CAAC,CAAC,eAAe,EAAE,CAAC;YAEtB,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACxE,OAAO,8BAA8B,MAAM,CAAC,EAAE,GAAG,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAC3F,CAAC;IACF,CAAC;CACQ,CAAC"}
1
+ {"version":3,"file":"send-email.js","sourceRoot":"","sources":["../../../src/tools/email-tools/send-email.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "social-mcp",
3
- "version": "2.3.0",
4
- "description": "MCP server for posting and interacting across social media platforms: Twitter, Instagram, Facebook, WhatsApp, Discord, Telegram, Slack, LinkedIn, Reddit, Threads, TikTok, Pinterest, Medium, and Email (SMTP/SendGrid/Mailgun)",
3
+ "version": "2.4.1",
4
+ "description": "MCP server for posting and interacting across social media platforms: Twitter, Instagram, Facebook, WhatsApp, Discord, Telegram, Slack, LinkedIn, Reddit, Threads, TikTok, Pinterest, Medium, and Email (SMTP/SendGrid/Mailgun/SES)",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "bin": {