Atlas / MCP servers / p-poss / DJ Claude

DJ ClaudeBLOCK

mcp/p-poss/dj-claude

DJ Claude — the only music MCP server with multi-agent collaboration

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
24 17r · 6w · 1d
Transport
stdio · streamable-http
License
AGPL-3.0
Stars
35
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

_  _                _                 _
__| |(_)        ___  | |  __ _  _   _  __| |  ___
/ _` || |       / __| | | / _` || | | |/ _` | / _ \
| (_| || |  _   | (__  | || (_| || |_| | (_| ||  __/
\__,_|| | (_)   \___| |_| \__,_| \__,_|\__,_| \___|
_/ |
|__/

The live music engine for AI agents.

[](https://www.npmjs.com/package/dj-claude) [](LICENSE) [](https://github.com/p-poss/dj-claude)

About

DJ Claude is the only music MCP server with multi-agent collaboration. Multiple AI agents connect over HTTP and jam together in real-time — one adds drums, another layers bass, a third drops a melody — and everything composes automatically. It works in your terminal, browser, or as a Claude Code plugin with slash commands. No browser tab, no API key, no external services required.

Under the hood, DJ Claude uses Strudel — a live coding environment for music — to generate and play patterns in real time. 20 MCP tools, 3 resources, conductor mode, mix snapshots, 22 presets, and 8 vibes. Agents can make music for you, themselves, and each other while they work.

Why DJ Claude?

  • Multi-agent jam sessions — the first music MCP where multiple agents connect over HTTP and build music together in real-time, each adding layers that compose automatically
  • Zero dependencies — no browser tab, no API key, no external services. Every tool works out of the box
  • Claude Code plugin — one-step install from the marketplace with 20 slash commands
  • Conductor mode — orchestrate a full band from a single directive, with auto-detected templates (jazz combo, rock band, electro
Read from source at commit 7fdb119f30e5OBSERVED · 2026-10-09
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add dj-claude -- npx -y [email protected]
claude-code (npm)
claude mcp add dj-claude -- npx -y [email protected]
03

Exposed tools (24)

17 read · 6 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
ASMRreadSoft, whispery
ClaudereadWarm, articulate
DefaultreadWarm, calm
RobotreadRobotic, vintage
conductreadOrchestrate a full band — generates multiple layers at once from a single directive. Works without an API key when you provide
conduct_evolvereadEvolve all active layers through multiple stages — each layer gets modified 20-40% per stage with pauses between. Works without an API key when you provide
export_codereadExport the current Strudel code with header comments showing date and layer names. No API key needed.
hushwriteStop all music playback immediately.
jamwriteAdd or update a single layer in a collaborative jam session. Each layer has a role (drums, bass, melody, etc.) and layers are composed together with stack(). Works without an API key when you provide
jam_cleardestructiveRemove one or all layers from the jam session. If no role is specified, all layers are cleared.
jam_previewreadPreview what a jam layer would sound like without actually adding it. Generates code but does NOT evaluate, store, or play it. Works without an API key when you provide
jam_statusreadShow all active layers in the current jam session with their role names and code.
live_mixwriteAutonomous DJ set — generates and evolves music through multiple stages with ~20s between each. Works without an API key when you provide
mix_analysisreadAnalyze the current jam mix — detects octave ranges, effects, gain levels, and frequency band occupancy across all layers. Returns suggestions for improving the mix. No API key needed.
now_playingreadCheck what music is currently playing, including the Strudel code and DJ commentary.
play_musicreadGenerate and play live music. Works without an API key when you provide
play_presetreadPlay from the curated pattern library. No API key needed. Call without arguments to list all available presets.
play_strudelread
set_contextwriteTell DJ Claude what you\
set_vibewriteInstantly set the musical vibe to match a mood. Great for matching music to the current coding task. Works without an API key using built-in patterns. If you want more creative/custom music and can write Strudel code yourself, prefer play_strudel instead.
snapshot_listreadList all saved mix snapshots. No API key needed.
snapshot_loadreadRestore a previously saved mix snapshot — loads all layers and resumes playback. No API key needed.
snapshot_savewriteSave the current mix (all layers + composed code) as a named snapshot. No API key needed.
switch_audioreadSwitch the audio backend at runtime between Node (terminal) and Browser (higher quality, opens a browser tab).
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (9 observation(s))
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (10)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
cli/src/audio/browser-backend.ts:204
exec(cmd, (err) => {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
cli/src/audio/browser-backend.ts:106
const url = `http://127.0.0.1:${this.port}?autoplay`;
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
cli/src/mcp/http.ts:109
console.error(`[dj-claude-http] MCP HTTP server listening on http://127.0.0.1:${port}/mcp`);
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
cli/test-browser-backend.mjs:157
const resp = await httpGet(`http://127.0.0.1:${port}/`);
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
cli/test-browser-backend.mjs:164
const resp404 = await httpGet(`http://127.0.0.1:${port}/nonexistent`);
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
jam_clear
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.symlink · CWE-1104
cli/README.md
cli/README.md
Why it matters. link not followed
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:289
"url": "http://127.0.0.1:4321/mcp"
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
cli/package.json
@anthropic-ai/sdk, @modelcontextprotocol/sdk, dotenv, express, ink, ink-text-input, node-web-audio-api, react
Why it matters. 15 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@anthropic-ai/sdk, @strudel/web, @upstash/ratelimit, @upstash/redis, @tailwindcss/postcss, @types/node, @types/react, @types/react-dom
Why it matters. 11 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-09 · audit v0.4.1 · source sha 7fdb119f30e5full audit observations/trust-audit/mcp-server/p-poss__dj-claude.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-097fdb119f30e5BLOCKD69first audit
06

Questions

What is the DJ Claude MCP server?

DJ Claude — the only music MCP server with multi-agent collaboration

What tools does DJ Claude expose?

24 in total: 17 read-only, 6 that write, and 1 that can delete or overwrite (jam_clear). Every one is listed on this page with its risk.

Is DJ Claude safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does DJ Claude need?

It reads ANTHROPIC_API_KEY, DJ_CLAUDE_MAX_TOKENS, ELEVENLABS_API_KEY, NEXT_PUBLIC_TURNSTILE_SITE_KEY, TURNSTILE_SECRET_KEY and UPSTASH_REDIS_REST_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does DJ Claude run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as dj-claude at 0.1.18.

How current is this page?

The grade is for one exact copy of the source (7fdb119f30e5), read on 2026-10-09. The repository is watched and re-audited when it changes.

Advertisement