mcpField
A
Aruba Email & Calendar

Aruba Email & Calendar

本地服务
github.com/jackfioru92通信协作35 天前更新

关于 Aruba Email & Calendar

Aruba Email & Calendar 是通过 IMAP、SMTP 和 CalDAV 管理 Aruba 邮件与日历的 MCP 服务。它为 AI 客户端提供邮件搜索与发送、签名管理及日历事件操作。

主要功能

  1. 01列出、搜索和读取邮件
  2. 02发送带自定义签名的邮件
  3. 03列出并下载附件
  4. 04创建和管理日历事件
  5. 05回复日历邀请

适用场景

  1. 01按关键词或日期查找项目邮件
  2. 02使用已配置签名发送回复
  3. 03查看即将举行的日历事件
  4. 04接受或拒绝会议邀请

MCP 相关

它将 Aruba 邮件和日历操作作为工具提供给 MCP 客户端。服务在本地运行,并直接连接 Aruba 服务器。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jackfioru92-aruba-email": {
"command": "uvx",
"args": [
"mcp-aruba"
],
"env": {
"EMAIL_USER": "<EMAIL_USER>",
"EMAIL_PASSWORD": "<EMAIL_PASSWORD>",
"IMAP_HOST": "<IMAP_HOST>",
"SMTP_HOST": "<SMTP_HOST>",
"CALDAV_URL": "<CALDAV_URL>"
}
}
}
}
启动命令uvx mcp-aruba
需要配置的环境变量
EMAIL_USERYour Aruba email address
EMAIL_PASSWORD密钥Your Aruba email password
IMAP_HOSTIMAP server hostname (default: imaps.aruba.it)
SMTP_HOSTSMTP server hostname (default: smtps.aruba.it)
CALDAV_URLCalDAV server URL (default: https://calendar.aruba.it/dav.php)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-aruba0.2.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Aruba 邮件与日历服务

意大利语 | 英语

通过 IMAP/SMTP/CalDAV 访问 Aruba 邮件和日历的 MCP(Model Context Protocol)服务。轻松将 Aruba 邮件和日历集成到 Claude 等 AI 助手中!

Python 3.10+ PyPI version License: MIT MCP VS Code Extension Downloads GitHub stars

📦 安装方法

选项 1:VS Code 扩展(最简单)⭐

在 VS Code 中与 GitHub Copilot 配合使用:

  1. 从 VS Code Marketplace 安装扩展
  2. 使用 ⌘+Shift+P → “Aruba Email: Configure Credentials” 配置凭据
  3. 直接在 Copilot Chat 中使用!

📖 VS Code 扩展完整指南

选项 2:通过 Smithery(MCP 注册表)🔍

在 VS Code 或其他 MCP 客户端中使用 @mcp aruba:

  1. 此服务可在 Smithery 上获取
  2. 在 VS Code Copilot Chat 中输入 @mcp aruba 并按照说明操作
  3. 或通过 CLI 安装:smithery install io.github.jackfioru92/aruba-email

Smithery

选项 3:手动安装(适用于 Claude Desktop)

与 Claude Desktop 配合使用:

功能

邮件
  • 📧 列出邮件 - 浏览邮箱并按发件人筛选
  • 🔍 搜索邮件 - 按主题/正文搜索并按日期筛选
  • 📖 阅读邮件 - 获取完整内容(HTML 转换为纯文本)
  • ✉️ 发送邮件 - 通过 SMTP 发送邮件并使用自定义签名
  • ✍️ 邮件签名 - 创建带照片和品牌配色的专业签名
  • 📎 附件 - 列出并下载邮件附件(PDF、图片、文档)
  • 💾 导出 .eml - 将邮件导出为 RFC822 格式以供备份
日历
  • 📅 创建事件 - 创建带参与者的日历事件
  • 📋 列出事件 - 查看未来事件
  • ✅ 接受邀请 - 接受日历邀请
  • ❌ 拒绝邀请 - 拒绝日历邀请
  • ❓ 暂定 - 对日历邀请回复“暂定”
  • 🗑️ 删除事件 - 从日历中删除事件
常规
  • 🔒 安全 - 使用 SSL/TLS 上的 IMAP/SMTP/CalDAV
  • ⚡ 快速 - 使用 context manager 高效管理连接
  • 🤖 为 AI 做好准备 - 与 Claude Desktop 和其他 MCP 客户端完美配合

配置(仅限手动安装)

  1. 将 .env.example 复制为 .env:
cp .env.example .env
  1. 在 .env 中填写你的 Aruba 凭据:
# Configurazione Email
IMAP_HOST=imaps.aruba.it
IMAP_PORT=993
[email protected]
IMAP_PASSWORD=tua_password

SMTP_HOST=smtps.aruba.it
SMTP_PORT=465

# Configurazione Calendario
CALDAV_URL=https://syncdav.aruba.it/calendars/[email protected]/
[email protected]
CALDAV_PASSWORD=tua_password
  1. (可选)配置你的个性化邮件签名:

    方法 1:交互式脚本(推荐)

    # Esegui lo script interattivo
    python setup_signature.py
    

    脚本将引导你创建专业签名,包括:

    • 📝 个人信息(姓名、职位、公司、联系方式)
    • 🎨 选择样式(professional、minimal、colorful)
    • 🌈 自定义颜色
    • 📸 自动上传照片到 Imgur(可选)

    方法 2:通过 Claude(更简单!)

    Dopo aver configurato Claude Desktop, chiedi direttamente:
    
    "Crea una firma email per me con nome Mario Rossi, 
     ruolo Software Developer, azienda TechCorp e colore #0066cc"
    
    "Configura la mia firma con questa foto: /path/to/photo.jpg"
    
    "Imposta una firma minimal con solo nome e email"
    

    Claude 将自动使用 MCP 工具创建你的签名!

签名会自动添加到发送的所有邮件中。

注意:凭据保存在本地,绝不会离开你的电脑。MCP 服务在本地运行,并直接连接到 Aruba 服务。

使用方法

🚀 快速开始:查看最新邮件

最快的入门方式:

# Installa dipendenze
pip install -e .

# Configura credenziali (copia e modifica .env.example)
cp .env.example .env
# Modifica .env con le tue credenziali Aruba

# Mostra le ultime email
python cli.py emails 5

# Oppure usa lo script demo
python demo_list_emails.py

想使用 Claude? 配置完成后,只需提出以下请求:

Mostrami le ultime 5 email
Dammi le email più recenti
Quali email ho ricevuto oggi?

📖 完整指南:查看 GUIDA_UTILIZZO_EMAIL.md,了解所有可用方法。

直接运行服务
python -m mcp_aruba.server
配置 Claude Desktop

详细说明请参阅 CLAUDE_SETUP.md。

~/Library/Application Support/Claude/claude_desktop_config.json 的快速配置:

{
  "mcpServers": {
    "aruba-email-calendar": {
      "command": "python",
      "args": ["-m", "mcp_aruba.server"],
      "env": {
        "IMAP_HOST": "imaps.aruba.it",
        "IMAP_PORT": "993",
        "IMAP_USERNAME": "[email protected]",
        "IMAP_PASSWORD": "tua_password",
        "SMTP_HOST": "smtps.aruba.it",
        "SMTP_PORT": "465",
        "CALDAV_URL": "https://syncdav.aruba.it/calendars/[email protected]/",
        "CALDAV_USERNAME": "[email protected]",
        "CALDAV_PASSWORD": "tua_password"
      }
    }
  }
}
配置 VS Code Copilot

请参阅 VSCODE_SETUP.md,了解如何通过 VS Code 的 Copilot MCP 扩展使用此服务的详细说明。

使用快捷 CLI
# Attiva ambiente virtuale
source .venv/bin/activate

# Mostra ultime 5 email
python cli.py emails

# Mostra ultime 10 email
python cli.py emails 10

# Mostra eventi prossimi 7 giorni
python cli.py calendar

# Mostra eventi prossimi 14 giorni
python cli.py calendar 14

可用工具

邮件工具
list_emails

列出近期邮件,可使用筛选条件。

参数:

  • folder(str,默认值:"INBOX")- 要读取的邮件文件夹
  • sender_filter(str,可选)- 按发件人邮箱筛选
  • limit(int,默认值:10,最大值:50)- 返回的邮件数量

示例:

Mostra le ultime 5 email da [email protected]
Elenca email recenti nella mia inbox
Dammi le 10 email più recenti dal mio capo
read_email

读取指定邮件的完整内容。

参数:

  • email_id(str)- list_emails 返回的邮件 ID
  • folder(str,默认值:"INBOX")- 邮件文件夹

示例:

Leggi l'email 123
Mostrami il contenuto completo dell'email 456
search_emails

按主题或正文内容搜索邮件。

参数:

  • query(str)- 搜索查询
  • folder(str,默认值:"INBOX")- 要搜索的文件夹
  • from_date(str,可选)- 仅搜索此日期之后的邮件(格式:DD-MMM-YYYY)
  • limit(int,默认值:10,最大值:50)- 结果数量上限

示例:

Cerca email che parlano di "API" dalla settimana scorsa
Trova tutte le email su "fattura" da dicembre
send_email

通过 SMTP 发送邮件。

参数:

  • to(str)- 收件人邮箱地址
  • subject(str)- 邮件主题
  • body(str)- 邮件正文(纯文本)
  • cc(str,可选)- 抄送邮箱地址,多个地址以逗号分隔
  • from_name(str,默认值:"Giacomo Fiorucci")- 显示的发件人姓名
  • use_signature(bool,默认值:True)- 如果已配置,则附加邮件签名
  • verify_recipient(bool,默认值:True)- 验证收件人邮箱是否存在

示例:

Invia un'email a [email protected] ringraziando per l'aggiornamento
Rispondi a [email protected] con lo stato del progetto
Invia un'email a [email protected] con CC a [email protected]

签名说明:如果你使用 setup_signature.py 配置了签名,签名会自动添加到邮件中。你可以通过 use_signature=False 临时禁用签名。

set_email_signature

配置个性化邮件签名。

参数:

  • name(str)- 全名
  • email(str)- 邮箱地址
  • role(str,可选)- 职务/职位
  • company(str,可选)- 公司名称
  • phone(str,可选)- 电话号码
  • website(str,可选)- 网站
  • photo_input(str,可选)- 照片文件路径或 URL(自动上传到 Imgur)
  • style(str,默认值:"professional")- 样式:professional、minimal、colorful
  • color(str,默认值:"#0066cc")- 主色(十六进制格式)
  • signature_name(str,默认值:"default")- 签名标识名称

示例:

Crea una firma con il mio nome, ruolo e foto del profilo
Configura una firma professionale con logo aziendale
get_email_signature

获取当前电子邮件签名。

参数:

  • signature_name (str,默认值:"default") - 要获取的签名名称
list_email_signatures

列出所有已保存的电子邮件签名。

日历工具
create_calendar_event

创建新的日历事件。

参数:

  • summary (str) - 事件标题
  • start (str) - 开始日期和时间,采用 ISO 格式(YYYY-MM-DDTHH:MM:SS)
  • end (str) - 结束日期和时间,采用 ISO 格式
  • description (str,可选) - 事件描述
  • location (str,可选) - 事件地点
  • attendees (str,可选) - 以逗号分隔的参与者电子邮件地址列表

示例:

Crea un meeting chiamato "Riunione Team" domani alle 15 per 1 ora
Programma un "Project Review" il 10 dicembre alle 14 con [email protected]
list_calendar_events

列出指定日期范围内的日历事件。

参数:

  • start_date (str,可选) - 开始日期,采用 ISO 格式(默认值:今天)
  • end_date (str,可选) - 结束日期,采用 ISO 格式(默认值:从现在起 30 天)
  • limit (int,默认值:50) - 要返回的最大事件数

示例:

Mostrami il mio calendario per questa settimana
Quali eventi ho a dicembre?
Elenca tutti i miei meeting per i prossimi 7 giorni
accept_calendar_event

接受日历邀请。

参数:

  • event_uid (str) - 事件的 UID
  • comment (str,可选) - 可选评论

示例:

Accetta l'invito al meeting "Team Standup"
Accetta l'evento [email protected] con commento "Non vedo l'ora!"
decline_calendar_event

拒绝日历邀请。

参数:

  • event_uid (str) - 事件的 UID
  • comment (str,可选) - 可选评论

示例:

Declina l'evento [email protected]
Declina il meeting con commento "Mi dispiace, ho un conflitto"
tentative_calendar_event

对日历邀请回复“可能”。

参数:

  • event_uid (str) - 事件的 UID
  • comment (str,可选) - 可选评论

示例:

Rispondi forse all'evento [email protected]
Segna come "forse" il meeting di domani
Forse partecipo al meeting di domani
delete_calendar_event

删除日历事件。

参数:

  • event_uid (str) - 要删除的事件 UID

示例:

Elimina l'evento [email protected]
Cancella il mio meeting delle 14

使用场景

📬 团队沟通
Mostrami le ultime email dai membri del mio team
Elenca email non lette da [email protected]
🔍 项目跟踪
Cerca email che menzionano "modifiche API" dall'ultima settimana
Trova tutte le email su "fattura" dal 1° dicembre
📊 每日电子邮件摘要
Riassumi tutte le email che ho ricevuto oggi
Mostrami le email importanti di stamattina
✉️ 快速回复
Invia un'email a [email protected] ringraziandoli per l'aggiornamento
Rispondi a [email protected] con lo stato del progetto
📅 日历管理
Quali meeting ho questa settimana?
Crea una riunione team per domani alle 15
Accetta l'invito calendario per la review di venerdì
Declina il meeting di lunedì, sono in vacanza
Mostrami il mio programma per la prossima settimana
🤖 使用 AI 管理电子邮件和日历

使用 Claude Desktop 或 VS Code Copilot,你可以:

  • 请 Claude 总结多封电子邮件
  • 根据电子邮件内容创建回复
  • 从电子邮件线程中提取任务
  • 自动整理和分类电子邮件
  • 根据电子邮件对话安排会议
  • 管理日历冲突并查找可用时段

技术栈

  • Python 3.10+ - 现代 Python
  • MCP SDK 1.2.0+ - 用于 AI 集成的 Model Context Protocol
  • imaplib - 标准库 IMAP 客户端(支持 SSL/TLS)
  • smtplib - 标准库 SMTP 客户端(支持 SSL/TLS)
  • email - 电子邮件解析和 MIME 处理
  • caldav - 用于日历访问的 CalDAV 协议
  • icalendar - iCalendar 格式解析和生成
  • python-dotenv - 环境变量管理

安全与隐私

  • 🔒 本地运行 - 服务在你的计算机上运行,凭据不会离开你的设备
  • 🛡️ SSL/TLS 加密 - 所有连接均使用安全协议(IMAPS 端口 993、SMTPS 端口 465、CalDAV 使用 HTTPS)
  • 🔐 环境变量 - 凭据保存在 .env 文件中(默认已加入 gitignore)
  • 📝 正文截断 - 电子邮件正文限制为 5000 个字符,以防止上下文溢出
  • ✅ 无外部服务 - 仅直接连接到 Aruba 服务端
安全最佳实践
  1. 切勿将 .env 文件提交到版本控制中
  2. 为你的电子邮件账户使用强密码且不重复使用
  3. 考虑为你的 Aruba 账户启用 2FA
  4. 定期轮换凭据
  5. 检查 MCP 服务日志,留意可疑活动

性能

  • ⚡ 通过上下文管理器进行连接池管理
  • 📊 可配置结果限制,防止内存问题
  • 🚀 按需连接(无后台进程)
  • 💾 内存占用极低

开发

运行测试
# Attiva ambiente virtuale
source .venv/bin/activate

# Esegui test connessione email
python test_connection.py

# Esegui test connessione calendario
python test_calendar.py

# Test creazione evento
python test_create_event.py

# Test invio invito calendario
python send_invite.py
代码质量
# Formatta codice
black src/

# Type checking
mypy src/

# Linting
pylint src/

启用 CalDAV 同步

若要使用日历功能,你需要在 Aruba Webmail 中启用 CalDAV 同步:

  1. 访问 https://webmail.aruba.it
  2. 前往日历部分
  3. 点击 "同步日历"
  4. 选择 "日历" → "继续"
  5. 选择 "读取和修改"(CalDAV)→ "继续"
  6. 选择要同步的日历 → "继续"

启用后,你就可以通过 MCP 服务全面管理日历了!

故障排除

日历不可用

如果看到“没有可用的日历”,你需要启用 CalDAV 同步(参见上文)。

连接错误
  1. 确认 .env 中的凭据正确
  2. 检查端口 993(IMAP)、465(SMTP)、443(CalDAV)是否被阻止
  3. 检查防火墙设置
  4. 尝试运行测试脚本
未显示邮件或事件
  1. 确认账户拥有正确的权限
  2. 检查已应用的筛选条件(sender_filter、日期筛选条件)
  3. 增大结果数量上限

常见问题

问:将凭据存储在 .env 文件中安全吗?
答:安全,只要 .env 文件没有提交到版本控制中。它已包含在 .gitignore 中。凭据会保留在你的本地计算机上。

问:我可以将它用于其他电子邮件服务商吗?
答:此服务针对 Aruba 进行了优化,但你可以修改配置,使其适用于支持 IMAP/SMTP/CalDAV 的其他服务商。

问:MCP 服务需要多少费用?
答:MCP 服务免费!这是开源软件。你只需要订阅 Claude 或 GitHub Copilot,才能将其与这些 AI 配合使用。

问:我的数据会发送给第三方吗?
答:不会!此服务在本地运行,并直接连接到 Aruba 服务。没有任何数据会经过第三方服务。

问:我可以为项目做贡献吗?
答:当然可以!请参阅 CONTRIBUTING.md 了解指南。

贡献

欢迎贡献!请按以下步骤操作:

  1. Fork 此仓库
  2. 创建一个功能分支(git checkout -b feature/funzionalita-fantastica)
  3. 提交更改(git commit -m 'Aggiungi funzionalità fantastica')
  4. 推送到分支(git push origin feature/funzionalita-fantastica)
  5. 创建 Pull Request

请参阅 CONTRIBUTING.md 了解完整详情。

路线图

  • 支持 IMAP IDLE,以实现实时通知
  • 管理电子邮件附件
  • 撰写 HTML 邮件
  • pytest 测试套件
  • 支持多个账户
  • 重复日历事件
  • 日历通知
  • 与其他日历集成(Google Calendar、Outlook)

文档

快速安装

从 PyPI 安装
pip install mcp-aruba
从 VS Code Marketplace 安装

在 VS Code Marketplace 中搜索 "MCP Aruba Email",或直接安装:

code --install-extension jackfioru92.mcp-aruba-email
从 MCP Registry 安装

此服务可在 MCP Registry 中获取

支持

如果遇到问题:

  1. 查看故障排除部分
  2. 运行测试脚本以验证连接
  3. 查看日志中的错误消息
  4. 在 GitHub 上提交 issue

许可证

本项目基于 MIT 许可证发布。详情请参阅 LICENSE 文件。

作者

Giacomo Fiorucci - [email protected]

致谢

  • Model Context Protocol:感谢其提供 MCP 框架
  • Anthropic:感谢其提供 Claude Desktop
  • GitHub:感谢其提供 Copilot
  • Aruba:感谢其提供可靠的电子邮件和日历服务

⭐ 如果这个项目对你有帮助,欢迎在 GitHub 上为它点一颗星!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。