본문으로 건너뛰기
가이드

Wixzel Voice MCP 서버로 Claude에게 실제 전화 회선 연결하기

이 가이드를 마치면 Claude가 공식 Wixzel Voice MCP 서버를 통해 Claude Code나 claude.ai에서 직접 보유한 SIP 트렁크로 실제 전화를 걸고, 통화가 끝날 때까지 기다린 뒤 대화 기록을 읽어 줄 수 있습니다. 설정에는 약 15분이 걸리며, 대부분은 통신사 콘솔에서 하는 작업입니다. MCP 서버 자체는 무료입니다. 통화 요금은 음성 엔진 요금만큼 나옵니다. 기본 classic 엔진에서는 연결된 1분당 $0.0867, 3분 통화에 약 $0.26이며, 선불 잔액에서 초 단위로 청구되고 회선에는 통신사 요금이 별도로 붙습니다.

작성 · 게시 · 업데이트

소요 시간
약 15분
엔진
classic
엔진 사용 시간
연결된 1분당 $0.0867

시작하기 전에 무엇이 필요한가요?

  • 크레딧이 있는 Wixzel Voice 계정. 최소 충전 금액은 $5이며, 통화용 무료 체험 크레딧은 없습니다.
  • 이미 사용 중인 통신사(Twilio, Telnyx, Plivo, Vonage, Bandwidth, Exotel, Vobiz 또는 모든 SIP 제공업체)의 SIP 트렁크와 그 트렁크에 연결된 전화번호. Wixzel Voice는 번호를 판매하거나 이전(포팅)하지 않습니다. 통신사 계정이 Twilio, Telnyx, Plivo, Vobiz, Vonage이고 콘솔에서 연결했다면 Wixzel Voice에서 그 계정으로 번호를 구매할 수 있으며, 요금은 통신사가 청구합니다.
  • Claude Code, 또는 사용 중인 요금제에서 사용자 지정 커넥터를 쓸 수 있는 claude.ai나 Claude Desktop.

