issue-collector
send_issue_email MCP
Отправляет контактный email и описание проблемы, оставленные пользователем при переводе на оператора, через SMTP на фиксированный служебный почтовый ящик.
Агент видит только один инструмент: send_issue_email(email, question).
Какие три почтовых ящика здесь участвуют
Роль | Источник | Назначение |
Отправитель |
| Аккаунт, который реально отправляет письмо через SMTP |
Получатель |
| Ваш фиксированный служебный ящик для приёма проблем |
Почта пользователя | Параметр инструмента | Записывается в тему и тело письма, а также задаётся как |
.env — это инфраструктура, настраивается один раз. email / question меняются в каждом диалоге и передаются агентом из переменных диалога (например, $邮箱, $问题).
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:
Способ |
|
|
SSL (рекомендуется) |
|
|
STARTTLS |
|
|
У корпоративных / учебных аккаунтов Google администратор может отключить SMTP — в таком случае подключиться не получится.
MCP-транспорт (удалённый клиент)
智齿 отправляет POST / на корневой путь указанного вами URL, поэтому для удалённого режима по умолчанию используется следующее:
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При успехе будет выведено: 成功:问题已发送至服务邮箱 ...
Первый аргумент скрипта — это имитируемый контактный email пользователя, а не отправитель. Рекомендуется заменить его на свой реальный адрес для теста, чтобы письмо с example.com не попало в спам у получателя.
Успех SMTP означает лишь, что почтовый сервер принял письмо. Если цель — корпоративная почта типа Feishu, дополнительно проверьте папку «Отправленные» у отправителя, наличие возвратов и папку спама/карантин у получателя.
Запуск MCP (智齿 / удалённый режим)
source .venv/bin/activate
python server.pyВ логах должно появиться примерно следующее:
transport 'streamable-http' (stateless) on http://0.0.0.0:8765/Не запускайте два экземпляра одновременно, иначе будет 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"}}}'При нормальной работе возвращается JSON с "jsonrpc":"2.0" и "serverInfo":{"name":"issue-collector"...}.
Запуск MCP (локальный stdio)
После установки MCP_TRANSPORT=stdio в .env локальный клиент (например, 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: контактный email пользователяquestion: проблема/запросВозвращает строку, начинающуюся с
成功:или错误:, по которой агент выбирает ветку
Тема письма: [问题收集] 来自用户 {email} ({时间})
В теле — email пользователя, время отправки и описание проблемы; Reply-To — email пользователя.
После успешного send_message результат MCP возвращается сразу, а QUIT/закрытие соединения SMTP выполняется в фоновом потоке, чтобы закрытие SSL не превысило таймаут 智齿.
Логи
Логи выполнения пишутся в log/ в каталоге проекта, один файл в день; при нескольких запусках в течение дня записи добавляются:
log/2026-08-19.logСодержат начало/конец HTTP-запросов, вызовы инструментов, время подключения/входа/отправки SMTP и результат фонового закрытия. Пароль SMTP не логируется.
Устранение неполадок
Симптом | Причина | Решение |
智齿: «服务响应格式异常»; в логах | Клиент отправляет POST на корневой путь, а сервис слушает |
|
| Порт уже занят предыдущим экземпляром MCP | Остановите старый процесс и запустите заново, не держите два экземпляра одновременно |
В логах | В URL лишний | Замените на корневой путь |
Скрипт по-прежнему отправляет на старый | В терминале уже есть старые переменные окружения, | Выполните |
SMTP успешен, но письма нет в ящике | Письмо попало в спам/карантин, или смотрите не тот ящик | Проверьте «Отправленные» у отправителя, возвраты, спам у получателя |
Gmail | Использован пароль от аккаунта или не включена двухэтапная проверка | Используйте пароль приложения |
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