omnicinema-mcp

omnicinema-mcp

Local MCP server that plans, generates, and assembles production assets (images, audio, video) through multi-agent personas and official APIs, with free-tier budget guard.

Category
Visit Server

README

๐ŸŽฌ omnicinema-mcp

A master asset-creation engine exposed as a local Model Context Protocol (MCP) server. (Package and directory: omnicinema-mcp, on the external drive.)

One local server that plans, generates, and assembles production assets end-to-end:

  • ๐Ÿง  Multi-agent persona consultation โ€” a Director of Photography, Graphic Designer, Voice Director, and Music Producer "debate" and compile a rigid prompt strategy before anything is generated.
  • ๐Ÿ–ผ๏ธ Image & design engine โ€” cinematic photos, transparent logos, vector art, textures, UI mockups. Real offline SVG design + official image APIs (BYO key).
  • ๐ŸŽ™๏ธ Voiceover + full music engine โ€” narration, SFX, and complete multi-section songs across genres (hip-hop, rap, cinematic orchestral, rock, lo-fi, electronic) via MusicGen APIs or deterministic local synthesis (WAV + editable MIDI). Reports exact millisecond durations.
  • ๐ŸŽž๏ธ Video pipeline โ€” screenplay with shot-to-shot frame continuity โ†’ stock/generative b-roll โ†’ frame-accurate Remotion montage (now with locked audio tracks) โ†’ MP4.
  • ๐Ÿ›ก๏ธ Free-tier budget guard โ€” persistent usage tracking with a user-gate that halts before exhausting a quota.
  • ๐Ÿ”Œ Inter-tool REST API โ€” a localhost, token-authed endpoint so another local tool can request assets programmatically.
  • ๐Ÿ”ญ Human-in-the-loop discovery โ€” scans official catalogs and queues suggestions for explicit approval.

โœ‹ Scope & ethics (please read)

Everything here uses official, documented APIs with your own keys, within each service's Terms of Service. It does not, and will not:

  • reuse browser session tokens or scrape hosted web sandboxes (e.g. Seedance / Higgsfield / Suno / Udio web UIs) to obtain "free" generations or bypass paid tiers;
  • auto-integrate or execute arbitrary endpoints/code discovered online.

If a service has no first-party API you can get a key for, it is out of scope. The always-available fallbacks โ€” offline SVG design and offline MIDI/WAV music synthesis โ€” need no keys and no network.


Requirements

  • Node.js โ‰ฅ 18.17 (developed on Node 26).
  • Optional, for video rendering: the Remotion toolchain (installed on demand) + ffmpeg.
  • Optional: ffprobe (part of ffmpeg) for measuring non-WAV audio durations.
  • An external volume if you want everything off your system drive (defaults to /Volumes/PortableSSD/omnicinema-mcp).

Install

cd /Volumes/PortableSSD/omnicinema-mcp
npm install          # core server (lightweight)
npm run build        # compile to dist/
npm run setup:render # optional: install the Remotion render toolchain
npm install -g .     # optional: expose the `omnicinema-mcp` bin globally

Onboarding

1. The limits database

The budget guard persists usage to data/usage-limits.json. You don't create it by hand โ€” it's auto-created on first use and rolls daily/weekly/monthly windows forward automatically. Each provider has a conservative default guard rail; override any of them via env:

# LIMIT_<PROVIDER>_<DAILY|WEEKLY|MONTHLY>=<integer>
LIMIT_HUGGINGFACE_DAILY=250
LIMIT_REPLICATE_MONTHLY=1000

Inspect current usage anytime with the check_limits tool. When a generative call would exceed a quota (or nearly exhaust the daily allowance), the tool halts and returns a cost breakdown; re-issue with approveOverBudget: true to proceed.

2. Dependencies

npm install gets the core server. npm run setup:render adds Remotion for video. The install_dependencies tool can detect your OS and install ffmpeg/Blender/Remotion after explicit consent (preview with consent:false, execute with consent:true).

3. Environment keys

cp .env.example .env   # then fill in ONLY the keys you have
Variable Enables Get a key
PEXELS_API_KEY / PIXABAY_API_KEY / UNSPLASH_ACCESS_KEY Stock video/photos/stills pexels.com/api ยท pixabay.com/api/docs ยท unsplash.com/developers
FREESOUND_API_KEY Stock SFX / ambience freesound.org/apiv2/apply
HUGGINGFACE_API_TOKEN + HF_IMAGE_MODEL / HF_TTS_MODEL / HF_MUSIC_MODEL / HF_VIDEO_MODEL HF Inference image / TTS / music / video huggingface.co/settings/tokens
REPLICATE_API_TOKEN + REPLICATE_IMAGE_MODEL / REPLICATE_MUSIC_MODEL / REPLICATE_VIDEO_MODEL Replicate image / music / video replicate.com
FAL_API_KEY + FAL_VIDEO_MODEL fal.ai video fal.ai
ANTHROPIC_API_KEY Optional screenplay enrichment console.anthropic.com

Model ids are yours to choose, so the tool tracks new models (FLUX, Kokoro, MusicGen, โ€ฆ) without code changes. With no keys at all, the engines still produce real offline output (SVG designs, synthesized music, placeholder footage).

