@cavn/music-mcp
v0.3.0
Published
MCP server for CAVN AI music generation and music tools.
Readme
CAVN Music MCP
MCP server for CAVN AI music generation and music tools. It is designed for MCP-capable clients and agent runtimes such as OpenClaw, WorkBuddy, and Hermes-style long-memory agents.
Tools
Song generation
generate_song_from_prompt: submit a prompt-to-song generation task.generate_song_from_lyrics_and_style: submit a custom generation task from title, lyrics, and style tags.generate_song_cover: create a cover generation task from an existing clip.generate_song_mashup: create a mashup from 2 to 5 source clips.generate_song_sample: create a song from a selected source clip time range.extend_song: continue an existing clip.concat_song: concatenate a clip/song.query_generation_result: fetch generated song status, audio URLs, lyrics, and metadata. Pass thesongs[].idvalues returned by generation tools, nottask_id.
Lyrics
generate_lyrics: generate a lyric draft.mashup_lyrics: merge two lyric drafts.
Audio tools
split_audio_stems: submit a stem-splitting task.list_stem_instruments: list professional stem item codes.split_audio_stems_professional: submit a professional stem split for one instrument code.query_stem_split_result: fetch stem split task status and result tracks.convert_audio_to_midi: convert audio into MIDI.convert_midi_to_sheet_music: convert MIDI into sheet music files.analyze_music_style: analyze instruments, genres, tags, and music description.
Mureka, MiniMax, ACE Step, voice cloning, account management, and multipart audio upload are intentionally not exposed in this package version.
Environment
CAVN_API_KEY=sk-live-...
CAVN_API_BASE=https://api.cavn.aiCAVN_API_BASE is optional and defaults to https://api.cavn.ai.
Claude Desktop / MCP Config
Use the published npm package:
{
"mcpServers": {
"cavn-music": {
"command": "npx",
"args": ["-y", "-p", "@cavn/[email protected]", "cavn-music-mcp"],
"env": {
"CAVN_API_KEY": "sk-live-...",
"CAVN_API_BASE": "https://api.cavn.ai"
}
}
}
}Or point an MCP client at a local build of dist/index.js:
{
"mcpServers": {
"cavn-music-local": {
"command": "node",
"args": ["./packages/music-mcp/dist/index.js"],
"env": {
"CAVN_API_KEY": "sk-live-...",
"CAVN_API_BASE": "https://api.cavn.ai"
}
}
}
}Local Workspace Test
pnpm --filter @cavn/music-mcp build
CAVN_API_KEY=sk-live-... node packages/music-mcp/dist/index.jsThe server speaks MCP over stdio, so the command waits for an MCP client after startup.
