Skip to main content
Glama
shuakami

Mail MCP Tool

by shuakami

sendSimpleMail

Send emails directly from AI assistants using a standardized interface. Specify recipient, subject, and body to dispatch messages through email services.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYes
subjectYes
bodyYes

Implementation Reference

  • Handler function for the 'sendSimpleMail' MCP tool. It validates input using Zod schema, calls MailService.sendMail with to, subject, and text=body, and returns success/error response.
    this.server.tool(
      "sendSimpleMail",
      {
        to: z.string(),
        subject: z.string(),
        body: z.string()
      },
      async ({ to, subject, body }) => {
        try {
          const result = await this.mailService.sendMail({
            to,
            subject,
            text: body
          });
          
          if (result.success) {
            return {
              content: [
                { type: "text", text: `简单邮件发送成功,消息ID: ${result.messageId}\n\n提示:如果需要等待对方回复,可以使用 waitForReply 工具。` }
              ]
            };
          } else {
            return {
              content: [
                { type: "text", text: `简单邮件发送失败: ${result.error}` }
              ]
            };
          }
        } catch (error) {
          return {
            content: [
              { type: "text", text: `发送简单邮件时发生错误: ${error instanceof Error ? error.message : String(error)}` }
            ]
          };
        }
      }
    );
  • Zod input schema for sendSimpleMail tool: requires 'to' (string), 'subject' (string), 'body' (string).
    to: z.string(),
    subject: z.string(),
    body: z.string()
  • MailService.sendMail method: the core implementation that uses nodemailer Transporter to send the email based on MailInfo.
    async sendMail(mailInfo: MailInfo): Promise<{ success: boolean; messageId?: string; error?: string }> {
      try {
        const mailOptions = {
          from: {
            name: this.config.defaults.fromName,
            address: this.config.defaults.fromEmail,
          },
          to: mailInfo.to,
          cc: mailInfo.cc,
          bcc: mailInfo.bcc,
          subject: mailInfo.subject,
          text: mailInfo.text,
          html: mailInfo.html,
          attachments: mailInfo.attachments,
        };
    
        const info = await this.smtpTransporter.sendMail(mailOptions);
        return { success: true, messageId: info.messageId };
      } catch (error) {
        console.error('发送邮件错误:', error);
        return { success: false, error: error instanceof Error ? error.message : String(error) };
      }
    }
  • TypeScript interface MailInfo defining the structure for email sending parameters, used by sendMail.
    export interface MailInfo {
      to: string | string[];
      cc?: string | string[];
      bcc?: string | string[];
      subject: string;
      text?: string;
      html?: string;
      attachments?: Array<{
        filename: string;
        content: string | Buffer;
        contentType?: string;
      }>;
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shuakami/mcp-mail'

If you have feedback or need assistance with the MCP directory API, please join our Discord server