Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Open-source SDK, CLI, MCP server, and Agent Skill for the Lacuna Music API. Generate AI music programmatically from any Node 18+ runtime, your shell, an MCP-compatible client, or an AI coding agent that supports the Agent Skills standard.
| Surface | Install | Use case |
|---|---|---|
lacuna-sdk | npm install lacuna-sdk | TypeScript / JavaScript SDK with webhook verification. |
lacuna-toolkit | npx lacuna-toolkit | Command-line interface for one-off generation, scripting, CI. |
lacuna-mcp | npx lacuna-mcp | Model Context Protocol server for Claude Desktop, Claude Code, Cursor, etc. |
lacuna-music skill | npx skills add JOYLINK-LTD/lacuna-toolkit | Agent Skill for Claude Code, Codex CLI, Cursor, and other tools that follow the SKILL.md standard. |
The three npm packages are released together and share the same API surface. The skill is markdown-only and tracks the latest published packages.
.
├── packages/
│ ├── sdk/ → npm: lacuna-sdk
│ ├── cli/ → npm: lacuna-toolkit
│ └── mcp/ → npm: lacuna-mcp
├── skills/
│ └── lacuna-music/SKILL.md → Agent Skill (skills.sh, skillsmp.com, etc.)
├── pnpm-workspace.yaml
├── tsconfig.base.json
└── package.json
This is a pnpm workspace. The CLI and MCP server depend on the SDK via workspace:*, which is rewritten to a real version range on publish. The skill is plain markdown and is not part of the workspace.
pnpm install # install all workspace deps
pnpm -r run build # build every package
pnpm -r run typecheck # typecheck every package
pnpm --filter lacuna-mcp run dev # iterate on a single package
The SDK must be built before pnpm -r run typecheck can resolve the CLI/MCP packages' types. pnpm -r run build handles dependency order automatically.
Each package versions independently from packages/<pkg>/package.json. Bump versions in lockstep, build, then publish:
# bump the version in all three package.jsons + packages/mcp/server.json
# (packages/sdk/src/version.ts is injected from package.json at build time — do not hand-edit)
pnpm -r run build
pnpm --filter lacuna-sdk publish --access public
pnpm --filter lacuna-toolkit publish --access public
pnpm --filter lacuna-mcp publish --access public
workspace:* references in dependencies are rewritten to the published version automatically (pnpm handles this).
The skill at skills/lacuna-music/ follows the Agent Skills open standard, so it works with Claude Code, Codex CLI, Cursor, and any other tool that loads SKILL.md files.
There is no submission step for skill marketplaces — they index public GitHub repos automatically:
npx skills add JOYLINK-LTD/lacuna-toolkit, and installs feed the leaderboard. The CLI auto-discovers SKILL.md files under skills/<name>/.SKILL.md and a minimum of 2 stars.To verify discovery locally:
npx skills add JOYLINK-LTD/lacuna-toolkit
This installs lacuna-music into ~/.claude/skills/lacuna-music/ (and the equivalent for other agents). Edits to skills/lacuna-music/SKILL.md show up on the next skills add.
MIT © Louis Tsang
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y lacuna-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-joylink-ltd-lacuna-mcp": {
"command": "npx",
"args": [
"-y",
"lacuna-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencelacuna-mcpnpmLacuna Music works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.