关于 mcp-ecc
mcp-ecc 是统一管理邮件、日历和联系人的 MCP 服务,支持云服务商及标准协议账户,适合希望通过单一接口处理多种账户的用户,并提供按用户区分的密钥和加密凭据。
主要功能
- 01邮件、日历和联系人工具
- 02支持 Google、Microsoft 365 和 Zoho
- 03支持 IMAP/SMTP、CalDAV 和 CardDAV
- 04多用户账户与独立 API 密钥
- 05静态加密凭据
- 06提供 Web 管理界面、REST API 和 MCP 端点
适用场景
- 01跨服务商处理邮件
- 02结合邮件管理日程
- 03搜索和更新联系人
- 04通过单个部署服务多个用户
MCP 相关
向 MCP 客户端提供统一的邮件、日历、联系人和账户工具。客户端可使用每位用户的 API 密钥连接 HTTP `/mcp` 端点,也可通过 CLI 启动 stdio 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-ecc
电子邮件 · 日历 · 联系人 — 一个 MCP 服务管理你的所有账户
一个 Model Context Protocol(MCP)服务,让 AI 助手能够通过统一界面读取、编写和管理你的电子邮件、日历和联系人,涵盖 Google、Microsoft 365/Outlook、Zoho,以及任何 IMAP/SMTP、CalDAV 或 CardDAV 账户。
mcp-ecc 将你的邮件、日历和联系人整合为标准化的 MCP 工具(mail.*、calendar.*、contacts.*、accounts.*),让任何 MCP 客户端(Claude、Cursor 等)都能以统一方式使用它们。
- 每个云服务提供商只需一次 OAuth 授权,即可访问邮件、日历和联系人
- 支持多用户——用户自行管理各自的账户,并拥有各自的 MCP API 密钥
- 凭据在静态存储时加密(AES-256-GCM)
- 可自托管——单个容器通过一个端口提供 Web 管理界面、REST API 和 MCP 端点
快速开始
Docker
docker run -d --name mcp-ecc \
-p 3001:3001 \
-e MCP_ENCRYPTION_KEY="$(openssl rand -hex 32)" \
karljsamuel/mcp-ecc:latest
打开 http://localhost:3001 → 创建管理员账户 → 添加你的服务提供商账户。
CLI(npm)
npm install -g mcp-ecc
mcp-ecc # interactive TUI — login, add accounts, manage everything
mcp-ecc start # stdio MCP server for agent hosts
从源代码安装
git clone https://github.com/karljsamuel/mcp-ecc.git
cd mcp-ecc
npm install
npm run build
node packages/cli/dist/bin.js --help
升级与加密迁移
**现有安装的重要说明:**升级到 0.7.x 前,请先安装并运行最新的 0.6.x 迁移版本。
迁移版本将凭据加密从已停止维护的 CryptoJS 实现改为平台加密 API:
- Node.js SQLite 使用
node:crypto和经过身份验证的 AES-256-GCM。 - Cloudflare D1 使用 Workers Web Crypto API 和经过身份验证的 AES-256-GCM。
- 现有的
0.6.x密文会被读取一次,并自动以新格式重新加密。 - 新的 AES-256-GCM 值经过身份验证,迁移失败时会停止操作。
- 旧版 CryptoJS 密文没有身份验证标签;如果遭到篡改,其完整性无法通过密码学方式验证。请备份数据库,并将旧版数据解密失败或结果异常视为迁移失败;只有在解密成功时才会覆盖值。
- 升级期间请保持
MCP_ENCRYPTION_KEY不变。
迁移版本成功启动并访问现有数据后,再升级到 0.7.x。0.7.x 会移除旧版 CryptoJS 读取器。升级前请备份 SQLite 数据库或 D1 数据库。
连接 MCP 客户端
使用你的专属 API 密钥(可在 Web 界面的 Settings 中查看),将客户端指向 HTTP 端点:
{
"mcpServers": {
"mcp-ecc": {
"type": "http",
"url": "http://localhost:3001/mcp",
"headers": { "Authorization": "Bearer <your-api-key>" }
}
}
}
Agent 可阅读 SKILL.md 或 llms.txt,获取引导式自动设置说明。
提供商
| 提供商 | 邮件 | 日历 | 联系人 | 身份验证 |
|---|---|---|---|---|
| Google (Gmail、Calendar、People) | ✅ | ✅ | ✅ | OAuth 2.0 |
| Microsoft 365 / Outlook (Graph) | ✅ | ✅ | ✅ | OAuth 2.0 |
| Zoho (Mail、Calendar、Contacts) | ✅ | ✅ | ✅ | OAuth 2.0 |
| IMAP / SMTP(任意邮件服务器) | ✅ | ❌ | ❌ | 应用专用密码 |
| CalDAV(Nextcloud、Radicale、BAIKAL) | ❌ | ✅ | ❌ | 密码 |
| CardDAV | ❌ | ❌ | ✅ | 密码 |
Microsoft 365: 应用专用密码正在逐步淘汰——请仅使用 OAuth(Microsoft Graph)。
CalDAV/CardDAV 兼容性: 这些提供商实现了标准 WebDAV(CalDAV RFC 4791、CardDAV RFC 6352)和 Basic 身份验证,应该适用于任何符合标准的服务器。已针对 Radicale 3.7.8 进行测试。 尚未针对其他服务器进行测试;仅支持 OAuth 的提供商(例如,不使用应用专用密码的 iCloud)不受支持。
部署说明:Google/Microsoft/Zoho/IMAP/SMTP/CalDAV/CardDAV 可在 Node.js 下运行(命令行或 Docker)。Cloudflare D1 可作为本地 SQLite 数据库的托管替代方案。
MCP 工具
mail.listFolders · mail.listMessages · mail.getMessage · mail.sendMessage
mail.searchMessages · mail.moveMessage · mail.setFlags · mail.deleteMessage
calendar.listCalendars · calendar.listEvents · calendar.getEvent · calendar.freeBusy
calendar.createEvent · calendar.updateEvent · calendar.deleteEvent
contacts.list · contacts.get · contacts.create · contacts.update
contacts.delete · contacts.search
accounts.list · accounts.get · accounts.add · accounts.remove · accounts.sync
包含输入架构的完整参考:docs/mcp-tools.md
文档
- 入门 — 概览和快速入门
- 命令行参考 —
mcp-ecc的所有命令和工作流 - 身份验证与用户 — 多用户模型、引导设置、每用户 API 密钥
- 账户与身份 — 名称与 slug
- 部署 — 命令行 · Docker
- 提供商 — Google · Microsoft 365 · Zoho · IMAP/SMTP · CalDAV/CardDAV
参与贡献
基于 dev 创建功能分支;向 dev 提交 PR。运行 npm run build 编译所有软件包。确保 Changelog.md 与 docs/ 保持同步。
支持与贡献
如果你觉得 mcp-ecc 有用,可以考虑支持其开发:
- PayPal: paypal.me/KarlJosephSamuel
- GitHub Sponsors: github.com/sponsors/karljsamuel
- Ko-fi: ko-fi.com/karljsamuel
- Patreon: patreon.com/karljsamuel
- Buy Me a Coffee: buymeacoffee.com/karljsamuel
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。