issue-collector
send_issue_email MCP
사용자가 상담원 연결(수동 전환) 시 남긴 연락 이메일과 문제 설명을 SMTP를 통해 고정 서비스 메일함으로 발송합니다.
Agent는 send_issue_email(email, question)이라는 도구 하나만 볼 수 있습니다.
세 개의 이메일은 각각 무엇인가
역할 | 출처 | 용도 |
발신자 |
| 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의 두 가지 동등한 조합:
방식 |
|
|
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 성공은 우체국이 메일을 수신했음을 의미할 뿐입니다. 대상이 기업 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>/예: LAN: http://192.168.x.x:8765/
지취가 클라우드 SaaS라면 내부 IP에 접근할 수 없습니다. 공인 IP, 도메인 또는 터널이 필요하며, URL 역시 루트 경로로 하고 접미사를 붙이지 마세요.
저장 후 다시 연결하세요. 서비스 로그는 404가 아닌 POST / HTTP/1.1" 200이어야 합니다.
로컬 자체 점검
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/에 날짜별로 하나의 파일로 기록되며, 당일 여러 번 시작하면 추가됩니다:
log/2026-08-19.logHTTP 요청 시작/종료, 도구 호출, SMTP 연결/로그인/발송 소요 시간, 백그라운드 종료 결과가 포함됩니다. SMTP 비밀번호는 포함되지 않습니다.
문제 해결
현상 | 원인 | 처리 |
지취 '서비스 응답 형식 이상'; 로그 | 클라이언트가 루트 경로에 POST를 보내는데 서비스가 |
|
| 포트가 이전 MCP 인스턴스에 점유됨 | 이전 프로세스를 중지한 후 시작, 두 개를 동시에 실행하지 않음 |
로그 | 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