Skip to main content
Glama
erickva

Google Calendar - No deletion

by erickva

send_email

Send emails with customizable recipients, subject, and body. Supports CC, BCC, and HTML content, integrated with Google Calendar without deletion capabilities.

Instructions

Send a new email

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bccNoBCC recipients (comma-separated)
bodyYesEmail body (can include HTML)
ccNoCC recipients (comma-separated)
subjectYesEmail subject
toYesRecipient email address

Implementation Reference

  • The handler function that executes the send_email tool: destructures args, builds raw MIME email, base64url encodes it, sends via Gmail API, returns success/error response.
    private async handleSendEmail(args: any) {
      try {
        const { to, subject, body, cc, bcc } = args;
    
        // Create email content
        const message = [
          'Content-Type: text/html; charset=utf-8',
          'MIME-Version: 1.0',
          `To: ${to}`,
          cc ? `Cc: ${cc}` : '',
          bcc ? `Bcc: ${bcc}` : '',
          `Subject: ${subject}`,
          '',
          body,
        ].filter(Boolean).join('\r\n');
    
        // Encode the email
        const encodedMessage = Buffer.from(message)
          .toString('base64')
          .replace(/\+/g, '-')
          .replace(/\//g, '_')
          .replace(/=+$/, '');
    
        // Send the email
        const response = await this.gmail.users.messages.send({
          userId: 'me',
          requestBody: {
            raw: encodedMessage,
          },
        });
    
        return {
          content: [
            {
              type: 'text',
              text: `Email sent successfully. Message ID: ${response.data.id}`,
            },
          ],
        };
      } catch (error: any) {
        return {
          content: [
            {
              type: 'text',
              text: `Error sending email: ${error.message}`,
            },
          ],
          isError: true,
        };
      }
    }
  • Input schema defining parameters for send_email tool: to, subject, body (required), cc, bcc.
    inputSchema: {
      type: 'object',
      properties: {
        to: {
          type: 'string',
          description: 'Recipient email address',
        },
        subject: {
          type: 'string',
          description: 'Email subject',
        },
        body: {
          type: 'string',
          description: 'Email body (can include HTML)',
        },
        cc: {
          type: 'string',
          description: 'CC recipients (comma-separated)',
        },
        bcc: {
          type: 'string',
          description: 'BCC recipients (comma-separated)',
        },
      },
      required: ['to', 'subject', 'body']
    },
  • src/index.ts:98-127 (registration)
    Registration of send_email tool in the tools list, including name, description, and inputSchema.
    {
      name: 'send_email',
      description: 'Send a new email',
      inputSchema: {
        type: 'object',
        properties: {
          to: {
            type: 'string',
            description: 'Recipient email address',
          },
          subject: {
            type: 'string',
            description: 'Email subject',
          },
          body: {
            type: 'string',
            description: 'Email body (can include HTML)',
          },
          cc: {
            type: 'string',
            description: 'CC recipients (comma-separated)',
          },
          bcc: {
            type: 'string',
            description: 'BCC recipients (comma-separated)',
          },
        },
        required: ['to', 'subject', 'body']
      },
    },
  • src/index.ts:234-235 (registration)
    Switch case in CallToolRequestSchema handler that routes send_email calls to the handleSendEmail function.
    case 'send_email':
      return await this.handleSendEmail(request.params.arguments);

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Related Tools

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/erickva/google-workspace-mcp-server-no-calendar-deletetion'

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