Skip to main content
Glama
kenniole
by kenniole

☎️ five9-mcp

당신의 Five9 컨택센터를 AI의 손에.

오픈소스 MCP 서버로, Claude, ChatGPT 또는 모든 MCP 클라이언트를 Five9 클라우드 컨택센터에 연결합니다 — Cloudflare Workers에서 제로 의존성으로 실행됩니다.

License: MIT Runtime Dependencies MCP Tools

빠른 시작 · Claude 연결하기 · ChatGPT 연결하기 · 도구 · 아키텍처


AI에게 이런 것들을 물어보세요:

"지금 통화 중인 사람은 누구고, 영업 큐는 얼마나 깊나요?" 📊 "재유치 목록을 위한 프리뷰 캠페인을 만들고, 영업 스킬을 할당한 다음 시작해 주세요." 🛠️ "OUTBOUND_AGED 캠페인을 중지하고 이 리드 3개를 콜백 목록에 추가해 주세요." 📞 "신규 상담원 온보딩: 사용자를 생성하고, 청구 스킬을 레벨 2로 할당해 주세요." 🧑💼 "555-867-5309가 당사의 DNC에 등록되어 있나요? 누군가 전화를 걸기 전에 확인해 주세요." 🚫 "어제의 통화 기록 보고서를 가져와서 포기율을 요약해 주세요." 📈 "완전한 IVR을 구축해 주세요: 옵션 1은 일정 관리, 옵션 2는 청구, 업무 시간 외에는 음성사서함으로 연결됩니다." 🧩

내부적으로 이 서버는 Five9의 Configuration(관리자) 및 Statistics(감독자) SOAP 웹 서비스 — Five9의 관리 화면을 여전히 구동하는 API — 와 통신하며, 이를 MCP 스트리밍 가능 HTTP를 통해 깔끔한 JSON 도구로 노출합니다. 수제 봉투, 약 60줄의 XML 파서, npm 패키지 없음. 모든 도구는 실제 Five9 도메인에서 테스트되었습니다.

✨ 내장 웹 UI

배포하면 Worker는 API 이상의 것을 제공합니다:

페이지

제공 기능

/

정교한 랜딩 페이지: 실시간 서버 상태, 이 설정 가이드, 클릭 한 번으로 AI 연결하는 방법 안내, 전체 도구 카탈로그

/setup

설정 마법사 — 브라우저에서 Five9 자격 증명을 입력하고, 실시간으로 확인받고, 액세스 키를 받습니다. 터미널, 비밀 명령어 불필요

/console

대화형 콘솔 — 액세스 키를 붙여넣고, 77개의 그룹화된 도구 중 하나를 선택하고, 해당 스키마에서 생성된 양식을 작성한 후 브라우저에서 바로 실제 Five9 도메인에 대해 실행합니다

/mcp

MCP 엔드포인트 자체 (스트리밍 가능 HTTP, 상태 비저장)

/health

JSON 상태 확인

콘솔은 자격 증명을 신속하게 확인하고, 각 도구의 반환 값을 탐색하거나, 캠페인을 디버깅하는 가장 빠른 방법입니다 — AI가 필요 없습니다.

Related MCP server: five9-mcp

🚀 빠른 시작 — 터미널 불필요

무료 Cloudflare 계정과 API 액세스 권한이 있는 Five9 사용자가 필요합니다 — 전용 Five9 API 사용자를 생성하여 AI가 수행하길 원하는 작업으로만 범위를 제한하고, 개인 관리자 로그인을 재사용하지 마세요.

1 — Cloudflare에 배포 (한 번의 클릭, 브라우저에서)

Deploy to Cloudflare

Cloudflare에 로그인하고 클릭하여 진행하세요 — 이 Worker의 사본(필요한 KV 네임스페이스 포함)이 생성되고 https://five9-mcp.you.workers.dev와 같은 URL이 제공됩니다.

2 — 설정 마법사 실행 (브라우저에서)

새 서버에서 /setup 을 엽니다. Five9 사용자 이름, 비밀번호, 리전을 입력하세요 — 마법사는 저장하기 전에 Five9에 대해 실시간으로 확인한 후 액세스 키를 제공합니다 (한 번만 표시되므로 비밀번호 관리자에 저장하세요).

