github TypeScript re-analysis due

sandraschi/butterchurn-mcp

github

MilkDrop-style audio-reactive WebGL visualizer via butterchurn — ~2,000 presets, modern GLSL shaders, BPM sync for mixx-dj-mcp. FastMCP 3.4 + zero-install webapp for Claude Desktop / Cursor.

maintainer
sandraschi
licence
MIT
first seen
2026-08-28
last seen
2026-09-06
releases · 30d
1
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 2 tools
transport counts 2 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • get_bpm
  • set_bpm
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 358a86e · analyzer v33 · 2w ago

skills & prompt files 3

code evidence vv0.1.0-beta.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 51

network 13

  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/App.tsx :55 const r = await fetch("/api/health");
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/components/LoggerModal.tsx :46 const r = await fetch(`/api/logs?${params}`);
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/components/Visualizer.tsx :13 const r = await fetch("/api/bpm");
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/lib/capabilities.tsx :30 const res = await fetch("/api/capabilities");
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/lib/modelPreference.ts :117 fetch(`${base}/api/tags`).then((r) => r.json()),
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/lib/presets.ts :32 const res = await fetch(url, { cache: "force-cache" });
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/lib/provider.ts :85 const r = await fetch(`http://127.0.0.1:${p.port}${p.probe}`, {
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/pages/Chat.tsx :106 const r = await fetch("/api/skills");
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/pages/Dashboard.tsx :44 fetch("/api/dashboard").then((r) => r.json()) as Promise<DashboardData>,
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/pages/Settings.tsx :36 const r = await fetch("/api/bpm");
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/pages/Skills.tsx :14 queryFn: () => fetch("/api/skills").then((r) => r.json()),
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/pages/Tools.tsx :19 queryFn: () => fetch("/api/tools").then((r) => r.json()),
show 1 more
  • net sandraschi-butterchurn-mcp-358a86e/webapp/src/visualizers/audio/useAudioEngine.ts :8 const r = await fetch("/api/bpm");

tool registrations 2

  • get_bpm sandraschi-butterchurn-mcp-358a86e/src/butterchurn_mcp/server.py :28
  • set_bpm sandraschi-butterchurn-mcp-358a86e/src/butterchurn_mcp/server.py :36

declared dependencies 16

  • @tanstack/react-query@^5.62.8
  • butterchurn@^2.6.6
  • butterchurn-presets@^2.4.7
  • clsx@^2.1.1
  • framer-motion@^11.12.0
  • lucide-react@^0.468.0
  • react@^19.0.0
  • react-dom@^19.0.0
  • react-router-dom@^6.27.0
  • @tailwindcss/vite@^4.0.0
  • @types/react@^19.0.0
  • @types/react-dom@^19.0.0
show 4 more
  • @vitejs/plugin-react@^4.3.0
  • tailwindcss@^4.0.0
  • typescript@^5.6.0
  • vite@^6.0.0

perm:untrusted 1

  • untrusted sandraschi-butterchurn-mcp-358a86e/webapp/src/lib/modelPreference.ts :117 fetch(`${base}/api/tags`).then((r) => r.json()),