# SonicCraft MCP server

> Compiles declarative audio timelines into mastered speech, music, and sound effects with synchronized subtitles.

- Repository: https://github.com/user-github-me/soniccraft
- Page: https://hostedmcp.org/servers/user-github-me/soniccraft
- Transport: stdio
- Stars: 2
- License: Apache-2.0
- Latest version: 0.1.0

## Install

### Claude Code

```sh
claude mcp add --env CARTESIA_API_KEY=<YOUR_CARTESIA_API_KEY> --env ELEVENLABS_API_KEY=<YOUR_ELEVENLABS_API_KEY> --env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> soniccraft -- docker run -i --rm ghcr.io/user-github-me/soniccraft:0.1.0
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "soniccraft": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/user-github-me/soniccraft:0.1.0"
      ],
      "env": {
        "CARTESIA_API_KEY": "<YOUR_CARTESIA_API_KEY>",
        "ELEVENLABS_API_KEY": "<YOUR_ELEVENLABS_API_KEY>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "soniccraft": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/user-github-me/soniccraft:0.1.0"
      ],
      "env": {
        "CARTESIA_API_KEY": "<YOUR_CARTESIA_API_KEY>",
        "ELEVENLABS_API_KEY": "<YOUR_ELEVENLABS_API_KEY>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
      }
    }
  }
}
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "soniccraft": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/user-github-me/soniccraft:0.1.0"
      ],
      "env": {
        "CARTESIA_API_KEY": "<YOUR_CARTESIA_API_KEY>",
        "ELEVENLABS_API_KEY": "<YOUR_ELEVENLABS_API_KEY>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
      }
    }
  }
}
```

### Codex (`~/.codex/config.toml`)

```toml
[mcp_servers.soniccraft]
command = "docker"
args = ["run", "-i", "--rm", "ghcr.io/user-github-me/soniccraft:0.1.0"]

[mcp_servers.soniccraft.env]
CARTESIA_API_KEY = "<YOUR_CARTESIA_API_KEY>"
ELEVENLABS_API_KEY = "<YOUR_ELEVENLABS_API_KEY>"
OPENAI_API_KEY = "<YOUR_OPENAI_API_KEY>"
```

### Gemini CLI (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "soniccraft": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/user-github-me/soniccraft:0.1.0"
      ],
      "env": {
        "CARTESIA_API_KEY": "<YOUR_CARTESIA_API_KEY>",
        "ELEVENLABS_API_KEY": "<YOUR_ELEVENLABS_API_KEY>",
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `CARTESIA_API_KEY` | no | yes | Cartesia API key for the cartesia TTS provider (optional) |
| `ELEVENLABS_API_KEY` | no | yes | ElevenLabs API key for the elevenlabs TTS provider (optional) |
| `OPENAI_API_KEY` | no | yes | OpenAI API key for the openai TTS provider (optional) |
| `CLAUDE_PROJECT_DIR` | no | no |  |

## FAQ

### What can SonicCraft produce?

It compiles TTS speech, music beds, and sound effects into ducked, loudness-mastered audio with matching WebVTT/SRT subtitles.

### How can I avoid paying for TTS API calls during testing?

You can use the 'soniccraft plan' command to perform a free dry run that estimates timing and character counts without calling any APIs.

### Which TTS providers are supported?

It supports ElevenLabs, OpenAI-compatible servers, Cartesia, Kokoro, Piper, macOS 'say', and local commands.

### Does it handle audio leveling automatically?

Yes, it normalizes voices to -20 LUFS and masters the final mix to a target like -16 LUFS using EBU R128 standards.