3 — AI 연결 (아래 안내 참조), 그런 다음 "연결을 확인하고 내 캠페인을 나열해 줘." 라고 물어보세요. 🎉

git clone https://github.com/ryanshatz/five9-mcp
cd five9-mcp
npx wrangler deploy   # provisions the CONFIG KV namespace on first deploy

그런 다음 /setup 마법사를 사용하거나 건너뛰고 Wrangler 시크릿으로 자격 증명을 관리할 수 있습니다 (시크릿이 마법사를 재정의합니다):

npx wrangler secret put FIVE9_USERNAME   # e.g. apiuser@yourdomain
npx wrangler secret put FIVE9_PASSWORD
npx wrangler secret put MCP_AUTH_TOKEN   # a long random string — this is the key to your server

기본값은 wrangler.toml에 있으며 미국 도메인에서 작동합니다:

변수

기본값

참고

FIVE9_API_HOST

api.five9.com

EU: api.eu.five9.com · 캐나다: api.ca.five9.com

FIVE9_ADMIN_VERSION

v13

Config Web Services WSDL 버전

FIVE9_SUPERVISOR_VERSION

v13

Statistics Web Services WSDL 버전

🔌 AI 연결하기

Claude 연결하기 (웹 및 데스크톱)

사용자 정의 커넥터는 Free(커넥터 1개), Pro, Max, Team 및 Enterprise 요금제에서 사용 가능합니다.

  1. claude.ai 또는 Claude 데스크톱 앱에서 설정 → 커넥터를 엽니다.

  2. 사용자 정의 커넥터 추가를 클릭합니다.

  3. 이름을 Five9으로 지정하고 /mcp 경로를 포함한 서버 URL을 붙여넣습니다: https://<your-worker>.workers.dev/mcp

  4. 추가를 클릭한 다음 연결을 클릭합니다. Claude는 이 서버의 내장 OAuth를 자동으로 발견하고 인증 페이지를 엽니다.

  5. 🔐 five9-mcp 화면에서 MCP_AUTH_TOKEN을 액세스 키로 붙여넣고 승인을 클릭합니다.

  6. 모든 채팅에서 검색 및 도구 (+) 메뉴를 열고 Five9 커넥터가 켜져 있는지 확인합니다.

Team/Enterprise: 소유자가 먼저 조직 설정 → 커넥터에서 커넥터를 추가합니다. 그러면 구성원이 자신의 설정에서 연결을 클릭하여 승인합니다.

ChatGPT 연결하기

사용자 정의 MCP 커넥터는 개발자 모드가 필요합니다 (Plus/Pro; Business/Enterprise에서는 관리자가 사용자 정의 커넥터를 허용해야 함).

  1. 웹의 ChatGPT에서 설정 → 앱 및 커넥터(때로는 커넥터로만 표시됨)를 엽니다.

  2. 고급 설정에서 개발자 모드를 켭니다.

  3. 커넥터 페이지로 돌아와 생성을 클릭합니다.

  4. 이름을 Five9으로 지정하고, MCP 서버 URLhttps://<your-worker>.workers.dev/mcp로 설정하고, OAuth 인증을 선택합니다.

  5. 신뢰 프롬프트를 확인하고 저장합니다. ChatGPT가 이 서버의 인증 페이지를 엽니다 — MCP_AUTH_TOKEN을 붙여넣고 승인을 클릭합니다.

  6. 새 채팅에서 + / 도구 메뉴를 열고 Five9 커넥터를 활성화합니다 (개발자 모드 커넥터는 대화별로 활성화됩니다). ChatGPT는 각 도구 호출을 확인하도록 요청합니다 — 다이얼러를 시작할 수 있는 모든 작업에 합리적입니다. 😄

Claude Code 연결하기

claude mcp add --transport http five9 https://<your-worker>.workers.dev/mcp \
  --header "Authorization: Bearer <your MCP_AUTH_TOKEN>"

원시 액세스 키는 베어러 토큰으로 직접 작동합니다 — OAuth 절차 불필요. Claude Code 내에서 /mcp를 실행하여 확인하세요.

기타 MCP 클라이언트

MCP 스트리밍 가능 HTTP를 지원하는 모든 클라이언트가 작동합니다 — OAuth 흐름을 완료하거나 액세스 키를 베어러 토큰으로 보내세요:

