mcpField
M
MCP Email Service

MCP Email Service

ローカル
github.com/NetworkNerd1337コミュニケーション078 週間前に更新

MCP Email Service について

MCP Email Serviceは、自然言語の依頼からSMTPメールを送るMCPサーバーとクライアントです。spaCyで依頼を解析し、耐量子暗号とAES-256-GCMでクライアントとサーバー間の通信を保護します。

主な機能

  1. 01自然言語によるメール依頼の解析
  2. 02SMTP経由のメール送信
  3. 03spaCyによる依頼文の処理
  4. 04耐量子暗号とAES-256-GCMによる通信暗号化

活用シーン

  1. 01自然言語の入力からメールを作成して送信
  2. 02依頼文から宛先、件名、本文を指定
  3. 03暗号化された通信によるメール依頼の送信

MCP 対応

MCPサーバーとクライアントを備え、クライアントがメール依頼をサーバーに送り、サーバーがメール送信機能を提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP メールサービス

メール送信に対応した、安全な Model Context Protocol(MCP)サーバーおよびクライアントアプリケーションです。ポスト量子暗号(CRYSTALS-Kyber、Falcon、SPHINCS+)、AES-256-GCM 暗号化、ユーザーリクエスト処理のための spaCy ベースの自然言語処理(NLP)を備えています。Ubuntu Linux 向けに設計されており、量子耐性のある通信と堅牢なメール処理を実現します。

目次

機能

  • ポスト量子暗号:鍵交換には CRYSTALS-Kyber、デジタル署名には Falcon、予備の署名アルゴリズムには SPHINCS+ を使用します。
  • セキュアな暗号化:メッセージの認証付き暗号化に AES-256-GCM を使用します。
  • 自然言語処理:spaCy(en_core_web_sm)を活用し、メールリクエストを堅牢に解析します。
  • 実際のメール送信:SMTP サーバー(Gmail など)と連携して、実際にメールを配信します。
  • 非同期通信:効率的なサーバーとクライアント間の通信を実現するため、asyncio で構築されています。
  • Ubuntu Linux のサポート:詳細なセットアップ手順を備え、Ubuntu 22.04 以降に最適化されています。

前提条件

  • オペレーティングシステム:Ubuntu Linux 22.04 以降。
  • Python:バージョン 3.8 以降。
  • インターネット接続:メール送信と依存関係のインストールに必要です。
  • Git:リポジトリのクローンに使用します。
  • SMTP アカウント:メール送信用の有効なメールアカウント(Gmail のアプリパスワードなど)。

環境のセットアップ

  1. システムを更新する:

    sudo apt-get update
    sudo apt-get upgrade -y
    
  2. システム依存関係をインストールする:

    sudo apt-get install -y python3 python3-pip python3-dev build-essential libssl-dev libffi-dev python3-venv git cmake ninja-build
    
  3. リポジトリをクローンする:

    git clone https://github.com/<your-username>/mcp-email-service.git
    cd mcp-email-service
    

依存関係のインストール

このアプリケーションは Python ライブラリに依存しており、ポスト量子暗号のためにコンパイル済み C ライブラリを任意で使用します。すべての依存関係は、付属の setup.sh スクリプトを使用してインストールします。

Python の依存関係
  • pqcrypto==0.1.1:ポスト量子暗号(Kyber、Falcon、SPHINCS+)。
  • pyyaml==6.0.1:YAML 設定の解析。
  • spacy==3.7.2:ユーザーリクエストの処理に使用する NLP。
  • cryptography==42.0.5:AES-256-GCM 暗号化。
オプションの C ライブラリ
  • liboqs:お使いのプラットフォームで pqcrypto のホイールを利用できない場合に必要です。必要に応じて、セットアップスクリプトが自動的にコンパイルします。
インストール手順
  1. セットアップスクリプトを実行する:

    chmod +x setup.sh
    ./setup.sh
    

    このスクリプトは、次の処理を行います。

    • 仮想環境(venv)を作成します。
    • requirements.txt から Python の依存関係をインストールします。
    • spaCy の en_core_web_sm モデルをダウンロードします。
    • pqcrypto のインストールに失敗した場合、liboqs と liboqs-python をコンパイルします。
    • pqcrypto と cryptography がインストールされていることを確認します。
  2. 仮想環境を有効にする:

    source venv/bin/activate
    

設定

  1. サーバー設定:

    • server/config.yaml を編集します。
      server:
        host: "0.0.0.0"
        port: 8765
      email:
        server: "smtp.gmail.com"
        port: 587
        user: "[email protected]"
        password: "your-app-password"
      
    • メール設定:
      • user:メールアドレス。
      • password:アプリパスワード(Gmail の場合は、Google アカウントの設定で「セキュリティ」>「2 段階認証プロセス」>「アプリパスワード」から生成します)。
      • server と port:SMTP サーバーの詳細(Gmail の場合は smtp.gmail.com:587 など)。
  2. クライアント設定:

    • client/config.yaml を編集します。
      server:
        host: "localhost"
        port: 8765
      
    • host と port をサーバーの設定に合わせます。
  3. 設定ファイルを保護する:

    • server/config.yaml には機密性の高い認証情報が含まれるため、保護されていることを確認します(例:chmod 600 server/config.yaml)。

