slopcameraBLOCK
Slopcamera lets Codex, Claude Code, and other coding agents make images, diagrams, animation, 3D scenes, Blender films, and edited video from source files they can keep revising.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
📸 SlopCamera is a media studio for your coding agent. Codex, Claude Code, and other agents make images, diagrams, animation, 3D scenes, and edited video from source files, so a change is a new render and the next version starts from the last one. Ask your agent to set it up: https://slopcamera.com — Ben Guo
[](https://slopcamera.com/docs/how-to/remix-the-showcase#rain-bottled)
A multimedia studio for your coding agent. SlopCamera lets your coding agent make images, diagrams, animation, 3D scenes, and video from source files it can keep revising. It is a free, open-source Bun CLI, TypeScript SDK, Agent Skill, and MCP server for Codex, Claude Code, and other coding agents.
Your agent writes the scene, diagram, or edit as a short source file. SlopCamera checks it, renders it with the right engine on your machine, and keeps the inputs, so the next change is an edit to that file and a new render. Combine authored scenes, generated media, and your own footage in one project.
Install · Techniques · First diagram · Docs · Examples
What you can make with SlopCamera
- Films and animation. Author motion graphics, illustrated scenes, and
native Blender shots. Control camera, materials, lighting, and timing.
- Diagrams as code. Write diagram JSON and get an editable tldraw file,
light and dark SVGs, and PNGs after a strict check.
- Visual explanations. Make educational films with Manim, editable
labels, mathematics, narration, and graphics.
- Images and designs. Create illustrations, trace raster artwork to SVG,
or revise a parametric architectural mode
70223b535b34OBSERVED · 2026-10-10Connect
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 mcp add slopcamera-scene --env AI_GATEWAY_API_KEY=${AI_GATEWAY_API_KEY} --env CURRENT_AUTHORITY_SHA=${CURRENT_AUTHORITY_SHA} --env GH_TOKEN=${GH_TOKEN} --env SECRET=${SECRET} -- npx -y @hraness/[email protected]{
"mcpServers": {
"slopcamera-scene": {
"command": "npx",
"args": [
"-y",
"@hraness/[email protected]"
],
"env": {
"AI_GATEWAY_API_KEY": "${AI_GATEWAY_API_KEY}",
"CURRENT_AUTHORITY_SHA": "${CURRENT_AUTHORITY_SHA}",
"GH_TOKEN": "${GH_TOKEN}",
"SECRET": "${SECRET}"
}
}
}
}Exposed tools (19)
17 read · 2 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
Wan | read | Fixture |
audit_scene | read | Sample one root-relative spatial scene against a camera and report per-entity geometric coverage, visibility findings, and bounds gaps. Optional asset_bounds accepts a Record<assetId,{min,max}> map, a slopcamera.spatial-asset-admission document, a {manifest,facts} pair, or an array of those. |
check_diagram | read | Parse and lint one root-relative Slopcamera diagram source without changing files. Uses only built-in icons and themes. |
check_scene | read | Parse and validate one root-relative Slopcamera spatial scene JSON source without changing files. |
check_scene_direction | read | Validate one authored direction document against one root-relative spatial scene: stale project digests, unresolved entity references, and intervals outside scene duration report as errors without compiling or changing files. |
check_scene_effects | read | Validate one slopcamera.spatial-render-effects document or {document, documentSha256} binding against one scene: scene-digest bindings, entity and asset closure, and nested plan/particle/simulation digests report as findings before any host work. |
compose_icon | read | Parse and solve one root-relative vector icon scene, collection, construction program, or recipe, and report its digests, geometry, and diagnostics. Optionally writes the canonical solved document. Local and deterministic; no model or network. |
compose_soundtrack | read | Parse and verify one root-relative loop or song from compose text, song text, score JSON, or a Standard MIDI file, and report its canonical digest, tempo, meter, and length. Optionally writes the score document. Renders no audio; no network. |
derive_soundtrack_grid | read | Derive bpm, beatOffsetUs, beatsPerBar, and section cue times from one root-relative loop, song, or Standard MIDI file, in the music timing HTML scene requests accept. Optionally writes the grid. Renders no audio; no network. |
diff_scenes | read | Compare two root-relative spatial scene JSON sources and report added, removed, and changed collection entries without changing files. |
evaluate_scene | read | Evaluate one root-relative spatial scene at one camera and integer microsecond time into an immutable snapshot without changing files. |
execute_slopcamera | write | Execute one exact operation code with typed JSON input. Never accepts or evaluates source code. Local paths remain confined to the configured workspace root. |
inspect_scene | read | Snapshot one root-relative spatial scene |
plan_scene_direction | read | Compile one authored direction document into a deterministic, unverified proposal document \u2014 performance actions, camera rigs, shots and looks bound to the actual scene digest. Proposals are advisory only; nothing is applied to the scene. |
plan_scene_effects | read | Assemble a canonical {document, documentSha256} render-effects binding for one scene from a draft JSON naming renderPlan, particleSystems and simulationBakes. Entity and asset closure rejects before the document is formed; the scene digest binds here, never by caller assertion. |
plan_scene_gallery | write | Compile a bounded set of single-axis direction variants into separate content-addressed candidate compilations plus a preview-reel plan. The planner never selects or promotes a candidate. |
render_diagram | read | Render one root-relative Slopcamera diagram source with built-in icons and themes, overwriting its paired .tldr, light/dark SVG, and light/dark PNG artifacts. |
render_icon | read | Draw one root-relative vector icon scene or construction program to an inert SVG, or replay a recipe and require its recorded digests. Optionally writes a replayable recipe. Local and deterministic; no model or network. |
search_slopcamera | read | Search the fixed semantic Slopcamera operation registry by bounded text. This never executes code or changes files. |
Trust audit
BLOCKgrade F · trust 38/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (8 observation(s))
- Network
- declared (4 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
- Planning and graph compilation execute no operations, read no credentials,
NebulaSans-Bold-26se8aek.otf
NebulaSans-Book-8cenzchw.otf
NebulaSans-Bold-26se8aek.otf
NebulaSans-Book-8cenzchw.otf
"src": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NiIgaGVpZ2h0PSI5NiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBjb2xvcj0iIzIwMmIzMiI+PHBhdGggZD0iTTggNi
"src": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NiIgaGVpZ2h0PSI5NiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBjb2xvcj0iIzIwMmIzMiI+PHBhdGggZD0iTTEyID
"src": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NiIgaGVpZ2h0PSI5NiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBjb2xvcj0iIzIwMmIzMiI+PHBhdGggZD0iTTUgNG
"src": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NiIgaGVpZ2h0PSI5NiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBjb2xvcj0iIzIwMmIzMiI+PHBhdGggZD0iTTIgMT
"src": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NiIgaGVpZ2h0PSI5NiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBjb2xvcj0iIzI1NDQyNSI+PHBhdGggZD0iTTEyID
{ text: "Aβ*56 assembly", fontSize: 20, weight: 500 },openai: { apiKey: "must-not-cross-the-operation-boundary" },apiKey: "must-not-cross-the-operation-boundary",
openai: { apiKey: "raw-secret-never-persist" },const API_KEY = "vck_test_gateway_key_1234567890";
const API_KEY = "vck_gateway_secret_that_must_never_leak_12345";
baseline.glb
const factory = new Function("SlopcameraOverlay", `${source}\nreturn createRig;`)({ asset }) as (three: unknown) => Promise<Rig>;const applyGuard = new Function("spark", guardSource!);const evaluate = new Function("rgba", "vec3", "max", "srgbToLinear", `return ${expression};`);execCommand(action: string) { expect(action).toBe("copy"); execCalls++; return exec() },namespace={};exec(compile(ast.Module(body=[fn],type_ignores=[]),"<extracted-guard>","exec"),namespace)const shasum = createHash("sha1").update(archiveBytes).digest("hex");const md5 = (bytes: Uint8Array): string => createHash("md5").update(bytes).digest("hex");git_blob = hashlib.sha1(f"blob {len(source)}\0".encode() + source).hexdigest()Gates applied: no_behavioural_pass.
70223b535b34full audit observations/trust-audit/mcp-server/hraness__slopcamera.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-10 | 70223b535b34 | BLOCK | F | 38 | first audit |
Questions
What is the slopcamera MCP server?
Slopcamera lets Codex, Claude Code, and other coding agents make images, diagrams, animation, 3D scenes, Blender films, and edited video from source files they can keep revising.
What tools does slopcamera expose?
19 in total: 17 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is slopcamera safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (38/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.
What credentials does slopcamera need?
It reads AI_GATEWAY_API_KEY, CURRENT_AUTHORITY_SHA, GH_TOKEN, SECRET, SLOPCAMERA_BROWSER_SENTINEL_SECRET, VERCEL_OIDC_TOKEN and WORLDLABS_API_KEY 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 slopcamera run?
It speaks streamable-http, so it runs as a service you connect to over the network. It is published on npm as @hraness/slopcamera-scene at 1.0.0.
How current is this page?
The grade is for one exact copy of the source (70223b535b34), read on 2026-10-10. The repository is watched and re-audited when it changes.