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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables sending emails via SMTP with template management, supporting multiple SMTP configurations, template creation with variable substitution, and bulk email sending with rate limiting.643419MIT
- 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.1072ISC
- AlicenseNot gradedqualityCmaintenanceEnables sending and receiving emails through SMTP, IMAP, and POP3 protocols with support for attachments, HTML content, and email validation.MIT
Related MCP Connectors
Send transactional email over a verified domain — templates, attachments, custom headers.
Fully-managed email as MCP tools - register domains, real mailboxes, send and receive mail.
Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/luleigreat/send_issue_email_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server