4. The cross-tool programmatic API

Start the localhost REST server so another local tool can drive this engine:

ipc_start  โ†’  { url: "http://127.0.0.1:8787", token: "โ€ฆ" }

Then, from any local process:

TOKEN=โ€ฆ   # from ipc_start (also stored in data/ipc-token.txt)
curl -s localhost:8787/schema -H "Authorization: Bearer $TOKEN"          # metadata contract
curl -s localhost:8787/limits -H "Authorization: Bearer $TOKEN"          # usage
curl -s localhost:8787/assets/image -H "Authorization: Bearer $TOKEN" \
  -H 'content-type: application/json' \
  -d '{"assetKind":"logo","subject":"Nova Labs","style":"vibrant"}'

Security: bound to 127.0.0.1, bearer-token required (auto-generated to data/ipc-token.txt, mode 0600), no CORS, no code execution. Over-budget requests return HTTP 402 with a breakdown; retry with "approveOverBudget": true.


Register as an MCP server

Claude Desktop (claude_desktop_config.json) โ€” see examples/claude_desktop_config.json:

{
  "mcpServers": {
    "omnicinema": {
      "command": "node",
      "args": ["/Volumes/PortableSSD/omnicinema-mcp/dist/index.js"],
      "env": { "CINEMA_ROOT": "/Volumes/PortableSSD/omnicinema-mcp" }
    }
  }
}

Claude Code: claude mcp add omnicinema -- node /Volumes/PortableSSD/omnicinema-mcp/dist/index.js

Tools (15)

Tool Purpose
consult_personas Run the persona debate and return the compiled brief (no generation).
generate_image Cinematic photo / logo / vector art / texture / UI mockup.
generate_voiceover Spoken narration with precise ms duration.
generate_soundtrack Full multi-section song in any genre (WAV + MIDI).
generate_sfx Sound effect / ambience.
check_limits Per-provider free-tier usage.
run_cinema_pipeline Screenplay โ†’ assets โ†’ montage โ†’ MP4 (optional narration, soundtrack).
compile_montage Finish an interactive video project.
install_dependencies Consent-gated OS dependency installer.
list_providers Curated registry + configured status.
discover_providers / approve_suggestion Review-only discovery + explicit promotion.
ipc_start / ipc_status / ipc_stop Control the inter-tool REST server.

Personas

Each asset kind has a lead persona (and sometimes advisors). The consultation compiles a positive prompt, a negative prompt, and technical parameters, with a transcript of the debate.

Persona Leads Dictates
Director of Photography cinematic-photo, texture lens, volumetric lighting, shadows, angle, depth of field
Graphic Designer / Vector Artist logo, vector-art, ui-mockup flat color, padding, SVG-clean geometry, palette
Voice Director & Audio Engineer voiceover, sfx (advises soundtrack) pacing/WPM, inflection, ducking, frequency treatment
Music Producer & Beats Engineer soundtrack BPM, key, verse/chorus structure, instrumentation

Audio & music engine

generate_soundtrack composes a full arrangement (intro/verse/chorus/โ€ฆ): the Music Producer plans BPM, key, structure, and instrumentation per genre, then the engine either calls a MusicGen/AudioCraft API (generative:true + a configured key) or renders it locally to WAV + editable MIDI with deterministic synthesis (bass, chords, drums, arp). Every audio asset returns an exact millisecond duration, so run_cinema_pipeline's narration/soundtrack options lock audio to the video timeline frame-accurately.

Output layout

assets/                      # standalone image/audio assets (<subject>_<kind>.<ext>, plus .mid)
projects/<id>/               # a video project: screenplay, timeline.json, clips, audio, manifest
output/<id>.mp4              # rendered video
data/usage-limits.json       # budget guard database  (gitignored)
data/review-queue.json       # discovery suggestions   (gitignored)
data/ipc-token.txt           # IPC bearer token 0600   (gitignored)

Test / eval

npm run eval   # (alias: npm test) โ€” 29 tests, fully offline (no network, no keys)

Covers persona lead-selection & determinism, budget rollover/gate, music-synthesis duration accuracy + valid WAV/MIDI, offline SVG design, the IPC auth/schema/generate contract, discovery safety gates, and the video pipeline (continuity, timeline tiling, audio lock).

Project structure

src/
  server.ts             # MCP server + 15 tools
  personas/             # DoP, designer, voice director, music producer + consultation
  pipeline/             # image-engine, audio-engine, runCinemaPipeline, script-engine
  audio/                # wav, theory, synth, midi
  assets/               # stock clients + offline vector/SVG designer
  providers/            # image/audio/video providers + registry
  limits/               # budget guard
  api/                  # localhost IPC REST server
  discovery/            # review-only provider discovery
  montage/              # timeline builder/validator + Remotion render
remotion/               # React/TS composition (video + audio tracks)
test/                   # 6 offline test suites

Remotion licensing: free for individuals and small teams; a company license applies above a threshold โ€” see https://remotion.dev/license.

Contributing & License

MIT. Downloaded/generated assets keep their own licenses (see each project's attributions.txt). Please keep the scope boundary intact: official APIs + user-owned keys only; no scraping, token reuse, or auto-integration of untrusted code.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured