Skip to main content
Glama
README.md
# ART-PIPELINE-MCP

One neutral production toolchain that takes a layered **PSD** to a game-ready **Spine** package, with **After Effects** used only where raster FX genuinely earn it. Any MCP client can drive it: Codex, the OpenAI Responses API, ChatGPT (where custom MCP is available) and Claude Code.

> One server. Multiple brains. The model reasons; the MCP does deterministic production work.

Status: **v0.2.0, roadmap steps 1-3 done.** The full tested engine (Spine 4.2 meshes, heat weights, IK, physics, turn rigs, slot juice, ~28 FX recipes, AE bridge, budget QA; 49 tools, 1169 tests) now lives here as the `art_pipeline` package, ported from [CLAUDE-SPINE](https://github.com/kumikilongyeyo/CLAUDE-SPINE) with no algorithm changes. `claude_spine` and the `claude-spine` command remain as aliases. Orchestration (`pipeline.*`), manifests and HTTP transport are next, see [docs/ROADMAP.md](docs/ROADMAP.md).

## Quick start

```bash
uvx --from git+https://github.com/kumikilongyeyo/ART-PIPELINE-MCP art-pipeline
```

- **Codex:** [docs/CODEX.md](docs/CODEX.md)
- **Claude Code:** `claude mcp add -s user art-pipeline -- uvx --from git+https://github.com/kumikilongyeyo/ART-PIPELINE-MCP art-pipeline`

Engine reference: [docs/RIGS.md](docs/RIGS.md), [docs/FX_RECIPES.md](docs/FX_RECIPES.md).

## Why not `GPT-SPINE`?

GPT is a client, not part of the architecture. The Spine/PSD/AE logic never depended on a model; only naming, install instructions and transport did. Making a per-vendor fork means maintaining two Spine backends. This repo is the single backend.

```text
                    ┌─ Codex
                    │
ART-PIPELINE-MCP ───┼─ OpenAI Responses API
                    │
                    ├─ ChatGPT MCP (where available)
                    │
                    └─ Claude Code
```

## Pipeline

```text
PSD ─ inspect layers ─ classify artwork ─ crop/export
                         │
                         ▼
                       SPINE
        mesh · bones · weights · IK · physics · animation · procedural FX
                         │
              ┌──────────┴──────────┐
              ▼                     ▼
          native FX              AE FX  (glow/bloom, fire, lightning,
                                  │      fluid, distortion, shockwave)
                              aerender
                                  │
                           frame sequence ──► back into SPINE
                                  │
                     runtime validation (spine-core)
                     mobile budget check
                     preview GIF
                                  │
                                  ▼
                       .spine / JSON / atlas
```

**Rule of thumb for AE:** Spine's procedural FX are far cheaper at runtime, so use Spine for motion, scale, squash, trails, particles, coins, sparkles, UI and win feedback. Use AE only for glow/bloom, fire, lightning, fluids, distortion, complex shockwaves, caustics and optical flare. `ae_fx_to_spine` brings the result back as a sequence attachment.

## Tool surface

Raw tools stay internal. By default the server exposes a small set of high-level tools so the agent does not burn context choosing between 50-100 low-level calls. Low-level tools are reachable through `spine.edit` for corrections.

| Namespace | Default tools |
|---|---|
| `asset` | `asset.inspect`, `asset.prepare` |
| `spine` | `spine.rig`, `spine.animate`, `spine.edit` |
| `fx` | `fx.create`, `fx.import_ae` |
| `pipeline` | `pipeline.symbol`, `pipeline.character`, `pipeline.slot_screen` |
| `qa` | `qa.check`, `qa.preview` |
| `export` | `export.spine`, `export.runtime` |

Target example:

> Import `bomb.psd`, identify the bomb, liquid splash and droplets. Rig the bomb, give the liquid secondary deformation, create anticipation, explosion and win_loop. Use AE for the flash and bloom only. Keep it under the `mobile_symbol` budget. Give me the Spine file and a preview GIF.

## Asset manifest

The model edits a manifest; the tools consume predictable structured data, so bone and layer names are never hallucinated per run. See [examples/bomb_candy.asset.json](examples/bomb_candy.asset.json).

## Project state

`.artmcp/project.json` records which PSD produced which Spine project, the AE source comp, animation list, atlas settings and validation status, so jobs resume instead of being rediscovered each session.

## Transports

- **stdio** (local): Codex, Claude Code.
- **Streamable HTTP** (planned): OpenAI Responses API remote MCP, and private servers via Secure MCP Tunnel.

## FRONTEND Slots Agent

This repo includes a Claude Code specialist rebuilt from the actual **Slot Engines Source Pack**:

- Agent: [.claude/agents/frontend-slots-agent.md](.claude/agents/frontend-slots-agent.md)
- Agent docs: [docs/agents/frontend-slots-agent/](docs/agents/frontend-slots-agent/README.md)
- Source-engine selection map: [SOURCE_ENGINE_MAP.md](docs/agents/frontend-slots-agent/SOURCE_ENGINE_MAP.md)
- Source-pack audit: [AUDIT.md](docs/agents/frontend-slots-agent/AUDIT.md)

The agent combines the Showcase engine's clean result-provider/QA boundary with the Jeepney 4x3+1 engine's stronger timing, skip/slam, wheel, Spine and VFX presentation patterns. It also standardizes reel-symbol payout inspection, reward eye-leading, bonus transitions, RTP/math version boundaries, deterministic replay and mobile recovery.

## License

MIT. Spine engine derived from [egorfedorov/spine-mcp](https://github.com/egorfedorov/spine-mcp) via CLAUDE-SPINE; see LICENSE.

TDQS

B3.1/5.0

Scored across 49 tools

Disambiguation3/5

Several tool families overlap: rig_mesh and secondary both build weighted meshes, rig_strand and secondary add physics strands, make_sample and specialized make_*_sample creators overlap, and fx_generate and fx_recipe both add FX. Detailed descriptions help, but with 49 tools an agent can easily misselect among the rigging and sample-generation clusters.

Naming Consistency4/5

All names use snake_case and are generally readable, but the set mixes verb_noun (add_bones, rig_biped, make_sample) with bare nouns (doctor, validate, preview, gait, secondary) and prefix families (fx_, ae_, qa_). The convention is not uniform, though it remains consistent enough to follow.

Tool Count2/5

49 tools far exceeds the 3-15 sweet spot; although the domain is broad, the server is heavy and many tools are variants of sample/rig generators. An agent faces a very large decision space.

Completeness4/5

Covers import, sample generation, many rig types, animation, FX, AE integration, QA, preview, export, and atlas packing—a very wide lifecycle. Minor gap: no explicit delete/remove or general editing tools for existing bones/slots/constraints/animations, though make_editable offers an external workaround.

Maintenance

ActivityMaintained
ResponsivenessNo issues