Skip to main content
Glama
baddif

gmail-send

by baddif

Gmail Send Skill - MCP Server

πŸš€ AI-Powered Email Sending Skill with Model Context Protocol (MCP) support

Send emails via Gmail using App Password authentication with Markdown content support, specifically designed for AI agents and MCP-compatible applications.

✨ Features

πŸ“§ Core Email Functionality

  • Gmail SMTP Integration - Send emails through Gmail's secure SMTP server (Port 587, TLS)

  • App Password Authentication - Secure authentication using Gmail App Passwords

  • Rich Error Reporting - Detailed success/failure feedback with error types

  • Input Validation - Comprehensive email and parameter validation

πŸ“ Enhanced Markdown Support (v1.1.0+)

  • Advanced Markdown Conversion - Full markdown library support with extensions (BSD license)

  • Professional Email Styling - Email-safe CSS with responsive design

  • Graceful Fallback System - Basic Markdown converter when external library unavailable

  • Commercial License Compliance - BSD-licensed dependencies for commercial use

  • Email Client Compatibility - Optimized HTML for major email clients

πŸ€– AI Integration

  • MCP Compatible - Full Model Context Protocol support for AI agents

  • OpenAI Function Calling - Compatible with OpenAI Function Calling standard

  • Skill Framework - Standalone and integrated execution modes

Related MCP server: Gmail MCP Pro

πŸš€ Quick Start

1. Installation

# Clone the repository
git clone <repository-url>
cd mcp-server-gmail-send

# Run automated installation
chmod +x install.sh
./install.sh

2. Gmail Setup

  1. Enable 2-Factor Authentication in your Gmail account

  2. Generate App Password:

    • Go to Google Account β†’ Security β†’ 2-Step Verification β†’ App Passwords

    • Select "Mail" and generate password

    • Save the 16-character password (e.g., abcd efgh ijkl mnop)

3. Claude Desktop Integration

# Copy configuration to Claude Desktop
cp claude_desktop_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json

# Restart Claude Desktop

4. Test the Setup

# Test the MCP server
python3 mcp_server.py --test

# Run comprehensive tests
python3 test_gmail_skill.py

πŸ“§ Usage Example

Enhanced Markdown to HTML Conversion (v1.1.0+)

The skill now supports advanced Markdown conversion with professional email styling:

Supported Markdown Features

  • Headers (H1-H6) with proper hierarchy

  • Text Formatting - Bold, italic, strikethrough

  • Lists - Ordered and unordered with nesting

  • Links - Automatic link formatting

  • Code Blocks - Syntax highlighting and inline code

  • Blockquotes - Professional quote styling

  • Tables - Responsive table design (with markdown library)

Email Styling Features

  • πŸ“± Responsive Design - Adapts to desktop and mobile email clients

  • 🎨 Professional CSS - Clean, modern email appearance

  • πŸ“§ Email Client Compatibility - Works with Gmail, Outlook, Apple Mail, etc.

  • πŸ”§ Graceful Fallback - Basic conversion when advanced features unavailable

Markdown Content Example

# Project Status Report

## Executive Summary
The project is **on track** with key milestones achieved:

### Completed Tasks βœ…
1. User authentication system
2. Database schema design
3. API endpoints implementation

### In Progress 🚧
- Front-end development
- Integration testing
- Performance optimization

> **Note**: All deliverables are meeting quality standards.