curl -X POST https://<your-worker>.workers.dev/mcp \
  -H "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_connection","arguments":{}}}'

src/oauth.js단일 운영자 배포를 위해 설계된 최소한의 OAuth 2.1 인증 서버(메타데이터 검색, 동적 클라이언트 등록, PKCE S256, 리프레시 토큰)를 구현합니다:

  • 동의 화면의 "로그인"은 서버의 액세스 키(MCP_AUTH_TOKEN)입니다.

  • 모든 것은 상태 비저장입니다 — 클라이언트 ID, 인증 코드 및 토큰은 MCP_AUTH_TOKEN으로 키가 지정된 HMAC-SHA256 서명 블롭입니다. KV, Durable Objects 불필요.

  • 두 인증 경로가 동시에 작동합니다: OAuth에서 발급된 토큰 베어러 자격 증명으로서의 원시 키.

  • 시크릿을 순환시켜 한 번에 모든 것을 취소하세요: npx wrangler secret put MCP_AUTH_TOKEN.

🧰 도구 상자

77개의 도구. 🟢 = 읽기 (항상 안전) · ✏️ = 쓰기 (도메인을 변경함 — 서버는 AI에게 먼저 확인하라고 알림)

69개의 SOAP 도구 (사용자 이름/비밀번호) + 8개의 OAuth New Platform REST 도구 (Consumer Key/Secret — OAuth New Platform APIs 참조).

핵심 트릭: 통화 흐름을 한 문단으로 설명하면 AI가 이를 설계하고, 채팅에서 Mermaid 다이어그램을 보여주며, 작동하는 IVR 스크립트를 배포합니다. 모델은 Five9의 IVR XML을 자유롭게 생성하지 않습니다: 제한된 JSON 흐름 사양(재생 / 메뉴 / 업무 시간 / 스킬 전환 / 음성사서함 / 종료)을 채우고, 그래프 검증기가 모든 분기와 참조를 확인하며, 결정론적 코드가 디자이너 형태의 XML(모듈 배선, 프롬프트 인코딩 및 필드 순서는 모두 실제 내보낸 스크립트에서 파생됨)을 생성합니다.

도구

기능

🟢

validate_ivr_flow

흐름 사양을 그래프 검증 + 참조된 스킬/프롬프트가 도메인에 존재하는지 확인

🟢

render_ivr_flow

흐름 사양 또는 기존 IVR 스크립트를 Mermaid 순서도로 렌더링

✏️

build_ivr_script

전체 스크립트 XML을 구성하고 도메인에 생성 (dry_run으로 먼저 검사 가능)

✏️

generate_prompt_audio

최신 AI 음성으로 프롬프트를 음성화하고 Five9 호환 G.711 u-law WAV로 업로드. API 키 불필요: Worker에 내장된 Workers AI(Deepgram Aura, 약 40개 음성)로 구동됨

권장 흐름: 검증 → 렌더링(사람에게 보여주기!) → 프롬프트 생성 → 빌드 → 인바운드 캠페인에 연결. generate_prompt_audio는 기본적으로 Cloudflare Workers AI에서 실행됩니다: 외부 TTS 계정, API 키 불필요, 이미 배포한 Cloudflare 계정에 청구되는 프롬프트당 1센트 미만. ElevenLabs/OpenAI도 키 시크릿을 설정하면 작동하며, {tts} 프롬프트(Five9의 내장 로봇 음성)는 전혀 필요하지 않습니다.

도구

기능

🟢

about

AI를 위한 운영자 컨텍스트 — 이 서버를 운영하는 사람과 기본 규칙

🟢

check_connection

Five9 자격 증명이 작동하는지 확인; 표시 가능한 스킬 수 반환

🟢

get_api_usage

현재 Five9 API 사용량 카운터 대 속도 제한

도구

기능 설명

🟢

list_campaigns

캠페인 목록 조회 (이름, 유형, 상태, 모드)

🟢

inspect_campaign

한 번의 호출로 캠페인 상태 + 연결된 리스트 + DNIS 조회

🟢

get_campaign_details

전체 캠페인 설정 조회 (다이얼링 모드, 비율, 녹음, 랩업 시간 등)

✏️

create_campaign

아웃바운드 또는 인바운드 캠페인 생성 (BASIC 또는 ADVANCED)

