Skip to main content
Glama

TTS 작업 접수

tts_jobs_create

한국어 TTS를 접수합니다. 기본 정규화 스킬이 발음을 다듬으며 추가 요금이 합산됩니다. normalize_text=false로 끌 수 있습니다. 완료 후 MP3와 원문 ASS를 공통 API로 받습니다. 서버 오류로 최종 실패하면 정규화까지 전액 환불하고, 연결 종료는 정상 과금합니다. [실제 사용량 기준(작업당 기본요금 5P) + 기본 on 정규화 스킬 요금]

Input Schema

NameRequiredDescriptionDefault
paceNo말 속도 배율 0.5~2.0. 1이 기본
textNo합성할 한국어 텍스트. utterances와 둘 중 하나
toneNo용도·톤. 생략 시 기본
pitchNo음높이 -12~12 반음. 0이 기본
styleNo자유 서술 낭독 스타일
accentNo억양. 생략 시 표준어
emotionNo감정 표현. 생략 시 기본
speakersNo화자 이름 → {voice_id, style, emotion, tone, accent, pace, pitch, volume_gain_db}
voice_idNoGemini 목소리 ID. 기본 Kore. tts_gemini_voices에서 기본·확장 목록 조회
utterancesNo발화 목록. text와 둘 중 하나
multi_speakerNo멀티화자. Gemini는 화자 2명까지 한 호출, ChatGPT는 발화별 목소리 대화
normalize_textNo기본 true. 정규화 스킬 비용 합산, false는 실행·과금 생략
volume_gain_dbNo음량 보정 -12~12 dB. 0이 기본
idempotency_keyNo접수 응답 유실 시 같은 요청에 재사용할 키

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / style
      Added value: +{
      +  "description": "자유 서술 낭독 스타일",
      +  "maxLength": 1000,
      +  "type": "string"
      +}
    • changedInput schema / properties / voice_id / description
      Previous value: -"지원 voice_id"New value: +"Gemini 목소리 ID. 기본 Kore. tts_gemini_voices에서 기본·확장 목록 조회"
    • removedInput schema / properties / voice_id / enum
      Removed value: -[
      -  "Zephyr",
      -  "Autonoe",
      -  "Puck",
      -  "Laomedeia",
      -  "Charon",
      -  "Rasalgethi",
      -  "Kore",
      -  "Orus",
      -  "Alnilam",
      -  "Fenrir",
      -  "Leda",
      -  "Aoede",
      -  "Callirrhoe",
      -  "Umbriel",
      -  "Enceladus",
      -  "Iapetus",
      -  "Erinome",
      -  "Algieba",
      -  "Despina",
      -  "Algenib",
      -  "Achernar",
      -  "Schedar",
      -  "Gacrux",
      -  "Pulcherrima",
      -  "Achird",
      -  "Zubenelgenubi",
      -  "Vindemiatrix",
      -  "Sadachbia",
      -  "Sadaltager",
      -  "Sulafat",
      -  "alloy",
      -  "ash",
      -  "ballad",
      -  "coral",
      -  "echo",
      -  "fable",
      -  "onyx",
      -  "nova",
      -  "sage",
      -  "shimmer",
      -  "verse"
      -]
    • addedInput schema / properties / voice_id / maxLength
      Added value: +160
    • removedInput schema / required
      Removed value: -[
      -  "voice_id"
      -]
  2. Changed12 schema fields changed
    • addedInput schema / properties / accent
      Added value: +{
      +  "description": "억양. 생략 시 표준어",
      +  "enum": [
      +    "standard",
      +    "seoul",
      +    "gyeongsang",
      +    "jeolla",
      +    "chungcheong"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / emotion
      Added value: +{
      +  "description": "감정 표현. 생략 시 기본",
      +  "enum": [
      +    "neutral",
      +    "calm",
      +    "cheerful",
      +    "excited",
      +    "sad",
      +    "serious",
      +    "friendly",
      +    "empathetic",
      +    "confident",
      +    "gentle",
      +    "whisper",
      +    "narration"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / fallback_options
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "전환할 때만 적용하는 voice_id, style",
      -  "propertyNames": {
      -    "type": "string"
      -  },
      -  "type": "object"
      -}
    • removedInput schema / properties / fallback_policy
      Removed value: -{
      -  "description": "기본 never. queue_full=대기열 포화, busy=즉시 실행 불가 시 Gemini 전환",
      -  "enum": [
      -    "never",
      -    "queue_full",
      -    "busy"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / multi_speaker
      Added value: +{
      +  "description": "멀티화자. Gemini는 화자 2명까지 한 호출, ChatGPT는 발화별 목소리 대화",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / pace
      Added value: +{
      +  "description": "말 속도 배율 0.5~2.0. 1이 기본",
      +  "type": "number"
      +}
    • addedInput schema / properties / pitch
      Added value: +{
      +  "description": "음높이 -12~12 반음. 0이 기본",
      +  "type": "number"
      +}
    • addedInput schema / properties / speakers
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "화자 이름 → {voice_id, style, emotion, tone, accent, pace, pitch, volume_gain_db}",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / text / maxLength
      Previous value: -800New value: +8000
    • addedInput schema / properties / tone
      Added value: +{
      +  "description": "용도·톤. 생략 시 기본",
      +  "enum": [
      +    "narration",
      +    "news",
      +    "audiobook",
      +    "documentary",
      +    "ad",
      +    "conversation",
      +    "announcement",
      +    "tutorial",
      +    "storytelling"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / voice_id / enum
      Previous value: -[
      -  "v2_ann_m_30s_01",
      -  "v2_ann_m_30s_02",
      -  "v2_ann_m_30s_04",
      -  "v2_ann_m_30s_05",
      -  "v2_ann_f_30s_02",
      -  "v2_ann_f_30s_03",
      -  "v2_ann_f_30s_04",
      -  "v2_ann_f_30s_05",
      -  "v2_m_teen_01",
      -  "v2_m_young_01",
      -  "v2_m_mid_01",
      -  "v2_m_senior_01",
      -  "v2_f_young_01",
      -  "v2_f_senior_01"
      -]New value: +[
      +  "Zephyr",
      +  "Autonoe",
      +  "Puck",
      +  "Laomedeia",
      +  "Charon",
      +  "Rasalgethi",
      +  "Kore",
      +  "Orus",
      +  "Alnilam",
      +  "Fenrir",
      +  "Leda",
      +  "Aoede",
      +  "Callirrhoe",
      +  "Umbriel",
      +  "Enceladus",
      +  "Iapetus",
      +  "Erinome",
      +  "Algieba",
      +  "Despina",
      +  "Algenib",
      +  "Achernar",
      +  "Schedar",
      +  "Gacrux",
      +  "Pulcherrima",
      +  "Achird",
      +  "Zubenelgenubi",
      +  "Vindemiatrix",
      +  "Sadachbia",
      +  "Sadaltager",
      +  "Sulafat",
      +  "alloy",
      +  "ash",
      +  "ballad",
      +  "coral",
      +  "echo",
      +  "fable",
      +  "onyx",
      +  "nova",
      +  "sage",
      +  "shimmer",
      +  "verse"
      +]
    • addedInput schema / properties / volume_gain_db
      Added value: +{
      +  "description": "음량 보정 -12~12 dB. 0이 기본",
      +  "type": "number"
      +}
  3. Changed7 schema fields changed
    • addedInput schema / properties / fallback_options
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "전환할 때만 적용하는 voice_id, style",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / fallback_policy
      Added value: +{
      +  "description": "기본 never. queue_full=대기열 포화, busy=즉시 실행 불가 시 Gemini 전환",
      +  "enum": [
      +    "never",
      +    "queue_full",
      +    "busy"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "description": "접수 응답 유실 시 같은 요청에 재사용할 키",
      +  "maxLength": 128,
      +  "pattern": "^[A-Za-z0-9_.:-]+$",
      +  "type": "string"
      +}
    • addedInput schema / properties / normalize_text
      Added value: +{
      +  "description": "기본 true. 정규화 스킬 비용 합산, false는 실행·과금 생략",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / text / description
      Previous value: -"합성할 한국어 텍스트 (최대 800자)"New value: +"합성할 한국어 텍스트. utterances와 둘 중 하나"
    • addedInput schema / properties / utterances
      Added value: +{
      +  "description": "발화 목록. text와 둘 중 하나",
      +  "items": {},
      +  "type": "array"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "voice_id",
      -  "text"
      -]New value: +[
      +  "voice_id"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / voice_id / enum
      Previous value: -[
      -  "v2_ann_m_30s_01",
      -  "v2_ann_m_30s_02",
      -  "v2_ann_m_30s_04",
      -  "v2_ann_m_30s_05",
      -  "v2_ann_f_30s_01",
      -  "v2_ann_f_30s_02",
      -  "v2_ann_f_30s_03",
      -  "v2_ann_f_30s_04",
      -  "v2_ann_f_30s_05",
      -  "v2_m_teen_01",
      -  "v2_m_young_01",
      -  "v2_m_mid_01",
      -  "v2_m_senior_01",
      -  "v2_f_teen_01",
      -  "v2_f_young_01",
      -  "v2_f_senior_01"
      -]New value: +[
      +  "v2_ann_m_30s_01",
      +  "v2_ann_m_30s_02",
      +  "v2_ann_m_30s_04",
      +  "v2_ann_m_30s_05",
      +  "v2_ann_f_30s_02",
      +  "v2_ann_f_30s_03",
      +  "v2_ann_f_30s_04",
      +  "v2_ann_f_30s_05",
      +  "v2_m_teen_01",
      +  "v2_m_young_01",
      +  "v2_m_mid_01",
      +  "v2_m_senior_01",
      +  "v2_f_young_01",
      +  "v2_f_senior_01"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / voice_id / enum
      Previous value: -[
      -  "narrator_m_01",
      -  "narrator_m_02",
      -  "narrator_m_03",
      -  "narrator_m_04",
      -  "narrator_m_05",
      -  "narrator_f_10s_01",
      -  "narrator_f_10s_02",
      -  "narrator_f_10s_03",
      -  "narrator_m_20s_01",
      -  "narrator_f_20s_01",
      -  "narrator_f_20s_02",
      -  "narrator_f_20s_03",
      -  "narrator_f_20s_04",
      -  "narrator_m_30s_01",
      -  "narrator_m_30s_02",
      -  "narrator_m_40s_01",
      -  "narrator_m_80s_01"
      -]New value: +[
      +  "v2_ann_m_30s_01",
      +  "v2_ann_m_30s_02",
      +  "v2_ann_m_30s_04",
      +  "v2_ann_m_30s_05",
      +  "v2_ann_f_30s_01",
      +  "v2_ann_f_30s_02",
      +  "v2_ann_f_30s_03",
      +  "v2_ann_f_30s_04",
      +  "v2_ann_f_30s_05",
      +  "v2_m_teen_01",
      +  "v2_m_young_01",
      +  "v2_m_mid_01",
      +  "v2_m_senior_01",
      +  "v2_f_teen_01",
      +  "v2_f_young_01",
      +  "v2_f_senior_01"
      +]
  6. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=false). The description adds substantial value beyond them: default-on normalization with surcharge, how to disable it (normalize_text=false), full refund on server-error final failure, and normal billing on connection termination. This billing/refund behavior is exactly the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is dense and front-loaded with the core action and the normalization default. The trailing bracketed pricing formula ('[실제 사용량 기준...]') repeats cost information already stated earlier, a minor redundancy, but overall the sentences earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, nested-object mutation with no output schema, the description covers billing, refund semantics, output retrieval, and the normalization toggle. The main gap is sibling differentiation against the other TTS create tools, but the operational behavior needed to call it correctly is well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 14 parameters including normalize_text's cost implication. The description's mention of normalize_text=false mostly repeats what the schema property already states, adding little beyond the baseline for a fully-documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: submitting a Korean TTS job ('한국어 TTS를 접수합니다'). It also states the two output formats (MP3, original ASS). However, it never distinguishes itself from the provider-specific siblings tts_gemini_create and tts_openai_create, so an agent cannot tell from the description which create-tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'완료 후 MP3와 원문 ASS를 공통 API로 받습니다' implies the async submit-then-poll workflow (status/result siblings), and the normalize_text toggle is explained. But there is no explicit when-to-use-this vs tts_gemini_create/tts_openai_create/tts_quote routing guidance, leaving the main selection decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.