issue-collector
send_issue_email MCP
ユーザーが有人対応に切り替えた際に残した連絡先メールアドレスと問題の説明を、SMTP で固定のサービスメールボックスに送信します。
Agent には send_issue_email(email, question) という1つのツールだけが見えます。
3つのメールアドレスの役割
役割 | 取得元 | 用途 |
送信者 |
| SMTP にログインして実際に送信するアカウント |
受信者 |
| 問題を受け取るために固定で使うサービスメールボックス |
ユーザーメール | ツール引数 | 件名・本文に記載し、 |
.env はインフラであり、一度デプロイすれば十分です。email / question は会話ごとに異なり、Agent が会話変数(例:$邮箱、$问题)から渡します。
Related MCP server: MCP Sendmail Server
環境要件
Python 3.10+
使用する SMTP にアクセスできること(ローカルから Gmail に直接接続するには、465/587 の送信が可能であること)
インストール
cd send_issue_email_mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env以下の説明に従って .env を設定してください。.env をリポジトリにコミットしないでください。
.env の設定
必須:受信とSMTP
TARGET_EMAIL=issues@example.com
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_USERNAME=your_account@gmail.com
SMTP_PASSWORD=xxxx xxxx xxxx xxxx
SMTP_USE_SSL=true
SENDER_EMAIL=your_account@gmail.com
SENDER_NAME=问题收集机器人変数 | 説明 |
| 問題の受信ボックス。必須 |
| SMTP サーバー |
| ログイン認証情報。Gmail はアプリパスワードを使うこと。ログインパスワードではない |
|
|
| 送信者。デフォルトは |
| 送信者の表示名 |
Gmail の同等な2つの組み合わせ:
方式 |
|
|
SSL(推奨) |
|
|
STARTTLS |
|
|
Workspace / 学校の Google アカウントは管理者によって SMTP が無効にされている場合があり、その場合は接続できません。
MCP トランスポート(リモートクライアント)
智齿は入力した URL のルートパスに対して POST / を送信します。そのため、リモートのデフォルトは次のとおりです:
MCP_TRANSPORT=streamable-http
MCP_HOST=0.0.0.0
MCP_PORT=8765
MCP_PATH=/変数 | 説明 |
|
|
| リッスンアドレス。リモートでは |
| リッスンポート。ローカルでは |
| HTTP エンドポイントのパス。智齿では |
.env を変更した後、ターミナルで同名の変数をすでに export している場合、load_dotenv() は上書きしません。新しいターミナルを開くか、先に unset MCP_TRANSPORT TARGET_EMAIL を実行してから起動してください。
送信を先に検証する(MCP を起動しない)
source .venv/bin/activate
python test_email.py成功すると、次のように表示されます:成功:问题已发送至服务邮箱 ...
スクリプトの最初の引数は模擬ユーザーの連絡先メールアドレスであり、送信者ではありません。自分の実際のメールアドレスに変更してテストすることをおすすめします。example.com が受信側でスパムとしてブロックされるのを防げます。
SMTP の成功は、メールサーバーがメールを受け付けたことを意味するだけです。宛先が企業の飞书などのメールボックスの場合は、送信済みフォルダ「已发送」、退信の有無、相手側のスパム/隔離を確認してください。
MCP の起動(智齿 / リモート)
source .venv/bin/activate
python server.pyログに次のような表示が出ているはずです:
transport 'streamable-http' (stateless) on http://0.0.0.0:8765/同時に2つ起動しないでください。そうしないと address already in use になります。再起動が必要な場合は、古いプロセスを停止してから起動してください。
智齿に入力する URL
トランスポートタイプは Streamable HTTP / HTTP を選択してください(SSE は選択しないでください)。
URL には /sse や /mcp を付けないでください。このマシンに到達できるルートアドレスを入力します:
http://<这台机器的可达地址>:<MCP_PORT>/例:ローカルネットワークの場合:http://192.168.x.x:8765/
智齿がクラウド SaaS の場合は、プライベート IP にアクセスできません。パブリック IP、ドメイン、またはトンネルが必要です。URL も同じくルートパスにし、サフィックスは付けないでください。
保存後、再接続してください。サービスログが POST / HTTP/1.1" 200 になっているはずです(404 ではなく)。
ローカルでのセルフチェック
curl -sS -X POST http://127.0.0.1:8765/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"check","version":"0.0.1"}}}'正常時は、"jsonrpc":"2.0" と "serverInfo":{"name":"issue-collector"...} を含む JSON が返ります。
MCP の起動(ローカル stdio)
.env で MCP_TRANSPORT=stdio に設定すると、Cursor などのローカルクライアントがコマンドで起動します。例:
{
"mcpServers": {
"issue-collector": {
"command": "/绝对路径/send_issue_email_mcp/.venv/bin/python",
"args": ["/绝对路径/send_issue_email_mcp/server.py"]
}
}
}stdio モードでは、通常のログを stdout に出力しないでください。
ツール仕様
send_issue_email(email: str, question: str) -> str
email:ユーザーの連絡先メールアドレスquestion:問題・要望戻り値は
成功:または错误:で始まる文字列で、Agent が分岐に使用します
メール件名:[问题收集] 来自用户 {email} ({时间})
本文にはユーザーのメールアドレス、送信日時、問題の説明を含めます;Reply-To はユーザーのメールアドレスです。
send_message の成功後、すぐに MCP 結果を返します。SMTP の QUIT / 接続クローズはバックグラウンドスレッドで実行し、SSL クローズが智齿のタイムアウトを超えないようにします。
ログ
実行ログはプロジェクト配下の log/ に書き出され、日ごとに1ファイルになります。同日に複数回起動した場合は追記されます:
log/2026-08-19.logHTTP リクエストの開始と終了、ツール呼び出し、SMTP 接続/ログイン/送信の所要時間、バックグラウンドでのクローズ結果を含みます。SMTP パスワードは含みません。
トラブルシューティング
現象 | 原因 | 対応 |
智齿に「サービス応答形式が異常」と表示;ログ | クライアントがルートパスに POST しているのに、サービスが |
|
| ポートが前の MCP プロセスに占有されている | 古いプロセスを停止してから起動する。同時に2つ起動しない |
ログ | URL に | ルートパス |
スクリプトがまだ古い | ターミナルに古い環境変数が残っており、 |
|
SMTP は成功したが受信ボックスにない | スパム/隔離に入った、または受信アカウントを誤って確認している | 送信済みフォルダ、退信、相手側のスパムボックスを確認 |
Gmail | ログインパスワードを使用した、または2段階認証が有効でない | アプリパスワードに変更 |
load_dotenv() は server.py の起動時に一度だけ実行されます。.env だけを変更してプロセスを再起動しなければ、実行中のサービスは新しい値を読み込みません。
This server cannot be deployed
Maintenance
Related MCP Connectors
Email infrastructure as a service: mailboxes, domains, dedicated IPs, sending, deliverability.
Send transactional emails for AI agents via SMTP. Templates included.
Send transactional email over a verified domain — templates, attachments, custom headers.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables sending emails via SMTP with template management, supporting multiple SMTP configurations, template creation with variable substitution, and bulk email sending with rate limiting.6227 npm24MIT
- FlicenseNot gradedqualityDmaintenanceEnables sending emails via SMTP with support for HTML content, attachments, bulk sending, and template-based emails. Features session management and full MCP Streamable HTTP transport compliance.-
- AlicenseNot gradedqualityDmaintenanceEnables sending emails through SMTP using nodemailer, allowing AI assistants to send plain text and HTML emails with configurable SMTP credentials.25 npm2ISC
- AlicenseNot gradedqualityDmaintenanceEnables sending and receiving emails through SMTP, IMAP, and POP3 protocols with support for attachments, HTML content, and email validation.MIT