@clipform/mcp-server 1.22.2 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,14 +6,14 @@ import {
6
6
  getWorkflowText,
7
7
  objectType,
8
8
  registerPrompts
9
- } from "./chunk-LMGXTF23.js";
9
+ } from "./chunk-UW6HXM2U.js";
10
10
  import {
11
11
  GUIDE_TYPES,
12
12
  QUIZ_VARIANTS,
13
13
  getGuideContent,
14
14
  getGuideUri,
15
15
  registerResources
16
- } from "./chunk-G727XWN4.js";
16
+ } from "./chunk-ZJJBZGO6.js";
17
17
  import {
18
18
  BUSINESS,
19
19
  CONTACT_FIELDS,
@@ -29,7 +29,7 @@ import {
29
29
  errorResult,
30
30
  resolveFormType,
31
31
  textResult
32
- } from "./chunk-ZDSVE6D3.js";
32
+ } from "./chunk-4EXXG7OF.js";
33
33
  import {
34
34
  __commonJS,
35
35
  __export,
@@ -17977,7 +17977,8 @@ Supports any public YouTube video with captions enabled. Does NOT work for priva
17977
17977
  // src/tools/generate-tts.ts
17978
17978
  var TtsItemSchema = external_exports.object({
17979
17979
  text: external_exports.string().min(1).max(5e3).describe("Narration text"),
17980
- voice: external_exports.enum(["ryan", "sonia", "andrew", "ava", "guy"]).optional().default("ryan").describe("TTS voice (default: ryan)")
17980
+ voice: external_exports.enum(["ryan", "sonia", "andrew", "ava", "guy"]).optional().default("ryan").describe("Voice: ryan (British male, clear/articulate), sonia (British female, warm/bright), andrew (American male, smooth/neutral), ava (American female, vibrant/friendly), guy (American male, deep/authoritative). Pick based on the form's topic and audience."),
17981
+ tone: external_exports.string().max(500).optional().describe("Style instructions for how the voice should sound. E.g. 'Speak like an energetic quiz show host, playful and teasing' or 'Warm and conversational, like chatting with a friend'. Infer from context if not specified by the user.")
17981
17982
  });
17982
17983
  function registerGenerateTtsTool(server) {
17983
17984
  server.registerTool(
@@ -17986,9 +17987,11 @@ function registerGenerateTtsTool(server) {
17986
17987
  title: "Generate Text-to-Speech",
17987
17988
  description: `Generate narration audio from text with word-level captions. Use this for quiz question narration, survey introductions, form instructions, or any node that benefits from a human voice. Proactively suggest narration for quizzes and content-rich forms - it significantly improves engagement.
17988
17989
 
17989
- Available voices: ryan (British male, default), sonia (British female), andrew (American male), ava (American female), guy (American male casual). Pass one item or many (max 10) - multiple items run in parallel.
17990
+ Available voices: ryan (British male, clear), sonia (British female, warm), andrew (American male, smooth), ava (American female, vibrant), guy (American male, deep). Pick the voice that fits the topic - e.g. a London quiz gets ryan or sonia, a US sports quiz gets andrew or guy.
17990
17991
 
17991
- Returns audio URL and word-level captions per item. Captions enable per-word highlighting when attached to a node via clipform_upload_node_media.`,
17992
+ Use the tone parameter to direct HOW the voice speaks. Always set a tone that matches the form's mood - e.g. quizzes: "Energetic and playful, like a quiz show host teasing the audience", surveys: "Professional but warm, encouraging honest answers", personality quizzes: "Curious and reflective". This dramatically improves the narration quality.
17993
+
17994
+ Pass one item or many (max 10) - multiple items run in parallel. Returns audio URL and word-level captions per item.`,
17992
17995
  inputSchema: {
17993
17996
  items: external_exports.array(TtsItemSchema).min(1).max(10).describe("One or more TTS items to generate")
17994
17997
  },
@@ -17999,7 +18002,7 @@ Returns audio URL and word-level captions per item. Captions enable per-word hig
17999
18002
  const results = await Promise.allSettled(
18000
18003
  items.map(
18001
18004
  (item) => callApi("/internal/tts", {
18002
- body: { text: item.text, voice: item.voice, workspace_id },
18005
+ body: { text: item.text, voice: item.voice, tone: item.tone, workspace_id },
18003
18006
  timeoutMs: 45e3
18004
18007
  })
18005
18008
  )
@@ -18682,4 +18685,4 @@ export {
18682
18685
  JSONRPCMessageSchema,
18683
18686
  createServer
18684
18687
  };
18685
- //# sourceMappingURL=chunk-H3DV5X53.js.map
18688
+ //# sourceMappingURL=chunk-M3G76QDR.js.map