Emailservice について
Emailserviceは、MCP対応のIDEやエージェント向けのSpring Boot製メールMCPサーバーです。QQ SMTPでメールを送信し、stdioまたはSSEモードで実行できます。
主な機能
- 01QQ SMTP経由のメール送信
- 02`sendEmail`ツールの提供
- 03stdioモードでの実行
- 04SSEモードでの実行
活用シーン
- 01MCPクライアントからメールを送信
- 02MCP対応IDEからメール機能を呼び出す
MCP 対応
Spring AI MCP Serverとして`sendEmail(toEmail, subject, messageContent)`ツールを公開し、stdioまたはSSE接続に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
メールサービス(MCP)
Spring Boot をベースにしたメール MCP(サーバー)サービスです。QQ SMTP を通じてメールを送信し、Spring AI MCP Server のツール関数として公開することで、MCP 対応クライアント(MCP 対応 IDE/エージェントなど)から呼び出せます。
機能
- メールの送信:
sendEmail(toEmail, subject, messageContent) - Spring AI MCP Server(WebMVC/stdio)をベースに動作
application-stdio.ymlとapplication-sse.ymlの 2 種類の実行設定を提供
技術スタック
- Java 21
- Spring Boot 3.5.x
- Spring AI MCP Server Starter
- Apache Commons Email/Jakarta Mail
- Maven
ディレクトリ構成(一部)
src/main/java/com/hz/EmailServiceApplication.javasrc/main/java/com/hz/tools/EmailService.javasrc/main/resources/application.ymlsrc/main/resources/application-stdio.ymlsrc/main/resources/application-sse.yml
前提条件
- Java 21+
- Maven 3.9+
- 利用可能な QQ メールアカウントと有効な SMTP 認証コード
クイックスタート
- ビルド
mvn -v
mvn clean package -DskipTests
- 実行モードを選択
- stdio モード(デフォルトでは
spring.profiles.active=stdioで有効化):上流のツールによって MCP stdio サーバーとして起動される用途に適しています - sse モード:SSE 方式で接続する場合に利用できます(上流のツールが対応している必要があります)
- 実行
# 默认使用 application.yml + application-stdio.yml 配置
java -jar target/Email-service-0.0.1-SNAPSHOT.jar
SSE 設定に切り替える:
java -Dspring.profiles.active=sse -jar target/Email-service-0.0.1-SNAPSHOT.jar
設定と機密情報の取り扱い(重要)
SMTP 認証には qq.username と qq.password が必要です。実際のアカウント情報や認証コードをリポジトリにコミットしないでください。環境変数、またはバージョン管理対象外のローカル設定ファイルを使用することをおすすめします。
推奨方法:application.yml でプレースホルダーを使用し、環境変数から値を渡します。
以下の内容を src/main/resources/application.yml に記述してください(または、プレースホルダーを使用していることを確認してください)。
qq:
username: ${QQ_USERNAME:}
password: ${QQ_PASSWORD:}
実行前に環境変数を設定します(Windows PowerShell の例):
$env:QQ_USERNAME = "你的QQ邮箱地址"
$env:QQ_PASSWORD = "你的SMTP授权码"
java -jar target/Email-service-0.0.1-SNAPSHOT.jar
または、コマンドラインから直接指定します(コマンド履歴に残るリスクに注意してください):
[email protected] QQ_PASSWORD=your_smtp_code \
java -jar target/Email-service-0.0.1-SNAPSHOT.jar
任意:ローカル専用の設定ファイル(例:application-local.yml)を作成し、.gitignore で除外されていることを確認します:
# application-local.yml(仅本地)
qq:
username: [email protected]
password: your_smtp_code
実行時に指定します:
java -Dspring.profiles.active=local -jar target/Email-service-0.0.1-SNAPSHOT.jar
リポジトリに
qq.username/qq.passwordが平文で記載されている場合は、速やかにプレースホルダーに置き換え、漏えいを防ぐため QQ メールで認証コードをリセットしてください。
MCP の使用(簡易)
サービスの起動後、MCP サーバーとしてツールを公開します。主な機能:
sendEmail(toEmail, subject, messageContent):宛先のメールアドレスにメールを送信します
MCP 対応クライアントから stdio 方式で本サービスに接続すると、上記のツールを呼び出せます。具体的な設定方法については、使用する MCP クライアントのドキュメントを参照してください。
テスト
mvn test
ライセンス
要件に応じて適切なオープンソースライセンスを選択し、このセクションを更新してください(例:MIT/Apache-2.0)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。