Skip to main content
Glama
luleigreat

issue-collector

by luleigreat

send_issue_email MCP

Sendet die Kontakt-E-Mail und Problembeschreibung, die der Benutzer bei der Übergabe an einen menschlichen Agenten hinterlassen hat, per SMTP an ein festes Service-Postfach.

Der Agent sieht nur ein Tool: send_issue_email(email, question).

Welche drei E-Mail-Adressen gibt es?

Rolle

Quelle

Zweck

Absender From

SENDER_EMAIL / SMTP_USERNAME aus .env

Das Konto, das sich bei SMTP anmeldet und tatsächlich versendet

Empfänger To

TARGET_EMAIL aus .env

Euer festes Service-Postfach für eingehende Probleme

Benutzer-E-Mail

Tool-Parameter email

Wird in Betreff und Text geschrieben und als Reply-To gesetzt, damit der Support direkt antworten kann

.env ist die Infrastruktur und wird einmal bereitgestellt. email / question unterscheiden sich bei jedem Gespräch und werden vom Agenten aus Gesprächsvariablen (z. B. $邮箱, $问题) übergeben.

Related MCP server: MCP Sendmail Server

Systemanforderungen

  • Python 3.10+

  • Zugriff auf den verwendeten SMTP-Server (bei direktem Gmail-Zugriff vom Rechner sind ausgehende Verbindungen auf 465/587 erforderlich)

Installation

cd send_issue_email_mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env

Fülle .env gemäß den folgenden Anweisungen aus und committe .env nicht in das Repository.

.env konfigurieren

Pflichtfelder: Empfang und 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=问题收集机器人

Variable

Beschreibung

TARGET_EMAIL

Postfach für Probleme, Pflichtfeld

SMTP_HOST / SMTP_PORT

SMTP-Server

SMTP_USERNAME / SMTP_PASSWORD

Anmeldedaten. Bei Gmail muss ein App-spezifisches Passwort verwendet werden, nicht das Anmeldekennwort

SMTP_USE_SSL

true = SSL (465); false = STARTTLS (587)

SENDER_EMAIL

Absender, standardmäßig gleich SMTP_USERNAME

SENDER_NAME

Anzeigename des Absenders

Zwei äquivalente Kombinationen für Gmail:

Methode

SMTP_PORT

SMTP_USE_SSL

SSL (empfohlen)

465

true

STARTTLS

587

false

Bei Workspace-/Schul-Google-Konten kann SMTP vom Administrator deaktiviert sein; in diesem Fall ist keine Verbindung möglich.

MCP-Transport (Remote-Clients)

智齿 sendet einen POST / an die von dir angegebene URL-Wurzel. Daher gilt für Remote standardmäßig Folgendes:

MCP_TRANSPORT=streamable-http
MCP_HOST=0.0.0.0
MCP_PORT=8765
MCP_PATH=/

Variable

Beschreibung

MCP_TRANSPORT

streamable-http: Remote (智齿); stdio: lokaler Agent startet Prozess; sse: altes GET /sse (智齿 verwendet dies derzeit nicht)

MCP_HOST

Listen-Adresse, für Remote 0.0.0.0

MCP_PORT

Listen-Port. Lokal ist 8000 oft von anderen Projekten belegt, 8765 kann verwendet werden

MCP_PATH

HTTP-Endpunkt-Pfad. Bei 智齿 muss dies / sein

Wenn nach dem Ändern von .env im Terminal bereits gleichnamige Variablen per export gesetzt wurden, überschreibt load_dotenv() diese nicht. Öffne ein neues Terminal oder führe zuerst unset MCP_TRANSPORT TARGET_EMAIL aus, bevor du startest.

Zuerst den Versand testen (ohne MCP zu starten)

source .venv/bin/activate
python test_email.py

Bei Erfolg wird ausgegeben: 成功:问题已发送至服务邮箱 ...

Das erste Argument im Skript ist die simulierte Benutzer-Kontakt-E-Mail, nicht der Absender. Es wird empfohlen, sie für den Test durch deine eigene echte E-Mail zu ersetzen, um zu vermeiden, dass example.com vom Empfänger in den Spam-Ordner verschoben wird.

SMTP-Erfolg bedeutet nur, dass das Postamt die Nachricht angenommen hat. Wenn das Ziel z. B. ein Feishu-Unternehmenspostfach ist, prüfe zusätzlich den Ordner „Gesendet" des Absenders, auf Unzustellbarkeitsmeldungen und den Spam-/Quarantäne-Ordner des Empfängers.

MCP starten (智齿 / Remote)

source .venv/bin/activate
python server.py

Im Log sollte Ähnliches erscheinen:

transport 'streamable-http' (stateless) on http://0.0.0.0:8765/

