mcp-utilities

syia-ai/mcp-utilities

3.2

If you are the rightful owner of mcp-utilities and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The MCP Utilities Communication Server is a Node.js TypeScript implementation of an MCP server, offering email and WhatsApp communication capabilities.

Tools
  1. mail_communication

    Send formal emails with HTML content support, CC, and BCC capabilities.

  2. whatsapp_communication

    Send quick WhatsApp messages to individual recipients.

(MCP Utilities) Communication Server

A Node.js TypeScript implementation of an MCP (Model Context Protocol) server that provides comprehensive email and WhatsApp communication capabilities. This is a complete conversion from the original Python implementation, maintaining 100% feature parity while adding TypeScript enhancements.

✨ Features

  • šŸ“§ Email Communication: Send professional emails via Gmail API with OAuth2 authentication
  • šŸ“± WhatsApp Communication: Send WhatsApp messages via WhatsApp Business API
  • šŸ‘¤ User Management: Retrieve user information from MongoDB with ObjectId support
  • šŸ”— MCP Compatible: Full compatibility with Model Context Protocol
  • šŸ”’ Secure Authentication: OAuth2 flows with automatic token refresh
  • āš™ļø Flexible Configuration: Environment variables and CLI argument support

šŸš€ Quick Start

Installation

npm install
npm run build

Configuration

Set up your environment variables:

# MongoDB Configuration
export MONGODB_URI="mongodb://localhost:27017"
export MONGODB_DB_NAME="mcp_communication"

# Gmail OAuth Configuration
export OAUTH_CLIENT_ID="your_gmail_oauth_client_id"
export OAUTH_CLIENT_SECRET="your_gmail_oauth_client_secret"
export GMAIL_SCOPES="https://www.googleapis.com/auth/gmail.send"

# WhatsApp Business API Configuration
export WHATSAPP_TOKEN="your_whatsapp_api_token"
export WHATSAPP_URL="https://graph.facebook.com/v18.0/YOUR_PHONE_NUMBER_ID/messages"

Gmail OAuth Setup

Run the interactive OAuth setup wizard:

npm run oauth-setup

Usage

# Start the server
npx mcp-utilities

# With custom configuration
npx mcp-utilities --mongodb-uri mongodb://localhost:27017 --debug

# Development mode
npm run dev

šŸ› ļø Tools

mail_communication

Send formal emails with HTML content support, CC, and BCC capabilities.

Parameters:

  • subject (string): Email subject line (max 100 characters)
  • content (string): HTML email content with formatting support
  • recipient (array): Main recipient email addresses
  • cc (array, optional): Carbon copy recipients
  • bcc (array, optional): Blind carbon copy recipients

Example:

{
  "subject": "Meeting Invitation",
  "content": "<h1>Team Meeting</h1><p>Join us tomorrow at 10 AM.</p><br>Best regards,<br>Syia",
  "recipient": ["team@company.com"],
  "cc": ["manager@company.com"]
}

whatsapp_communication

Send quick WhatsApp messages to individual recipients.

Parameters:

  • content (string): Plain text message content
  • recipient (string): WhatsApp phone number (E.164 or local format)

Example:

{
  "content": "Hello! Your appointment is confirmed for tomorrow at 2 PM.",
  "recipient": "+1234567890"
}

šŸ“¦ Resources

user://details/<user_id>

Retrieve detailed user information from MongoDB by user ID.

Returns: User object with firstName, lastName, email, and phone fields.

šŸ’¬ Prompts

general_instructions

Provides contextual instructions for working with the Communication system, including current date information.

āš™ļø Configuration Options

Environment Variables

VariableDescriptionDefault
MONGODB_URIMongoDB connection stringmongodb://localhost:27017
MONGODB_DB_NAMEMongoDB database namemcp_communication
OAUTH_CLIENT_IDGmail OAuth client ID-
OAUTH_CLIENT_SECRETGmail OAuth client secret-
GMAIL_SCOPESGmail OAuth scopeshttps://www.googleapis.com/auth/gmail.send
WHATSAPP_TOKENWhatsApp Business API token-
WHATSAPP_URLWhatsApp API endpoint-

CLI Arguments

Options:
  --mongodb-uri URI         Set MongoDB URI
  --mongodb-db-name NAME    Set MongoDB database name
  --oauth-client-id ID      Set OAuth client ID
  --oauth-client-secret SECRET Set OAuth client secret
  --whatsapp-token TOKEN    Set WhatsApp API token
  --whatsapp-url URL        Set WhatsApp API URL
  --debug                   Enable debug logging
  --help, -h               Show help message

šŸ”§ Development

Project Structure

mcp-utilities/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ config.ts           # Configuration management
│   ā”œā”€ā”€ database.ts         # MongoDB client and operations
│   ā”œā”€ā”€ index.ts           # Main server entry point
│   ā”œā”€ā”€ oauth-setup.ts     # Interactive OAuth setup
│   ā”œā”€ā”€ prompts.ts         # MCP prompt handlers
│   ā”œā”€ā”€ resources.ts       # MCP resource handlers
│   ā”œā”€ā”€ tools.ts           # Tool implementations
│   └── tool-schemas.ts    # Tool schema definitions
ā”œā”€ā”€ bin/cli.js             # Executable CLI script
ā”œā”€ā”€ scripts/install.js     # Installation helper
└── dist/                  # Compiled JavaScript output

Development Commands

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

# Clean build files
npm run clean

# Set up Gmail OAuth
npm run oauth-setup

šŸ” Authentication Setup

Gmail OAuth2

  1. Go to Google Cloud Console
  2. Create a new project or select existing
  3. Enable the Gmail API
  4. Create OAuth 2.0 credentials (Desktop application)
  5. Set authorized redirect URIs: http://localhost:3000/oauth2callback
  6. Export your credentials:
    export OAUTH_CLIENT_ID="your_client_id"
    export OAUTH_CLIENT_SECRET="your_client_secret"
    
  7. Run the setup wizard: npm run oauth-setup

WhatsApp Business API

  1. Set up WhatsApp Business API account
  2. Create a message template named "whatsapp_template"
  3. Get your phone number ID and access token
  4. Configure environment variables:
    export WHATSAPP_TOKEN="your_access_token"
    export WHATSAPP_URL="https://graph.facebook.com/v18.0/YOUR_PHONE_NUMBER_ID/messages"
    

MongoDB Setup

Ensure MongoDB is running with a users collection:

// Example user document structure
{
  "_id": ObjectId("..."),
  "firstName": "John",
  "lastName": "Doe",
  "email": "john.doe@example.com",
  "phone": "+1234567890"
}

šŸ“‹ System Requirements

  • Node.js: ≄18.0.0
  • MongoDB: ≄4.0
  • TypeScript: ≄5.0

šŸ¤ Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

šŸ“„ License

MIT License - see LICENSE file for details.

šŸ¢ About

Developed by Syia AI - Advancing communication through intelligent automation.

šŸ”„ Migration from Python

This TypeScript implementation provides 100% feature parity with the original Python version while offering:

  • āœ… Enhanced type safety with TypeScript
  • āœ… Automatic OAuth token refresh
  • āœ… Interactive setup wizards
  • āœ… Modern ESM module support
  • āœ… Comprehensive CLI help
  • āœ… Better error handling
  • āœ… npm package ecosystem benefits

For migration assistance or questions, please open an issue.