An MCP server that integrates with the GNOME Evolution Data Server (EDS). This allows Gemini to directly read your local calendar and contacts configured in GNOME Evolution (e.g., via Office365).
- eds://calendars: Read all available and enabled calendars.
- eds://mail/accounts: Read all configured and enabled email accounts.
- eds://mail/{account_uid}/folders: Read the list of folders for a specific email account.
- get_calendar_events: Retrieve calendar events for the coming days.
- create_calendar_event: Create a new event in a specific calendar.
- update_calendar_event: Update the summary or description of an existing calendar event.
- delete_calendar_event: Delete an event or a specific recurrence from a calendar.
- search_contacts: Search for contacts in your Evolution address book.
- get_emails: Retrieve recent emails from a specific folder.
- schedule_today: A prompt to generate a schedule for today based on the user's agenda.
- contact_dossier: Gather information about a specific contact.
This MCP server relies on the GNOME Evolution Data Server (EDS). This means that to access Microsoft Outlook (Exchange or Office 365) calendars and contacts from your Linux system, you need to configure them in GNOME Evolution first:
- Install GNOME Evolution and
evolution-ews(the Exchange Web Services plugin). - Open Evolution and add a new account.
- Choose "Exchange Web Services" (EWS) or "Outlook" as the server type and log in.
- Ensure the calendars and contacts you want to access are enabled in Evolution's sidebar.
- Once synced,
eds-mcpwill automatically discover and be able to read these calendars through EDS.
This project uses uv for package management. Because EDS bindings (PyGObject) often depend on system libraries, we recommend using uv in combination with system packages if necessary.
cd /path/to/src/eds-mcp
uv venv --system-site-packages
source .venv/bin/activate
uv pip install -e .This server relies on a custom Evolution plugin to perform destructive actions like moving or deleting emails.
To install the bridge, run:
make install-bridgeNote: This will install build dependencies, compile the C plugin, and install it into Evolution's plugin directory. It may prompt for your sudo password.
Add the following configuration to your Gemini/Claude config file (usually ~/.config/Gemini/config.json or via the CLI):
{
"mcpServers": {
"eds": {
"command": "uv",
"args": [
"--directory",
"/path/to/src/eds-mcp",
"run",
"eds-mcp"
]
}
}
}You can also run the server directly to see if it starts:
uv run eds-mcp- Linux with GNOME
evolution-data-serverand the corresponding-devpackages.python3-gi(PyGObject bindings)