evolution-mcp

evolution-mcp

MCP server for GNOME Evolution that enables calendar and email operations such as listing calendars/events, sending emails, and searching messages through the Evolution Data Server.

Category
Visit Server

README

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.0
  • Credentials stored in GNOME Keyring (auto-configured when accounts are set up in Evolution)

Installation

uv sync

Or 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_calendars List all enabled calendars with UID, name, color, and backend
list_events Query events in a date range (calendar_uid, start_date, end_date)
get_event Get full details of a single event (calendar_uid, event_uid)
create_event Create a new event (calendar_uid, summary, start_datetime, end_datetime, optional description, location)
update_event Update an existing event (fetch-modify-save)
delete_event Delete an event (calendar_uid, event_uid)

Email

Tool Description
list_mail_accounts List all configured mail accounts with UID, name, email, and backend
list_mail_folders List all folders in an account with unread/total counts
list_messages Paginated message summaries from a folder (newest first)
read_message Full message with plain/HTML body and attachment list
search_messages Search by subject, from, or body text
send_email Send an email (Camel transport with smtplib fallback)
move_message Move a message between folders
mark_message Set flags: read, unread, flagged, unflagged, deleted

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 access
  • Single-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 -- _MCPCamelSession looks up stored passwords via ESourceCredentialsProvider and calls service.authenticate_sync() to perform the actual protocol authentication (IMAP LOGIN, etc.).
  • IMAPX online mode -- IMAPX stores are CamelOfflineStore subclasses that require set_online_sync(True) to connect. The IMAPX connection manager checks both session.online and store.online before allowing operations.
  • Folder tree walking -- CamelFolderInfo child/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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured