🚀 MCP Aruba Email & Calendar Server
このサーバーは、MCP (Model Context Protocol) を使用して、IMAP/SMTP/CalDAV 経由で Aruba のメールとカレンダーにアクセスできます。Claude などの AI アシスタントと Aruba のメールとカレンダーを簡単に統合できます!

Italiano | English
🚀 クイックスタート
メールの最新5件を表示する最速の方法
pip install -e .
cp .env.example .env
python cli.py emails 5
python demo_list_emails.py
Claudeを使用したい場合:設定後、次のように尋ねるだけです。
最新の5通のメールを表示して
最新のメールを教えて
今日受信したメールは何ですか?
📖 完全なガイド:使用可能なすべてのメソッドについては、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": "tua_email@aruba.it",
"IMAP_PASSWORD": "tua_password",
"SMTP_HOST": "smtps.aruba.it",
"SMTP_PORT": "465",
"CALDAV_URL": "https://syncdav.aruba.it/calendars/tua_email@aruba.it/",
"CALDAV_USERNAME": "tua_email@aruba.it",
"CALDAV_PASSWORD": "tua_password"
}
}
}
}
VS Code Copilotで設定する
VS CodeのCopilot MCP拡張機能でこのサーバーを使用する詳細な手順については、VSCODE_SETUP.md を参照してください。
クイックCLIを使用する
source .venv/bin/activate
python cli.py emails
python cli.py emails 10
python cli.py calendar
python cli.py calendar 14
✨ 主な機能
メール
- 📧 メールの一覧表示 - 送信者でフィルタリングして受信箱をナビゲートします。
- 🔍 メールの検索 - 件名や本文で検索し、日付でフィルタリングできます。
- 📖 メールの読み取り - 完全な内容を取得します。
- ✉️ メールの送信 - カスタム署名付きでSMTP経由でメールを送信します。
- ✍️ メール署名の作成 - 写真やブランドカラーを使ってプロフェッショナルな署名を作成します。
カレンダー
- 📅 イベントの作成 - 参加者を指定してカレンダーイベントを作成します。
- 📋 イベントの一覧表示 - 将来のイベントを表示します。
- ✅ 招待の受け入れ - カレンダー招待を受け入れます。
- ❌ 招待の拒否 - カレンダー招待を拒否します。
- ❓ 保留 - カレンダー招待に「保留」と返信します。
- 🗑️ イベントの削除 - カレンダーからイベントを削除します。
一般的な機能
- 🔒 セキュア - SSL/TLS上でIMAP/SMTP/CalDAVを使用します。
- ⚡ 高速 - コンテキストマネージャーによる効率的な接続管理です。
- 🤖 AI対応 - Claude Desktopや他のMCPクライアントと完璧に連携します。
📦 インストール
git clone https://github.com/jackfioru92/mcp-aruba-email.git
cd mcp-aruba-email
python -m venv .venv
source .venv/bin/activate
pip install -e .
📚 ドキュメント
設定
.env.example を .env にコピーします。
cp .env.example .env
.env をArubaの資格情報で編集します。
# メール設定
IMAP_HOST=imaps.aruba.it
IMAP_PORT=993
IMAP_USERNAME=tua_email@aruba.it
IMAP_PASSWORD=tua_password
SMTP_HOST=smtps.aruba.it
SMTP_PORT=465
# カレンダー設定
CALDAV_URL=https://syncdav.aruba.it/calendars/tua_email@aruba.it/
CALDAV_USERNAME=tua_email@aruba.it
CALDAV_PASSWORD=tua_password
-
(オプション)カスタムメール署名を設定する
方法1: インタラクティブスクリプト(推奨)
python setup_signature.py
このスクリプトは、以下の内容でプロフェッショナルな署名を作成する手助けをします。
- 📝 個人情報(名前、役職、会社、連絡先)
- 🎨 スタイルの選択(プロフェッショナル、ミニマル、カラフル)
- 🌈 色のカスタマイズ
- 📸 Imgurへの自動写真アップロード(オプション)
方法2: Claudeを使用する(さらに簡単!)
Claude Desktopを設定した後、直接尋ねます。
"Mario Rossiという名前、Software Developerの役職、TechCorpの会社、#0066ccの色でメール署名を作成して"
"この写真を使って署名を設定して: /path/to/photo.jpg"
"名前とメールアドレスだけのミニマルな署名を設定して"
Claudeは自動的にMCPツールを使用して署名を作成します!
署名は、送信するすべてのメールに自動的に含まれます。
⚠️ 重要提示
資格情報はローカルに保存され、決してあなたのコンピュータを離れません。MCPサーバーはローカルで実行され、直接Arubaのサーバーに接続します。
ツールの利用
メールツール
list_emails
オプションのフィルターで最近のメールを一覧表示します。
パラメーター:
folder (str, デフォルト: "INBOX") - 読み取るメールフォルダー
sender_filter (str, オプション) - 送信者のメールアドレスでフィルタリング
limit (int, デフォルト: 10, 最大: 50) - 返すメールの数
使用例:
john@example.comからの最新の5通のメールを表示
受信箱の最近のメールを一覧表示
上司からの最新の10通のメールを教えて
read_email
特定のメールの完全な内容を読み取ります。
パラメーター:
email_id (str) - list_emailsからのメールID
folder (str, デフォルト: "INBOX") - メールフォルダー
使用例:
メール123を読む
メール456の完全な内容を表示
search_emails
件名または本文でメールを検索します。
パラメーター:
query (str) - 検索クエリ
folder (str, デフォルト: "INBOX") - 検索するフォルダー
from_date (str, オプション) - この日付以降のメールのみ(形式: DD-MMM-YYYY)
limit (int, デフォルト: 10, 最大: 50) - 最大結果数
使用例:
先週から「API」について言及するメールを検索
12月からの「請求書」に関するすべてのメールを見つける
send_email
SMTP経由でメールを送信します。
パラメーター:
to (str) - 宛先のメールアドレス
subject (str) - メールの件名
body (str) - メールの本文(テキスト形式)
from_name (str, デフォルト: "Giacomo Fiorucci") - 送信者として表示される名前
use_signature (bool, デフォルト: True) - 設定されている場合はメール署名を含める
verify_recipient (bool, デフォルト: True) - 宛先のメールアドレスが存在することを確認する
使用例:
colleague@example.comにアップデートに感謝するメールを送信
john@example.comにプロジェクトの状況を返信
署名に関する注意: 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") - 主要な色(16進数形式)
signature_name (str, デフォルト: "default") - 署名の識別名
使用例:
私の名前、役職、プロフィール写真で署名を作成
会社ロゴ付きのプロフェッショナルな署名を設定
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, オプション) - 参加者のメールアドレスのリスト(カンマ区切り)
使用例:
明日の15時に1時間の「チーム会議」という名前のミーティングを作成
12月10日の14時にjohn@example.comとの「プロジェクトレビュー」を予定
list_calendar_events
日付範囲内のカレンダーイベントを一覧表示します。
パラメーター:
start_date (str, オプション) - 開始日(ISO形式、デフォルト: 今日)
end_date (str, オプション) - 終了日(ISO形式、デフォルト: 30日後)
limit (int, デフォルト: 50) - 返す最大イベント数
使用例:
今週のカレンダーを表示
12月にどんなイベントがあるか?
次の7日間のすべてのミーティングを一覧表示
accept_calendar_event
カレンダー招待を受け入れます。
パラメーター:
event_uid (str) - イベントのUID
comment (str, オプション) - オプションのコメント
使用例:
「チームスタンドアップ」ミーティングの招待を受け入れる
abc123@aruba.itのイベントを「楽しみにしています!」というコメントで受け入れる
decline_calendar_event
カレンダー招待を拒否します。
パラメーター:
event_uid (str) - イベントのUID
comment (str, オプション) - オプションのコメント
使用例:
abc123@aruba.itのイベントを拒否
「申し訳ありませんが、日程が重なっています」というコメントでミーティングを拒否
tentative_calendar_event
カレンダー招待に「保留」と返信します。
パラメーター:
event_uid (str) - イベントのUID
comment (str, オプション) - オプションのコメント
使用例:
abc123@aruba.itのイベントに保留で返信
明日のミーティングを「保留」としてマーク
明日のミーティングに参加するかもしれません
delete_calendar_event
カレンダーイベントを削除します。
パラメーター:
event_uid (str) - 削除するイベントのUID
使用例:
abc123@aruba.itのイベントを削除
14時のミーティングをキャンセル
ユースケース
📬 チームコミュニケーション
チームメンバーからの最新のメールを表示
project@company.comからの未読メールを一覧表示
🔍 プロジェクト追跡
先週から「API変更」を言及するメールを検索
12月1日からの「請求書」に関するすべてのメールを見つける
📊 日次メール要約
今日受信したすべてのメールを要約
今朝の重要なメールを表示
✉️ 迅速な返信
colleague@example.comにアップデートに感謝するメールを送信
john@example.comにプロジェクトの状況を返信
📅 カレンダー管理
今週どんなミーティングがあるか?
明日の15時にチーム会議を作成
金曜日のレビューのカレンダー招待を受け入れる
月曜日のミーティングを拒否、休暇中です
来週の予定を表示
🤖 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 ファイルに保存されます(デフォルトでgitignored)。
- 📝 本文の切り捨て - メール本文は5000文字に制限され、コンテキストのオーバーフローを防ぎます。
- ✅ 外部サービスなし - Arubaのサーバーに直接接続します。
セキュリティのベストプラクティス
.env ファイルをバージョン管理にコミットしないでください。
- メールアカウントに強力で一意のパスワードを使用してください。
- Arubaアカウントで2FAを有効にすることを検討してください。
- 定期的に資格情報を更新してください。
- MCPサーバーのログを確認し、疑わしい活動をチェックしてください。
パフォーマンス
- ⚡ コンテキストマネージャーによるコネクションプーリング
- 📊 メモリ問題を防ぐための結果制限の設定可能
- 🚀 オンデマンド接続(バックグラウンドプロセスなし)
- 💾 最小限のメモリ使用量
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細については、LICENSE ファイルを参照してください。
開発
テストの実行
source .venv/bin/activate
python test_connection.py
python test_calendar.py
python test_create_event.py
python send_invite.py
コード品質
black src/
mypy src/
pylint src/
CalDAV同期の有効化
カレンダー機能を使用するには、Aruba WebmailでCalDAV同期を有効にする必要があります。
- https://webmail.aruba.it にアクセスします。
- カレンダーセクションに移動します。
- 「カレンダーを同期する」 をクリックします。
- 「カレンダー」 → 「続行」 を選択します。
- 「読み取りと編集」 (CalDAV) → 「続行」 を選択します。
- 同期するカレンダーを選択し、「続行」 をクリックします。
有効化すると、MCPサーバーを介してカレンダーを完全に管理できます!
トラブルシューティング
カレンダーが利用できない場合
「No calendar available」と表示される場合は、CalDAV同期を有効にする必要があります(上記のセクションを参照)。
接続エラーの場合
.env の資格情報が正しいことを確認してください。
- ポート993 (IMAP)、465 (SMTP)、443 (CalDAV) がブロックされていないことを確認してください。
- ファイアウォール設定を確認してください。
- テストスクリプトを実行してみてください。
メールまたはイベントが表示されない場合
- アカウントに正しい権限があることを確認してください。
- 適用されているフィルター(送信者フィルター、日付フィルター)を確認してください。
- 結果の制限を増やしてみてください。
FAQ
Q: .envファイルに資格情報を保存するのは安全ですか?
A: はい、.env ファイルをバージョン管理にコミットしない限り安全です。既に .gitignore に含まれています。資格情報はあなたのローカルコンピュータに留まります。
Q: これを他のメールプロバイダーで使用できますか?
A: このサーバーはAruba用に最適化されていますが、IMAP/SMTP/CalDAVをサポートする他のプロバイダーでも設定を変更することで使用できます。
Q: MCPサーバーの使用料はいくらですか?
A: MCPサーバーは無料です!これはオープンソースソフトウェアです。ClaudeやGitHub Copilotと一緒に使用する場合は、それらのAIのサブスクリプションが必要です。
Q: 私のデータは第三者に送信されますか?
A: いいえ!サーバーはローカルで実行され、直接Arubaのサーバーに接続します。データは外部サービスを介して送信されません。
Q: このプロジェクトに貢献できますか?
A: 絶対にできます!詳細なガイドについては、CONTRIBUTING.md を参照してください。
貢献方法
貢献は大歓迎です!以下の手順に従ってください。
- リポジトリをフォークします。
- 機能ブランチを作成します (
git checkout -b feature/素晴らしい機能)。
- 変更をコミットします (
git commit -m '素晴らしい機能を追加')。
- ブランチにプッシュします (
git push origin feature/素晴らしい機能)。
- プルリクエストを作成します。
詳細については、CONTRIBUTING.md を参照してください。
ロードマップ
- [ ] リアルタイム通知のためのIMAP IDLEサポート
- [ ] メール添付ファイルの管理
- [ ] HTMLメールの作成
- [ ] テストスイート
サポート
問題が発生した場合は、以下の手順に従ってください。
- トラブルシューティング セクションを確認してください。
- 接続を確認するためにテストスクリプトを実行してください。
- エラーメッセージを確認するためにログをチェックしてください。
- GitHub でイシューを作成してください。
作者
Giacomo Fiorucci - giacomo.fiorucci@emotion-team.com
謝辞
⭐ このプロジェクトが役に立った場合は、GitHubでスターをつけてください!