evolution-mcp
Provides tools for managing GNOME Evolution calendar and email via the Evolution Data Server.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@evolution-mcpShow my events for tomorrow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
evolution-mcp
MCP server for GNOME Evolution -- exposes calendar and email functionality via the Model Context Protocol using Evolution Data Server (EDS).
Requirements
Python >= 3.10
GNOME Evolution Data Server (EDS) 1.2+
System packages:
gir1.2-camel-1.2,gir1.2-edataserver-1.2,gir1.2-ecal-2.0Credentials stored in GNOME Keyring (auto-configured when accounts are set up in Evolution)
Related MCP server: ical-mcp
Installation
uv syncOr with pip:
pip install -e .Configuration
Add to your MCP client configuration (e.g. .mcp.json):
{
"mcpServers": {
"evolution": {
"command": "uv",
"args": ["--directory", "/path/to/evolution-mcp", "run", "evolution-mcp"]
"env": {
"DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus",
"DISPLAY": ":0"
}
}
}
}Tools
Calendar
Tool | Description |
| List all enabled calendars with UID, name, color, and backend |
| Query events in a date range ( |
| Get full details of a single event ( |
| Create a new event ( |
| Update an existing event (fetch-modify-save) |
| Delete an event ( |
Tool | Description |
| List all configured mail accounts with UID, name, email, and backend |
| List all folders in an account with unread/total counts |
| Paginated message summaries from a folder (newest first) |
| Full message with plain/HTML body and attachment list |
| Search by subject, from, or body text |
| Send an email (Camel transport with smtplib fallback) |
| Move a message between folders |
| Set flags: |
Architecture
evolution-mcp
FastMCP (stdio JSON-RPC)
_MCPCamelSession (Camel.Session subclass)
authenticates via GNOME Keyring / ESourceCredentialsProvider
ECal.Client -- calendar CRUD
Camel.Store -- IMAP/POP mail accessSingle-threaded EDS access -- all EDS/Camel calls are serialised through a single-worker
ThreadPoolExecutor(EDS is not thread-safe).Async bridge -- each MCP tool wraps blocking EDS calls with
asyncio.to_thread().Authentication --
_MCPCamelSessionlooks up stored passwords viaESourceCredentialsProviderand callsservice.authenticate_sync()to perform the actual protocol authentication (IMAP LOGIN, etc.).IMAPX online mode -- IMAPX stores are
CamelOfflineStoresubclasses that requireset_online_sync(True)to connect. The IMAPX connection manager checks bothsession.onlineandstore.onlinebefore allowing operations.Folder tree walking --
CamelFolderInfochild/next pointers are exposed as raw C pointers by PyGObject, so ctypes is used to dereference and walk the tree.
License
See LICENSE for details.
This server cannot be deployed
Maintenance
Related MCP Connectors
A MCP server that works with Outlook Calendar to manage event listing, reading, and updates.
A MCP server that works with Google Calendar to manage event listing, reading, and updates.
MCP server for Nylas — read email, calendars, events and contacts, and send email or create events.
MCP server for Cronofy — read calendars, events and free/busy, and create, update or delete events.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for Apple Calendar, Mail, Reminders, and Files on macOS using native frameworks.14 npm18MIT
- AlicenseAqualityBmaintenanceMCP server for Apple Calendar and CalDAV providers. Enables listing, creating, updating, deleting events, and checking free/busy status with per-calendar write protection.6MIT
- FlicenseDqualityDmaintenanceMCP server for interacting with Google Calendar, enabling reading events from public calendars and, with OAuth, creating, updating, and deleting events.1-
- AlicenseNot gradedqualityCmaintenanceMCP server for Google Calendar that enables listing, creating, updating, and deleting events, quick-add from natural language, responding to invitations, and checking availability across multiple accounts.MIT