Wixzel Voice에서 단계별로 어떻게 만드나요?

  1. 01Claude Code에 서버 추가하기

    호스팅 서버의 주소는 https://mcp.voice.wixzel.com/mcp이며 OAuth로 로그인하므로 API 키를 어디에도 붙여 넣지 않습니다. 터미널에서 다음 명령으로 추가합니다.

    shell
    claude mcp add --transport http wixzel-voice https://mcp.voice.wixzel.com/mcp

    Claude Code 안에서 /mcp를 입력하고 wixzel-voice 서버를 선택한 뒤 Authenticate를 고릅니다. 브라우저에서 콘솔이 열리면 로그인하고, 클라이언트에 주고 싶지 않은 스코프의 체크를 해제한 다음 승인합니다. Claude Code는 승인한 스코프로 제한된 전용 API 키를 받습니다.

  2. 02또는 claude.ai나 Claude Desktop에 추가하기

    Settings에서 Connectors를 열고 같은 URL https://mcp.voice.wixzel.com/mcp로 사용자 지정 커넥터를 추가합니다. Connect를 누르고 콘솔에 로그인한 뒤 스코프를 승인합니다. 커넥터는 전용 키를 받으며, 콘솔의 AI 클라이언트 페이지에서 언제든 연결을 해제할 수 있고, 해제하는 즉시 키가 작동을 멈춥니다.

    Cursor처럼 mcpServers JSON 설정으로 서버를 로컬에서 실행하는 클라이언트는 같은 서버를 npm에서 받아, 환경 변수에 API 키를 넣고 실행합니다.

    shell
    claude mcp add wixzel-voice -e WIXZEL_API_KEY=wv_live_... -- npx -y wixzel-voice-mcp
    json
    {
      "mcpServers": {
        "wixzel-voice": {
          "command": "npx",
          "args": ["-y", "wixzel-voice-mcp"],
          "env": { "WIXZEL_API_KEY": "wv_live_..." }
        }
      }
    }
  3. 03빠른 시작 프롬프트로 계정 설정하기

    서버에는 quickstart 프롬프트가 포함되어 있으며, Claude Code에서는 슬래시 명령으로 표시됩니다. "치과 예약 확인하기"처럼 목표를 선택적으로 넘길 수 있습니다.

    Claude Code
    /mcp__wixzel-voice__quickstart

    Claude는 먼저 이미 있는 것(list_sip_trunks, list_phone_numbers, list_agents, get_balance)을 조회해 중복을 만들지 않습니다. 그다음 서버의 운영 가이드가 정한 순서대로 진행합니다. list_engines로 사용할 수 있는 엔진과 요금을 확인하고, 사용자가 알려 준 통신사 자격 증명으로 create_sip_trunk를 실행하고, 그 트렁크에 create_phone_number를 실행한 뒤, 짧은 구어체 프롬프트와 첫 인사, 발신자 번호를 넣어 create_agent를 실행합니다. 자격 증명은 지어내지 않고 사용자에게 묻고, 전화를 거는 작업 앞에서는 멈춥니다.

    통신사 쪽 설정 두 가지는 사용자만 바꿀 수 있습니다. 새 트렁크가 반환하는 platform_ip를 허용 목록에 추가해 통신사가 그 IP의 발신 통화를 받아들이게 하고, 통신사의 수신 라우팅을 트렁크의 origination_uri로 지정합니다. Claude가 두 값을 모두 읽어 주며, check_sip_trunk_status로 트렁크에 연결할 수 있는지 확인할 수 있습니다.

  4. 04통화를 요청하고 승인하기

    에이전트와 번호가 준비되면 평소 말하듯이 요청합니다.

    prompt
    Call +14155551234 with the Support agent. Ask whether tomorrow's 10:00
    delivery slot still works, and tell me what they said.

    Claude는 place_call을 고릅니다. 이 도구는 비용이 발생하고 실제 전화를 울리는 도구로 표시되어 있고, 도구 설명이 모델에게 먼저 사용자에게 확인하라고 지시하므로 클라이언트가 실행 전에 승인을 요청합니다. 모든 place_call에는 멱등성 키가 붙습니다. 재시도는 Claude가 같은 idempotency_key를 다시 넘길 때만 안전하며, 도구 설명이 그렇게 하도록 요청합니다.

    대화를 나누는 것은 Claude가 아니라 직접 만든 음성 에이전트입니다. Claude는 통화가 끝날 때까지 get_call을 폴링한 뒤 대화 기록, 상태, 그리고 비용을 100만분의 1달러 단위로 나타낸 cost_micros를 읽어 줍니다.

  5. 05실행 전에 확인을 묻는 도구 알아 두기

    Wixzel Voice는 네 가지 도구를 비용이 발생하거나 현실에 영향을 주는 도구로 표시합니다. place_call은 번호로 전화를 걸고, test_call_agent는 번호로 전화를 걸어 한 문장을 말하고, start_campaign은 캠페인의 모든 리드에게 전화를 걸고, create_topup은 결제를 시작합니다. get_call이나 list_usage_events처럼 읽기만 하는 도구는 읽기 전용으로 표시되므로 클라이언트가 묻지 않고 실행할 수 있습니다.

    create_topup은 스스로 결제하지 않습니다. 사람이 직접 열어서 완료해야 하는 결제 링크를 반환합니다.

    스코프는 두 번째 안전장치입니다. 특정 스코프를 요청하지 않은 클라이언트에는 에이전트용 기본 세트가 제시됩니다. 충전을 시작하는 billing:write와 키를 발급하는 api_keys:write는 기본으로 제시되지 않으며 의도적으로 부여해야 합니다. 관리자 스코프는 없습니다.

  6. 06통화가 실패하면 원인 묻기

    서버에는 프롬프트가 두 개 더 포함되어 있습니다.

    Claude Code
    /mcp__wixzel-voice__diagnose_call
    /mcp__wixzel-voice__spend_report

    diagnose_call은 통화 ID를 받아 기록의 failure_code와 failure_reason, 사용량 이벤트, 트렁크 상태, 최근 SIP 로그를 읽고, 해결할 곳이 통신사인지 에이전트인지 알려 줍니다. 진단하는 동안 전화를 걸지 않습니다. spend_report는 기간별 사용량을 구성 요소별, 통화별 달러 금액으로 정리합니다.

