syia-ai/mcp-utilities
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.
mail_communication
Send formal emails with HTML content support, CC, and BCC capabilities.
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 supportrecipient
(array): Main recipient email addressescc
(array, optional): Carbon copy recipientsbcc
(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 contentrecipient
(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
Variable | Description | Default |
---|---|---|
MONGODB_URI | MongoDB connection string | mongodb://localhost:27017 |
MONGODB_DB_NAME | MongoDB database name | mcp_communication |
OAUTH_CLIENT_ID | Gmail OAuth client ID | - |
OAUTH_CLIENT_SECRET | Gmail OAuth client secret | - |
GMAIL_SCOPES | Gmail OAuth scopes | https://www.googleapis.com/auth/gmail.send |
WHATSAPP_TOKEN | WhatsApp Business API token | - |
WHATSAPP_URL | WhatsApp 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
- Go to Google Cloud Console
- Create a new project or select existing
- Enable the Gmail API
- Create OAuth 2.0 credentials (Desktop application)
- Set authorized redirect URIs:
http://localhost:3000/oauth2callback
- Export your credentials:
export OAUTH_CLIENT_ID="your_client_id" export OAUTH_CLIENT_SECRET="your_client_secret"
- Run the setup wizard:
npm run oauth-setup
WhatsApp Business API
- Set up WhatsApp Business API account
- Create a message template named "whatsapp_template"
- Get your phone number ID and access token
- 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
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- 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.