BroadNet
저널엔지니어링
엔지니어링

메시징을 위한 MCP: AI 에이전트가 SMS와 WhatsApp을 안전하게 발송하는 방법

MCP 서버는 메시징 API를 AI 에이전트가 호출할 수 있는 도구로 변환합니다. 이는 강력하면서도 위험합니다. 발송 도구를 가진 에이전트는 실제 고객에게 메시지를 보낼 수 있기 때문입니다. 본 가이드에서는 SMS와 WhatsApp에 대한 MCP의 작동 방식, BroadNet 서버에 연결하는 방법, 그리고 우선적으로 구축해야 할 가드레일에 대해 설명합니다.

BroadNet 엔지니어링
저자편집 표준
11 분 소요
엔지니어링 · 발행호 47
11 분 소요

시징을 위한 MCP 서버는 메시징 API를 AI 에이전트가 Model Context Protocol을 통해 발견하고 호출할 수 있는 도구로 노출하므로, 어시스턴트가 요청에 따라 SMS 또는 WhatsApp 메시지를 보낼 수 있습니다. BroadNet은 WhatsApp, SMS, RCS, Telegram, Push, Email, Messenger 및 Instagram을 서비스하는 것과 동일한 API 상에서, Streamable HTTP 전송 방식과 Bearer 토큰을 사용하여 https://mcp.broadnet.me/mcp 에서 이를 운영합니다. 이 가이드는 작동 원리와 더불어, 에이전트가 잘못된 대상에게 메시지를 보내는 것을 방지하는 방법을 중점적으로 설명합니다.

핵심 요약

  • MCP는 JSON-RPC 2.0을 기반으로 구축되어 AI 애플리케이션이 외부 도구를 발견하고 호출할 수 있게 해주는 개방형 프로토콜입니다. 메시징 MCP 서버는 발송, 템플릿 및 보고 엔드포인트를 도구로 변환합니다.
  • 원격 서버는 Streamable HTTP 전송 방식을 사용합니다. 즉, 하나의 HTTPS 엔드포인트를 가지며 모든 클라이언트 메시지는 HTTP POST 요청입니다. 로컬 서버는 일반적으로 stdio를 사용합니다.
  • BroadNet MCP 서버는 https://mcp.broadnet.me/mcp에 위치하며, Authorization: Bearer 헤더가 없는 모든 요청은 거부합니다.
  • 토큰은 발송 자격 증명입니다. 에이전트는 귀하의 코드가 수행하는 것과 정확히 동일하게 부여된 권한에 따라 동작합니다.
  • MCP 규격에 따르면 도구 호출을 거부할 수 있는 사람이 항상 개입(human in the loop)하는 것이 권장되며, 서버는 도구 호출 횟수를 반드시 제한(rate-limit)해야 합니다. 모든 발송 도구에 대해 사전 동의, 수신 제한 시간, 한도 설정 및 승인 절차를 구축하세요.

Model Context Protocol란 무엇인가요?

MCP 사양은 MCP를 "LLM 애플리케이션과 외부 데이터 소스 및 도구 간의 원활한 통합을 가능하게 하는 개방형 프로토콜"로 정의합니다. 이 프로토콜은 호스트(AI 애플리케이션), 클라이언트(호스트 내부의 커넥터), 서버(도구, 리소스 및 프롬프트를 제공하는 서비스)의 세 가지 역할 간에 JSON-RPC 2.0 메시지를 사용합니다. 2026년 9월 26일 기준으로, 해당 사양의 최신 개정판 날짜는 2026-07-28입니다.

메시징에서 가장 중요한 부분은 도구(Tools)입니다. 클라이언트가 tools/list로 도구 목록을 제공하면, 모델이 그중 하나를 선택하고 클라이언트가 tools/call로 이를 호출합니다. 명세에 따르면 도구는 "모델 제어(model-controlled)" 방식입니다. 즉, 모델이 도구 사용 시점을 결정합니다. 바로 이 때문에 발송 도구에는 모델이 임의로 우회할 수 없는 가드레일이 반드시 필요합니다.

SMS 및 WhatsApp을 위한 MCP 서버는 어떻게 작동하나요?

