Resend Email
공식에디터에서 Resend API를 사용하여 이메일을 직접 보냅니다.
Resend Email MCP(으)로 무엇을 할 수 있나요?
- 트랜잭션 이메일 보내기 — 어시스턴트에게
https://mcp.resend.com/mcp를 통해 첨부 파일, CC/BCC, 사용자 지정 헤더가 포함된 HTML 또는 일반 텍스트 이메일을 작성하고 보내도록 요청하세요. - 이메일 템플릿 관리 — 어시스턴트가
{{{VARIABLE}}}자리 표시자를 사용하여 재사용 가능한 캠페인용 템플릿을 생성, 업데이트, 게시 또는 복제하도록 하세요. - 전송 및 참여 추적 — 어시스턴트에게 보낸 이메일 목록을 확인하고 전송 지표를 검색하거나, 예약된 전송을 발송 전에 취소하도록 요청하세요.
- 수신 이메일 처리 — 어시스턴트에게 Resend 받은 편지함에서 수신 메시지를 읽고 첨부 파일을 직접 다운로드하도록 요청하세요.
- 연락처 및 대상 그룹 관리 — 어시스턴트에게 연락처를 생성, 업데이트 또는 세분화하고 사용자 지정 속성이 포함된 CSV 목록을 가져오도록 지시하세요.
- API 사용량 모니터링 — 계정 수준 할당량과 속도 제한 정보를 요청하여 이메일 인프라를 지속적으로 파악하세요.
호스팅형 MCP 서버
npx add-mcp 'https://mcp.resend.com/mcp'Claude Code, Codex, Cursor 등에 설치됩니다
문서
Resend MCP 서버
AI 에이전트를 Resend 플랫폼에 연결하세요. Claude, Cursor, Claude Code와 같은 모든 MCP 클라이언트에서 직접 이메일을 보내고 받고, 연락처, 브로드캐스트, 도메인 등을 관리할 수 있습니다.
Resend가 호스팅하는 원격 MCP 서버와 로컬 MCP 서버(이 패키지)를 모두 제공합니다.
원격 MCP 서버
Resend는 다음 주소에서 MCP 서버를 호스팅합니다:
https://mcp.resend.com/mcp
원격 서버(Streamable HTTP)를 지원하는 모든 MCP 클라이언트를 연결하세요. 설치할 것이 없고 실행할 로컬 프로세스도 없어서 Claude와 같은 웹 기반 클라이언트 및 호스팅 에이전트 플랫폼에 가장 적합한 옵션입니다.
연결하면 클라이언트가 브라우저 창을 열어 Resend에 로그인하고 OAuth를 사용하여 액세스를 승인합니다.
Claude Code
claude mcp add --transport http resend https://mcp.resend.com/mcp
그런 다음 Claude Code에서 /mcp을(를) 실행하고 resend를 선택하여 OAuth 로그인을 완료하세요.
Claude
Claude(웹 또는 데스크톱)에서 설정 > 커넥터 > 사용자 지정 커넥터 추가를 열고 다음을 입력하세요:
https://mcp.resend.com/mcp
Cursor
명령 팔레트를 열고 "Cursor 설정" > "MCP" > "새 전역 MCP 서버 추가"를 선택하세요.
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp"
}
}
}
Codex
codex mcp add resend --url https://mcp.resend.com/mcp
Copilot
VS Code에서 GitHub Copilot을 사용하려면 settings.json에 다음을 추가하세요:
{
"mcp": {
"servers": {
"resend": {
"type": "http",
"url": "https://mcp.resend.com/mcp"
}
}
}
}
Windsurf
{
"mcpServers": {
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}
}
Warp
Warp 설정에서 에이전트 > MCP 서버로 이동하고 +추가를 클릭하여 새 서버를 추가하세요.
{
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}
API 키로 인증
클라이언트가 브라우저 로그인이 불가능한 환경(서버, CI, 헤드리스 에이전트)에서 실행되는 경우 OAuth 대신 Resend API 키를 Bearer 토큰으로 전달하세요.
Claude Code:
claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"
JSON 구성(Cursor, Windsurf 등)에 Authorization 헤더를 추가하세요:
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}
로컬 MCP 서버
호스팅 서버는 NPM에서 resend-mcp로 제공되는 동일한 오픈소스 코드를 실행합니다. 서버를 직접 실행하려면 npx을(를) 사용하여 지원되는 모든 MCP 클라이언트에 통합할 수 있습니다. 다음이 필요합니다:
로컬 서버는 stdio(기본값)와 HTTP의 두 가지 전송 모드를 지원합니다.
아래에서 원하는 모드와 클라이언트를 선택하여 시작하세요. re_xxxxxxxxx을(를) 실제 API 키로 바꾸는 것을 잊지 마세요.
Stdio 전송(기본값)
빠른 설정
감지/선택된 모든 에이전트 및 편집기에 설치:
npx add-mcp resend-mcp --name resend --env "RESEND_API_KEY=re_xxxxxxxxx"
Claude Code
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcp
Codex
codex mcp add resend \
--env RESEND_API_KEY=re_xxxxxxxxx \
-- npx -y resend-mcp
Cursor
명령 팔레트를 열고 "Cursor 설정" > "MCP" > "새 전역 MCP 서버 추가"를 선택하세요.
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Claude 데스크톱
Claude 데스크톱 설정 > "개발자" 탭 > "구성 편집"을 여세요.
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Copilot
VS Code에서 GitHub Copilot을 사용하려면 settings.json에 다음을 추가하세요:
{
"mcp": {
"servers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
}
Gemini CLI
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
OpenCode
opencode.json 구성에 추가하세요:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"resend": {
"type": "local",
"command": ["npx", "-y", "resend-mcp"],
"enabled": true,
"environment": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Windsurf
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Devin
Devin에서 설정 > 연결 > MCP 서버를 열고 사용자 지정 MCP 추가를 클릭하세요. 전체 단계별 가이드는 Devin 가이드를 참조하세요.
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx",
"SENDER_EMAIL_ADDRESS": "onboarding@resend.dev"
}
}
}
}
HTTP 전송
Resend의 호스팅 원격 MCP 서버 대신 자체 터널이나 리버스 프록시 뒤에서 원격 또는 웹 기반 통합을 위해 HTTP로 서버를 실행하세요. HTTP 모드에서는 각 클라이언트가 Authorization 헤더에 Resend API 키를 Bearer 토큰으로 전달하여 인증합니다.
서버 시작:
npx -y resend-mcp --http --port 3000
서버는 http://127.0.0.1:3000에서 수신 대기하고 Streamable HTTP를 사용하여 /mcp에서 MCP 엔드포인트를 노출합니다.
Claude Code
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"
Cursor
명령 팔레트를 열고 "Cursor 설정" > "MCP" > "새 전역 MCP 서버 추가"를 선택하세요.
{
"mcpServers": {
"resend": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}
MCP_PORT 환경 변수를 통해 포트를 설정할 수도 있습니다:
MCP_PORT=3000 npx -y resend-mcp --http
라이브러리로 사용
HTTP 전송은 CLI를 통해 실행하는 대신 다른 서비스에 내장할 수 있도록 내보내집니다. 연결하는 각 클라이언트는 자체 Resend API 키를 Bearer 토큰으로 전달하여 인증합니다.
import { runHttp } from 'resend-mcp/http';
// Options are optional — pass `senderEmailAddress` / `replierEmailAddresses`
// to set defaults. Binds the port and returns the Node http.Server, exposing
// the MCP endpoint at POST/GET/DELETE /mcp and a GET /health check.
const server = await runHttp({}, 3000);
기본적으로 서버는 localhost 전용 Host 검증(DNS-리바인딩 보호)을 적용합니다. 리버스 프록시나 로드 밸런서 뒤에 배포할 때 서버가 요청별 Bearer API 키로 보호되는 경우 host을(를) 0.0.0.0(으)로 설정하여 프록시의 전달된 Host 및 로드 밸런서 상태 확인이 403 Invalid Host(으)로 거부되지 않도록 하세요:
const server = await runHttp({}, 3000, { host: '0.0.0.0' });
// or pin specific hostnames instead of disabling validation:
const server = await runHttp({}, 3000, { allowedHosts: ['mcp.example.com'] });
CLI를 통해 이는 --host / --allowed-hosts(또는 MCP_HOST / MCP_ALLOWED_HOSTS)에 매핑됩니다.
옵션
로컬 서버를 구성하기 위해 추가 인수를 전달할 수 있습니다:
--key: Resend API 키(stdio 모드 전용, HTTP 모드는 클라이언트의 Bearer 토큰 사용)--sender: 인증된 도메인의 기본 발신자 이메일 주소--reply-to: 기본 회신 이메일 주소(여러 번 지정 가능)--http: stdio 대신 HTTP 전송 사용(기본값: stdio)--port:--http사용 시 HTTP 포트(기본값: 3000 또는MCP_PORT환경 변수)--host:--http사용 시 DNS-리바인딩 보호용 호스트(기본값:127.0.0.1또는MCP_HOST). 프록시/로드 밸런서 뒤에서Host검증을 비활성화하려면0.0.0.0(으)로 설정하세요.--allowed-hosts:--http(또는MCP_ALLOWED_HOSTS) 사용 시 쉼표로 구분된Host허용 목록
환경 변수:
RESEND_API_KEY: Resend API 키(stdio에 필수, HTTP는 클라이언트가 Bearer 토큰으로 전달하므로 선택)SENDER_EMAIL_ADDRESS: 인증된 도메인의 기본 발신자 이메일 주소(선택)REPLY_TO_EMAIL_ADDRESSES: 쉼표로 구분된 회신 이메일 주소(선택)MCP_PORT:--http사용 시 HTTP 포트(선택)MCP_HOST:--http사용 시 DNS-리바인딩 보호용 호스트(선택)MCP_ALLOWED_HOSTS:--http사용 시 쉼표로 구분된Host허용 목록(선택)
[!NOTE] 발신자 이메일 주소를 제공하지 않으면 MCP 서버가 도구를 호출할 때마다 이메일 주소를 입력하도록 요청합니다.
MCP 서버 도구
Resend의 MCP 서버는 단일 통합을 통해 AI 에이전트에게 전체 Resend 플랫폼에 대한 기본 액세스를 제공합니다. 자연어로 이메일 인프라의 모든 측면을 관리할 수 있습니다.
- 이메일: 이메일 보내기, 목록 보기, 조회, 취소, 업데이트, 공유, 일괄 전송. 전달 및 참여 지표 검색. HTML, 일반 텍스트, 첨부 파일(로컬 파일, URL 또는 base64), CC/BCC, 회신, 예약, 태그, 사용자 지정 헤더, 주제 기반 전송 및 멱등성 키를 지원합니다.
- 수신 이메일: 수신 이메일 목록 보기 및 읽기. 수신 이메일 첨부 파일 목록 보기 및 다운로드.
- 템플릿: 이메일 템플릿 생성, 목록 보기, 조회, 업데이트, 게시, 복제 및 제거. 템플릿 콘텐츠 작성 및
{{{VARIABLE}}}자리 표시자를 지원합니다. - 연락처: 연락처 생성, 목록 보기, 조회, 업데이트 및 제거. 세그먼트 멤버십, 주제 구독 및 CSV 연락처 가져오기 관리. 사용자 지정 연락처 속성 지원.
- 브로드캐스트: 브로드캐스트 캠페인 생성, 전송, 취소, 복제, 목록 보기, 조회, 업데이트 및 제거. 브로드캐스트의 클릭된 링크 목록과 이벤트 유형별 수신자(전송, 전달, 열람, 클릭, 반송, 불만, 구독 취소, 억제)를 확인합니다. 예약, 개인화 자리 표시자 및 미리 보기 텍스트를 지원합니다.
- 자동화: 자동화 생성, 목록 보기, 조회, 업데이트, 복제 및 제거. 자동화의 실행 검토.
- 이벤트: 연락처에 대한 자동화를 트리거하는 이벤트 전송. 이벤트 정의 생성, 업데이트 및 제거.
- 도메인: 발신자 도메인 생성, 목록 보기, 조회, 업데이트, 제거 및 인증. 추적, TLS 및 전송/수신 기능 구성. 도메인 클레임 생성 및 인증.
- 세그먼트: 오디언스 세그먼트 생성, 목록 보기, 조회, 업데이트 및 제거.
- 억제: 억제 목록 항목을 개별 또는 일괄로 목록 보기, 조회, 추가 및 제거. 하드 반송과 스팸 불만은 자동으로 억제됩니다. 연락 금지 요청을 존중하려면 주소를 수동으로 추가하세요.
- 주제: 구독 주제 생성, 목록 보기, 조회, 업데이트 및 제거.
- 연락처 속성: 사용자 지정 연락처 속성 생성, 목록 보기, 조회, 업데이트 및 제거.
- API 키: API 키 생성, 목록 보기, 업데이트 및 제거.
- 웹훅: 이벤트 알림을 위한 웹훅 생성, 목록 보기, 조회, 업데이트 및 제거. 전달 기록(웹훅으로 전송된 이벤트, 단일 이벤트의 페이로드, 전달 시도)을 검사합니다. 이벤트를 재생하여 다른 전달을 대기열에 넣고 웹훅의 서명 비밀을 회전합니다.
- 로그: API 요청 로그 목록 보기 및 검사. 전체 요청 및 응답 본문 포함.
- 사용량: 계정 수준 사용량 및 할당량 정보 검색: 이메일, 연락처, 세그먼트, 브로드캐스트, AI 크레딧, 자동화 실행, 도메인 및 API 속도 제한.
- 편집기: Resend 대시보드의 시각적 편집기에 연결(및 연결 해제). 브로드캐스트 및 템플릿 공동 작업 중 초안 콘텐츠 읽기.
로컬 개발
- 이 프로젝트를 클론하고 빌드:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
- 로컬 빌드를 사용하려면
npx명령을 로컬 빌드 경로로 바꾸세요:
Claude Code(stdio):
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- node ABSOLUTE_PATH_TO_PROJECT/dist/index.js
Claude Code(HTTP):
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"
Cursor / Claude 데스크톱(stdio):
{
"mcpServers": {
"resend": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_PROJECT/dist/index.js"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Cursor(HTTP):
{
"mcpServers": {
"resend": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}
MCP 클라이언트로 실시간 테스트
개발 중에는 다른 곳에서 코드를 편집하면서 실제 MCP 클라이언트 세션에서 변경 사항을 테스트할 수 있습니다.
아이디어: tsc --watch을(를) 실행하여 dist/을(를) 지속적으로 재빌드하고, 별도의 MCP 클라이언트를 다른 디렉터리에서 빌드된 dist/index.js에 연결합니다. 코드 변경 사항을 적용하려면 MCP 클라이언트 세션을 다시 시작하세요(MCP 서버는 핫 리로드되지 않는 장기 실행 stdio 프로세스입니다).
Claude Code 예시:
-
TypeScript watcher를 실행하여 저장 시 자동 재빌드:
pnpm tsc --watch -
별도의 디렉터리에서 빌드 출력을 가리키는
.mcp.json을(를) 생성:mkdir -p /tmp/mcp-test// /tmp/mcp-test/.mcp.json { "mcpServers": { "resend-dev": { "command": "node", "args": ["/absolute/path/to/resend-mcp/dist/index.js"], "env": { "RESEND_API_KEY": "re_xxxxxxxxx" } } } } -
해당 디렉터리에서 Claude Code를 시작하고 MCP 도구를 사용하세요. 코드 변경 후 새 Claude Code 세션을 시작하여 새 빌드를 적용하세요.
동일한 원칙이 모든 MCP 클라이언트에 적용됩니다 — 테스트 환경을 개발 환경과 분리하고, dist/index.js에 절대 경로를 사용하며, 재빌드 후 MCP 서버를 다시 연결하세요.
MCP Inspector로 테스트
참고: 먼저 프로젝트를 빌드했는지 확인하세요(위의 로컬 개발 섹션 참조).
Stdio 전송 사용
-
API 키 설정:
export RESEND_API_KEY=re_your_key_here -
Inspector 시작:
pnpm inspector -
브라우저(Inspector UI)에서:
- stdio 선택(프로세스 시작).
- 명령:
node - 인수:
dist/index.js(또는dist/index.js의 전체 경로) - 환경:
RESEND_API_KEY=re_your_key_here(또는 이미 같은 터미널에서 내보낸 경우 비워 둠). - 연결을 클릭한 다음 "도구 목록"을 사용하여 서버가 작동하는지 확인하세요.
HTTP 전송 사용
-
한 터미널에서 HTTP 서버 시작:
node dist/index.js --http --port 3000 -
다른 터미널에서 Inspector 시작:
pnpm inspector -
브라우저(Inspector UI)에서:
- Streamable HTTP 선택(URL에 연결).
- URL:
http://127.0.0.1:3000/mcp - 사용자 지정 헤더 추가:
Authorization: Bearer re_your_key_here및 토글 활성화. - 연결을 클릭한 다음 "도구 목록"을 사용하여 서버가 작동하는지 확인하세요.