@kolbo/mcp 1.118.3 → 1.118.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolbo/mcp",
3
- "version": "1.118.3",
3
+ "version": "1.118.4",
4
4
  "description": "Kolbo AI MCP Server - Generate images, videos, music, speech, and sound effects from Claude Code",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  # AUTO-GENERATED — do not edit
2
2
 
3
- This tree is mirrored from kolbo-code@a5e7df3, the single source of truth.
3
+ This tree is mirrored from kolbo-code@fffea06, the single source of truth.
4
4
  Canonical source: packages/opencode/skills/kolbo/
5
5
  Distribution: .github/workflows/sync-skill-to-plugin.yml
6
6
 
@@ -8,6 +8,10 @@ Load this file when the user wants AI-generated **music** — full songs, lyrics
8
8
 
9
9
  **Kolbo MCP routing:** call `generate_music`. Suno is a model option — use `list_models({ type: "music_gen" })` to see versions. Pass `instrumental` and `duration` as separate params; pass the Style/Description text as `style` and the Lyrics as `lyrics`.
10
10
 
11
+ **`prompt` is REQUIRED on every Suno call, instrumental included.** Sending only `style` (+ `instrumental: true`) is rejected with `prompt is required (or pass composition_plan for ElevenLabs Music v2.5)`, even though the tool schema does not mark `prompt` as required. Measured 2026-10-21: 5 parallel instrumental calls were all rejected, with nothing charged, then succeeded when re-sent. Put a one-sentence description of the track in `prompt` and the comma-separated descriptors in `style`.
12
+
13
+ **Parallel calls: map results by `generation_id`, never by file name.** Without a `session_id`, parallel `generate_music` calls can land in one shared session (the API's daily session per project). On 2026-10-21 that also gave the files ANOTHER call's title ("House Lofi 02" and "04" saved as `House-Lofi-01-Warm-C-…mp3`); that naming bug is fixed, and each file now carries its own call's title. The session sharing is not: read each id's `urls` from `get_generation_status`, name local files yourself, and pass a `session_id` when the set must stay together.
14
+
11
15
  **Wants an EXISTING track, not a new song?** ("background music", "stock music", "royalty-free track") → don't generate. Use `search_stock_media` with `mediaType: "music"` (semantic vibe query — "tense cinematic pulse", "uplifting corporate background") → `get_stock_asset` for download URLs. Free, no credits. The older `*_music_library` tools are deprecated adapters over the stock library — prefer the stock tools.
12
16
 
13
17
  ## CRITICAL Kolbo Platform Rules
@@ -852,7 +852,7 @@ function registerGenerateTools(server, client, options = {}) {
852
852
  {
853
853
  prompt: z.string().optional().describe('Text description of the music to generate (e.g., "upbeat electronic dance track with synthesizers"). Required unless composition_plan is passed (ElevenLabs Music v2.5 structured mode, which cannot be combined with prompt).'),
854
854
  model: z.string().optional().describe('Model identifier. Use list_models type="music_gen" to see options. Omit for Suno (default).'),
855
- style: z.string().optional().describe('Music style / genre (e.g., "pop", "rock", "lo-fi", "electronic", "jazz")'),
855
+ style: z.string().optional().describe('Music style / genre (e.g., "pop", "rock", "lo-fi", "electronic", "jazz"). Does NOT replace `prompt`: a style-only call (instrumental included) is rejected.'),
856
856
  title: z.string().optional().describe('Song title. If omitted, one is generated.'),
857
857
  instrumental: z.boolean().optional().describe('Generate instrumental only, no vocals. Default: false'),
858
858
  lyrics: z.string().optional().describe('Custom lyrics for the song. If omitted, lyrics are generated automatically from the prompt unless instrumental is true.'),