For technical details, see: [Project Documentation](https://example.com/docs)

```python
def get_project_status():
    return "Active"

This Markdown will be converted to professional HTML email format automatically.

### Basic Email Sending

```python
from gmail_send_skill import GmailSendSkill
from skill_compat import ExecutionContext

# Initialize
skill = GmailSendSkill()
ctx = ExecutionContext()

# Send email
result = skill.execute(ctx,
    username="your.email@gmail.com",
    app_password="abcd efgh ijkl mnop", 
    content="# Hello World!\n\nThis is a **test** email with *markdown*.",
    to_email="recipient@example.com",
    subject="Test Email from Skill"
)

print(f"Success: {result['success']}")

Via AI Agent (Claude Desktop)

Simply ask Claude:

Can you send an email using the gmail_send function? I need to send:
- From: my.email@gmail.com  
- To: colleague@company.com
- Subject: Project Update
- Content: A markdown report about our progress

I'll provide my app password when prompted.

πŸ“Š Function Schema

OpenAI Function Calling Format

{
  "name": "gmail_send",
  "description": "Send email via Gmail using App Password authentication with Markdown support",
  "parameters": {
    "type": "object", 
    "properties": {
      "username": {
        "type": "string",
        "description": "Gmail address for authentication"
      },
      "app_password": {
        "type": "string", 
        "description": "16-character Gmail App Password"
      },
      "content": {
        "type": "string",
        "description": "Email content in Markdown format"
      },
      "to_email": {
        "type": "string",
        "description": "Recipient email address"
      },
      "subject": {
        "type": "string",
        "description": "Email subject line",
        "default": "Email from Gmail Send Skill"
      },
      "from_name": {
        "type": "string", 
        "description": "Display name for sender",
        "default": null
      }
    },
    "required": ["username", "app_password", "content", "to_email"]
  }
}

πŸ“‹ Project Structure

mcp-server-gmail-send/
β”œβ”€β”€ πŸ“„ gmail_send_skill.py      # Main skill implementation
β”œβ”€β”€ πŸ”§ skill_compat.py          # Framework compatibility layer  
β”œβ”€β”€ πŸ–₯️  mcp_server.py           # MCP server with stdio transport
β”œβ”€β”€ πŸ“Š version.py               # Version management
β”œβ”€β”€ πŸ§ͺ test_gmail_skill.py      # Comprehensive test suite
β”œβ”€β”€ βš™οΈ  mcp_config.json         # MCP client configuration
β”œβ”€β”€ πŸ”Œ claude_desktop_config.json # Claude Desktop integration
β”œβ”€β”€ πŸ“¦ requirements.txt         # Python dependencies
β”œβ”€β”€ πŸ› οΈ install.sh               # Automated installation script
β”œβ”€β”€ πŸ“– GMAIL_SEND_USAGE.md      # Detailed usage guide
β”œβ”€β”€ πŸš€ MCP_DEPLOYMENT.md        # MCP deployment instructions
└── πŸ“ README.md                # This file

πŸ”§ Configuration

MCP Server Configuration

Update paths in mcp_config.json:

{
  "mcpServers": {
    "gmail-send": {
      "command": "python",
      "args": ["/absolute/path/to/mcp_server.py"],
      "env": {
        "PYTHONPATH": "/absolute/path/to/project"
      }
    }
  }
}

Claude Desktop Configuration

Update claude_desktop_config.json with your installation path and copy to:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

πŸ§ͺ Testing

Automated Testing

# Run all tests
python3 test_gmail_skill.py

# Test specific components
python3 test_gmail_skill.py --test TestGmailSendSkill

# Verbose output
python3 test_gmail_skill.py --verbose

Manual Testing

# Test skill directly
python3 gmail_send_skill.py

# Test MCP server
python3 mcp_server.py --test

# Check version and info
python3 version.py --info

βš™οΈ Technical Details

Dependencies and Licensing

Core Dependencies (Built-in Python)

  • smtplib - SMTP email sending

  • email.mime - Email composition

  • ssl - TLS encryption

  • json - Configuration handling

  • re - Regular expressions for fallback conversion

Optional Enhancement (Commercial-Friendly)

  • markdown library (BSD 3-Clause License)

    • βœ… Commercial use allowed

    • βœ… Distribution allowed

    • βœ… Modification allowed

    • πŸ”§ Graceful fallback when unavailable

System Requirements

  • Python 3.7+ (tested up to 3.12)

  • Internet connection for Gmail SMTP

  • Gmail account with 2FA enabled

Architecture

Gmail Send Skill Architecture
β”œβ”€β”€ gmail_send_skill.py      # Core skill implementation
β”œβ”€β”€ skill_compat.py          # Framework compatibility layer
β”œβ”€β”€ mcp_server.py           # MCP Protocol server
└── version.py              # Version management

HTML Conversion Pipeline:
Markdown Content β†’ Advanced/Basic Converter β†’ CSS Styling β†’ Email HTML

Conversion System Details

Advanced Mode (with markdown library)

  • Full CommonMark specification support

  • Extensions: tables, strikethrough, task lists

  • Professional syntax highlighting

  • Advanced table rendering

Fallback Mode (built-in)

  • Regex-based Markdown parsing

  • Core element support (headers, lists, formatting)

  • Email-safe HTML generation

  • Professional CSS styling maintained

πŸ“š Documentation

πŸ”’ Security

Best Practices

  • βœ… Use App Passwords - Never use regular Gmail passwords

  • βœ… Enable 2FA - Required for App Password generation

  • βœ… Secure Storage - Never commit credentials to version control

  • βœ… Input Validation - All parameters are validated before use

  • βœ… Error Handling - Sensitive information is not exposed in errors

Supported Authentication

  • Gmail App Passwords (recommended)

  • G Suite/Workspace accounts with App Passwords

  • 2-Factor Authentication required

πŸ“Š Response Format

Success Response

{
  "success": true,
  "function_name": "gmail_send",
  "result": {
    "message": "Email sent successfully to recipient@example.com",
    "timestamp": "2026-02-14T10:30:00",
    "from": "sender@gmail.com",
    "to": "recipient@example.com",
    "subject": "Email Subject"
  }
}

Error Response

{
  "success": false,
  "function_name": "gmail_send", 
  "error": {
    "message": "Authentication failed. Please check your credentials.",
    "type": "authentication_error",
    "details": "SMTP Authentication Error: (535, 'Incorrect password')"
  }
}

πŸ”„ Version Information

Current Version: 1.0.0 (2026-02-14)

# Check version
python3 version.py --version

# Full version info  
python3 version.py --info

# View changelog
python3 version.py --changelog

πŸ› οΈ Requirements

System Requirements

  • Python 3.7+ (required)

  • Internet connection for SMTP access

  • Gmail account with 2FA enabled

Dependencies

  • Built-in Python libraries: smtplib, email, json, logging

  • Optional: markdown>=3.4.0 (for rich formatting)

Compatibility

  • βœ… MCP Protocol 2024-11-05

  • βœ… OpenAI Function Calling compatible

  • βœ… Claude Desktop integration

  • βœ… Cross-platform (macOS, Linux, Windows)

πŸ†˜ Troubleshooting

Common Issues

Authentication Errors

# Verify App Password format (16 characters)
# Check 2FA is enabled
# Generate new App Password

Module Import Errors

# Check Python path
export PYTHONPATH=/path/to/mcp-server-gmail-send

# Verify file permissions
chmod 644 gmail_send_skill.py

MCP Connection Issues

# Test MCP server
python3 mcp_server.py --test

# Check Claude Desktop logs
tail -f ~/Library/Logs/Claude/claude-desktop.log

Support Resources

  • πŸ“‹ Usage Guide - Detailed troubleshooting

  • πŸ”§ Deployment Guide - MCP-specific issues

  • πŸ§ͺ Test Suite - python3 test_gmail_skill.py

  • πŸ“Š Logs - Check gmail_send_mcp.log

🀝 Contributing

  1. Fork the repository

  2. Create feature branch: git checkout -b feature/amazing-feature

  3. Commit changes: git commit -m 'Add amazing feature'

  4. Push to branch: git push origin feature/amazing-feature

  5. Open Pull Request

Development Setup

# Clone for development
git clone <repository-url>
cd mcp-server-gmail-send

# Install development dependencies
pip3 install -r requirements.txt
pip3 install pytest pytest-asyncio  # For testing

# Run tests
python3 test_gmail_skill.py

# Check code style
python3 -m flake8 gmail_send_skill.py

οΏ½ Version History

v1.1.0 (2024-12-19) - Enhanced Markdown Support

  • ✨ Advanced Markdown Conversion - Full markdown library support with extensions

  • 🎨 Professional Email Styling - Responsive CSS for email clients

  • πŸ”§ Graceful Fallback System - Basic converter when external library unavailable

  • βš–οΈ Commercial License Compliance - BSD-licensed dependencies

  • πŸ“§ Email Client Optimization - Improved compatibility across platforms

  • πŸ§ͺ Enhanced Testing - Comprehensive conversion and styling tests

v1.0.0 (2024-12-19) - Initial Release

  • πŸ“§ Gmail SMTP Integration - Secure email sending via Gmail

  • πŸ” App Password Authentication - Secure credential handling

  • πŸ€– MCP Protocol Support - Full Model Context Protocol implementation

  • πŸ“ Basic Markdown Support - Simple markdown to HTML conversion

  • βœ… Comprehensive Testing - 18 unit tests with edge case coverage

  • πŸ› οΈ Local Development Tools - Configuration templates and testing utilities

οΏ½πŸ“„ License

This project is licensed under the terms specified in the LICENSE file.

Third-Party License Compliance

  • markdown library (Optional) - BSD 3-Clause License - Commercial use allowed

  • Python Standard Library - Python Software Foundation License

πŸ™ Acknowledgments

  • Model Context Protocol - For the standardized AI agent integration

  • OpenAI Function Calling - For the function schema standard

  • Gmail SMTP - For reliable email delivery infrastructure

  • Python Community - For the excellent libraries and tools

  • Markdown Community - For the BSD-licensed markdown processing library


Built for AI-Powered Applications πŸ€– | MCP Compatible πŸ”Œ | Production Ready πŸš€

Gmail Send Skill v1.1.0 - Enhanced Markdown conversion with professional email styling Send mail through gmail.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

–Maintainers
–Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/baddif/mcp-server-gmail-send'

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