Wixzel Voice에서 이 빌드의 비용은 얼마인가요?

classic 엔진에서 연결된 1분당 $0.0867로 3분 통화를 할 때의 엔진 사용 시간 비용: 통화당 약 $0.26. 전화 통신은 자체 트렁크에서 통신사 요금으로 청구되며 포함되지 않습니다.

이 가이드 빌드의 월 엔진 비용
월 통화 수연결된 시간(분)월 엔진 비용
2060$5.20
100300$26.01
5001,500$130

Wixzel Voice는 MCP 서버와, 계정을 조회하고 설정하는 도구에 요금을 받지 않습니다. 크레딧은 실제 통화에만 사용됩니다. 엔진의 분당 요금이 초 단위로 청구되고, 트렁크에는 통신사 자체 요금이 붙으며 Wixzel Voice는 여기에 마진을 붙이지 않습니다. 연결되지 않은 통화는 요금이 없습니다.

선불이며 구독과 무료 등급이 없습니다. $5부터 크레딧을 충전하면 사용량만큼 차감됩니다. 내 사용량으로 추정해 보기.

이 빌드에는 Wixzel Voice의 어떤 한도가 적용되나요?

  • 전화 통화에는 직접 보유한 SIP 트렁크와 그 트렁크의 번호가 필요합니다. Wixzel Voice는 번호를 판매, 이전하거나 보유하지 않습니다. 콘솔에서 연결한 Twilio, Telnyx, Plivo, Vobiz, Vonage 계정이라면 phone_numbers:purchase 스코프를 부여한 뒤 Claude가 purchase_phone_number로 번호를 구매할 수 있으며, 요금은 통신사가 청구합니다.
  • 유료 도구 실행 전의 승인 화면은 클라이언트가 표시합니다. 서버는 해당 도구를 표시하고 모델에게 확인하라고 지시할 뿐이므로, 도구를 자동 승인하도록 설정한 클라이언트는 묻지 않습니다. 이 서버에서는 자동 승인을 꺼 두십시오.
  • 계정당 기본적으로 동시에 5건의 통화를 진행할 수 있으며, 요청하면 한도를 늘려 드립니다.
  • 테스트 통화도 실제 통화입니다. 통신사를 통해 실제 전화가 울리고 요금이 계산됩니다. 무료 테스트 모드는 없습니다.
  • Wixzel Voice의 동작 변경은 날짜 기반 Wixzel-Version 헤더로 구분되어 배포됩니다.

자주 묻는 질문

Claude가 전화를 걸게 하려면 어떻게 해야 하나요?

Wixzel Voice MCP 서버를 연결합니다. Claude Code에서는 claude mcp add --transport http wixzel-voice https://mcp.voice.wixzel.com/mcp를 실행하고, claude.ai나 Claude Desktop에서는 같은 URL로 사용자 지정 커넥터를 추가한 뒤 로그인하고 스코프를 승인합니다. 그러면 Claude가 음성 에이전트를 만들고, place_call로 직접 보유한 SIP 트렁크를 통해 전화를 걸고, 통화가 끝날 때까지 기다린 뒤 대화 기록을 읽을 수 있습니다. 전화를 걸기 전에 클라이언트가 승인을 요청합니다.

통화에서 말하는 목소리가 Claude인가요?

기본적으로는 아닙니다. Claude는 통화를 설정하고 결과를 읽으며, 대화는 선택한 엔진에서 직접 만든 음성 에이전트가 진행합니다. 에이전트의 언어 모델로 Claude 모델을 쓸 수도 있습니다. classic 파이프라인에서 llm으로 openrouter/anthropic/claude-haiku-5.5를 지정하면 기본 음성 단계와 함께 연결된 1분당 $0.0865입니다.

