Skip to content
LabsDeveloper docs

The film.fun developer platform

Build on the engine behind film.fun

The APIs, SDK, models and MCP servers that power Splice and the rest of film.fun. For developers, and for the AI agents they build.

Add Splice to Claude Code
claude mcp add --transport http splice https://splice.film.fun/api/mcp# then /mcp to sign in with OAuth# 108 tools: generate, edit, compose, produce
MCP tools on Splice
108
Documented Connect API paths
126
Model providers behind Forge
14
Sign-in for agents
OAuth 2.1

The platform

Six ways in, one account system

Agents usually start with the Splice MCP server. Apps that need film.fun sign-in use film.fun OAuth. Partners building their own product on our generation stack use Forge and the Media SDK.
How the pieces fit
  1. Your agent or app

    Claude, ChatGPT, Codex, Cursor, a script, your own product

  2. Splice MCP and REST

    Signed in with film.fun OAuth or an agent key. Or, for partners, the Media SDK proxy.

  3. Forge

    Routes each job to one of 14 model providers or to our Cogs, and handles jobs and credits.

Splice remote MCP

Give any assistant a film studio

https://splice.film.fun/api/mcp is a Streamable HTTP MCP server with 108 tools. It generates and edits image, video, voice and music; renders Motion compositions; edits Studio timelines; and runs scripts, shotlists and the Universe Bible of a production. Nothing to install.

Claude Code
claude mcp add --transport http splice https://splice.film.fun/api/mcp# then run /mcp and sign in
Codex
codex mcp add splice --url https://splice.film.fun/api/mcp# Codex runs the OAuth sign-in itself
Cursor, VS Code, any MCP client
{ "mcpServers": { "splice": { "url": "https://splice.film.fun/api/mcp" } } }# the client discovers OAuth from the first 401

Sign-in

OAuth 2.1 with dynamic client registration and PKCE, so connectors like claude.ai and ChatGPT sign people in themselves. Scripts can send an agent key (sk_…) as a bearer token instead.

Scopes

splice:read, splice:generate and splice:compose. A tool called without its scope gets a 403 that tells the client which scope to ask for.

Credits

Tools that generate spend the signed-in person's Splice credits. list_models returns each model's price, and an idempotency_key stops a retry charging twice.

film.fun OAuth

One connect for all of film.fun

www.film.fun is the authorization server for every film.fun product. One consent screen covers the products your app needs, with a checkbox for each scope, and one token works across them.

  • Issuer: https://www.film.fun
  • Flow: authorization code with PKCE (S256), dynamic client registration, public clients, rotating refresh tokens
  • Tokens: signed JWTs you can verify against the published JWKS
  • Control: people see and revoke every app they have connected on their Connected apps page
film.fun OAuth scopes by product
ScopeWhat it allows
splice:readRead productions, compositions, characters, locations, props, models and the credit balance
splice:generateGenerate and edit media, manage productions and the library, and spend the user's Splice credits
splice:composeCreate and edit Motion compositions and Studio timelines (every edit is a restorable version)
splice:produceOpt-in: transcribe audio, read Studio hand-offs, and create or remove share links
studio:readSee Studio projects, series, episodes and milestones, including drafts
studio:publishCreate and update Studio projects, series, episodes and milestones (no deletes)

Forge API and Media SDK

The generation stack, for partners

Forge is the AI engine every film.fun product generates through. Its Connect API (/api/connect/*) models clients, productions, generation jobs and credits, and puts one interface in front of 14 model providers. The Media SDK is the React layer on top.

Forge Connect API

  • Generators for image, video, voice, music, sound effects, lip sync, captions, and image and video edits.
  • A hierarchy of product, client, production, then items and jobs, with credit balances at each level.
  • Server-to-server auth with an x-api-key header. Keys never go to a browser.

Providers

  • Replicate
  • fal
  • Kling
  • Google Gemini
  • OpenAI
  • MiniMax
  • ElevenLabs
  • Luma
  • xAI Grok
  • BytePlus
  • NVIDIA
  • AWS Bedrock
  • Hugging Face
  • OpenRouter

@film-labs/media-sdk

React components and hooks for generators, editors, a video studio timeline, a media browser, moodboards and agent chat. Its server entry gives you a proxy route, so the browser talks to your app and your app holds the Forge key.

Next.js proxy route
// app/api/connect/[...path]/route.tsimport { createFilmLabsRouteHandlers } from "@film-labs/media-sdk/server" export const { GET, POST, PUT, DELETE, PATCH } = createFilmLabsRouteHandlers({  apiKey: process.env.FILM_LABS_MEDIA_SDK_KEY!, // server only  baseUrl: process.env.FILM_LABS_MEDIA_SDK_URL!, // the Forge API URL you were given})

Forge keys and the SDK package are issued to partner products, not self-serve. Building something for film.fun creators, or need generation inside your own product? Tell us what you're making.

hello@film.fun

Cogs

Our own models for the unglamorous work

Cogs are custom models we run on Replicate for the media processing that doesn't need a third-party AI. Forge calls them like any other provider, so you reach them through Forge's edit and export routes, or through Splice's edit_media MCP tool.

  • Clip

    Trim video or audio to a time range.

  • Crop

    Crop video or images to a region, with an optional resize.

  • Merge

    Join clips and audio with overlays, watermarks, text and transitions.

  • Frame extract

    Pull the first, last or any numbered frame from a video.

  • Audio extract

    Pull the audio track out of a video as mp3, wav, aac or flac.

  • Timeline export

    Render a full edit from a JSON timeline spec.

  • Motion render

    Render HTML and GSAP compositions to MP4.

ReelKit

Channels that run themselves, with a person in charge

ReelKit is film.fun's scheduled, autonomous channel operator. One runtime runs many channels, each with its own format (news show, recap, remix, full production), calendar, destinations and budget. It produces through Splice, publishes to Studio and social, and asks a person before it spends, posts or raises a cap.

  • MCP server for Claude Code, Codex, Cursor and Gemini CLI, plus a CLI, an HTTP API and a dashboard.
  • Bring your own agent brain (LLM). Generation runs on Splice with your film.fun account.
  • Private beta now. The source opens under the MIT licence when it goes public.
Install the ReelKit MCP server
# beta testers, from a ReelKit checkoutuv run --project runtime reelkit mcp install --host claude --env-file .env# --host: claude | codex | cursor | gemini | claude-desktop | generic