Resend Email

공식

에디터에서 Resend API를 사용하여 이메일을 직접 보냅니다.

Resend Email MCP(으)로 무엇을 할 수 있나요?

  • Send and manage emails — AI가 sendEmail 및 관련 도구를 사용하여 HTML, 첨부 파일, CC/BCC 및 사용자 지정 헤더가 포함된 이메일을 보내거나, 예약하거나, 일괄 전송하도록 요청하세요.
  • Manage contacts and audiences — 연락처를 생성, 업데이트, 가져오기 또는 제거하고, 세그먼트 멤버십 및 주제 구독을 관리하세요.
  • Create and send broadcast campaigns — 개인화 플레이스홀더와 미리보기 텍스트가 포함된 브로드캐스트 이메일을 작성, 예약 및 전송하세요.
  • Verify and configure domains — 발신자 도메인을 추가, 확인 및 업데이트하고, 추적, TLS 및 수신 설정을 포함한 구성을 관리하세요.
  • Inspect API logs and webhooks — 전체 요청/응답 본문이 포함된 API 요청 로그를 검색 및 확인하고, 웹훅 엔드포인트를 관리하세요.
  • Collaborate on templates and broadcasts — Resend 비주얼 편집기에 연결하여 템플릿 및 브로드캐스트의 초안 콘텐츠를 읽고 반복 작업하세요.

문서

Resend MCP 서버

smithery badge npm version

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 Desktop

Claude Desktop 설정 > "개발자" 탭 > "구성 편집"을 여세요.

{
  "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 헤더에 Bearer 토큰으로 Resend API 키를 전달하여 인증합니다.

서버 시작:

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를 통해 실행하는 대신 다른 서비스에 내장할 수 있도록 내보내집니다. 연결하는 각 클라이언트는 Bearer 토큰으로 전달된 자체 Resend API 키로 인증합니다.

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);

기본적으로 서버는 로컬호스트 전용 Host 유효성 검사(DNS 리바인딩 보호)를 적용합니다. 요청별 Bearer API 키로 서버가 보호되는 리버스 프록시나 로드 밸런서 뒤에 배포할 때는 프록시가 전달한 Host 및 로드 밸런서 상태 확인이 403 Invalid Host로 거부되지 않도록 host0.0.0.0로 설정하세요:

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 키 (HTTP 모드는 클라이언트의 Bearer 토큰을 사용하므로 stdio 모드에만 해당)
  • --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 사용 시 쉼표로 구분된 Host 허용 목록 (또는 MCP_ALLOWED_HOSTS)

환경 변수:

  • 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 요청 로그 목록 보기 및 검사.
  • 편집기: Resend 대시보드의 비주얼 편집기에 연결(및 연결 해제)하고 브로드캐스트 및 템플릿 작업 중 초안 콘텐츠 읽기.

로컬 개발

  1. 이 프로젝트를 클론하고 빌드하세요:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
  1. 로컬 빌드를 사용하려면 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 Desktop (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 예시:

  1. 저장 시 자동 재빌드를 위해 TypeScript 감시자 실행:

    pnpm tsc --watch
    
  2. 별도의 디렉터리에서 빌드 출력을 가리키는 .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"
          }
        }
      }
    }
    
  3. 해당 디렉터리에서 Claude Code를 시작하고 MCP 도구를 사용하세요. 코드 변경 후 새 Claude Code 세션을 시작하여 새 빌드를 적용하세요.

모든 MCP 클라이언트에 동일한 원칙이 적용됩니다 — 테스트 환경을 개발 환경과 분리하고 dist/index.js의 절대 경로를 사용하며 재빌드 후 MCP 서버를 다시 연결하세요.

MCP Inspector로 테스트하기

참고: 먼저 프로젝트를 빌드했는지 확인하세요 (위의 로컬 개발 섹션 참조).

Stdio 전송 사용

  1. API 키 설정:

    export RESEND_API_KEY=re_your_key_here
    
  2. Inspector 시작:

    pnpm inspector
    
  3. 브라우저(Inspector UI)에서:

    • stdio(프로세스 시작)를 선택하세요.
    • 명령: node
    • 인수: dist/index.js (또는 dist/index.js의 전체 경로)
    • 환경 변수: RESEND_API_KEY=re_your_key_here (또는 동일한 터미널에서 이미 내보낸 경우 비워 두세요).
    • 연결을 클릭한 다음 "도구 목록"을 사용하여 서버가 작동하는지 확인하세요.

HTTP 전송 사용

  1. 한 터미널에서 HTTP 서버 시작:

    node dist/index.js --http --port 3000
    
  2. 다른 터미널에서 Inspector 시작:

    pnpm inspector
    
  3. 브라우저(Inspector UI)에서:

    • Streamable HTTP(URL에 연결)를 선택하세요.
    • URL: http://127.0.0.1:3000/mcp
    • 사용자 정의 헤더 추가: Authorization: Bearer re_your_key_here 그리고 토글을 활성화하세요.
    • 연결을 클릭한 다음 "도구 목록"을 사용하여 서버가 작동하는지 확인하세요.