Model Context Protocol (MCP) server for complete Mailcow email server management
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.
π― 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
# 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
- 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
- Health Check: Server status and metrics
- Configuration: Current settings (sanitized)
- API Test: Validate Mailcow connectivity
π’ 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 |
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β 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 β
βββββββββββββββββββ
| Document | Purpose |
|---|---|
| Quick Start | Get running in 5 minutes |
| Architecture | System design and components |
| API Reference | Complete tool documentation |
| Configuration | Environment setup guide |
| Testing Guide | Testing framework and practices |
- CLAUDE.md - Essential context for Claude Code sessions
- Team Structure - Parallel development workflow
# 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// 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
});// 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
});// 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'
});- 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
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Add tests for your changes
- Ensure all tests pass:
npm run test:all - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: docs/README.md
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Model Context Protocol - The protocol that makes this possible
- Mailcow - The excellent email server platform
- TypeScript - For robust type safety and excellent tooling
Bringing AI and email servers together, one tool at a time.