Skip to main content
Glama
leolilley

Mailcow MCP Server

by leolilley
README.md
# ๐Ÿ“ง Mailcow MCP Server

> **Model Context Protocol (MCP) server for complete Mailcow email server management**

[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)
[![MCP](https://img.shields.io/badge/MCP-0.4.0-green.svg)](https://modelcontextprotocol.io/)
[![Node.js](https://img.shields.io/badge/Node.js-18+-green.svg)](https://nodejs.org/)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

A comprehensive TypeScript implementation that provides AI models with full control over Mailcow email servers through the Model Context Protocol. Manage domains, mailboxes, queues, sync jobs, and send emails - all with a single, secure API.

## โœจ Features

๐ŸŽฏ **Complete Email Management** - 20 MCP tools for full Mailcow control  
๐Ÿ”’ **Enterprise Security** - API key authentication with granular permissions  
โšก **High Performance** - Built with TypeScript for speed and reliability  
๐Ÿ“Š **Comprehensive Logging** - Full audit trail and monitoring capabilities  
๐Ÿงช **Well Tested** - Extensive test suite with >85% coverage on core modules  
๐Ÿš€ **Production Ready** - Used in production environments

## ๐Ÿš€ Quick Start

```bash
# 1. Install dependencies
npm install

# 2. Configure environment  
cp .env.example .env
# Edit .env with your Mailcow server details

# 3. Start the server
npm run build && npm start
```

๐ŸŽ‰ **That's it!** Your MCP server is now running with 20 tools ready for AI integration.

๐Ÿ‘‰ **Detailed setup**: [Quick Start Guide](docs/QUICK_START.md)

## ๐Ÿ› ๏ธ Available Tools

### Email Management (18 tools)
- **Domains** (5): List, create, update, delete, get details
- **Mailboxes** (5): List, create, update, delete, get details  
- **Email Sending** (3): Send emails, check delivery status, get templates
- **Queue Management** (6): List, flush, delete, hold, release queue items
- **Sync Jobs** (7): Manage email migration and synchronization
- **Log Analysis** (4): System, error, performance, and access logs

### System Tools (3 tools)
- **Health Check**: Server status and metrics
- **Configuration**: Current settings (sanitized)
- **API Test**: Validate Mailcow connectivity

## ๐Ÿ“Š Current Status

๐ŸŸข **MVP Complete** - Full email server management capability  
๐ŸŸข **Production Ready** - Deployed and tested in live environments  
๐ŸŸข **Well Documented** - Comprehensive guides and API reference  

| Component | Status | Coverage | Tools |
|-----------|--------|----------|-------|
| **Domain Management** | โœ… Complete | 85% | 5 tools |
| **Mailbox Management** | โœ… Complete | 87% | 5 tools |
| **Email System** | โœ… Complete | MVP | 3 tools |
| **Queue Management** | โœ… Complete | New | 6 tools |
| **Sync Jobs** | โœ… Complete | New | 7 tools |
| **Log Management** | โœ… Complete | New | 4 tools |
| **System Tools** | โœ… Complete | 100% | 3 tools |

## ๐Ÿ—๏ธ Architecture

```
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   AI Models     โ”‚    โ”‚   MCP Client    โ”‚    โ”‚   Your App      โ”‚
โ”‚   (Claude, etc) โ”‚โ—„โ”€โ”€โ–บโ”‚   (Claude CLI)  โ”‚โ—„โ”€โ”€โ–บโ”‚   Integration   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚
                                โ–ผ
                       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                       โ”‚  MCP Protocol   โ”‚
                       โ”‚   (JSON-RPC)    โ”‚
                       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚
                                โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Mailcow MCP Server                           โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Tool Registry โ”‚ โ”‚ Auth Manager  โ”‚ โ”‚   20 MCP Tools        โ”‚  โ”‚
โ”‚  โ”‚ & Validation  โ”‚ โ”‚ & Security    โ”‚ โ”‚ โ€ข Domain Management   โ”‚  โ”‚
โ”‚  โ”‚               โ”‚ โ”‚               โ”‚ โ”‚ โ€ข Mailbox Management  โ”‚  โ”‚
โ”‚  โ”‚               โ”‚ โ”‚               โ”‚ โ”‚ โ€ข Email & Queues      โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                โ”‚                                โ”‚
โ”‚                                โ–ผ                                โ”‚  
โ”‚                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”‚
โ”‚                    โ”‚     API Client        โ”‚                    โ”‚
โ”‚                    โ”‚   (HTTP + Auth)       โ”‚                    โ”‚
โ”‚                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚
                                โ–ผ
                       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                       โ”‚  Mailcow Server โ”‚
                       โ”‚   REST API      โ”‚
                       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

## ๐Ÿ“š Documentation

| Document | Purpose |
|----------|---------|
| **[Quick Start](docs/QUICK_START.md)** | Get running in 5 minutes |
| **[Architecture](docs/ARCHITECTURE.md)** | System design and components |  
| **[API Reference](docs/API_REFERENCE.md)** | Complete tool documentation |
| **[Configuration](docs/CONFIGURATION.md)** | Environment setup guide |
| **[Testing Guide](docs/TESTING.md)** | Testing framework and practices |

### Developer Resources
- **[CLAUDE.md](CLAUDE.md)** - Essential context for Claude Code sessions
- **[Team Structure](docs/TEAM_STRUCTURE.md)** - Parallel development workflow  

## ๐Ÿ”ง Development

```bash
# Development mode with auto-reload
npm run dev

# Run tests
npm test

# View test coverage
npm run test:coverage

# Lint and format
npm run lint
npm run format

# Build for production
npm run build
```

## ๐ŸŒŸ Example Usage

### Send an Email
```typescript
// Send welcome email with template
const result = await mcp.call('send_email', {
  from: 'admin@company.com',
  to: ['user@company.com'],
  subject: 'Welcome to our service!',
  body: 'Your account is ready to use.',
  body_type: 'plain'
});

// Check delivery status  
await mcp.call('check_email_status', { 
  queue_id: result.email_details.queue_id 
});
```

### Manage Domains
```typescript
// List all active domains
const domains = await mcp.call('list_domains', { 
  active_only: true 
});

// Create new domain
await mcp.call('create_domain', {
  domain: 'newclient.com', 
  description: 'New client domain',
  quota: 5368709120  // 5GB
});
```

### Monitor System
```typescript
// Check server health
const health = await mcp.call('health_check');

// Get recent error logs
const errors = await mcp.call('get_error_logs', {
  limit: 50,
  start_time: '2023-12-01T00:00:00.000Z'
});
```

## ๐Ÿ”’ Security

- **API Key Authentication** with Mailcow integration
- **Granular Permissions** system (read/write/delete by resource)
- **Input Validation** with JSON Schema enforcement  
- **Audit Logging** for all operations
- **HTTPS Enforcement** and SSL certificate validation
- **Rate Limiting** to prevent abuse

## ๐Ÿค Contributing

1. **Fork** the repository
2. **Create** a feature branch: `git checkout -b feature/amazing-feature`
3. **Add tests** for your changes
4. **Ensure** all tests pass: `npm run test:all`
5. **Commit** your changes: `git commit -m 'Add amazing feature'`
6. **Push** to the branch: `git push origin feature/amazing-feature`
7. **Open** a Pull Request

See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ†˜ Support

- **Documentation**: [docs/README.md](docs/README.md)
- **Issues**: [GitHub Issues](https://github.com/your-repo/mailcow-mcp/issues)
- **Discussions**: [GitHub Discussions](https://github.com/your-repo/mailcow-mcp/discussions)

## ๐Ÿ™ Acknowledgments

- **[Model Context Protocol](https://modelcontextprotocol.io/)** - The protocol that makes this possible
- **[Mailcow](https://mailcow.email/)** - The excellent email server platform  
- **[TypeScript](https://www.typescriptlang.org/)** - For robust type safety and excellent tooling

---

<div align="center">
<strong>Made with โค๏ธ for the AI and email community</strong><br>
<em>Bringing AI and email servers together, one tool at a time.</em>
</div>