@aimbitgmbh/kerio-connect-mcp
v0.2.1
Published
MCP server for Kerio Connect - Mail, Calendar, Contacts, Tasks, and Notes management
Maintainers
Readme
Kerio Connect MCP Server
A Model Context Protocol (MCP) server providing programmatic access to Kerio Connect for Mail, Calendar, Contacts, Tasks, and Notes management.
Tested and optimized for Qwen 3.8 27B tool calling
The server accepts standards-compliant MCP arguments and also normalizes common OpenAI-compatible tool-call serialization issues, such as numbers, booleans, or arrays returned as JSON strings. This keeps strict validation in place while making tool execution reliable with Qwen.
Prerequisites
- Node.js >= 18.0.0
- Kerio Connect server with API access
- Valid Kerio Connect credentials (email and password)
Features
- Mail management (read, search, send, draft, move, organize)
- Calendar events with recurrence support
- Contact management with full vCard support
- Task management
- Notes organization
- Dynamic folder discovery
- Full-text search across modules
- TypeScript implementation with Zod validation
Installation
NPM Package
npx @aimbitgmbh/kerio-connect-mcpMCP Client Configuration
Add to your MCP client configuration:
{
"mcpServers": {
"kerio-connect": {
"command": "npx",
"args": ["-y", "@aimbitgmbh/kerio-connect-mcp"],
"env": {
"KERIO_SERVER": "https://mail.example.com",
"KERIO_USERNAME": "[email protected]",
"KERIO_PASSWORD": "your-password"
}
}
}
}Configuration
Required Environment Variables
| Variable | Description |
|----------|-------------|
| KERIO_SERVER | Kerio Connect server URL (e.g., https://mail.example.com) |
| KERIO_USERNAME | Your email address |
| KERIO_PASSWORD | Your password |
Optional Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| KERIO_VERIFY_SSL | Verify SSL certificates | false |
| KERIO_ENABLE_SEND | Enable email sending without review | false |
Note: Email sending is disabled by default for safety. When disabled, the server creates drafts only.
Environment File Example
Create a .env file in the project root:
# Kerio Connect server URL (required)
KERIO_SERVER=https://mail.example.com
# Your email address (required)
[email protected]
# Your password (required)
KERIO_PASSWORD=your-password-here
# Verify SSL certificates (optional, default: false)
KERIO_VERIFY_SSL=false
# Enable email sending without manual review (optional, default: false)
KERIO_ENABLE_SEND=falseAvailable Tools
Mail Module
mails_list- List emails with filteringmails_get- Get email by ID with full contentmails_show_recent- View recent emailsmails_search- Full-text searchmails_send- Send email (requires KERIO_ENABLE_SEND=true)mails_save_draft- Create draft emailmails_update_draft- Edit draftmails_move- Move emails to foldermails_mark_read- Mark as read/unreadmails_flag- Flag/unflag emailsmails_delete- Delete emails
Calendar Module
calendars_list- List events with date filteringcalendars_search- Search eventscalendars_create- Create events with recurrencecalendars_update- Update event detailscalendars_delete- Delete events
Calendar discovery includes personal, shared, and public calendars. When multiple
calendars have the same name, select one with owner/calendar,
owner-email/calendar, or its full folder ID.
Model Compatibility Test
The repository includes an opt-in live test for OpenAI-compatible model APIs. It checks tool selection, argument typing, email-recipient arrays, and qualified shared-calendar selection without connecting to Kerio or changing Kerio data.
MCP_MODEL_TEST_BASE_URL="https://your-model-endpoint.example/v1" \
MCP_MODEL_TEST_API_KEY="your-api-key" \
MCP_MODEL_TEST_MODEL="your-model-name" \
npm run test:modelThe API key is read from the process environment only and is never written by the test script.
Contacts Module
contacts_list- List contactscontacts_get- Get contact detailscontacts_create- Create contactcontacts_update- Update contactcontacts_search- Search contactscontacts_delete- Delete contact
Tasks Module
tasks_list- List taskstasks_create- Create tasktasks_complete- Mark completetasks_update- Update tasktasks_search- Search taskstasks_delete- Delete task
Notes Module
notes_list- List notesnotes_search- Search notesnotes_count- Count notesnotes_create- Create notenotes_move- Move notenotes_update- Edit notenotes_delete- Delete note
Folder Management
folders_list- List all foldersfolders_create- Create folder
Architecture
Project Structure
kerio-connect-mcp/
├── src/
│ ├── index.ts # MCP server
│ ├── client.ts # Kerio API client
│ ├── config.ts # Configuration
│ ├── tools.ts # Tool definitions
│ └── types.ts # Type definitions
└── dist/ # Compiled outputTroubleshooting
Configuration Validation Failed
Ensure all required environment variables are set:
KERIO_SERVERKERIO_USERNAMEKERIO_PASSWORD
Invalid Credentials
Verify that your username is your full email address and test login via the Kerio Connect web interface.
SSL Certificate Errors
For self-signed certificates, set KERIO_VERIFY_SSL=false.
Session Expired
The server automatically re-authenticates. If errors persist, verify credentials are valid and the server is accessible.
Security
- Credentials passed via environment variables only
- Email sending disabled by default
- Server binds to localhost via stdio
- Configurable SSL certificate verification
- Automatic session management
Contributing
Contributions are welcome! Please feel free to submit a Pull Request or open an issue for bugs, feature requests, or improvements.
License
MIT © 2025 aimbit GmbH
See LICENSE file for details.