✏️

modify_campaign

캠페인 설정 수정 — 읽기-수정-쓰기 방식, 변경 사항만 전달

✏️

rename_campaign

캠페인 이름 변경

✏️

delete_campaign

캠페인 삭제

✏️

control_campaign

시작 / 중지 / 강제 중지 / 초기화 / 리스트 위치 초기화

✏️

manage_campaign_lists

다이얼링 리스트 연결/해제 (우선순위 설정 포함)

✏️

manage_campaign_skills

캠페인에 라우팅 스킬 추가/제거

✏️

manage_campaign_dnis

인바운드 번호 연결/해제

✏️

manage_campaign_dispositions

캠페인에 상담원 종료 코드 추가/제거

🟢

list_campaign_profiles

캠페인 프로필 목록 조회 (ANI, 시도 횟수, 시간 제한)

✏️

manage_campaign_profile

캠페인 프로필 생성 / 수정 / 삭제

✏️

manage_campaign_profile_filter

프로필의 CRM 레코드 선택 기준 및 다이얼링 순서 읽기/편집

도구

기능 설명

🟢

list_dialing_lists

다이얼링 리스트 목록 + 레코드 수 조회

✏️

create_list / delete_list

다이얼링 리스트 생성 또는 삭제

✏️

add_record_to_list

리스트에 리드 추가 (비동기 가져오기)

✏️

add_records_to_list

여러 리드를 한 번에 비동기 가져오기 (CRM/리스트 모드 설정 가능)

✏️

delete_record_from_list

리스트에서 일치하는 레코드 삭제

🟢

get_import_result

비동기 리스트/CRM 가져오기 결과 조회

도구

기능 설명

🟢

search_contacts

정확한 필드 값으로 연락처 검색

✏️

update_contact

연락처 업데이트 (기본적으로 단일 일치 시에만 안전하게 동작)

✏️

bulk_update_contacts

여러 CRM 연락처를 한 번에 비동기 업데이트 (유형 "crm"으로 폴링)

✏️

delete_contact

연락처 삭제 (정확히 하나만 일치하는 경우에만)

🟢

list_contact_fields

도메인의 연락처 필드 스키마 조회

✏️

manage_contact_field

사용자 정의 CRM 필드 생성 / 수정 / 삭제

도구

기능 설명

✏️

manage_dnc

도메인 DNC 리스트에서 번호 확인 / 추가 / 제거

🟢

get_dialing_rules

도메인 다이얼링 규칙 (시간/주 제한) 조회

도구

기능 설명

🟢

list_users

사용자 목록 조회 (일반 정보 포함)

🟢

get_user_details

한 사용자의 전체 레코드 조회: 역할, 스킬, 그룹

✏️

create_user

역할, 스킬, 그룹을 포함한 사용자 생성

✏️

modify_user

사용자 정보 수정 — 변경 사항만 전달

✏️

delete_user

사용자 삭제

🟢

list_user_profiles

역할/권한 템플릿 조회

🟢

list_skills / get_skill_details

스킬 조회 (할당된 사용자 포함 또는 미포함)

✏️

manage_skill

스킬 생성 / 수정 / 삭제

✏️

manage_user_skills

사용자에게 스킬 할당, 레벨 설정

✏️

set_user_roles

역할 부여/회수 (agent, admin, supervisor, reporting, crmManager) (권한 탭 포함)

🟢

list_agent_groups

상담원 그룹 및 구성원 조회

✏️

manage_agent_group

그룹 생성/삭제, 상담원 추가/제거

✏️

manage_reason_code

준비 안 됨 / 로그아웃 사유 코드 관리

도구

기능 설명

🟢

list_dispositions

통화 종료 코드 및 설정 조회

✏️

manage_disposition

종료 코드 생성 / 수정 / 이름 변경 / 삭제 (재다이얼 타이머 포함)

🟢

list_ivr_scripts / get_ivr_script

IVR 스크립트 — 메타데이터 또는 단일 스크립트의 전체 XML 조회

✏️

manage_ivr_script

IVR 스크립트 생성 / 수정 / 삭제 (전체 xmlDefinition 전송)

🟢

list_prompts

도메인의 음성 프롬프트 조회

✏️

manage_tts_prompt

