Skip to main content
Glama

IMAP MCP サーバー

AI アシスタントが電子メールをチェックし、メッセージを処理し、対話を通じてユーザーの好みを学習できるようにするモデル コンテキスト プロトコル (MCP) サーバー。

概要

このプロジェクトは、IMAP 電子メール サーバーとインターフェイスして次の機能を提供する MCP サーバーを実装します。

  • メールの閲覧と検索

  • メールの整理(移動、タグ付け、マーク付け)

  • メールの作成と返信

  • インタラクティブな電子メール処理とユーザー設定の学習

  • 自動メール要約と分類

  • 複数のIMAPプロバイダーのサポート

IMAP MCP サーバーは、Claude やその他の MCP 互換アシスタントと連携するように設計されており、時間の経過とともにユーザーの好みを学習するインテリジェントな電子メール アシスタントとして機能します。

Related MCP server: Gmail MCP Server

特徴

  • メール認証: さまざまな認証方法による IMAP サーバーへの安全なアクセス

  • メール閲覧: フィルタリングオプションを使用してフォルダとメッセージを一覧表示します

  • メールの内容: テキスト、HTML、添付ファイルを含むメッセージの内容を読む

  • メールアクション: 移動、削除、既読/未読としてマーク、メッセージにフラグを付ける

  • メール作成: 適切な形式でメッセージへの返信を下書きして保存します

    • プレーンテキストとHTMLの返信をサポート

    • CC サポートによる全員返信機能

    • In-Reply-To と References ヘッダーを使用した適切なスレッド化

    • 下書きを適切なフォルダに保存する

  • 検索: フォルダ間の基本的な検索機能

  • インタラクションパターン:電子メールの処理と学習設定のための構造化パターン(計画中)

  • 学習レイヤー: ユーザーの意思決定を記録・分析し、将来の行動を予測する(計画)

現在のプロジェクト構造

プロジェクトは現在、次のように構成されています。

. ├── examples/ # Example configurations │ └── config.yaml.example ├── imap_mcp/ # Source code │ ├── __init__.py │ ├── config.py # Configuration handling │ ├── imap_client.py # IMAP client implementation │ ├── models.py # Data models │ ├── resources.py # MCP resources implementation │ ├── server.py # Main server implementation │ └── tools.py # MCP tools implementation ├── tests/ # Test suite │ ├── __init__.py │ └── test_models.py ├── INSTALLATION.md # Detailed installation guide ├── pyproject.toml # Project configuration └── README.md # This file

はじめる

前提条件

  • Python 3.8以上

  • IMAP 対応のメールアカウント(Gmail を推奨)

  • パッケージ管理とPythonスクリプトの実行のためのuv

インストール

  1. まだインストールしていない場合は、uv をインストールします。

    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. パッケージをクローンしてインストールします。

    git clone https://github.com/non-dirty/imap-mcp.git cd imap-mcp uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate uv pip install -e ".[dev]"

Gmailの設定

  1. 設定ファイルを作成します。

    cp config.sample.yaml config.yaml
  2. Gmail OAuth2 認証情報を設定します。

    • Google Cloud Consoleに移動

    • 新しいプロジェクトを作成するか、既存のプロジェクトを選択してください

    • Gmail APIを有効にする

    • OAuth2 認証情報を作成する (デスクトップ アプリケーション タイプ)

    • クライアント構成をダウンロードする

  3. Gmail の設定でconfig.yaml更新します。

    imap: host: imap.gmail.com port: 993 username: your-email@gmail.com use_ssl: true oauth2: client_id: YOUR_CLIENT_ID client_secret: YOUR_CLIENT_SECRET refresh_token: YOUR_REFRESH_TOKEN

使用法

メールをチェック

受信トレイ内のメールを一覧表示するには:

uv run list_inbox.py --config config.yaml --folder INBOX --limit 10

利用可能なオプション:

  • --folder : チェックするフォルダを指定します(デフォルト: INBOX)

  • --limit : 表示するメールの最大数(デフォルト: 10)

  • --verbose : 詳細なログ出力を有効にする

MCPサーバーの起動

IMAP MCP サーバーを起動するには:

uv run imap_mcp.server --config config.yaml

デバッグ付き開発モードの場合:

uv run imap_mcp.server --dev

OAuth2トークンの管理

OAuth2 トークンを更新するには:

uv run imap_mcp.auth_setup refresh-token --config config.yaml

新しい OAuth2 トークンを生成するには:

uv run imap_mcp.auth_setup generate-token --config config.yaml

発達

開発環境の設定

# Set up virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install development dependencies pip install -e ".[dev]"

テストの実行

pytest

セキュリティに関する考慮事項

このMCPサーバーは、お客様のメールアカウントへのアクセスを必要とします。メールアカウントには、個人情報が含まれています。以下のセキュリティ上の考慮事項にご注意ください。

  • 環境変数または安全な資格情報ストレージを使用して電子メール資格情報を安全に保存します

  • メインアカウントのパスワードの代わりにアプリ固有のパスワードの使用を検討してください

  • フォルダへのアクセスをユースケースに必要なものだけに制限する

  • メールプロバイダーの設定でサーバーに付与された権限を確認します

プロジェクトロードマップ

  • [x] プロジェクトの初期化とリポジトリのセットアップ

  • [x] 基本的なIMAP統合

  • [x] メールリソースの実装

  • [x] メールツールの実装

  • [x] メールの返信と下書き機能

  • [ ] ユーザー嗜好学習の実装

  • [ ] 高度な検索機能

  • [ ] 複数アカウントのサポート

  • [ ] 主要メールプロバイダーとの統合

貢献

貢献を歓迎します!ガイドラインについてはCONTRIBUTING.mdをご覧ください。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

謝辞

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/non-dirty/imap-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server