사용 가능한 도구
ListenHub MCP 도구 8개와 각각의 입력 제약, 그리고 반환하는 응답 구조.
ListenHub MCP server는 8개의 도구를 제공합니다. 각 도구는 OpenAPI 엔드포인트를 감싸며, 성공 시 래핑을 벗긴 data 페이로드를 반환합니다. 기반 응답은 표준 봉투 형식 { "code": 0, "message": "", "data": { ... } }를 따르며, code가 0이 아니면 오류를 의미합니다.
팟캐스트는 1~2명의 스피커를 받습니다. debate 모드는 2인 호스트 형식이라 speaker ID가 2개 필요합니다. FlowSpeech는 1인 전용(스피커 1명)입니다. 언어는 zh 또는 en입니다.
스피커 조회
get_speakers
팟캐스트와 FlowSpeech 생성에 사용할 수 있는 스피커 목록을 반환합니다. 보이스 ID, 이름, 언어, 성별, 데모 오디오 링크, 보이스 프로필이 포함됩니다.
입력
language: 언어 코드로 필터링,zh또는en(string, 선택)
응답
items 배열을 반환합니다. 각 항목은 speakerId를 가집니다(이 값을 다른 도구의 speakerIds / speakerId에 사용하세요).
{
"items": [
{
"name": "Aria",
"speakerId": "sp_aria_en",
"demoAudioUrl": "https://storage.googleapis.com/.../aria-demo.mp3",
"gender": "female",
"language": "en",
"profile": {
"pitch": ["medium", "medium-high"],
"speed": ["medium-fast"],
"traits": ["clear", "bright", "warm"],
"styles": ["friendly", "narrative"],
"scenes": ["podcast", "audiobook"],
"accent": "American English",
"description": "Warm, conversational host voice.",
"descriptionLocalized": { "zh": "温暖、口语化的主持人声音。" }
}
}
]
}팟캐스트 생성
create_podcast
완전한 팟캐스트(텍스트 + 오디오)를 만듭니다. 완료될 때까지 자동으로 폴링하며, 몇 분이 걸릴 수 있습니다.
입력
query: 주제 또는 내용 프롬프트 (string, 선택)sources: 텍스트/URL 소스 배열 (array, 선택)speakerIds: 1~2개의 speaker ID (array, 필수).debate모드에서는 ID를 2개 지정하세요.language: 언어 코드zh또는en(string, 선택, 기본값:en)mode: 생성 모드quick,deep,debate(string, 선택, 기본값:quick)
query와 sources 중 최소 하나는 지정해야 합니다.
응답
이 도구는 완료될 때까지 폴링하므로 팟캐스트 상세 정보를 전부 반환합니다(get_podcast_status와 같은 구조). 완료 시 페이로드 예시:
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f70",
"createdAt": 1716460000000,
"processStatus": "success",
"contentStatus": "audio-success",
"completedTime": 1716460320000,
"credits": 12,
"title": "How LLMs Changed Search",
"outline": "1. The shift from keywords...",
"cover": "https://storage.googleapis.com/.../cover.png",
"audioUrl": "https://storage.googleapis.com/.../episode.mp3",
"audioStreamUrl": "https://storage.googleapis.com/.../episode-stream.mp3",
"subtitlesUrl": "https://storage.googleapis.com/.../episode.srt",
"scripts": [
{ "speakerId": "sp_aria_en", "speakerName": "Aria", "content": "Welcome back to the show." },
{ "speakerId": "sp_leo_en", "speakerName": "Leo", "content": "Today we're digging into search." }
]
}get_podcast_status
폴링 없이 현재 팟캐스트 상세 정보를 즉시 반환합니다.
입력
episodeId: 팟캐스트 에피소드 ID (string, 필수)
응답
위 create_podcast 완료 페이로드와 같은 구조입니다. 생성이 진행 중일 때 processStatus는 현재 상태를 나타내며, 해당 단계가 끝나기 전까지는 콘텐츠 필드(audioUrl, scripts 등)가 없을 수 있습니다. contentStatus는 text-success, text-fail, audio-success, audio-fail 중 하나입니다.
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f70",
"createdAt": 1716460000000,
"processStatus": "processing",
"contentStatus": "text-success",
"credits": 0,
"title": "How LLMs Changed Search",
"outline": "1. The shift from keywords...",
"scripts": [
{ "speakerId": "sp_aria_en", "speakerName": "Aria", "content": "Welcome back to the show." }
]
}create_podcast_text_only
텍스트만 있는 팟캐스트(스크립트, 오디오 없음)를 만듭니다. 스크립트 우선 워크플로의 첫 단계입니다. 스크립트를 생성해 검토하거나 편집한 다음 generate_podcast_audio를 호출하세요.
입력
query: 주제 또는 내용 프롬프트 (string, 선택)sources: 텍스트/URL 소스 배열 (array, 선택)speakerIds: 1~2개의 speaker ID (array, 필수).debate모드에서는 ID를 2개 지정하세요.language: 언어 코드zh또는en(string, 필수)mode: 생성 모드quick,deep,debate(string, 선택, 기본값:quick)waitForCompletion: 텍스트 생성이 끝날 때까지 대기 (boolean, 선택, 기본값:true)
query와 sources 중 최소 하나는 지정해야 합니다.
응답
새 episodeId와 상태 메시지를 반환합니다. waitForCompletion이 true이면 스크립트가 완성될 때까지 기다린 뒤 반환합니다. 스크립트는 get_podcast_status로 조회하세요.
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f70",
"message": "Text content generation started. Audio generation can be triggered later."
}generate_podcast_audio
이미 만들어진 텍스트 전용 팟캐스트에 오디오를 생성합니다. 스크립트 우선 워크플로의 두 번째 단계입니다.
입력
episodeId: 팟캐스트 에피소드 ID (string, 필수)customScripts: 커스텀 스크립트 배열 (array, 선택). 각 항목은content(string)와speakerId(string)를 가집니다. 생략하면 기존 스크립트를 사용합니다.waitForCompletion: 오디오 생성이 끝날 때까지 대기 (boolean, 선택, 기본값:true)
응답
오디오 생성이 시작되었음을 확인해 줍니다. 완성된 audioUrl은 get_podcast_status를 폴링해 확인하세요.
{
"success": true,
"message": "Audio generation started",
"episodeId": "664e0c2b9f1a2b3c4d5e6f70",
"status": "processing"
}FlowSpeech 생성
create_flowspeech
텍스트나 URL로 FlowSpeech(1인 내레이션)를 만듭니다. smart 모드는 원본에 AI 보정을 적용하고, direct 모드는 원본을 수정 없이 그대로 읽습니다.
입력
sourceType: 소스 유형text또는url(string, 필수)sourceContent: 소스 내용 — 텍스트 본문 또는 URL (string, 필수).text인 경우 최소 10자 이상이어야 합니다.speakerId: 내레이션 speaker ID (string, 필수). FlowSpeech는 정확히 한 명의 스피커를 사용합니다.language: 언어 코드zh또는en(string, 선택)mode: 생성 모드smart또는direct(string, 선택, 기본값:smart)
응답
새 episodeId를 반환합니다. 생성은 비동기로 진행되므로 get_flowspeech_status로 폴링하세요.
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f71"
}get_flowspeech_status
폴링 없이 현재 FlowSpeech 상세 정보를 즉시 반환합니다.
입력
episodeId: FlowSpeech 에피소드 ID (string, 필수)
응답
FlowSpeech의 scripts는 팟캐스트에서 쓰는 스피커별 배열이 아니라 하나의 문자열(내레이션 스크립트)입니다. 콘텐츠 필드는 각 단계가 끝나는 대로 채워집니다.
{
"episodeId": "664e0c2b9f1a2b3c4d5e6f71",
"createdAt": 1716460000000,
"processStatus": "success",
"completedTime": 1716460120000,
"title": "Quarterly Product Update",
"outline": "1. Highlights...",
"cover": "https://storage.googleapis.com/.../cover.png",
"audioUrl": "https://storage.googleapis.com/.../flowspeech.mp3",
"audioStreamUrl": "https://storage.googleapis.com/.../flowspeech-stream.mp3",
"subtitlesUrl": "https://storage.googleapis.com/.../flowspeech.srt",
"scripts": "Welcome to the quarterly update. This quarter we shipped..."
}사용자 구독 조회
get_user_subscription
현재 사용자의 구독과 크레딧 잔액을 반환합니다. 플랜 상세, 월간 / 영구 / 한정 기간 크레딧, 전체 사용 가능 크레딧, 갱신 상태, 구독 날짜가 포함됩니다. 생성하기 전에 이 도구를 호출해 크레딧이 충분한지 확인하세요.
입력
없음.
응답
타임스탬프는 13자리 밀리초입니다. totalAvailableCredits는 사용 가능한 월간, 영구, 한정 기간 크레딧의 합계입니다.
{
"subscriptionStartedAt": 1714000000000,
"subscriptionExpiresAt": 1716592000000,
"usageAvailableMonthlyCredits": 480,
"usageTotalMonthlyCredits": 500,
"usageAvailablePermanentCredits": 100,
"usageTotalPermanentCredits": 100,
"usageAvailableLimitedTimeCredits": 0,
"totalAvailableCredits": 580,
"resetAt": 1716592000000,
"platform": "web",
"renewStatus": true,
"paidStatus": true,
"subscriptionPlan": {
"name": "Pro",
"duration": "monthly",
"platform": "web"
}
}크레딧 비용은 도구마다 고정되어 있지 않습니다. 생성 전에 비용을 예상하려면 OpenAPI 레퍼런스의 해당 */estimate-credits 엔드포인트를 사용하고, 실시간 잔액은 get_user_subscription으로 확인하세요.
ListenHub MCP server를 사용해 주셔서 감사합니다.
지원 문의: support@marswave.ai