요청 경로는 5개의 홉(hop)으로 구성됩니다. 설계의 핵심은 MCP 서버가 새로운 발송 능력을 추가하는 것이 아니라, 동일한 토큰과 동일한 제어 환경 하에서 귀하가 이미 보유하고 있는 API를 그대로 노출한다는 점입니다.

  1. 사용자가 AI 호스트에게 다음과 같이 요청합니다: "WhatsApp에 있는 이 고객에게 배송 업데이트를 보내줘".
  2. 모델은 MCP 클라이언트가 가져온 목록에서 WhatsApp 전송 도구와 같은 도구를 선택하고 해당 인수를 채웁니다.
  3. MCP 클라이언트는 Bearer 토큰과 함께 https://mcp.broadnet.me/mcp로 tools/call 요청을 HTTP POST로 보냅니다.
  4. BroadNet MCP 서버는 토큰을 검증하고 해당 BroadNet API 엔드포인트를 호출합니다.
  5. API는 메시지를 WhatsApp 또는 모바일 네트워크로 라우팅하고 결과를 반환하며, 이 결과는 도구 결과로서 모델로 전달됩니다.

제품 팀의 데모 녹화 영상에서 클라이언트는 380개의 BroadNet 도구를 나열하며, 여기에는 send_message, post_sms_send, post_whatsapp_message_send, get_whatsapp_template_list, post_whatsapp_template_send, post_rcs_message_send 및 get_report_delivery이 포함됩니다. 정확한 목록은 서버 버전과 계정에 따라 다를 수 있으니 MCP 서버 문서를 참조하세요.

스트리밍 가능한 HTTP 또는 stdio: 어떤 전송 방식을 사용할 것인가?

사양에는 두 가지 표준 전송 방식이 정의되어 있습니다. 어떤 방식을 사용할지는 서버가 실행되는 위치에 따라 달라지며, 이는 인증 방식도 결정합니다.

stdio스트리밍 가능한 HTTP
서버 실행 위치클라이언트에 의해 실행되는 동일 머신의 하위 프로세스로 실행HTTPS를 통해 접속하는 독립형 서비스로 실행
메시지 전송 경로표준 입출력을 통한 줄 바꿈 구분 JSON-RPC각 클라이언트 메시지는 단일 MCP 엔드포인트로 전송되는 HTTP POST 방식이며, 응답은 JSON 또는 서버 전송 이벤트(SSE) 스트림으로 반환됩니다
인증 방식사양에 따라 stdio 서버는 환경 변수에서 인증 정보를 읽어야 합니다모든 요청에는 Authorization: Bearer 헤더를 포함해야 하며, 토큰을 쿼리 스트링에 포함해서는 안 됩니다
일반적인 용도로컬 개발자 도구메시징 API와 같이 여러 고객이 공유하는 호스팅 서비스
BroadNet제공되지 않음https://mcp.broadnet.me/mcp

HTTP 서버의 경우, 2025-06-18 개정 사양은 서버가 Origin 헤더를 검증하도록 요구하며 모든 연결을 인증할 것을 권장합니다. 최신 개정판(2026-07-28)은 각 요청이 프로토콜 버전과 클라이언트 기능을 자체 메타데이터에 담아 독립적으로 처리되도록 합니다. 이전 개정판에서는 초기화 핸드셰이크로 세션을 열었으며, 클라이언트는 서버가 사용하는 개정판을 감지하여 그에 맞게 하위 방식으로 전환합니다.

AI 에이전트를 BroadNet의 MCP 서버에 어떻게 연결하나요?

  1. BroadNet 계정에서 토큰을 가져오세요. BroadAdmin 포털의 Integrations 메뉴에서 MCP Integration을 선택하면 임시 키가 발급됩니다. 영구 키는 계정 관리자 또는 마스터 계정에서 발급받을 수 있습니다.
  2. MCP 클라이언트에 서버를 추가하세요. 대부분의 클라이언트는 아래와 같은 JSON 설정을 사용합니다. 필드 이름은 클라이언트에 따라 약간씩 다를 수 있으므로, 사용 중인 클라이언트의 문서를 확인하시기 바랍니다.
  3. 토큰이 커밋되는 파일에 포함되지 않도록 주의하세요. 아래 설정 예시와 같이 클라이언트의 환경 변수 지원 기능을 사용하세요.
  4. 도구 목록을 열고 에이전트에게 필요하지 않은 모든 도구의 스위치를 끄세요.
  5. 에이전트에게 고객 데이터에 접근하도록 허용하기 전에, 본인 소유의 번호로 메시지 하나를 보내 테스트를 진행하세요.
snippet
{
"mcpServers": {
"broadnet": {
"type": "http",
"url": "https://mcp.broadnet.me/mcp",
"headers": {
"Authorization": "Bearer ${BROADNET_TOKEN}"
}
}
}
}

클라이언트 없이 연결을 테스트하려면, 직접 초기화 요청을 보내세요:

snippet
curl -X POST https://mcp.broadnet.me/mcp \
-H "Authorization: Bearer $BROADNET_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-06-18","capabilities":{},
"clientInfo":{"name":"curl","version":"1.0"}}}'

