시징을 위한 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를 그대로 노출한다는 점입니다.
- 사용자가 AI 호스트에게 다음과 같이 요청합니다: "WhatsApp에 있는 이 고객에게 배송 업데이트를 보내줘".
- 모델은 MCP 클라이언트가 가져온 목록에서 WhatsApp 전송 도구와 같은 도구를 선택하고 해당 인수를 채웁니다.
- MCP 클라이언트는 Bearer 토큰과 함께 https://mcp.broadnet.me/mcp로 tools/call 요청을 HTTP POST로 보냅니다.
- BroadNet MCP 서버는 토큰을 검증하고 해당 BroadNet API 엔드포인트를 호출합니다.
- 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 서버에 어떻게 연결하나요?
- BroadNet 계정에서 토큰을 가져오세요. BroadAdmin 포털의 Integrations 메뉴에서 MCP Integration을 선택하면 임시 키가 발급됩니다. 영구 키는 계정 관리자 또는 마스터 계정에서 발급받을 수 있습니다.
- MCP 클라이언트에 서버를 추가하세요. 대부분의 클라이언트는 아래와 같은 JSON 설정을 사용합니다. 필드 이름은 클라이언트에 따라 약간씩 다를 수 있으므로, 사용 중인 클라이언트의 문서를 확인하시기 바랍니다.
- 토큰이 커밋되는 파일에 포함되지 않도록 주의하세요. 아래 설정 예시와 같이 클라이언트의 환경 변수 지원 기능을 사용하세요.
- 도구 목록을 열고 에이전트에게 필요하지 않은 모든 도구의 스위치를 끄세요.
- 에이전트에게 고객 데이터에 접근하도록 허용하기 전에, 본인 소유의 번호로 메시지 하나를 보내 테스트를 진행하세요.
{ "mcpServers": { "broadnet": { "type": "http", "url": "https://mcp.broadnet.me/mcp", "headers": { "Authorization": "Bearer ${BROADNET_TOKEN}" } } }}클라이언트 없이 연결을 테스트하려면, 직접 초기화 요청을 보내세요:
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일에 확인되었습니다:
event: messagedata: {"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 token | Authorization: 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를 사용하세요.
출처
- Model Context Protocol, 사양 개요 (개정 2026-07-28), 2026년 9월 26일 접속.
- Model Context Protocol, Transports (2025-06-18) 및 Transports (2026-07-28), 2026년 9월 26일 접속.
- Model Context Protocol, Authorization (2025-06-18), 2026년 9월 26일 접속.
- Model Context Protocol, Tools (2026-07-28), 2026년 9월 26일 접속.
- BroadNet, MCP 서버 문서, 그리고 2026년 9월 26일의 https://mcp.broadnet.me/mcp 실시간 프로브.
관련 읽을거리: 기업 메시징의 AI 에이전트 및 기업용 에이전트 AI 플랫폼 선택하기.
