Skip to main content
Glama

Cavalry Bridge for Claude

Let Claude see, edit and preview your Cavalry scene: read layers and connections, change attributes with JavaScript, hook nodes together, switch Duplicator distributions, and render a frame to check the result.

English | Русский

Install (2 steps, no terminal)

  1. Download cavalry-claude-bridge.mcpb from the latest release and double-click it. Claude Desktop opens an install dialog: click Install. (Or: Claude Desktop → Settings → Extensions → drag the file in.)

  2. In Cavalry run Scripts → Stallion. The window should say Listening on 127.0.0.1:8080.

Now ask Claude: "Show me my Cavalry scene." Claude asks for permission before each tool call.

You do not need to install Node.js or edit any config file: Claude Desktop ships its own Node.js, and the .mcpb contains the whole server in one file.

Related MCP server: cavalry-mcp

Requirements

What

Notes

Cavalry with JavaScript scripting

Scripting is a Professional-licence feature in Cavalry; Starter licences can only run encrypted scripts (docs).

Stallion running in Cavalry

Scripts → Stallion. If it is missing from your Scripts menu, see Stallion.

Claude Desktop (Windows or macOS)

Works with a free Claude account. macOS is untested by the author.

What Claude can do

Tool

What it does

cavalry_get_scene

Snapshot of the scene: hierarchy, changed attributes, expressions, animation, connections between nodes.

cavalry_execute_script

Runs JavaScript in Cavalry and returns the result, console.log output and readable errors.

cavalry_connect

Connects two nodes. Creates missing array slots, replaces a taken input, and verifies the result (Cavalry's own api.connect fails silently).

cavalry_set_distribution

Changes a Duplicator's distribution (circle, fibonacci, grid, linear, ...).

cavalry_render_frame

Renders the current frame to a PNG so Claude can look at the result.

cavalry_api_search

Searches the installed Cavalry API by name, so Claude does not guess function names.

cavalry_help

Short, verified notes about the API and its pitfalls, by topic (see knowledge/api-notes.md).

Try: "Put a Fibonacci duplicator on the circle and add a Random to the clone positions", "Which layers are connected to the Duplicator?", "Render the frame and tell me what looks off".

Spend fewer tokens

  • Name layers by id (duplicator#1) when you can, so Claude does not need to search.

  • Claude reads the API notes with cavalry_help on demand instead of you pasting them into the chat.

  • Renders default to 50% size; ask for a bigger one only when you need detail.

Troubleshooting

Symptom

Fix

"Cannot reach Cavalry at http://127.0.0.1:8080"

Start Scripts → Stallion in Cavalry. If the window shows another port, set it in Claude Desktop → Settings → Extensions → Cavalry Bridge → Stallion port.

"Timeout: no response from Cavalry"

Scripting may be blocked by your licence, or the script is still running.

Tools do not appear

Fully quit Claude Desktop (system tray → Quit) and start it again.

Argument count does not match function definition

The API function exists but was called with the wrong number of arguments. Ask Claude to use cavalry_api_search.

Safety

Claude can run any JavaScript inside Cavalry, including deleting layers. This isn't limited to the scene: Cavalry's own scripting API can make outbound network requests, open arbitrary URLs or local file:// paths, and run its own HTTP server — all from your machine. Save your scene before letting it make big changes, and read the permission prompts. Stallion itself listens on 127.0.0.1 only; run it when you need it.

Use with other MCP clients (Claude Code, Cursor, ...)

The .mcpb is a zip file: unzip it and use server/index.js, or build from source (below).

{
  "mcpServers": {
    "cavalry": {
      "command": "node",
      "args": ["/absolute/path/to/server/index.js"],
      "env": { "CAVALRY_PORT": "8080" }
    }
  }
}

How it works

Claude Desktop ──stdio (MCP)──> server/index.js ──HTTP POST──> Stallion (in Cavalry, 127.0.0.1:8080)
                                       ^                              │ runs the script, then
                                       └──────── temp JSON file <──── api.writeToFile(result)

Stallion accepts scripts but does not return their result, so every script is wrapped: it runs inside try/catch, captures console.log, and writes a JSON result file that the server reads back. Cavalry's API throws plain strings, which the wrapper turns into readable errors.

Build from source

git clone <this repo> && cd cavalry-claude-bridge
npm install
npm run build      # type-check + bundle to server/index.js
npm test           # end-to-end test against a fake Cavalry
npm run pack       # dist/cavalry-claude-bridge.mcpb

Releasing: bump version in manifest.json and package.json, then push a tag vX.Y.Z. The workflow builds, tests and attaches the .mcpb to a GitHub release.

The Cavalry API notes live in knowledge/api-notes.md (split into topics by ## headings and served by cavalry_help). Corrections are welcome: every line should be something you verified on a real scene.

Optional: extras/skill is a Claude Skill with the same notes, for plans that support Skills. The extension does not need it.

Credits

Not affiliated with Scene Group (Cavalry) or Anthropic.

License

MIT, see LICENSE.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to control Cavalry, a procedural 2D motion graphics application, through natural language commands for creating and animating scenes.
    18
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to control Cavalry motion graphics projects through its local JavaScript API, supporting scene and layer inspection, creation, editing, keyframing, expressions, saving, and rendering with validated structured results.
    MIT