헤더가 없으면 서버는 프로토콜 수준에서 호출을 거부합니다. 이는 인증되지 않은 초기화 요청에 대한 서버의 실제 응답이며, 2026년 9월 26일에 확인되었습니다:

snippet
event: message
data: {"jsonrpc":"2.0","id":1,"error":{"code":-32001,
"message":"Authorization bearer token is required. Connect with an
'Authorization: Bearer <BroadNet token>' header."}}

AI 에이전트에게 메시징 API 키를 제공해도 안전할까요?

제한 사항을 설정했을 때만 안전합니다. 토큰은 발송 권한을 의미합니다. 즉, 해당 토큰을 보유한 누구라도, 혹은 어떤 에이전트라도 귀하의 계정으로 메시지를 보낼 수 있으며, 모든 발송에는 비용이 발생하고 실제 사용자에게 메시지가 전달됩니다. 또한 에이전트는 자연어 지침에 따라 동작하는데, 이 텍스트 중 일부는 외부에서 유입될 수 있습니다. 예를 들어, 수신된 고객 메시지나 웹 페이지에 모델이 따르려고 시도할 수 있는 지침이 포함될 수 있습니다. MCP 규격은 이 점을 명확히 명시하고 있습니다. 호스트는 도구를 호출하기 전에 반드시 사용자의 명시적인 동의를 얻어야 하고, 도구 호출을 거부할 수 있는 권한을 가진 사람이 항상 프로세스에 개입(human in the loop)하는 것이 바람직하며(SHOULD), 클라이언트는 도구 주석이 신뢰할 수 있는 서버에서 온 것이 아니라면 신뢰할 수 없는 것으로 취급해야 한다고 규정합니다.

에이전트의 고객 스팸 발송을 방지하는 가드레일은 무엇인가요?

모델이 우회할 수 없는 곳에 제어 장치를 배치하십시오. 프롬프트가 아니라 클라이언트 설정, 자체 미들웨어 또는 계정 설정에 제어 장치를 두어야 합니다.

리스크제어위치
수신 동의를 하지 않은 사용자에게 메시지 발송발송 도구를 실행하기 전 수신 동의 및 수신 거부 상태를 확인하세요귀사의 미들웨어 또는 CRM
야간 또는 잘못된 요일에 발송하는 경우수신자 시간대 및 시장 규정에 따른 발송 제한 시간(quiet hours) 설정귀사의 미들웨어
해당 작업에 불필요한 도구를 사용하는 경우필요한 도구만 활성화하세요. 템플릿, 온보딩 및 계정 도구는 비활성화합니다MCP 클라이언트 도구 설정
무한 루프 및 대량 문자 발송에이전트별 발송 한도 및 속도 제한; 사양에 따라 서버는 도구 호출에 대한 속도 제한을 적용해야 합니다미들웨어 및 서버
재시도 후 메시지 중복 발송반환된 메시지 ID를 유지하고 재전송 전 해당 ID의 상태를 확인하세요에이전트 로직 (멱등성 가이드 참조)
검토 없이 발송되는 마케팅 메시지모든 마케팅 또는 다수 수신자 대상 발송 시 사람의 승인 필요MCP 클라이언트 확인 프롬프트
수신 메시지에 숨겨진 지침수신 텍스트를 데이터로 취급하십시오. 사용자 요청 없이는 절대 발송을 트리거하지 마십시오.AI 호스트 내 프롬프트 설계 및 승인 규칙
유출된 토큰실험용 임시 키, 환경 변수; 노출 시 폐기 및 재발급BroadNet 계정 관리자
감사 추적 없음입력값과 결과값을 포함하여 모든 도구 호출을 기록합니다MCP 클라이언트; 사양에 따르면 클라이언트는 도구 사용을 기록해야 합니다

BroadNet API에는 멱등성 헤더가 없으므로 타임아웃 후 재시도 시 메시지가 두 번 전송될 수 있습니다. 안전한 패턴은 API가 반환하는 메시지 ID를 저장하고 재전송 전에 전송 결과 보고를 확인하는 것입니다. 당사의 멱등성 및 재시도 가이드에서 그 방법을 확인할 수 있습니다.

어떤 메시징 작업에 사람의 승인이 필요합니까?

작업권장 기본값이유
전송 결과 보고 읽기, 템플릿 목록자동읽기 전용; 고객에게 전달되지 않음
요청한 특정 고객에게 발송되는 단일 트랜잭션 메시지발송 한도 내 자동 발송 또는 원클릭 승인낮은 리스크, 높은 가치, 용이한 감사
모든 마케팅 메시지항상 수동 승인 필요수신 동의, 콘텐츠 및 비용 리스크
둘 이상의 수신자에게 발송항상 사람의 승인 필요실수가 증폭됩니다
WhatsApp 템플릿 생성 또는 제출사람의 승인템플릿은 Meta의 검토를 거치며 귀사의 브랜드를 나타냅니다
계정, 결제 또는 온보딩 도구비활성화에이전트는 실행 중인 계정을 변경해서는 안 됩니다

MCP 또는 일반 REST API: 에이전트는 무엇을 사용해야 합니까?

둘 다 동일한 플랫폼에 도달합니다. 차이점은 어떤 호출을 수행할지 결정하는 주체가 누구인가 하는 점입니다.

BroadNet MCP 서버BroadNet REST API
호출 결정 주체도구 목록 내의 모델사용자 코드
엔드포인트https://mcp.broadnet.me/mcp예: https://api.broadnet.me, POST /sms/sendSms
인증Authorization: Bearer tokenAuthorization: Bearer token
클라이언트 라이브러리원격 서버와 사용자 정의 Authorization 헤더를 지원하는 모든 MCP 클라이언트공식 SDK 1종, @broadnet/cpaas-sdk (TypeScript/Node.js); OpenAPI 명세로부터 기타 클라이언트 생성 가능
추천 용도어시스턴트, 운영 코파일럿, 자연어를 이용한 임시 작업고정된 로직을 가진 프로덕션 워크플로우: OTP, 알림, 캠페인

합리적인 구분 방법: 사람이 에이전트를 제어하며 확인 프롬프트가 허용되는 경우에는 MCP를 사용하고, 매번 동일한 방식으로 실행되어야 하는 워크플로우에는 quickstart와 curl generator를 포함한 REST API를 사용하세요. 당사의 API 레퍼런스에는 MCP 도구의 기반이 되는 엔드포인트가 문서화되어 있습니다.

자주 묻는 질문

메시징을 위한 MCP 서버란 무엇인가요?

AI 에이전트가 Model Context Protocol을 통해 발견하고 호출할 수 있는 도구로서, 문자 발송, WhatsApp 메시지 발송 또는 전송 결과 보고 수신과 같은 메시징 API를 제공하는 서버를 의미합니다.

BroadNet MCP 서버 URL은 무엇인가요?

https://mcp.broadnet.me/mcp. 이 서버는 MCP Streamable HTTP 전송 방식을 사용하며, 모든 요청 시 BroadNet 토큰이 포함된 Authorization: Bearer 헤더가 필요합니다.

어떤 AI 클라이언트가 연결할 수 있나요?

Streamable HTTP를 통해 원격 서버에 연결하고 사용자 정의 Authorization 헤더를 보낼 수 있는 모든 MCP 클라이언트가 가능합니다. BroadNet 데모 녹화에서는 Cursor를 사용했습니다.

에이전트가 실제 메시지를 보낼 수 있나요?

네, 가능합니다. 도구는 사용자의 토큰 권한에 따라 작동하며, 이는 사용자의 API 호출과 정확히 동일하게 동작합니다. 모든 전송을 실제 상황으로 간주하십시오. 에이전트에 필요한 도구만 활성화하고, 전송 전 확인 절차를 거치도록 설정하세요.

MCP에서 Bearer 인증은 어떻게 작동하나요?

HTTP 전송 방식의 경우, 클라이언트는 동일한 세션 내에서도 모든 요청 시 Authorization: Bearer 뒤에 토큰을 붙여 전송해야 하며, URL 쿼리 문자열에는 절대 포함하지 않습니다. BroadNet 서버는 해당 헤더가 없는 요청을 거부합니다.

stdio와 Streamable HTTP의 차이점은 무엇인가요?

stdio는 서버를 로컬 하위 프로세스로 실행하며 표준 입출력을 통해 줄 바꿈으로 구분된 JSON-RPC를 교환합니다. Streamable HTTP는 서버를 웹 서비스로 실행하며 모든 클라이언트 메시지는 하나의 엔드포인트로 전송되는 HTTP POST 요청입니다.

AI 에이전트가 고객에게 스팸을 보내지 않도록 하려면 어떻게 해야 하나요?

모델 외부에서 수신 동의 확인, 발송 제한 시간 및 발송 한도를 강제하고, 필요한 도구만 활성화하며, 마케팅 및 다수 수신자 발송 시에는 사람의 승인을 요구하고, 모든 도구 호출을 기록하세요.

MCP를 사용해야 하나요, 아니면 REST API를 사용해야 하나요?

사람이 자연어로 에이전트를 제어하는 경우에는 MCP를 사용하세요. 모델이 아닌 코드가 무엇을 보낼지 결정하는 OTP 인증 및 알림과 같은 고정된 프로덕션 흐름에는 REST API 또는 TypeScript SDK를 사용하세요.

출처

관련 읽을거리: 기업 메시징의 AI 에이전트 및 기업용 에이전트 AI 플랫폼 선택하기.

도움이 되었나요?

콘텐츠 작성 및 검토 방식

작성자

BroadNet 엔지니어링

통신사 솔루션 팀은 모바일 통신사를 위한 SMS 방화벽, SS7 보호 및 수익 보장 솔루션을 구축하고 운영합니다. 2003년부터 중동·북아프리카 네트워크를 대상으로 서비스를 제공해 왔으며, 현장에서 직접 경험한 인사이트를 공유합니다.

계속 읽기

저널의 다른 글 3개 더 보기

모든 에세이 보기
코
엔지니어링

코드로 문자 발송하는 방법: 단 한 번의 REST 호출로 Python, PHP, Node.js, Java, Go 및 C# 구현하기

코드로 문자를 발송하는 것은 인증된 단 한 번의 HTTPS POST 요청으로 이루어집니다. 즉, Bearer 토큰, 발신자 ID, 수신 번호, 메시지 및 메시지 유형이 포함된 JSON 본문, 그리고 응답으로 받는 메시지 ID가 필요합니다. 다음은 Python, PHP, Node.js, Java, Go 및 C#에서의 동일한 요청 예시와 에러 처리 및 운영 가이드입니다.

BroadNet 편집팀
9m
A
규제

AI 전화는 합법인가요? 2026년 EU, 미국, UAE의 AI 음성 에이전트 발신 규정

네, AI 음성 에이전트는 특정 조건을 충족하면 전화를 걸 수 있습니다. EU는 2026년 8월 2일부터 AI 사용 사실을 공개하도록 요구하며, 미국은 TCPA에 따라 AI 음성을 "인공" 음성으로 취급합니다. UAE는 엄격한 텔레마케팅 규정 내에서만 자동화된 마케팅 전화를 허용합니다. 스크립트와 체크리스트를 포함한 비교 가이드를 확인하세요.

BroadNet 규제 업무팀
12m
E
엔지니어링

Email to SMS: 이메일-to-SMS 게이트웨이 작동 원리, 활용 사례 및 보안 방법

이메일-to-SMS 게이트웨이는 전화번호로 발송된 이메일을 문자 메시지로 변환합니다. 이를 통해 이메일만 발송할 수 있는 모니터링 도구, 헬프데스크 및 레거시 시스템이 SMS로 사용자에게 연락할 수 있습니다. 이 글에서는 게이트웨이의 작동 방식, API보다 유리한 경우, 그리고 스푸핑 메일에 대비해 보안을 강화하는 방법을 알아봅니다.

BroadNet 편집팀
7m
이메일로 받아보는 저널

한 달에 한 편의 에세이. 그 외에는 없습니다.

구독하시면 엔지니어링, 규제 또는 산업 관련 최신 소식이 발행되는 당일에 바로 보내드립니다. 드립 캠페인이나 제품 홍보, 제3자 정보 공유는 일절 없습니다. 클릭 한 번으로 언제든 수신 거부할 수 있습니다.

매월 한 통의 이메일을 보내드립니다. 언제든지 수신 거부할 수 있습니다. 자세한 내용은 개인정보 처리방침.

제공되는 콘텐츠
  • 낚시성 링크가 아닌 심도 있는 글
    단일 주제에 대해 6분에서 11분 동안 집중할 수 있는 깊이 있는 글을 제공합니다.
  • 현장 운영 전문가가 작성
    엔지니어, 규제 담당 책임자 및 내부 제품 전문가가 직접 작성합니다.
  • 지역별 특성 반영
    규제 기관, 통신사 및 채널 믹스에 대한 중동·북아프리카 기반의 관점.
  • 월 1회
    드립 캠페인은 진행하지 않습니다. 공유할 내용이 있을 때 에세이 한 편을 발행합니다.
읽는 것을 멈추고, 실행하세요.

우리가 작성하는 대부분의 내용은 실제 운영 과정에서 얻은 경험입니다.

이 글에 공감하셨다면, 저희와 이야기를 나누어 보시기 바랍니다. 활용 사례, 물량, 시장 정보를 알려주세요. 최적의 경로, 요금, 그리고 연락 가능한 레퍼런스 고객 사례를 준비하여 답변해 드리겠습니다.

$ curl -X POST https://api.broadnet.me/sms/sendSms