インストール

環境と依存関係を設定した後:

  1. 仮想環境を確認する:

    source venv/bin/activate
    python -c "import pqcrypto, spacy, cryptography; print('All dependencies installed')"
    
  2. 設定をテストする:

    • server/config.yaml と client/config.yaml が正しく設定されていることを確認します。
    • SMTP サーバーへのネットワークアクセスを確認します。

使用方法

  1. アプリケーションを起動する:

    chmod +x run.sh
    ./run.sh
    
    • MCP サーバーをバックグラウンドで、クライアントをフォアグラウンドで起動します。
    • または、個別に実行します:
      source venv/bin/activate
      python server/mcp_server.py &
      python client/mcp_client.py
      
  2. クライアントを操作する:

    • クライアントは自然言語での入力を求めます。
    • 「Send an email to [email protected] with subject Hello and message This is a test.」のようなリクエストを入力します。
    • quit と入力すると終了します。
  3. サーバーログ:

    • サーバーは接続メッセージとエラーメッセージをコンソールに出力します。
    • 問題のデバッグにはログを確認してください。

使用例

クライアントは spaCy を使って自然言語のリクエストを処理します。以下に入力例とその結果を示します:

  1. 基本的なメール:

    Input: Send an email to [email protected] saying Hello, how are you?
    Output: Server response: {'status': 'success', 'message': 'Email sent'}
    
    • [email protected] 宛てに、件名「Default Subject」、本文「Hello, how are you?」のメールを送信します。
  2. 件名付きメール:

    Input: Email [email protected] with subject Meeting Tomorrow and message Let's meet at 10 AM.
    Output: Server response: {'status': 'success', 'message': 'Email sent'}
    
    • [email protected] 宛てに、件名「Meeting Tomorrow」、本文「Let's meet at 10 AM.」のメールを送信します。
  3. 複雑なリクエスト:

    Input: Send a message to [email protected] with title Project Update and content Please review the latest report.
    Output: Server response: {'status': 'success', 'message': 'Email sent'}
    
    • [email protected] 宛てに、件名「Project Update」、本文「Please review the latest report.」のメールを送信します。
  4. 無効なメールアドレス:

    Input: Send an email to invalid saying Test
    Output: Server response: {'status': 'success', 'message': 'Email sent'}
    

セキュリティ

  • 耐量子暗号:
    • CRYSTALS-Kyber (ML-KEM):量子耐性のある暗号化のための鍵交換を保護します。
    • Falcon:認証用の主要なデジタル署名を提供します。
    • SPHINCS+:冗長性を確保するための予備署名アルゴリズムです。
  • 共通鍵暗号化:
    • AES-256-GCM:Kyber から派生した鍵を使用して、メッセージの機密性、完全性、真正性を確保します。
  • 設定のセキュリティ:
    • メールの認証情報を保護するため、server/config.yaml を保護してください。
  • ネットワークセキュリティ:
    • 信頼できるネットワーク上、またはファイアウォールの内側でサーバーを実行してください。
    • SMTP 接続では TLS の使用を検討してください(Gmail ではすでに有効になっています)。

トラブルシューティング

  • メールの送信に失敗する場合:
    • server/config.yaml の認証情報と SMTP 設定を確認してください。
    • メールプロバイダーがアプリパスワードを許可していることを確認してください(Gmail の場合は、2 段階認証を有効にします)。
    • SMTP エラーがないかサーバーログを確認してください。
  • pqcrypto のインストールに失敗する場合:
    • setup.sh を再実行して、liboqs と liboqs-python をコンパイルしてください。
    • cmake と ninja-build がインストールされていることを確認してください。
  • spaCy の問題:
    • en_core_web_sm モデルを確認してください:python -m spacy download en_core_web_sm。
    • メモリが十分にあることを確認してください(spaCy には約 200MB が必要です)。
  • 接続エラー:
    • ホストとポートについて、client/config.yaml が server/config.yaml と一致していることを確認してください。
    • サーバーが実行中か確認してください(ps aux | grep mcp_server.py)。
  • 一般的なデバッグ:
    • 問題を切り分けるため、サーバーとクライアントを個別に実行してください。
    • mcp_server.py または mcp_client.py に print 文を追加して、詳細なログを有効にしてください。

コントリビューション

コントリビューションを歓迎します!以下の手順に従ってください:

  1. リポジトリをフォークします。
  2. フィーチャーブランチを作成します(git checkout -b feature/your-feature)。
  3. 変更をコミットします(git commit -m 'Add your feature')。
  4. ブランチにプッシュします(git push origin feature/your-feature)。
  5. プルリクエストを作成します。

コードが PEP 8 に準拠し、該当する場合はテストが含まれていることを確認してください。

ライセンス

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

MIT License

Copyright (c) 2025 <Your Name>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。