ox-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
An MCP server for **Open-Xchange and standards-based mail platforms** — read & search email, send & reply, manage server-side filters, calendar events and invitations, contacts, and other people's availability (free/busy), across one or many accounts.
It speaks standard **IMAP + SMTP + ManageSieve + CalDAV + CardDAV** with **RFC 6638** free/busy, so it works with any Open-Xchange deployment or standards-compliant host. Authenticate with your **email + app password** (the same credential DAVx5 uses) or OAuth2/OIDC.
> No affiliation with Open-Xchange.
Install / run
MCP client config (Claude Desktop / Claude Code):
On first run (without --config) it creates ~/.ox-mcp/config.json (permissions 0600) with every feature flag listed — **reads enabled, writes disabled** — and empty hosts for you to fill in.
--config
--config (or env OX_MCP_CONFIG; the flag wins) loads an explicit config file instead of ~/.ox-mcp/config.json. The file **must exist** — nothing is auto-created when the override is used.
Tools
Tools are grouped by protocol domain. A group's tools appear only when enabled, and the group's server host must be configured (see *Validation*).
| Group | Read (enabled by default) | Write (disabled by default) |
|---|---|---|
| email_* (IMAP/SMTP/Sieve — mail section) | email_list_folders, email_list, email_read, email_search, email_filter_list | email_send, email_save_draft, email_reply, email_reply_all, email_delete, email_move, email_flag, email_mark_read, email_mark_unread, email_mark_spam, email_archive, email_create_folder, email_delete_folder, email_filter_create, email_filter_update |
| calendar_* (CalDAV — calDav section) | calendar_list, calendar_list_events, calendar_free_busy | calendar_create_event, calendar_update_event, calendar_delete_event, calendar_accept_event, calendar_decline_event, calendar_tentative_event |
| contact_* (CardDAV — cardDav section) | contact_list, contact_find | contact_create |
| meta | list_servers (always on) | — |
- Every tool (except list_servers) accepts an optional server argument to target a specific account. A tool is **hidden** from the tool list unless its flag is enabled for at least one account.
- email_search searches **all folders** by default; pass folder to narrow it. On the ox-api transport, body/text match only the subject and addresses of recent messages — use transport: "imap" for true full-text search.
- email_mark_spam / email_archive find the Junk/Archive folder via IMAP special-use attributes, with name-based fallbacks.
- email_reply / email_reply_all preserve threading (In-Reply-To/References) and exclude your own address from reply-all recipients.
- The three RSVP tools (calendar_accept_event / calendar_decline_event / calendar_tentative_event) share **one** feature flag: respondEvent (calDav section). They rewrite your PARTSTAT on the invitation; the server notifies the organizer.
- contact_find searches contacts **server-side** (CardDAV addressbook-query, RFC 6352) with automatic fallback to client-side filtering; fields narrows the match to name/email/phone/org (default name + email). Handy for resolving a name to an email before calendar_free_busy. contact_list is plain enumeration.
Mail filters
email_filter_create / email_filter_update manage **server-side sieve filters** over ManageSieve (port 4190, STARTTLS; requires basic/app-password auth). Rules support conditions on from/to/subject/any header (AND or OR) and actions fileinto (move to folder), discard, markRead, redirect.
> Backend depends on mail.transport: with **ox-api** (default), filters go through the OX mailfilter/v2 module and operate on the account's real webmail rules (rules with tests/actions beyond this model are listed read-only as other). With **imap**, ox-mcp manages its own sieve script over ManageSieve (port 4190) and **activates it** — filters from other scripts become inactive while it is active.