Claude가 내 API 키를 받게 되나요?

호스팅 서버에서는 받지 않습니다. OAuth가 승인한 스코프로 제한된 클라이언트 전용 키를 발급하고, 콘솔의 AI 클라이언트 페이지에서 연결을 해제하면 그 키는 즉시 폐기됩니다. 로컬 npm 서버에서는 환경 변수에 넣은 키를 그대로 사용합니다.

어떤 MCP 클라이언트에서 사용할 수 있나요?

모든 MCP 클라이언트에서 사용할 수 있습니다. OAuth를 쓰는 HTTP 방식은 Claude Code, claude.ai, Claude Desktop 등 원격 서버를 지원하는 클라이언트에서, API 키를 쓰는 stdio 방식은 Claude Code, Codex, Cursor 등 JSON 설정으로 서버를 실행하는 모든 클라이언트에서 동작합니다.

더 읽을거리

  • MCP 서버문서

    호스팅 및 로컬 설정, 스코프, 전체 도구 목록, 셀프 호스팅.

  • SIP 트렁크문서

    허용 목록에 추가할 플랫폼 IP와 수신 통화가 가는 곳을 통신사별로 안내합니다.

  • 빠른 시작문서

    같은 네 단계를 HTTP 요청과 SDK 호출로 보여 줍니다.

  • 크레딧문서

    선불 잔액이 예약되고 사용되는 방식.

에이전트형 전화 통신을 위한 API

Wixzel Voice 소개

Wixzel Voice는 자체 SIP 트렁크로 실제 전화를 걸고 받거나 웹·모바일 앱에서 사람들과 대화하는 AI 에이전트를 만들기 위한 음성 AI API입니다. API 키 하나와 선불 잔액 하나로 모든 음성 엔진을 사용하며, 실제 사용량에 따라 초 단위로 과금됩니다.

Wixzel Voice로 Node.js에서 Twilio AI 접수원 만들기

Node.js로 만든 AI 접수원이 기존 Twilio 번호로 오는 전화를 받고 API에 예약을 잡는 상태.

Wixzel Voice sarvam 엔진으로 만드는 힌디어·말라얄람어 전화 에이전트

Sarvam의 인도 언어 모델로 동작하며 SIP 트렁크로 전화를 받거나 거는 전화 에이전트 두 개(힌디어 하나, 말라얄람어 하나).

Wixzel Voice로 WebSocket 기반 Flutter 음성 에이전트 추가하기

API 키는 서버에 두고, 전화번호 없이 사용자가 WebSocket으로 음성 에이전트와 대화하는 Flutter 앱.

Wixzel Voice API로 실제 전화 통화에 Gemini Live 연결하기

cURL 요청 네 번으로 SIP 트렁크를 통해 실제 전화를 거는 Gemini Live 에이전트, 그리고 대화 기록과 비용이 담긴 통화 기록.

Wixzel Voice로 AI 리드 선별 캠페인 실행하기

에이전트가 SIP 트렁크로 리드 목록에 동시 통화 한도에 맞춘 배치 단위로 전화를 걸고, 모든 통화의 상태와 대화 기록을 읽어 오는 상태.

Wixzel Voice로 웹사이트에 말하는 AI 마스코트 추가하기

웹사이트 구석에서 방문자가 브라우저로 통화하는 말하는 마스코트. 지정한 도메인과 일일 한도 안에서만 동작하고, 모든 발신자가 목록에 남습니다.

Wixzel Voice로 Flutter 앱에 에이전트 마스코트 표시하기

실시간 통화 중 에이전트 음성에 맞춰 입을 움직이는 에이전트 마스코트가 있는 Flutter 화면. API 키는 서버에 둡니다.

첫 음성 에이전트를 만드세요