텍스트 음성 변환 프롬프트 생성 / 수정 / 삭제

✏️

manage_wav_prompt

사전 녹음된 WAV 프롬프트 생성 / 수정 / 삭제 (base64; G.711 µ-law 8kHz 모노)

🟢

list_dnis

프로비저닝된 인바운드 번호 조회 (할당되지 않은 번호만 선택 가능)

🟢

list_call_variables

통화 변수 및 변수 그룹 조회

✏️

manage_call_variable

사용자 정의 통화 변수 생성 / 삭제

🟢

list_web_connectors

웹 커넥터 통합 조회

✏️

manage_web_connector

웹 커넥터 생성 / 삭제 (URL 팝업 상담원 트리거)

✏️

manage_speed_dial

단축 다이얼 코드 목록 조회 / 생성 / 삭제

🟢

get_vcc_configuration

도메인 수준 VCC 설정 조회

도구

기능 설명

🟢

run_report

폴더 + 이름으로 보고서 실행, 선택적 시간 범위 설정

🟢

get_report_result

보고서의 CSV 출력 결과 폴링

🟢

get_realtime_stats

상담원 상태, ACD 상태, 캠페인 상태, 캠페인 통계 (다이얼러 관리자 및 자동 다이얼 뷰 포함)

이 도구들은 Five9의 최신 OAuth 2.0 "신규 플랫폼" REST API를 사용하며, 위 도구들이 사용하는 SOAP API가 아닙니다. 이를 사용하려면 SOAP 사용자 이름/비밀번호가 아닌 API 액세스 제어 자격 증명(Consumer Key/Secret)이 필요합니다. 자세한 내용은 OAuth 신규 플랫폼 API를 참조하세요.

도구

기능 설명

🟢

rest_check_connection

OAuth 자격 증명 확인 — 베어러 토큰 획득 (도메인 데이터 없음)

🟢✏️

rest_call

모든 신규 플랫폼 엔드포인트에 대한 일반 인증 호출 (메서드 + 경로 + 본문), 속도 제한/백오프 및 ETag 지원

🟢✏️

manage_circle

서클 — 목록 조회 / 조회 / 생성 / 삭제 (SOAP에 해당 없음)

🟢

list_np_prompts

신규 플랫폼 프롬프트 API를 통한 음성 프롬프트 조회 (페이지네이션)

🟢

list_interaction_dispositions

상호작용 API를 통한 종료 코드 조회 (SOAP 목록보다 풍부함, 읽기 전용)

🟢

get_domain_info

도메인 메타데이터 조회 (ID, 이름, 테넌트, 서비스 엔드포인트)

🟢

list_data_tables

데이터 테이블 (구조화된 조회 테이블, SOAP에 해당 없음) — 별도 data-tables 자격 증명 사용

🟢

get_data_table_rows

데이터 테이블의 행을 ID로 조회 (페이지네이션)

🔐 OAuth 신규 플랫폼 API

SOAP 도구와 함께, 서버는 Five9의 최신 OAuth 2.0 신규 플랫폼 REST API(예: 서클, 상호작용, 프롬프트, 도메인 메타데이터)를 호출할 수 있습니다. 이 API는 SOAP 사용자 이름/비밀번호와 다른 자격 증명을 사용합니다.

  • API 액세스 제어 소비자 키소비자 비밀번호는 Five9 관리 콘솔 → API 액세스 제어(제한적 가용성 기능)에서 생성됩니다. 생성하려면 security → applications → Create applications 권한이 필요하며, 계정은 Five9 Identity Service로 마이그레이션되어야 합니다(레거시 API/에이전트/감독자 역할이 있는 사용자는 해당 역할이 제거될 때까지 마이그레이션에서 제외됨).

  • 이를 환경 변수/비밀 변수로 구성합니다(SOAP 자격 증명과는 별도로).

FIVE9_CONSUMER_KEY=...           # "All APIs access" family credential (default)
FIVE9_CONSUMER_SECRET=...
FIVE9_DOMAIN_ID=131109           # your Admin Console domain id
FIVE9_REST_REGION=US             # US | US-ALPHA | CA | EU | IN | UK
# or pin the base URL directly: FIVE9_REST_BASE_URL=https://api.prod.us.five9.net