Starte nicht zwei Instanzen gleichzeitig, sonst kommt address already in use. Stoppe vor einem Neustart zuerst den alten Prozess.

URL, die in 智齿 eingetragen wird

Wähle als Übertragungstyp Streamable HTTP / HTTP (nicht SSE).

Die URL darf kein /sse oder /mcp enthalten. Trage die Wurzel-Adresse ein, die diese Maschine erreicht:

http://<这台机器的可达地址>:<MCP_PORT>/

Z. B. im LAN: http://192.168.x.x:8765/

Wenn 智齿 eine Cloud-SaaS-Lösung ist, kann die interne IP nicht erreicht werden. Es wird eine öffentliche IP, eine Domain oder ein Tunnel benötigt. Die URL ist ebenfalls die Wurzel, ohne Suffix.

Nach dem Speichern erneut verbinden. Im Service-Log sollte POST / HTTP/1.1" 200 stehen, nicht 404.

Lokaler Selbsttest

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"}}}'

Bei Erfolg wird ein JSON mit "jsonrpc":"2.0" und "serverInfo":{"name":"issue-collector"...} zurückgegeben.

MCP starten (lokales stdio)

Nachdem in .env MCP_TRANSPORT=stdio gesetzt wurde, wird der Prozess von einem lokalen Client wie Cursor per Befehl gestartet, z. B.:

{
  "mcpServers": {
    "issue-collector": {
      "command": "/绝对路径/send_issue_email_mcp/.venv/bin/python",
      "args": ["/绝对路径/send_issue_email_mcp/server.py"]
    }
  }
}

Im stdio-Modus dürfen normale Logs nicht auf stdout ausgegeben werden.

Tool-Konventionen

send_issue_email(email: str, question: str) -> str

  • email: Kontakt-E-Mail des Benutzers

  • question: Problem/Anliegen

  • Gibt eine Zeichenkette zurück, die mit 成功: oder 错误: beginnt, damit der Agent verzweigen kann

E-Mail-Betreff: [问题收集] 来自用户 {email} ({时间})
Der Text enthält die Benutzer-E-Mail, den Zeitpunkt der Übermittlung und die Problembeschreibung; Reply-To ist die Benutzer-E-Mail.

Nach erfolgreichem send_message wird das MCP-Ergebnis sofort zurückgegeben. SMTP QUIT/Verbindungsschluss erfolgt in einem Hintergrund-Thread, um zu vermeiden, dass das Schließen von SSL das 智齿-Timeout überschreitet.

Logs

Ausführungslogs werden unter log/ im Projektverzeichnis geschrieben, eine Datei pro Tag. Bei mehreren Starts am selben Tag wird angehängt:

log/2026-08-19.log

Enthält Beginn/Ende von HTTP-Anfragen, Tool-Aufrufe, SMTP-Verbindungs-/Anmelde-/Sendezeiten und das Ergebnis des Hintergrund-Schließens. Kein SMTP-Passwort.

Fehlerbehebung

Symptom

Ursache

Behandlung

智齿 „Service-Antwortformat ungewöhnlich"; Log POST / 404

Client sendet POST an die Wurzel, der Dienst läuft jedoch auf /sse oder der entsprechende Transport ist nicht gestartet

MCP_TRANSPORT=streamable-http, MCP_PATH=/, URL ohne /sse

[Errno 48] address already in use

Port ist bereits von der vorherigen MCP-Instanz belegt

Alten Prozess stoppen, dann starten; nicht zwei Instanzen gleichzeitig ausführen

Log POST /sse 404

URL enthält zusätzlich /sse

Auf Wurzel / ändern

Skript sendet weiterhin an alte TARGET_EMAIL

Im Terminal existieren bereits alte Umgebungsvariablen, load_dotenv() überschreibt nicht

unset TARGET_EMAIL oder neues Terminal

SMTP erfolgreich, aber Postfach leer

Im Spam-/Quarantäne-Ordner gelandet oder falsches Empfängerkonto geprüft

Ordner „Gesendet" des Absenders, Unzustellbarkeitsmeldungen und Spam-Ordner des Empfängers prüfen

Gmail 535 / Password not accepted

Anmeldekennwort verwendet oder Zwei-Faktor-Authentifizierung nicht aktiviert

App-spezifisches Passwort verwenden

load_dotenv() wird beim Start von server.py einmal ausgeführt. Wenn nur .env geändert wird, ohne den Prozess neu zu starten, liest der laufende Dienst die neuen Werte nicht.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    B
    maintenance
    Enables sending emails via SMTP with template management, supporting multiple SMTP configurations, template creation with variable substitution, and bulk email sending with rate limiting.
    6
    434
    19
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables sending emails through SMTP using nodemailer, allowing AI assistants to send plain text and HTML emails with configurable SMTP credentials.
    107
    2
    ISC

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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