# Optional second credential for the "Data Tables access" family (its own key):
FIVE9_DT_CONSUMER_KEY=...
FIVE9_DT_CONSUMER_SECRET=...

그런 다음 rest_check_connection을 실행하여 토큰 흐름을 확인합니다. 각 자격 증명이 접근할 수 있는 범위는 API 제품군 + 범위에 의해 결정됩니다. all-apis-access가 말 그대로 모든 서비스에 대한 접근을 부여하는 것은 아니며, 쓰기 접근은 서비스별로 다릅니다.

여러 자격 증명 / 제품군. 각 API 액세스 제어 자격 증명은 하나의 제품군(Apigee API 제품에 매핑됨)에 속하며, 해당 제품군이 키가 호출할 수 있는 서비스를 결정합니다. 서버는 명명된 자격 증명을 지원합니다: default(FIVE9_CONSUMER_KEY/SECRET에서 가져옴) 및 data-tables(FIVE9_DT_CONSUMER_KEY/SECRET에서 가져옴). Data Tables 도구는 data-tables 자격 증명을 자동으로 사용합니다. rest_callrest_check_connectioncredential 인수를 받아 하나를 선택할 수 있습니다.

참고: Five9 시작 가이드에는 토큰 엔드포인트가 /v1/auth/token으로 나와 있지만, 실제 엔드포인트는 /oauth2/v1/token(이 클라이언트가 사용하는 것)입니다.

🎨 운영자 컨텍스트 사용자 지정

src/about.js는 MCP instructions 필드와 about 도구를 통해 연결된 AI에 제공되는 텍스트를 보관합니다: 서버 운영자, 존재 이유, AI의 동작 방식(예: "쓰기 작업 전에 확인") 등. 자신의 배포를 설명하도록 편집하세요 — 예시로 원래 운영자의 컨텍스트가 포함되어 있습니다.

🏗️ 아키텍처

빌드 단계 없음, 종속성 없음 — src/의 일반 JS 모듈:

src/
├── index.js   # router, CORS, MCP JSON-RPC handler, /setup endpoint
├── five9.js   # SOAP client: envelope builder, ~60-line XML parser, one method per Five9 op
├── tools.js   # MCP tool definitions (JSON Schema) + dispatch
├── oauth.js   # stateless OAuth 2.1 server (single-operator model)
├── config.js  # config resolution: Wrangler secrets > KV (setup wizard)
├── ui.js      # landing page, setup wizard, interactive console
└── about.js   # operator context — edit this for your deployment

요청은 상태 비저장입니다: 모든 MCP 호출은 HTTP Basic 인증으로 새로운 Five9 SOAP 교환을 엽니다. Statistics API는 추가로 setSessionParameters 호출이 필요하며, get_realtime_stats가 호출 시 이를 수행합니다.

  • Five9의 엔드포인트는 JAXB에 의해 생성되며 WSDL 시퀀스에 대해 자식 요소 순서를 검증합니다. 이 서버를 확장하는 경우 WSDL(https://api.five9.com/wsadmin/v13/AdminWebService?wsdl, HTTP Basic 인증)을 가져와 <xs:sequence> 순서를 정확히 일치시키세요. 여기에는 basicImportSettings와 같은 기본 유형도 포함되며, 해당 요소는 확장의 요소 앞에 옵니다.

  • addToListCsv는 WSDL에서 대부분을 minOccurs="0"으로 표시하지만 cleanListBeforeUpdate, crmAddMode, crmUpdateModelistAddMode가 필요합니다.

  • 목록/CRM 가져오기는 비동기식입니다: 호출은 즉시 가져오기 식별자를 반환하며, 결과를 얻으려면 get_import_result를 폴링하세요.

  • 연락처 레코드 값은 래핑되어 반환됩니다(<values><data>…</data></values>). 여러 응답은 1개 요소 배열이 예상되는 곳에 단일 객체를 반환합니다. five9.jstoArray()가 이를 정규화합니다.

  • 보고서 시간 기준 순서는 <end><start> 앞에 옵니다(JAXB 알파벳 순서).

  • IVR xmlDefinition은 비주얼 디자이너의 저장된 형식입니다: 모듈은 GUID(ascendants / singleDescendant / branches)로 연결되며, 인라인 TTS 텍스트는 gzip+base64 speakElement 문서로 저장되고, 영업 시간 확인은 __DAY__(일=1..토=7) 및 __TIME__(자정 이후 분) 시스템 변수를 비교합니다. ivr.js가 이 모든 것을 캡슐화합니다.

  • getPrompts프롬프트 ID를 반환하지 않습니다(이름 + 유형만). IVR XML 내부의 파일 프롬프트 참조는 id 0 + 프롬프트 이름으로 허용되며 서버 측에서 정규화됩니다. 푸시된 스크립트는 서버에서 스탬프된 domainId가 추가되어 왕복합니다.

🛡️ 보안

  • Five9 자격 증명은 Cloudflare 계정에만 저장됩니다 — Worker 비밀로, 또는 (마법사 경로) Workers KV 네임스페이스에 암호화되어 저장됩니다. 어떤 도구도 이를 반환하지 않으며, Wrangler 비밀은 항상 KV를 재정의합니다.

  • 설정 마법사는 새롭고 구성되지 않은 서버에서만 열립니다 — 배포 직후 실행하세요. 일단 구성되면 변경하려면 현재 액세스 키가 필요하며, 환경 변수로 관리되는 서버는 마법사 변경을 완전히 거부합니다.

  • 항상 설정을 완료하거나 MCP_AUTH_TOKEN을 설정하세요. 액세스 키 없이 구성되지 않은 서버는 열려 있습니다 — URL을 찾는 사람이 연락처 센터를 제어할 수 있습니다.

  • 쓰기 도구(위 ✏️)는 도메인을 변경합니다. Five9 API 사용자의 역할을 AI가 실제로 수행하기를 원하는 작업으로 제한하세요 — Five9 권한이 실제 보안 경계입니다.

  • manage_dnc removedelete_list는 특별한 주의가 필요합니다. about 지침은 AI에게 사용 전에 확인하도록 지시합니다.

  • 콘솔은 액세스 키를 브라우저의 localStorage에만 저장하며, 호출은 자체 Worker에 대한 동일 출처 요청으로 이루어집니다.

💻 개발

npm run dev      # wrangler dev on http://localhost:8787
npm run deploy   # wrangler deploy

로컬 비밀을 .dev.vars(gitignored)에 넣으세요:

FIVE9_USERNAME=apiuser@yourdomain
FIVE9_PASSWORD=...
MCP_AUTH_TOKEN=dev-local-token

# Optional — external AI voice providers for generate_prompt_audio.
# The default (Workers AI / Deepgram Aura) needs no key at all.
ELEVENLABS_API_KEY=...
OPENAI_API_KEY=...

# Optional — OAuth New Platform REST tools (separate credential; see below)
FIVE9_CONSUMER_KEY=...
FIVE9_CONSUMER_SECRET=...
FIVE9_DOMAIN_ID=131109
FIVE9_REST_REGION=US
FIVE9_DT_CONSUMER_KEY=...        # optional: "Data Tables access" family
FIVE9_DT_CONSUMER_SECRET=...

그런 다음 http://localhost:8787/console을 열고 dev-local-token을 붙여넣은 후 도메인에 대해 도구를 실행하거나 위의 curl 스니펫으로 CLI에서 연기 테스트를 수행하세요.

🤝 기여

PR 환영합니다! Five9 Config API에는 약 180개의 작업이 있으며 이 서버는 가장 유용한 69개를 래핑합니다. five9.js + tools.js의 패턴은 확장하기 쉽습니다(먼저 SOAP 참고 사항을 읽고 WSDL과 싸우는 것을 피하세요). 제로 종속성 제약 조건을 유지해 주세요.

📄 라이선스

MIT · Ryan Shatzkamer 제작

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    MCP server that connects AI assistants to Five9 contact center, allowing management of campaigns, agents, lists, and statistics via natural language commands.
    6
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    MCP server connecting AI assistants to the Five9 contact center, enabling management of campaigns, agents, IVR flows, and reports via natural language.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    An MCP server that connects AI assistants to Five9 cloud contact center, enabling management of campaigns, agents, IVR flows, and reports through natural language.
    MIT

View all related MCP servers

Related MCP Connectors

  • Official MCP server for OmniDimension. Drive voice agents, dispatch calls, and run bulk campaigns.

  • An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kenniole/five9-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server